DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_00200_AAD_S_000010_PKG

Source


1 PACKAGE BODY XLA_00200_AAD_S_000010_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_000010_PKG                                        |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |     Package generated From Product Accounting Definition              |
13 |      Name    : Encumbrance Cash                                       |
14 |      Code    : AP_ENC_CASH                                            |
15 |      Owner   : PRODUCT                                                |
16 |      Version :                                                        |
17 |      AMB Context Code: DEFAULT                                        |
18 | HISTORY                                                               |
19 |     Generated at 30-03-2009 at 05:03:57 by user ANONYMOUS             |
20 +=======================================================================*/
21 --
22 --
23 TYPE t_rec_array_event IS RECORD
24    (array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
25    ,array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
26    ,array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
27    ,array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
28    ,array_event_id                       xla_number_array_type --XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
29    ,array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
30    ,array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
31    ,array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
32    ,array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
33    ,array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
34    ,array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
35    ,array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
36    ,array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
37    ,array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
38    ,array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
39    ,array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
40    ,array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
41    ,array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
42    ,array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
43    ,array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
44    ,array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
45    ,array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L
46    );
47 --
48 type t_array_value_num is table of number index by varchar2(30);
49 type t_array_value_char is table of varchar2(240) index by varchar2(30);
50 type t_array_value_date is table of date index by varchar2(30);
51 
52 type t_rec_value is record
53  (array_value_num     t_array_value_num
54  ,array_value_char    t_array_value_char
55  ,array_value_date    t_array_value_date);
56 
57 type t_array_event is table of  t_rec_value index by binary_integer;
58 
59 g_array_event   t_array_event;
60 
61 --=============================================================================
62 --               *********** Diagnostics **********
63 --=============================================================================
64 
65 g_diagnostics_mode          VARCHAR2(1);
66 g_last_hdr_idx              NUMBER;        -- 4262811 MPA
67 g_hdr_extract_count         PLS_INTEGER;
68 
69 --=============================================================================
70 --               *********** Local Trace Routine **********
71 --=============================================================================
72 
73 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
74 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
75 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
76 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
77 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
78 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
79 
80 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
81 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.XLA_00200_AAD_S_000010_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_000010_PKG.trace');
109 END trace;
110 
111 --
112 --+============================================+
113 --|                                            |
114 --|  PRIVATE  PROCEDURES/FUNCTIONS             |
115 --|                                            |
116 --+============================================+
117 --
118 
119 --
120 /*======================================================================+
121 |                                                                       |
122 | Private Function                                                      |
123 |    ValidateLookupMeaning                                              |
124 |                                                                       |
125 +======================================================================*/
126 FUNCTION ValidateLookupMeaning(
127   p_meaning                IN VARCHAR2
128 , p_lookup_code            IN VARCHAR2
129 , p_lookup_type            IN VARCHAR2
130 , p_source_code            IN VARCHAR2
131 , p_source_type_code       IN VARCHAR2
132 , p_source_application_id  IN INTEGER
133 )
134 RETURN VARCHAR2
135 IS
136 l_log_module         VARCHAR2(240);
137 BEGIN
138 IF g_log_enabled THEN
139       l_log_module := C_DEFAULT_MODULE||'.ValidateLookupMeaning';
140 END IF;
141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142       trace
143          (p_msg      => 'BEGIN of ValidateLookupMeaning'
144          ,p_level    => C_LEVEL_PROCEDURE
145          ,p_module   => l_log_module);
146 END IF;
147 --
148 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
149     trace
150          (p_msg      => 'p_source_code = '|| p_source_code||
151                         ' - p_source_type_code = '|| p_source_type_code||
152                         ' - p_source_application_id = '|| p_source_application_id||
153                         ' - p_lookup_code = '|| p_lookup_code||
154                         ' - p_lookup_type = '|| p_lookup_type||
155                         ' - p_meaning = '|| p_meaning
156          ,p_level    => C_LEVEL_PROCEDURE
157          ,p_module   => l_log_module);
158 
159 END IF;
160 
161 IF p_lookup_code IS NOT NULL AND p_meaning IS NULL THEN
162    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
163    xla_accounting_err_pkg. build_message
164                (p_appli_s_name            => 'XLA'
165                ,p_msg_name                => 'XLA_AP_NO_LOOKUP_MEANING'
166                ,p_token_1                 => 'SOURCE_NAME'
167                ,p_value_1                 =>  xla_ae_sources_pkg.GetSourceName(
168                                                            p_source_code
169                                                          , p_source_type_code
170                                                          , p_source_application_id
171                                                          )
172                ,p_token_2                 => 'LOOKUP_CODE'
173                ,p_value_2                 =>  p_lookup_code
174                ,p_token_3                 => 'LOOKUP_TYPE'
175                ,p_value_3                 =>  p_lookup_type
176                ,p_token_4                 => 'PRODUCT_NAME'
177                ,p_value_4                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
178                ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
179                ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
180                ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
181        );
182 
183    IF (C_LEVEL_ERROR >= g_log_level) THEN
184            trace
185                 (p_msg      => 'ERROR: XLA_AP_NO_LOOKUP_MEANING'
186                 ,p_level    => C_LEVEL_ERROR
187                 ,p_module   => l_log_module);
188    END IF;
189 END IF;
190 
191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
192         trace
193           (p_msg      => 'END of ValidateLookupMeaning'
194           ,p_level    => C_LEVEL_PROCEDURE
195           ,p_module   => l_log_module);
196 END IF;
197 RETURN p_meaning;
198 EXCEPTION
199 WHEN xla_exceptions_pkg.application_exception THEN
200   RETURN p_meaning;
201 WHEN OTHERS  THEN
202    xla_exceptions_pkg.raise_message
203            (p_location => 'XLA_00200_AAD_S_000010_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_000010_PKG.GetMeaning');
228 END GetMeaning;
229 --
230 
231 ---------------------------------------
232 --
233 -- PRIVATE FUNCTION
234 --         AcctDerRule_1
235 --
236 ---------------------------------------
237 FUNCTION AcctDerRule_1 (
238   p_application_id             IN NUMBER
239 , p_ae_header_id               IN NUMBER
240 , p_side                       IN VARCHAR2
241 , p_override_seg_flag          IN VARCHAR2 
242 --Bank Cash Account
243  , p_source_1            IN NUMBER
244 , x_transaction_coa_id         OUT NOCOPY NUMBER
245 , x_accounting_coa_id          OUT NOCOPY NUMBER
246 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
247 , x_flex_value_set_id          OUT NOCOPY NUMBER
248 , x_value_type_code            OUT NOCOPY VARCHAR2
249 , x_value_combination_id       OUT NOCOPY NUMBER
250 , x_value_segment_code         OUT NOCOPY VARCHAR2
251 )
252 RETURN VARCHAR2
253 IS
254 l_component_type       VARCHAR2(80)  ;
255 l_component_code       VARCHAR2(30)  ;
256 l_component_type_code  VARCHAR2(1)   ;
257 l_component_appl_id    INTEGER       ;
258 l_amb_context_code     VARCHAR2(30)  ;
259 l_log_module           VARCHAR2(240) ;
260 l_output_value         VARCHAR2(30)  ;
261 BEGIN
262 IF g_log_enabled THEN
263       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_1';
264 END IF;
265 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
266 
267       trace
268          (p_msg      => 'BEGIN of AcctDerRule_1'
269          ,p_level    => C_LEVEL_PROCEDURE
270          ,p_module   => l_log_module);
271 
272 END IF;
273 
274 l_component_type         := 'AMB_ADR';
275 l_component_code         := 'AP_CASH_NATURAL_ACCT_SEG';
276 l_component_type_code    := 'S';
277 l_component_appl_id      :=  200;
278 l_amb_context_code       := 'DEFAULT';
279 x_transaction_coa_id     :=  null;
280 x_accounting_coa_id      :=  null;
281 x_flexfield_segment_code := 'GL_ACCOUNT';
282 x_flex_value_set_id      :=  null ;
283 
284 
285 --
286   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
287 
288       trace
289          (p_msg      => 'END of AcctDerRule_1'
290          ,p_level    => C_LEVEL_PROCEDURE
291          ,p_module   => l_log_module);
292 
293   END IF;
294   x_value_combination_id  := TO_NUMBER(p_source_1) ;
295   x_value_segment_code    := 'GL_ACCOUNT' ;
296   x_value_type_code       := 'S';
297   l_output_value          :=  null;
298   RETURN l_output_value;
299 
300 
301 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
302 
303       trace
304          (p_msg      => 'END of AcctDerRule_1(invalid)'
305          ,p_level    => C_LEVEL_PROCEDURE
306          ,p_module   => l_log_module);
307 
308 END IF;
309 
310 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
311 x_value_combination_id  := null;
312 x_value_segment_code    := null;
313 x_value_type_code       := null;
314 l_output_value          := null;
315 xla_accounting_err_pkg.build_message
316                  (p_appli_s_name            => 'XLA'
317                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
318                  ,p_token_1                 => 'COMPONENT_NAME'
319                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
320                                                             l_component_type
321                                                           , l_component_code
322                                                           , l_component_type_code
323                                                           , l_component_appl_id
324                                                           , l_amb_context_code
325                                                           )
326                  ,p_token_2                 => 'OWNER'
327                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
328                                                         'XLA_OWNER_TYPE'
329                                                         ,l_component_type_code
330                                                         )
331                  ,p_token_3                 => 'PAD_NAME'
332                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
333                  ,p_token_4                 => 'PAD_OWNER'
334                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
335                                                         'XLA_OWNER_TYPE'
336                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
337                                                         )
338                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
339                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
340                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
341                  ,p_ae_header_id            => NULL
342 );
343 RETURN l_output_value;
344 EXCEPTION
345   WHEN xla_exceptions_pkg.application_exception THEN
349            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_1');
346       RAISE;
347   WHEN OTHERS THEN
348        xla_exceptions_pkg.raise_message
350 END AcctDerRule_1;
351 --
352 
353 ---------------------------------------
354 --
355 -- PRIVATE FUNCTION
356 --         AcctDerRule_2
357 --
358 ---------------------------------------
359 FUNCTION AcctDerRule_2 (
360   p_application_id             IN NUMBER
361 , p_ae_header_id               IN NUMBER
362 , p_side                       IN VARCHAR2
363 , p_override_seg_flag          IN VARCHAR2 
364 --System Discount Account
365  , p_source_2            IN NUMBER
366 --Discount Distribution Method
367  , p_source_3            IN VARCHAR2
368  , p_source_3_meaning    IN VARCHAR2
369 --Automatic Offsets Value
370  , p_source_4            IN VARCHAR2
371  , p_source_4_meaning    IN VARCHAR2
372 , x_transaction_coa_id         OUT NOCOPY NUMBER
373 , x_accounting_coa_id          OUT NOCOPY NUMBER
374 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
375 , x_flex_value_set_id          OUT NOCOPY NUMBER
376 , x_value_type_code            OUT NOCOPY VARCHAR2
377 , x_value_combination_id       OUT NOCOPY NUMBER
378 , x_value_segment_code         OUT NOCOPY VARCHAR2
379 )
380 RETURN VARCHAR2
381 IS
382 l_component_type       VARCHAR2(80)  ;
383 l_component_code       VARCHAR2(30)  ;
384 l_component_type_code  VARCHAR2(1)   ;
385 l_component_appl_id    INTEGER       ;
386 l_amb_context_code     VARCHAR2(30)  ;
387 l_log_module           VARCHAR2(240) ;
388 l_output_value         VARCHAR2(30)  ;
389 BEGIN
390 IF g_log_enabled THEN
391       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_2';
392 END IF;
393 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
394 
395       trace
396          (p_msg      => 'BEGIN of AcctDerRule_2'
397          ,p_level    => C_LEVEL_PROCEDURE
398          ,p_module   => l_log_module);
399 
400 END IF;
401 
402 l_component_type         := 'AMB_ADR';
403 l_component_code         := 'AP_DISCOUNT_NAT_ACCT_SEG';
404 l_component_type_code    := 'S';
405 l_component_appl_id      :=  200;
406 l_amb_context_code       := 'DEFAULT';
407 x_transaction_coa_id     :=  null;
408 x_accounting_coa_id      :=  null;
409 x_flexfield_segment_code := 'GL_ACCOUNT';
410 x_flex_value_set_id      :=  null ;
411 
412 
413  IF NVL(p_source_3,'
414 ') =  'SYSTEM' AND 
415 NVL(p_source_4,'
416 ') =  'ACCOUNT_SEGMENT_VALUE'
417  THEN 
418 --
419   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
420 
421       trace
422          (p_msg      => 'END of AcctDerRule_2'
423          ,p_level    => C_LEVEL_PROCEDURE
424          ,p_module   => l_log_module);
425 
426   END IF;
427   x_value_combination_id  := TO_NUMBER(p_source_2) ;
428   x_value_segment_code    := 'GL_ACCOUNT' ;
429   x_value_type_code       := 'S';
430   l_output_value          :=  null;
431   RETURN l_output_value;
432 
433  ELSE 
434     IF p_override_seg_flag = 'Y' THEN 
435        RETURN '#$NO_OVERRIDE#$';
436     END IF;
437  END IF;
438 
439 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
440 
441       trace
442          (p_msg      => 'END of AcctDerRule_2(invalid)'
443          ,p_level    => C_LEVEL_PROCEDURE
444          ,p_module   => l_log_module);
445 
446 END IF;
447 
448 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
449 x_value_combination_id  := null;
450 x_value_segment_code    := null;
451 x_value_type_code       := null;
452 l_output_value          := null;
453 xla_accounting_err_pkg.build_message
454                  (p_appli_s_name            => 'XLA'
455                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
456                  ,p_token_1                 => 'COMPONENT_NAME'
457                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
458                                                             l_component_type
459                                                           , l_component_code
460                                                           , l_component_type_code
461                                                           , l_component_appl_id
462                                                           , l_amb_context_code
463                                                           )
464                  ,p_token_2                 => 'OWNER'
465                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
466                                                         'XLA_OWNER_TYPE'
467                                                         ,l_component_type_code
468                                                         )
469                  ,p_token_3                 => 'PAD_NAME'
470                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
471                  ,p_token_4                 => 'PAD_OWNER'
472                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
473                                                         'XLA_OWNER_TYPE'
474                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
475                                                         )
479                  ,p_ae_header_id            => NULL
476                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
477                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
478                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
480 );
481 RETURN l_output_value;
482 EXCEPTION
483   WHEN xla_exceptions_pkg.application_exception THEN
484       RAISE;
485   WHEN OTHERS THEN
486        xla_exceptions_pkg.raise_message
487            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_2');
488 END AcctDerRule_2;
489 --
490 
491 ---------------------------------------
492 --
493 -- PRIVATE FUNCTION
494 --         AcctDerRule_3
495 --
496 ---------------------------------------
497 FUNCTION AcctDerRule_3 (
498   p_application_id             IN NUMBER
499 , p_ae_header_id               IN NUMBER
500 , p_side                       IN VARCHAR2
501 , p_override_seg_flag          IN VARCHAR2 
502 --Automatic Offsets Value
503  , p_source_4            IN VARCHAR2
504  , p_source_4_meaning    IN VARCHAR2
505 --Purchase Order Rate Variance Gain Account
506  , p_source_5            IN NUMBER
507 --Invoice Distribution Ledger Amount
508  , p_source_6            IN NUMBER
509 --Destination Type of the PO Distribution
510  , p_source_7            IN VARCHAR2
511  , p_source_7_meaning    IN VARCHAR2
512 --Purchase Order Rate Variance Loss Account
513  , p_source_8            IN NUMBER
514 , x_transaction_coa_id         OUT NOCOPY NUMBER
515 , x_accounting_coa_id          OUT NOCOPY NUMBER
516 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
517 , x_flex_value_set_id          OUT NOCOPY NUMBER
518 , x_value_type_code            OUT NOCOPY VARCHAR2
519 , x_value_combination_id       OUT NOCOPY NUMBER
520 , x_value_segment_code         OUT NOCOPY VARCHAR2
521 )
522 RETURN VARCHAR2
523 IS
524 l_component_type       VARCHAR2(80)  ;
525 l_component_code       VARCHAR2(30)  ;
526 l_component_type_code  VARCHAR2(1)   ;
527 l_component_appl_id    INTEGER       ;
528 l_amb_context_code     VARCHAR2(30)  ;
529 l_log_module           VARCHAR2(240) ;
530 l_output_value         VARCHAR2(30)  ;
531 BEGIN
532 IF g_log_enabled THEN
533       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_3';
534 END IF;
535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
536 
537       trace
538          (p_msg      => 'BEGIN of AcctDerRule_3'
539          ,p_level    => C_LEVEL_PROCEDURE
540          ,p_module   => l_log_module);
541 
542 END IF;
543 
544 l_component_type         := 'AMB_ADR';
545 l_component_code         := 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG';
546 l_component_type_code    := 'S';
547 l_component_appl_id      :=  200;
548 l_amb_context_code       := 'DEFAULT';
549 x_transaction_coa_id     :=  null;
550 x_accounting_coa_id      :=  null;
551 x_flexfield_segment_code := 'GL_ACCOUNT';
552 x_flex_value_set_id      :=  null ;
553 
554 
555  IF NVL(p_source_4,'
556 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
557 p_source_6 <  0 AND 
558 NVL(p_source_7,'
559 ') =  'INVENTORY'
560  THEN 
561 --
562   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
563 
564       trace
565          (p_msg      => 'END of AcctDerRule_3'
566          ,p_level    => C_LEVEL_PROCEDURE
567          ,p_module   => l_log_module);
568 
569   END IF;
570   x_value_combination_id  := TO_NUMBER(p_source_5) ;
571   x_value_segment_code    := 'GL_ACCOUNT' ;
572   x_value_type_code       := 'S';
573   l_output_value          :=  null;
574   RETURN l_output_value;
575 
576  ELSIF NVL(p_source_4,'
577 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
578 p_source_6 >  0 AND 
579 NVL(p_source_7,'
580 ') =  'INVENTORY'
581  THEN 
582 --
583   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
584 
585       trace
586          (p_msg      => 'END of AcctDerRule_3'
587          ,p_level    => C_LEVEL_PROCEDURE
588          ,p_module   => l_log_module);
589 
590   END IF;
591   x_value_combination_id  := TO_NUMBER(p_source_8) ;
592   x_value_segment_code    := 'GL_ACCOUNT' ;
593   x_value_type_code       := 'S';
594   l_output_value          :=  null;
595   RETURN l_output_value;
596 
597  ELSE 
598     IF p_override_seg_flag = 'Y' THEN 
599        RETURN '#$NO_OVERRIDE#$';
600     END IF;
601  END IF;
602 
603 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
604 
605       trace
606          (p_msg      => 'END of AcctDerRule_3(invalid)'
607          ,p_level    => C_LEVEL_PROCEDURE
608          ,p_module   => l_log_module);
609 
610 END IF;
611 
612 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
613 x_value_combination_id  := null;
614 x_value_segment_code    := null;
615 x_value_type_code       := null;
616 l_output_value          := null;
617 xla_accounting_err_pkg.build_message
618                  (p_appli_s_name            => 'XLA'
619                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
620                  ,p_token_1                 => 'COMPONENT_NAME'
624                                                           , l_component_type_code
621                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
622                                                             l_component_type
623                                                           , l_component_code
625                                                           , l_component_appl_id
626                                                           , l_amb_context_code
627                                                           )
628                  ,p_token_2                 => 'OWNER'
629                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
630                                                         'XLA_OWNER_TYPE'
631                                                         ,l_component_type_code
632                                                         )
633                  ,p_token_3                 => 'PAD_NAME'
634                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
635                  ,p_token_4                 => 'PAD_OWNER'
636                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
637                                                         'XLA_OWNER_TYPE'
638                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
639                                                         )
640                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
641                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
642                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
643                  ,p_ae_header_id            => NULL
644 );
645 RETURN l_output_value;
646 EXCEPTION
647   WHEN xla_exceptions_pkg.application_exception THEN
648       RAISE;
649   WHEN OTHERS THEN
650        xla_exceptions_pkg.raise_message
651            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_3');
652 END AcctDerRule_3;
653 --
654 
655 ---------------------------------------
656 --
657 -- PRIVATE FUNCTION
658 --         AcctDerRule_4
659 --
660 ---------------------------------------
661 FUNCTION AcctDerRule_4 (
662   p_application_id             IN NUMBER
663 , p_ae_header_id               IN NUMBER
664 , p_side                       IN VARCHAR2
665 , p_override_seg_flag          IN VARCHAR2 
666 --Automatic Offsets Value
667  , p_source_4            IN VARCHAR2
668  , p_source_4_meaning    IN VARCHAR2
669 --Purchase Order Rate Variance Gain Account
670  , p_source_5            IN NUMBER
671 --Destination Type of the PO Distribution
672  , p_source_7            IN VARCHAR2
673  , p_source_7_meaning    IN VARCHAR2
674 --Purchase Order Rate Variance Loss Account
675  , p_source_8            IN NUMBER
676 --Payment Distribution (Payment Rate) Ledger Amount
677  , p_source_9            IN NUMBER
678 --Payment Distribution (Cleared Rate) Ledger Amount
679  , p_source_10            IN NUMBER
680 , x_transaction_coa_id         OUT NOCOPY NUMBER
681 , x_accounting_coa_id          OUT NOCOPY NUMBER
682 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
683 , x_flex_value_set_id          OUT NOCOPY NUMBER
684 , x_value_type_code            OUT NOCOPY VARCHAR2
685 , x_value_combination_id       OUT NOCOPY NUMBER
686 , x_value_segment_code         OUT NOCOPY VARCHAR2
687 )
688 RETURN VARCHAR2
689 IS
690 l_component_type       VARCHAR2(80)  ;
691 l_component_code       VARCHAR2(30)  ;
692 l_component_type_code  VARCHAR2(1)   ;
693 l_component_appl_id    INTEGER       ;
694 l_amb_context_code     VARCHAR2(30)  ;
695 l_log_module           VARCHAR2(240) ;
696 l_output_value         VARCHAR2(30)  ;
697 BEGIN
698 IF g_log_enabled THEN
699       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
700 END IF;
701 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
702 
703       trace
704          (p_msg      => 'BEGIN of AcctDerRule_4'
705          ,p_level    => C_LEVEL_PROCEDURE
706          ,p_module   => l_log_module);
707 
708 END IF;
709 
710 l_component_type         := 'AMB_ADR';
711 l_component_code         := 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH';
712 l_component_type_code    := 'S';
713 l_component_appl_id      :=  200;
714 l_amb_context_code       := 'DEFAULT';
715 x_transaction_coa_id     :=  null;
716 x_accounting_coa_id      :=  null;
717 x_flexfield_segment_code := 'GL_ACCOUNT';
718 x_flex_value_set_id      :=  null ;
719 
720 
721  IF NVL(p_source_4,'
722 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
723 NVL(p_source_7,'
724 ') =  'INVENTORY' AND 
725 (p_source_9 <  0 OR 
726 p_source_10 <  0)
727  THEN 
728 --
729   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
730 
731       trace
732          (p_msg      => 'END of AcctDerRule_4'
733          ,p_level    => C_LEVEL_PROCEDURE
734          ,p_module   => l_log_module);
735 
736   END IF;
737   x_value_combination_id  := TO_NUMBER(p_source_5) ;
738   x_value_segment_code    := 'GL_ACCOUNT' ;
739   x_value_type_code       := 'S';
740   l_output_value          :=  null;
741   RETURN l_output_value;
742 
743  ELSIF NVL(p_source_4,'
744 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
745 NVL(p_source_7,'
746 ') =  'INVENTORY' AND 
747 (p_source_9 >  0 OR 
748 p_source_10 >  0)
749  THEN 
753       trace
750 --
751   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
752 
754          (p_msg      => 'END of AcctDerRule_4'
755          ,p_level    => C_LEVEL_PROCEDURE
756          ,p_module   => l_log_module);
757 
758   END IF;
759   x_value_combination_id  := TO_NUMBER(p_source_8) ;
760   x_value_segment_code    := 'GL_ACCOUNT' ;
761   x_value_type_code       := 'S';
762   l_output_value          :=  null;
763   RETURN l_output_value;
764 
765  ELSE 
766     IF p_override_seg_flag = 'Y' THEN 
767        RETURN '#$NO_OVERRIDE#$';
768     END IF;
769  END IF;
770 
771 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
772 
773       trace
774          (p_msg      => 'END of AcctDerRule_4(invalid)'
775          ,p_level    => C_LEVEL_PROCEDURE
776          ,p_module   => l_log_module);
777 
778 END IF;
779 
780 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
781 x_value_combination_id  := null;
782 x_value_segment_code    := null;
783 x_value_type_code       := null;
784 l_output_value          := null;
785 xla_accounting_err_pkg.build_message
786                  (p_appli_s_name            => 'XLA'
787                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
788                  ,p_token_1                 => 'COMPONENT_NAME'
789                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
790                                                             l_component_type
791                                                           , l_component_code
792                                                           , l_component_type_code
793                                                           , l_component_appl_id
794                                                           , l_amb_context_code
795                                                           )
796                  ,p_token_2                 => 'OWNER'
797                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
798                                                         'XLA_OWNER_TYPE'
799                                                         ,l_component_type_code
800                                                         )
801                  ,p_token_3                 => 'PAD_NAME'
802                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
803                  ,p_token_4                 => 'PAD_OWNER'
804                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
805                                                         'XLA_OWNER_TYPE'
806                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
807                                                         )
808                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
809                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
810                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
811                  ,p_ae_header_id            => NULL
812 );
813 RETURN l_output_value;
814 EXCEPTION
815   WHEN xla_exceptions_pkg.application_exception THEN
816       RAISE;
817   WHEN OTHERS THEN
818        xla_exceptions_pkg.raise_message
819            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_4');
820 END AcctDerRule_4;
821 --
822 
823 ---------------------------------------
824 --
825 -- PRIVATE FUNCTION
826 --         AcctDerRule_5
827 --
828 ---------------------------------------
829 FUNCTION AcctDerRule_5 (
830   p_application_id             IN NUMBER
831 , p_ae_header_id               IN NUMBER
832 , p_side                       IN VARCHAR2
833 , p_override_seg_flag          IN VARCHAR2 
834 --Automatic Offsets Value
835  , p_source_4            IN VARCHAR2
836  , p_source_4_meaning    IN VARCHAR2
837 --Purchase Order Rate Variance Gain Account
838  , p_source_5            IN NUMBER
839 --Destination Type of the PO Distribution
840  , p_source_7            IN VARCHAR2
841  , p_source_7_meaning    IN VARCHAR2
842 , x_transaction_coa_id         OUT NOCOPY NUMBER
843 , x_accounting_coa_id          OUT NOCOPY NUMBER
844 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
845 , x_flex_value_set_id          OUT NOCOPY NUMBER
846 , x_value_type_code            OUT NOCOPY VARCHAR2
847 , x_value_combination_id       OUT NOCOPY NUMBER
848 , x_value_segment_code         OUT NOCOPY VARCHAR2
849 )
850 RETURN VARCHAR2
851 IS
852 l_component_type       VARCHAR2(80)  ;
853 l_component_code       VARCHAR2(30)  ;
854 l_component_type_code  VARCHAR2(1)   ;
855 l_component_appl_id    INTEGER       ;
856 l_amb_context_code     VARCHAR2(30)  ;
857 l_log_module           VARCHAR2(240) ;
858 l_output_value         VARCHAR2(30)  ;
859 BEGIN
860 IF g_log_enabled THEN
861       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
862 END IF;
863 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
864 
865       trace
866          (p_msg      => 'BEGIN of AcctDerRule_5'
867          ,p_level    => C_LEVEL_PROCEDURE
868          ,p_module   => l_log_module);
869 
870 END IF;
871 
872 l_component_type         := 'AMB_ADR';
873 l_component_code         := 'AP_ERV_GAIN_NAT_ACCT_SEG';
874 l_component_type_code    := 'S';
875 l_component_appl_id      :=  200;
879 x_flexfield_segment_code := 'GL_ACCOUNT';
876 l_amb_context_code       := 'DEFAULT';
877 x_transaction_coa_id     :=  null;
878 x_accounting_coa_id      :=  null;
880 x_flex_value_set_id      :=  null ;
881 
882 
883  IF NVL(p_source_4,'
884 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
885 NVL(p_source_7,'
886 ') =  'INVENTORY'
887  THEN 
888 --
889   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
890 
891       trace
892          (p_msg      => 'END of AcctDerRule_5'
893          ,p_level    => C_LEVEL_PROCEDURE
894          ,p_module   => l_log_module);
895 
896   END IF;
897   x_value_combination_id  := TO_NUMBER(p_source_5) ;
898   x_value_segment_code    := 'GL_ACCOUNT' ;
899   x_value_type_code       := 'S';
900   l_output_value          :=  null;
901   RETURN l_output_value;
902 
903  ELSE 
904     IF p_override_seg_flag = 'Y' THEN 
905        RETURN '#$NO_OVERRIDE#$';
906     END IF;
907  END IF;
908 
909 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
910 
911       trace
912          (p_msg      => 'END of AcctDerRule_5(invalid)'
913          ,p_level    => C_LEVEL_PROCEDURE
914          ,p_module   => l_log_module);
915 
916 END IF;
917 
918 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
919 x_value_combination_id  := null;
920 x_value_segment_code    := null;
921 x_value_type_code       := null;
922 l_output_value          := null;
923 xla_accounting_err_pkg.build_message
924                  (p_appli_s_name            => 'XLA'
925                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
926                  ,p_token_1                 => 'COMPONENT_NAME'
927                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
928                                                             l_component_type
929                                                           , l_component_code
930                                                           , l_component_type_code
931                                                           , l_component_appl_id
932                                                           , l_amb_context_code
933                                                           )
934                  ,p_token_2                 => 'OWNER'
935                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
936                                                         'XLA_OWNER_TYPE'
937                                                         ,l_component_type_code
938                                                         )
939                  ,p_token_3                 => 'PAD_NAME'
940                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
941                  ,p_token_4                 => 'PAD_OWNER'
942                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
943                                                         'XLA_OWNER_TYPE'
944                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
945                                                         )
946                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
947                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
948                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
949                  ,p_ae_header_id            => NULL
950 );
951 RETURN l_output_value;
952 EXCEPTION
953   WHEN xla_exceptions_pkg.application_exception THEN
954       RAISE;
955   WHEN OTHERS THEN
956        xla_exceptions_pkg.raise_message
957            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_5');
958 END AcctDerRule_5;
959 --
960 
961 ---------------------------------------
962 --
963 -- PRIVATE FUNCTION
964 --         AcctDerRule_6
965 --
966 ---------------------------------------
967 FUNCTION AcctDerRule_6 (
968   p_application_id             IN NUMBER
969 , p_ae_header_id               IN NUMBER
970 , p_side                       IN VARCHAR2
971 , p_override_seg_flag          IN VARCHAR2 
972 --Automatic Offsets Value
973  , p_source_4            IN VARCHAR2
974  , p_source_4_meaning    IN VARCHAR2
975 --Destination Type of the PO Distribution
976  , p_source_7            IN VARCHAR2
977  , p_source_7_meaning    IN VARCHAR2
978 --Purchase Order Rate Variance Loss Account
979  , p_source_8            IN NUMBER
980 , x_transaction_coa_id         OUT NOCOPY NUMBER
981 , x_accounting_coa_id          OUT NOCOPY NUMBER
982 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
983 , x_flex_value_set_id          OUT NOCOPY NUMBER
984 , x_value_type_code            OUT NOCOPY VARCHAR2
985 , x_value_combination_id       OUT NOCOPY NUMBER
986 , x_value_segment_code         OUT NOCOPY VARCHAR2
987 )
988 RETURN VARCHAR2
989 IS
990 l_component_type       VARCHAR2(80)  ;
991 l_component_code       VARCHAR2(30)  ;
992 l_component_type_code  VARCHAR2(1)   ;
993 l_component_appl_id    INTEGER       ;
994 l_amb_context_code     VARCHAR2(30)  ;
995 l_log_module           VARCHAR2(240) ;
996 l_output_value         VARCHAR2(30)  ;
997 BEGIN
998 IF g_log_enabled THEN
999       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
1000 END IF;
1001 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1002 
1003       trace
1007 
1004          (p_msg      => 'BEGIN of AcctDerRule_6'
1005          ,p_level    => C_LEVEL_PROCEDURE
1006          ,p_module   => l_log_module);
1008 END IF;
1009 
1010 l_component_type         := 'AMB_ADR';
1011 l_component_code         := 'AP_ERV_LOSS_NAT_ACCT_SEG';
1012 l_component_type_code    := 'S';
1013 l_component_appl_id      :=  200;
1014 l_amb_context_code       := 'DEFAULT';
1015 x_transaction_coa_id     :=  null;
1016 x_accounting_coa_id      :=  null;
1017 x_flexfield_segment_code := 'GL_ACCOUNT';
1018 x_flex_value_set_id      :=  null ;
1019 
1020 
1021  IF NVL(p_source_4,'
1022 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1023 NVL(p_source_7,'
1024 ') =  'INVENTORY'
1025  THEN 
1026 --
1027   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1028 
1029       trace
1030          (p_msg      => 'END of AcctDerRule_6'
1031          ,p_level    => C_LEVEL_PROCEDURE
1032          ,p_module   => l_log_module);
1033 
1034   END IF;
1035   x_value_combination_id  := TO_NUMBER(p_source_8) ;
1036   x_value_segment_code    := 'GL_ACCOUNT' ;
1037   x_value_type_code       := 'S';
1038   l_output_value          :=  null;
1039   RETURN l_output_value;
1040 
1041  ELSE 
1042     IF p_override_seg_flag = 'Y' THEN 
1043        RETURN '#$NO_OVERRIDE#$';
1044     END IF;
1045  END IF;
1046 
1047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1048 
1049       trace
1050          (p_msg      => 'END of AcctDerRule_6(invalid)'
1051          ,p_level    => C_LEVEL_PROCEDURE
1052          ,p_module   => l_log_module);
1053 
1054 END IF;
1055 
1056 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1057 x_value_combination_id  := null;
1058 x_value_segment_code    := null;
1059 x_value_type_code       := null;
1060 l_output_value          := null;
1061 xla_accounting_err_pkg.build_message
1062                  (p_appli_s_name            => 'XLA'
1063                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1064                  ,p_token_1                 => 'COMPONENT_NAME'
1065                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1066                                                             l_component_type
1067                                                           , l_component_code
1068                                                           , l_component_type_code
1069                                                           , l_component_appl_id
1070                                                           , l_amb_context_code
1071                                                           )
1072                  ,p_token_2                 => 'OWNER'
1073                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1074                                                         'XLA_OWNER_TYPE'
1075                                                         ,l_component_type_code
1076                                                         )
1077                  ,p_token_3                 => 'PAD_NAME'
1078                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1079                  ,p_token_4                 => 'PAD_OWNER'
1080                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1081                                                         'XLA_OWNER_TYPE'
1082                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1083                                                         )
1084                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1085                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1086                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1087                  ,p_ae_header_id            => NULL
1088 );
1089 RETURN l_output_value;
1090 EXCEPTION
1091   WHEN xla_exceptions_pkg.application_exception THEN
1092       RAISE;
1093   WHEN OTHERS THEN
1094        xla_exceptions_pkg.raise_message
1095            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_6');
1096 END AcctDerRule_6;
1097 --
1098 
1099 ---------------------------------------
1100 --
1101 -- PRIVATE FUNCTION
1102 --         AcctDerRule_7
1103 --
1104 ---------------------------------------
1105 FUNCTION AcctDerRule_7 (
1106   p_application_id             IN NUMBER
1107 , p_ae_header_id               IN NUMBER
1108 , p_side                       IN VARCHAR2
1109 , p_override_seg_flag          IN VARCHAR2 
1110 --Automatic Offsets Value
1111  , p_source_4            IN VARCHAR2
1112  , p_source_4_meaning    IN VARCHAR2
1113 --Bank Future Dated Payment Account
1114  , p_source_11            IN NUMBER
1115 --Future Dated Payment Account Source Option
1116  , p_source_12            IN VARCHAR2
1117  , p_source_12_meaning    IN VARCHAR2
1118 --Financials Options Future Dated Payment Account
1119  , p_source_13            IN NUMBER
1120 --Supplier Site Future Dated Payment Account
1121  , p_source_14            IN NUMBER
1122 , x_transaction_coa_id         OUT NOCOPY NUMBER
1123 , x_accounting_coa_id          OUT NOCOPY NUMBER
1124 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1125 , x_flex_value_set_id          OUT NOCOPY NUMBER
1126 , x_value_type_code            OUT NOCOPY VARCHAR2
1127 , x_value_combination_id       OUT NOCOPY NUMBER
1128 , x_value_segment_code         OUT NOCOPY VARCHAR2
1129 )
1133 l_component_code       VARCHAR2(30)  ;
1130 RETURN VARCHAR2
1131 IS
1132 l_component_type       VARCHAR2(80)  ;
1134 l_component_type_code  VARCHAR2(1)   ;
1135 l_component_appl_id    INTEGER       ;
1136 l_amb_context_code     VARCHAR2(30)  ;
1137 l_log_module           VARCHAR2(240) ;
1138 l_output_value         VARCHAR2(30)  ;
1139 BEGIN
1140 IF g_log_enabled THEN
1141       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1142 END IF;
1143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1144 
1145       trace
1146          (p_msg      => 'BEGIN of AcctDerRule_7'
1147          ,p_level    => C_LEVEL_PROCEDURE
1148          ,p_module   => l_log_module);
1149 
1150 END IF;
1151 
1152 l_component_type         := 'AMB_ADR';
1153 l_component_code         := 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG';
1154 l_component_type_code    := 'S';
1155 l_component_appl_id      :=  200;
1156 l_amb_context_code       := 'DEFAULT';
1157 x_transaction_coa_id     :=  null;
1158 x_accounting_coa_id      :=  null;
1159 x_flexfield_segment_code := 'GL_ACCOUNT';
1160 x_flex_value_set_id      :=  null ;
1161 
1162 
1163  IF (NVL(p_source_4,'
1164 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1165 NVL(p_source_12,'
1166 ') =  'BANK ACCOUNT') AND 
1167 TO_NUMBER(p_source_11) IS NOT NULL 
1168  THEN 
1169 --
1170   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1171 
1172       trace
1173          (p_msg      => 'END of AcctDerRule_7'
1174          ,p_level    => C_LEVEL_PROCEDURE
1175          ,p_module   => l_log_module);
1176 
1177   END IF;
1178   x_value_combination_id  := TO_NUMBER(p_source_11) ;
1179   x_value_segment_code    := 'GL_ACCOUNT' ;
1180   x_value_type_code       := 'S';
1181   l_output_value          :=  null;
1182   RETURN l_output_value;
1183 
1184  ELSIF NVL(p_source_4,'
1185 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1186 NVL(p_source_12,'
1187 ') =  'BANK ACCOUNT'
1188  THEN 
1189 --
1190   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1191 
1192       trace
1193          (p_msg      => 'END of AcctDerRule_7'
1194          ,p_level    => C_LEVEL_PROCEDURE
1195          ,p_module   => l_log_module);
1196 
1197   END IF;
1198   x_value_combination_id  := TO_NUMBER(p_source_13) ;
1199   x_value_segment_code    := 'GL_ACCOUNT' ;
1200   x_value_type_code       := 'S';
1201   l_output_value          :=  null;
1202   RETURN l_output_value;
1203 
1204  ELSIF NVL(p_source_4,'
1205 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1206 NVL(p_source_12,'
1207 ') =  'SUPPLIER SITE' AND 
1208 TO_NUMBER(p_source_14) IS NOT NULL 
1209  THEN 
1210 --
1211   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1212 
1213       trace
1214          (p_msg      => 'END of AcctDerRule_7'
1215          ,p_level    => C_LEVEL_PROCEDURE
1216          ,p_module   => l_log_module);
1217 
1218   END IF;
1219   x_value_combination_id  := TO_NUMBER(p_source_14) ;
1220   x_value_segment_code    := 'GL_ACCOUNT' ;
1221   x_value_type_code       := 'S';
1222   l_output_value          :=  null;
1223   RETURN l_output_value;
1224 
1225  ELSIF NVL(p_source_4,'
1226 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1227 NVL(p_source_12,'
1228 ') =  'SUPPLIER SITE'
1229  THEN 
1230 --
1231   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1232 
1233       trace
1234          (p_msg      => 'END of AcctDerRule_7'
1235          ,p_level    => C_LEVEL_PROCEDURE
1236          ,p_module   => l_log_module);
1237 
1238   END IF;
1239   x_value_combination_id  := TO_NUMBER(p_source_13) ;
1240   x_value_segment_code    := 'GL_ACCOUNT' ;
1241   x_value_type_code       := 'S';
1242   l_output_value          :=  null;
1243   RETURN l_output_value;
1244 
1245  ELSE 
1246     IF p_override_seg_flag = 'Y' THEN 
1247        RETURN '#$NO_OVERRIDE#$';
1248     END IF;
1249  END IF;
1250 
1251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1252 
1253       trace
1254          (p_msg      => 'END of AcctDerRule_7(invalid)'
1255          ,p_level    => C_LEVEL_PROCEDURE
1256          ,p_module   => l_log_module);
1257 
1258 END IF;
1259 
1260 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1261 x_value_combination_id  := null;
1262 x_value_segment_code    := null;
1263 x_value_type_code       := null;
1264 l_output_value          := null;
1265 xla_accounting_err_pkg.build_message
1266                  (p_appli_s_name            => 'XLA'
1267                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1268                  ,p_token_1                 => 'COMPONENT_NAME'
1269                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1270                                                             l_component_type
1271                                                           , l_component_code
1272                                                           , l_component_type_code
1273                                                           , l_component_appl_id
1274                                                           , l_amb_context_code
1275                                                           )
1276                  ,p_token_2                 => 'OWNER'
1277                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1278                                                         'XLA_OWNER_TYPE'
1282                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1279                                                         ,l_component_type_code
1280                                                         )
1281                  ,p_token_3                 => 'PAD_NAME'
1283                  ,p_token_4                 => 'PAD_OWNER'
1284                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1285                                                         'XLA_OWNER_TYPE'
1286                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1287                                                         )
1288                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1289                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1290                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1291                  ,p_ae_header_id            => NULL
1292 );
1293 RETURN l_output_value;
1294 EXCEPTION
1295   WHEN xla_exceptions_pkg.application_exception THEN
1296       RAISE;
1297   WHEN OTHERS THEN
1298        xla_exceptions_pkg.raise_message
1299            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_7');
1300 END AcctDerRule_7;
1301 --
1302 
1303 ---------------------------------------
1304 --
1305 -- PRIVATE FUNCTION
1306 --         AcctDerRule_8
1307 --
1308 ---------------------------------------
1309 FUNCTION AcctDerRule_8 (
1310   p_application_id             IN NUMBER
1311 , p_ae_header_id               IN NUMBER
1312 , p_side                       IN VARCHAR2
1313 , p_override_seg_flag          IN VARCHAR2 
1314 --Interest Account
1315  , p_source_15            IN NUMBER
1316 --Prorate Interest Invoice Across Distributions Option
1317  , p_source_16            IN VARCHAR2
1318 , x_transaction_coa_id         OUT NOCOPY NUMBER
1319 , x_accounting_coa_id          OUT NOCOPY NUMBER
1320 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1321 , x_flex_value_set_id          OUT NOCOPY NUMBER
1322 , x_value_type_code            OUT NOCOPY VARCHAR2
1323 , x_value_combination_id       OUT NOCOPY NUMBER
1324 , x_value_segment_code         OUT NOCOPY VARCHAR2
1325 )
1326 RETURN VARCHAR2
1327 IS
1328 l_component_type       VARCHAR2(80)  ;
1329 l_component_code       VARCHAR2(30)  ;
1330 l_component_type_code  VARCHAR2(1)   ;
1331 l_component_appl_id    INTEGER       ;
1332 l_amb_context_code     VARCHAR2(30)  ;
1333 l_log_module           VARCHAR2(240) ;
1334 l_output_value         VARCHAR2(30)  ;
1335 BEGIN
1336 IF g_log_enabled THEN
1337       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1338 END IF;
1339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1340 
1341       trace
1342          (p_msg      => 'BEGIN of AcctDerRule_8'
1343          ,p_level    => C_LEVEL_PROCEDURE
1344          ,p_module   => l_log_module);
1345 
1346 END IF;
1347 
1348 l_component_type         := 'AMB_ADR';
1349 l_component_code         := 'AP_INTEREST_NAT_ACCT_SEG';
1350 l_component_type_code    := 'S';
1351 l_component_appl_id      :=  200;
1352 l_amb_context_code       := 'DEFAULT';
1353 x_transaction_coa_id     :=  null;
1354 x_accounting_coa_id      :=  null;
1355 x_flexfield_segment_code := 'GL_ACCOUNT';
1356 x_flex_value_set_id      :=  null ;
1357 
1358 
1359  IF NVL(p_source_16,'
1360 ') =  'Y'
1361  THEN 
1362 --
1363   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1364 
1365       trace
1366          (p_msg      => 'END of AcctDerRule_8'
1367          ,p_level    => C_LEVEL_PROCEDURE
1368          ,p_module   => l_log_module);
1369 
1370   END IF;
1371   x_value_combination_id  := TO_NUMBER(p_source_15) ;
1372   x_value_segment_code    := 'GL_ACCOUNT' ;
1373   x_value_type_code       := 'S';
1374   l_output_value          :=  null;
1375   RETURN l_output_value;
1376 
1377  ELSE 
1378     IF p_override_seg_flag = 'Y' THEN 
1379        RETURN '#$NO_OVERRIDE#$';
1380     END IF;
1381  END IF;
1382 
1383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1384 
1385       trace
1386          (p_msg      => 'END of AcctDerRule_8(invalid)'
1387          ,p_level    => C_LEVEL_PROCEDURE
1388          ,p_module   => l_log_module);
1389 
1390 END IF;
1391 
1392 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1393 x_value_combination_id  := null;
1394 x_value_segment_code    := null;
1395 x_value_type_code       := null;
1396 l_output_value          := null;
1397 xla_accounting_err_pkg.build_message
1398                  (p_appli_s_name            => 'XLA'
1399                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1400                  ,p_token_1                 => 'COMPONENT_NAME'
1401                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1402                                                             l_component_type
1403                                                           , l_component_code
1404                                                           , l_component_type_code
1405                                                           , l_component_appl_id
1406                                                           , l_amb_context_code
1407                                                           )
1408                  ,p_token_2                 => 'OWNER'
1412                                                         )
1409                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1410                                                         'XLA_OWNER_TYPE'
1411                                                         ,l_component_type_code
1413                  ,p_token_3                 => 'PAD_NAME'
1414                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1415                  ,p_token_4                 => 'PAD_OWNER'
1416                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1417                                                         'XLA_OWNER_TYPE'
1418                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1419                                                         )
1420                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1421                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1422                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1423                  ,p_ae_header_id            => NULL
1424 );
1425 RETURN l_output_value;
1426 EXCEPTION
1427   WHEN xla_exceptions_pkg.application_exception THEN
1428       RAISE;
1429   WHEN OTHERS THEN
1430        xla_exceptions_pkg.raise_message
1431            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_8');
1432 END AcctDerRule_8;
1433 --
1434 
1435 ---------------------------------------
1436 --
1437 -- PRIVATE FUNCTION
1438 --         AcctDerRule_9
1439 --
1440 ---------------------------------------
1441 FUNCTION AcctDerRule_9 (
1442   p_application_id             IN NUMBER
1443 , p_ae_header_id               IN NUMBER
1444 , p_side                       IN VARCHAR2
1445 , p_override_seg_flag          IN VARCHAR2 
1446 --Invoice Distribution Account
1447  , p_source_17            IN NUMBER
1448 --Prepaid Expense Account Source Option
1449  , p_source_18            IN VARCHAR2
1450  , p_source_18_meaning    IN VARCHAR2
1451 --Purchase Order Number
1452  , p_source_19            IN VARCHAR2
1453 --Invoice Distribution Type
1454  , p_source_20            IN VARCHAR2
1455  , p_source_20_meaning    IN VARCHAR2
1456 , x_transaction_coa_id         OUT NOCOPY NUMBER
1457 , x_accounting_coa_id          OUT NOCOPY NUMBER
1458 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1459 , x_flex_value_set_id          OUT NOCOPY NUMBER
1460 , x_value_type_code            OUT NOCOPY VARCHAR2
1461 , x_value_combination_id       OUT NOCOPY NUMBER
1462 , x_value_segment_code         OUT NOCOPY VARCHAR2
1463 )
1464 RETURN VARCHAR2
1465 IS
1466 l_component_type       VARCHAR2(80)  ;
1467 l_component_code       VARCHAR2(30)  ;
1468 l_component_type_code  VARCHAR2(1)   ;
1469 l_component_appl_id    INTEGER       ;
1470 l_amb_context_code     VARCHAR2(30)  ;
1471 l_log_module           VARCHAR2(240) ;
1472 l_output_value         VARCHAR2(30)  ;
1473 BEGIN
1474 IF g_log_enabled THEN
1475       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1476 END IF;
1477 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1478 
1479       trace
1480          (p_msg      => 'BEGIN of AcctDerRule_9'
1481          ,p_level    => C_LEVEL_PROCEDURE
1482          ,p_module   => l_log_module);
1483 
1484 END IF;
1485 
1486 l_component_type         := 'AMB_ADR';
1487 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_ITEM';
1488 l_component_type_code    := 'S';
1489 l_component_appl_id      :=  200;
1490 l_amb_context_code       := 'DEFAULT';
1491 x_transaction_coa_id     :=  null;
1492 x_accounting_coa_id      :=  null;
1493 x_flexfield_segment_code := 'GL_ACCOUNT';
1494 x_flex_value_set_id      :=  null ;
1495 
1496 
1497  IF NVL(p_source_18,'
1498 ') =  'Y' AND 
1499 p_source_19 IS NOT NULL AND 
1500 NVL(p_source_20,'
1501 ') =  'ITEM'
1502  THEN 
1503 --
1504   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1505 
1506       trace
1507          (p_msg      => 'END of AcctDerRule_9'
1508          ,p_level    => C_LEVEL_PROCEDURE
1509          ,p_module   => l_log_module);
1510 
1511   END IF;
1512   x_value_combination_id  := TO_NUMBER(p_source_17) ;
1513   x_value_segment_code    := 'GL_ACCOUNT' ;
1514   x_value_type_code       := 'S';
1515   l_output_value          :=  null;
1516   RETURN l_output_value;
1517 
1518  ELSE 
1519     IF p_override_seg_flag = 'Y' THEN 
1520        RETURN '#$NO_OVERRIDE#$';
1521     END IF;
1522  END IF;
1523 
1524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1525 
1526       trace
1527          (p_msg      => 'END of AcctDerRule_9(invalid)'
1528          ,p_level    => C_LEVEL_PROCEDURE
1529          ,p_module   => l_log_module);
1530 
1531 END IF;
1532 
1533 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1534 x_value_combination_id  := null;
1535 x_value_segment_code    := null;
1536 x_value_type_code       := null;
1537 l_output_value          := null;
1538 xla_accounting_err_pkg.build_message
1539                  (p_appli_s_name            => 'XLA'
1540                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1541                  ,p_token_1                 => 'COMPONENT_NAME'
1542                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1546                                                           , l_component_appl_id
1543                                                             l_component_type
1544                                                           , l_component_code
1545                                                           , l_component_type_code
1547                                                           , l_amb_context_code
1548                                                           )
1549                  ,p_token_2                 => 'OWNER'
1550                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1551                                                         'XLA_OWNER_TYPE'
1552                                                         ,l_component_type_code
1553                                                         )
1554                  ,p_token_3                 => 'PAD_NAME'
1555                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1556                  ,p_token_4                 => 'PAD_OWNER'
1557                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1558                                                         'XLA_OWNER_TYPE'
1559                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1560                                                         )
1561                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1562                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1563                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1564                  ,p_ae_header_id            => NULL
1565 );
1566 RETURN l_output_value;
1567 EXCEPTION
1568   WHEN xla_exceptions_pkg.application_exception THEN
1569       RAISE;
1570   WHEN OTHERS THEN
1571        xla_exceptions_pkg.raise_message
1572            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_9');
1573 END AcctDerRule_9;
1574 --
1575 
1576 ---------------------------------------
1577 --
1578 -- PRIVATE FUNCTION
1579 --         AcctDerRule_10
1580 --
1581 ---------------------------------------
1582 FUNCTION AcctDerRule_10 (
1583   p_application_id             IN NUMBER
1584 , p_ae_header_id               IN NUMBER
1585 , p_side                       IN VARCHAR2
1586 , p_override_seg_flag          IN VARCHAR2 
1587 --Automatic Offsets Value
1588  , p_source_4            IN VARCHAR2
1589  , p_source_4_meaning    IN VARCHAR2
1590 --Invoice Distribution Account
1591  , p_source_17            IN NUMBER
1592 , x_transaction_coa_id         OUT NOCOPY NUMBER
1593 , x_accounting_coa_id          OUT NOCOPY NUMBER
1594 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1595 , x_flex_value_set_id          OUT NOCOPY NUMBER
1596 , x_value_type_code            OUT NOCOPY VARCHAR2
1597 , x_value_combination_id       OUT NOCOPY NUMBER
1598 , x_value_segment_code         OUT NOCOPY VARCHAR2
1599 )
1600 RETURN VARCHAR2
1601 IS
1602 l_component_type       VARCHAR2(80)  ;
1603 l_component_code       VARCHAR2(30)  ;
1604 l_component_type_code  VARCHAR2(1)   ;
1605 l_component_appl_id    INTEGER       ;
1606 l_amb_context_code     VARCHAR2(30)  ;
1607 l_log_module           VARCHAR2(240) ;
1608 l_output_value         VARCHAR2(30)  ;
1609 BEGIN
1610 IF g_log_enabled THEN
1611       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1612 END IF;
1613 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1614 
1615       trace
1616          (p_msg      => 'BEGIN of AcctDerRule_10'
1617          ,p_level    => C_LEVEL_PROCEDURE
1618          ,p_module   => l_log_module);
1619 
1620 END IF;
1621 
1622 l_component_type         := 'AMB_ADR';
1623 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_SEG';
1624 l_component_type_code    := 'S';
1625 l_component_appl_id      :=  200;
1626 l_amb_context_code       := 'DEFAULT';
1627 x_transaction_coa_id     :=  null;
1628 x_accounting_coa_id      :=  null;
1629 x_flexfield_segment_code := 'GL_ACCOUNT';
1630 x_flex_value_set_id      :=  null ;
1631 
1632 
1633  IF NVL(p_source_4,'
1634 ') =  'ACCOUNT_SEGMENT_VALUE'
1635  THEN 
1636 --
1637   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1638 
1639       trace
1640          (p_msg      => 'END of AcctDerRule_10'
1641          ,p_level    => C_LEVEL_PROCEDURE
1642          ,p_module   => l_log_module);
1643 
1644   END IF;
1645   x_value_combination_id  := TO_NUMBER(p_source_17) ;
1646   x_value_segment_code    := 'GL_ACCOUNT' ;
1647   x_value_type_code       := 'S';
1648   l_output_value          :=  null;
1649   RETURN l_output_value;
1650 
1651  ELSE 
1652     IF p_override_seg_flag = 'Y' THEN 
1653        RETURN '#$NO_OVERRIDE#$';
1654     END IF;
1655  END IF;
1656 
1657 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1658 
1659       trace
1660          (p_msg      => 'END of AcctDerRule_10(invalid)'
1661          ,p_level    => C_LEVEL_PROCEDURE
1662          ,p_module   => l_log_module);
1663 
1664 END IF;
1665 
1666 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1667 x_value_combination_id  := null;
1668 x_value_segment_code    := null;
1669 x_value_type_code       := null;
1670 l_output_value          := null;
1671 xla_accounting_err_pkg.build_message
1672                  (p_appli_s_name            => 'XLA'
1676                                                             l_component_type
1673                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1674                  ,p_token_1                 => 'COMPONENT_NAME'
1675                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1677                                                           , l_component_code
1678                                                           , l_component_type_code
1679                                                           , l_component_appl_id
1680                                                           , l_amb_context_code
1681                                                           )
1682                  ,p_token_2                 => 'OWNER'
1683                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1684                                                         'XLA_OWNER_TYPE'
1685                                                         ,l_component_type_code
1686                                                         )
1687                  ,p_token_3                 => 'PAD_NAME'
1688                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1689                  ,p_token_4                 => 'PAD_OWNER'
1690                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1691                                                         'XLA_OWNER_TYPE'
1692                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1693                                                         )
1694                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1695                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1696                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1697                  ,p_ae_header_id            => NULL
1698 );
1699 RETURN l_output_value;
1700 EXCEPTION
1701   WHEN xla_exceptions_pkg.application_exception THEN
1702       RAISE;
1703   WHEN OTHERS THEN
1704        xla_exceptions_pkg.raise_message
1705            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_10');
1706 END AcctDerRule_10;
1707 --
1708 
1709 ---------------------------------------
1710 --
1711 -- PRIVATE FUNCTION
1712 --         AcctDerRule_11
1713 --
1714 ---------------------------------------
1715 FUNCTION AcctDerRule_11 (
1716   p_application_id             IN NUMBER
1717 , p_ae_header_id               IN NUMBER
1718 , p_side                       IN VARCHAR2
1719 , p_override_seg_flag          IN VARCHAR2 
1720 --Bank Cash Clearing Account
1721  , p_source_21            IN NUMBER
1722 , x_transaction_coa_id         OUT NOCOPY NUMBER
1723 , x_accounting_coa_id          OUT NOCOPY NUMBER
1724 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1725 , x_flex_value_set_id          OUT NOCOPY NUMBER
1726 , x_value_type_code            OUT NOCOPY VARCHAR2
1727 , x_value_combination_id       OUT NOCOPY NUMBER
1728 , x_value_segment_code         OUT NOCOPY VARCHAR2
1729 )
1730 RETURN VARCHAR2
1731 IS
1732 l_component_type       VARCHAR2(80)  ;
1733 l_component_code       VARCHAR2(30)  ;
1734 l_component_type_code  VARCHAR2(1)   ;
1735 l_component_appl_id    INTEGER       ;
1736 l_amb_context_code     VARCHAR2(30)  ;
1737 l_log_module           VARCHAR2(240) ;
1738 l_output_value         VARCHAR2(30)  ;
1739 BEGIN
1740 IF g_log_enabled THEN
1741       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1742 END IF;
1743 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1744 
1745       trace
1746          (p_msg      => 'BEGIN of AcctDerRule_11'
1747          ,p_level    => C_LEVEL_PROCEDURE
1748          ,p_module   => l_log_module);
1749 
1750 END IF;
1751 
1752 l_component_type         := 'AMB_ADR';
1753 l_component_code         := 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL';
1754 l_component_type_code    := 'S';
1755 l_component_appl_id      :=  200;
1756 l_amb_context_code       := 'DEFAULT';
1757 x_transaction_coa_id     :=  null;
1758 x_accounting_coa_id      :=  null;
1759 x_flexfield_segment_code := 'GL_ACCOUNT';
1760 x_flex_value_set_id      :=  null ;
1761 
1762 
1763 --
1764   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1765 
1766       trace
1767          (p_msg      => 'END of AcctDerRule_11'
1768          ,p_level    => C_LEVEL_PROCEDURE
1769          ,p_module   => l_log_module);
1770 
1771   END IF;
1772   x_value_combination_id  := TO_NUMBER(p_source_21) ;
1773   x_value_segment_code    := 'GL_ACCOUNT' ;
1774   x_value_type_code       := 'S';
1775   l_output_value          :=  null;
1776   RETURN l_output_value;
1777 
1778 
1779 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1780 
1781       trace
1782          (p_msg      => 'END of AcctDerRule_11(invalid)'
1783          ,p_level    => C_LEVEL_PROCEDURE
1784          ,p_module   => l_log_module);
1785 
1786 END IF;
1787 
1788 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1789 x_value_combination_id  := null;
1790 x_value_segment_code    := null;
1791 x_value_type_code       := null;
1792 l_output_value          := null;
1793 xla_accounting_err_pkg.build_message
1794                  (p_appli_s_name            => 'XLA'
1795                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1796                  ,p_token_1                 => 'COMPONENT_NAME'
1800                                                           , l_component_type_code
1797                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1798                                                             l_component_type
1799                                                           , l_component_code
1801                                                           , l_component_appl_id
1802                                                           , l_amb_context_code
1803                                                           )
1804                  ,p_token_2                 => 'OWNER'
1805                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1806                                                         'XLA_OWNER_TYPE'
1807                                                         ,l_component_type_code
1808                                                         )
1809                  ,p_token_3                 => 'PAD_NAME'
1810                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1811                  ,p_token_4                 => 'PAD_OWNER'
1812                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1813                                                         'XLA_OWNER_TYPE'
1814                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1815                                                         )
1816                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1817                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1818                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1819                  ,p_ae_header_id            => NULL
1820 );
1821 RETURN l_output_value;
1822 EXCEPTION
1823   WHEN xla_exceptions_pkg.application_exception THEN
1824       RAISE;
1825   WHEN OTHERS THEN
1826        xla_exceptions_pkg.raise_message
1827            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_11');
1828 END AcctDerRule_11;
1829 --
1830 
1831 ---------------------------------------
1832 --
1833 -- PRIVATE FUNCTION
1834 --         AcctDerRule_12
1835 --
1836 ---------------------------------------
1837 FUNCTION AcctDerRule_12 (
1838   p_application_id             IN NUMBER
1839 , p_ae_header_id               IN NUMBER
1840 , p_side                       IN VARCHAR2
1841 , p_override_seg_flag          IN VARCHAR2 
1842 --Retainage Account
1843  , p_source_22            IN NUMBER
1844 , x_transaction_coa_id         OUT NOCOPY NUMBER
1845 , x_accounting_coa_id          OUT NOCOPY NUMBER
1846 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1847 , x_flex_value_set_id          OUT NOCOPY NUMBER
1848 , x_value_type_code            OUT NOCOPY VARCHAR2
1849 , x_value_combination_id       OUT NOCOPY NUMBER
1850 , x_value_segment_code         OUT NOCOPY VARCHAR2
1851 )
1852 RETURN VARCHAR2
1853 IS
1854 l_component_type       VARCHAR2(80)  ;
1855 l_component_code       VARCHAR2(30)  ;
1856 l_component_type_code  VARCHAR2(1)   ;
1857 l_component_appl_id    INTEGER       ;
1858 l_amb_context_code     VARCHAR2(30)  ;
1859 l_log_module           VARCHAR2(240) ;
1860 l_output_value         VARCHAR2(30)  ;
1861 BEGIN
1862 IF g_log_enabled THEN
1863       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1864 END IF;
1865 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1866 
1867       trace
1868          (p_msg      => 'BEGIN of AcctDerRule_12'
1869          ,p_level    => C_LEVEL_PROCEDURE
1870          ,p_module   => l_log_module);
1871 
1872 END IF;
1873 
1874 l_component_type         := 'AMB_ADR';
1875 l_component_code         := 'AP_RETAIN_NAT_ACCT_SEG';
1876 l_component_type_code    := 'S';
1877 l_component_appl_id      :=  200;
1878 l_amb_context_code       := 'DEFAULT';
1879 x_transaction_coa_id     :=  null;
1880 x_accounting_coa_id      :=  null;
1881 x_flexfield_segment_code := 'GL_ACCOUNT';
1882 x_flex_value_set_id      :=  null ;
1883 
1884 
1885 --
1886   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1887 
1888       trace
1889          (p_msg      => 'END of AcctDerRule_12'
1890          ,p_level    => C_LEVEL_PROCEDURE
1891          ,p_module   => l_log_module);
1892 
1893   END IF;
1894   x_value_combination_id  := TO_NUMBER(p_source_22) ;
1895   x_value_segment_code    := 'GL_ACCOUNT' ;
1896   x_value_type_code       := 'S';
1897   l_output_value          :=  null;
1898   RETURN l_output_value;
1899 
1900 
1901 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1902 
1903       trace
1904          (p_msg      => 'END of AcctDerRule_12(invalid)'
1905          ,p_level    => C_LEVEL_PROCEDURE
1906          ,p_module   => l_log_module);
1907 
1908 END IF;
1909 
1910 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1911 x_value_combination_id  := null;
1912 x_value_segment_code    := null;
1913 x_value_type_code       := null;
1914 l_output_value          := null;
1915 xla_accounting_err_pkg.build_message
1916                  (p_appli_s_name            => 'XLA'
1917                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1918                  ,p_token_1                 => 'COMPONENT_NAME'
1919                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1920                                                             l_component_type
1924                                                           , l_amb_context_code
1921                                                           , l_component_code
1922                                                           , l_component_type_code
1923                                                           , l_component_appl_id
1925                                                           )
1926                  ,p_token_2                 => 'OWNER'
1927                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1928                                                         'XLA_OWNER_TYPE'
1929                                                         ,l_component_type_code
1930                                                         )
1931                  ,p_token_3                 => 'PAD_NAME'
1932                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1933                  ,p_token_4                 => 'PAD_OWNER'
1934                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1935                                                         'XLA_OWNER_TYPE'
1936                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1937                                                         )
1938                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1939                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1940                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1941                  ,p_ae_header_id            => NULL
1942 );
1943 RETURN l_output_value;
1944 EXCEPTION
1945   WHEN xla_exceptions_pkg.application_exception THEN
1946       RAISE;
1947   WHEN OTHERS THEN
1948        xla_exceptions_pkg.raise_message
1949            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_12');
1950 END AcctDerRule_12;
1951 --
1952 
1953 ---------------------------------------
1954 --
1955 -- PRIVATE FUNCTION
1956 --         AcctDerRule_13
1957 --
1958 ---------------------------------------
1959 FUNCTION AcctDerRule_13 (
1960   p_application_id             IN NUMBER
1961 , p_ae_header_id               IN NUMBER
1962 , p_side                       IN VARCHAR2
1963 , p_override_seg_flag          IN VARCHAR2 
1964 --Discount Distribution Method
1965  , p_source_3            IN VARCHAR2
1966  , p_source_3_meaning    IN VARCHAR2
1967 --Automatic Offsets Value
1968  , p_source_4            IN VARCHAR2
1969  , p_source_4_meaning    IN VARCHAR2
1970 --Invoice Distribution Account
1971  , p_source_17            IN NUMBER
1972 , x_transaction_coa_id         OUT NOCOPY NUMBER
1973 , x_accounting_coa_id          OUT NOCOPY NUMBER
1974 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1975 , x_flex_value_set_id          OUT NOCOPY NUMBER
1976 , x_value_type_code            OUT NOCOPY VARCHAR2
1977 , x_value_combination_id       OUT NOCOPY NUMBER
1978 , x_value_segment_code         OUT NOCOPY VARCHAR2
1979 )
1980 RETURN VARCHAR2
1981 IS
1982 l_component_type       VARCHAR2(80)  ;
1983 l_component_code       VARCHAR2(30)  ;
1984 l_component_type_code  VARCHAR2(1)   ;
1985 l_component_appl_id    INTEGER       ;
1986 l_amb_context_code     VARCHAR2(30)  ;
1987 l_log_module           VARCHAR2(240) ;
1988 l_output_value         VARCHAR2(30)  ;
1989 BEGIN
1990 IF g_log_enabled THEN
1991       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
1992 END IF;
1993 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1994 
1995       trace
1996          (p_msg      => 'BEGIN of AcctDerRule_13'
1997          ,p_level    => C_LEVEL_PROCEDURE
1998          ,p_module   => l_log_module);
1999 
2000 END IF;
2001 
2002 l_component_type         := 'AMB_ADR';
2003 l_component_code         := 'AP_DISCOUNT_BAL_ACCT_SEG';
2004 l_component_type_code    := 'S';
2005 l_component_appl_id      :=  200;
2006 l_amb_context_code       := 'DEFAULT';
2007 x_transaction_coa_id     :=  null;
2008 x_accounting_coa_id      :=  null;
2009 x_flexfield_segment_code := 'GL_BALANCING';
2010 x_flex_value_set_id      :=  null ;
2011 
2012 
2013  IF NVL(p_source_3,'
2014 ') =  'SYSTEM' AND 
2015 NVL(p_source_4,'
2016 ') =  'BALANCING_SEGMENT'
2017  THEN 
2018 --
2019   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2020 
2021       trace
2022          (p_msg      => 'END of AcctDerRule_13'
2023          ,p_level    => C_LEVEL_PROCEDURE
2024          ,p_module   => l_log_module);
2025 
2026   END IF;
2027   x_value_combination_id  := TO_NUMBER(p_source_17) ;
2028   x_value_segment_code    := 'GL_BALANCING' ;
2029   x_value_type_code       := 'S';
2030   l_output_value          :=  null;
2031   RETURN l_output_value;
2032 
2033  ELSE 
2034     IF p_override_seg_flag = 'Y' THEN 
2035        RETURN '#$NO_OVERRIDE#$';
2036     END IF;
2037  END IF;
2038 
2039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2040 
2041       trace
2042          (p_msg      => 'END of AcctDerRule_13(invalid)'
2043          ,p_level    => C_LEVEL_PROCEDURE
2044          ,p_module   => l_log_module);
2045 
2046 END IF;
2047 
2048 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2049 x_value_combination_id  := null;
2050 x_value_segment_code    := null;
2051 x_value_type_code       := null;
2052 l_output_value          := null;
2053 xla_accounting_err_pkg.build_message
2057                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2054                  (p_appli_s_name            => 'XLA'
2055                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2056                  ,p_token_1                 => 'COMPONENT_NAME'
2058                                                             l_component_type
2059                                                           , l_component_code
2060                                                           , l_component_type_code
2061                                                           , l_component_appl_id
2062                                                           , l_amb_context_code
2063                                                           )
2064                  ,p_token_2                 => 'OWNER'
2065                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2066                                                         'XLA_OWNER_TYPE'
2067                                                         ,l_component_type_code
2068                                                         )
2069                  ,p_token_3                 => 'PAD_NAME'
2070                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2071                  ,p_token_4                 => 'PAD_OWNER'
2072                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2073                                                         'XLA_OWNER_TYPE'
2074                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2075                                                         )
2076                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2077                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2078                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2079                  ,p_ae_header_id            => NULL
2080 );
2081 RETURN l_output_value;
2082 EXCEPTION
2083   WHEN xla_exceptions_pkg.application_exception THEN
2084       RAISE;
2085   WHEN OTHERS THEN
2086        xla_exceptions_pkg.raise_message
2087            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_13');
2088 END AcctDerRule_13;
2089 --
2090 
2091 ---------------------------------------
2092 --
2093 -- PRIVATE FUNCTION
2094 --         AcctDerRule_14
2095 --
2096 ---------------------------------------
2097 FUNCTION AcctDerRule_14 (
2098   p_application_id             IN NUMBER
2099 , p_ae_header_id               IN NUMBER
2100 , p_side                       IN VARCHAR2
2101 , p_override_seg_flag          IN VARCHAR2 
2102 --Automatic Offsets Value
2103  , p_source_4            IN VARCHAR2
2104  , p_source_4_meaning    IN VARCHAR2
2105 --Invoice Distribution Account
2106  , p_source_17            IN NUMBER
2107 , x_transaction_coa_id         OUT NOCOPY NUMBER
2108 , x_accounting_coa_id          OUT NOCOPY NUMBER
2109 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2110 , x_flex_value_set_id          OUT NOCOPY NUMBER
2111 , x_value_type_code            OUT NOCOPY VARCHAR2
2112 , x_value_combination_id       OUT NOCOPY NUMBER
2113 , x_value_segment_code         OUT NOCOPY VARCHAR2
2114 )
2115 RETURN VARCHAR2
2116 IS
2117 l_component_type       VARCHAR2(80)  ;
2118 l_component_code       VARCHAR2(30)  ;
2119 l_component_type_code  VARCHAR2(1)   ;
2120 l_component_appl_id    INTEGER       ;
2121 l_amb_context_code     VARCHAR2(30)  ;
2122 l_log_module           VARCHAR2(240) ;
2123 l_output_value         VARCHAR2(30)  ;
2124 BEGIN
2125 IF g_log_enabled THEN
2126       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
2127 END IF;
2128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2129 
2130       trace
2131          (p_msg      => 'BEGIN of AcctDerRule_14'
2132          ,p_level    => C_LEVEL_PROCEDURE
2133          ,p_module   => l_log_module);
2134 
2135 END IF;
2136 
2137 l_component_type         := 'AMB_ADR';
2138 l_component_code         := 'AP_INV_DIST_BAL_SEG';
2139 l_component_type_code    := 'S';
2140 l_component_appl_id      :=  200;
2141 l_amb_context_code       := 'DEFAULT';
2142 x_transaction_coa_id     :=  null;
2143 x_accounting_coa_id      :=  null;
2144 x_flexfield_segment_code := 'GL_BALANCING';
2145 x_flex_value_set_id      :=  null ;
2146 
2147 
2148  IF NVL(p_source_4,'
2149 ') =  'BALANCING_SEGMENT'
2150  THEN 
2151 --
2152   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2153 
2154       trace
2155          (p_msg      => 'END of AcctDerRule_14'
2156          ,p_level    => C_LEVEL_PROCEDURE
2157          ,p_module   => l_log_module);
2158 
2159   END IF;
2160   x_value_combination_id  := TO_NUMBER(p_source_17) ;
2161   x_value_segment_code    := 'GL_BALANCING' ;
2162   x_value_type_code       := 'S';
2163   l_output_value          :=  null;
2164   RETURN l_output_value;
2165 
2166  ELSE 
2167     IF p_override_seg_flag = 'Y' THEN 
2168        RETURN '#$NO_OVERRIDE#$';
2169     END IF;
2170  END IF;
2171 
2172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2173 
2174       trace
2175          (p_msg      => 'END of AcctDerRule_14(invalid)'
2176          ,p_level    => C_LEVEL_PROCEDURE
2177          ,p_module   => l_log_module);
2178 
2179 END IF;
2180 
2181 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2182 x_value_combination_id  := null;
2186 xla_accounting_err_pkg.build_message
2183 x_value_segment_code    := null;
2184 x_value_type_code       := null;
2185 l_output_value          := null;
2187                  (p_appli_s_name            => 'XLA'
2188                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2189                  ,p_token_1                 => 'COMPONENT_NAME'
2190                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2191                                                             l_component_type
2192                                                           , l_component_code
2193                                                           , l_component_type_code
2194                                                           , l_component_appl_id
2195                                                           , l_amb_context_code
2196                                                           )
2197                  ,p_token_2                 => 'OWNER'
2198                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2199                                                         'XLA_OWNER_TYPE'
2200                                                         ,l_component_type_code
2201                                                         )
2202                  ,p_token_3                 => 'PAD_NAME'
2203                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2204                  ,p_token_4                 => 'PAD_OWNER'
2205                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2206                                                         'XLA_OWNER_TYPE'
2207                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2208                                                         )
2209                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2210                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2211                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2212                  ,p_ae_header_id            => NULL
2213 );
2214 RETURN l_output_value;
2215 EXCEPTION
2216   WHEN xla_exceptions_pkg.application_exception THEN
2217       RAISE;
2218   WHEN OTHERS THEN
2219        xla_exceptions_pkg.raise_message
2220            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_14');
2221 END AcctDerRule_14;
2222 --
2223 
2224 ---------------------------------------
2225 --
2226 -- PRIVATE FUNCTION
2227 --         AcctDerRule_15
2228 --
2229 ---------------------------------------
2230 FUNCTION AcctDerRule_15 (
2231   p_application_id             IN NUMBER
2232 , p_ae_header_id               IN NUMBER
2233 , p_side                       IN VARCHAR2
2234 , p_override_seg_flag          IN VARCHAR2 
2235 --Automatic Offsets Value
2236  , p_source_4            IN VARCHAR2
2237  , p_source_4_meaning    IN VARCHAR2
2238 --Destination Type of the PO Distribution
2239  , p_source_7            IN VARCHAR2
2240  , p_source_7_meaning    IN VARCHAR2
2241 --Invoice Distribution Account
2242  , p_source_17            IN NUMBER
2243 , x_transaction_coa_id         OUT NOCOPY NUMBER
2244 , x_accounting_coa_id          OUT NOCOPY NUMBER
2245 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2246 , x_flex_value_set_id          OUT NOCOPY NUMBER
2247 , x_value_type_code            OUT NOCOPY VARCHAR2
2248 , x_value_combination_id       OUT NOCOPY NUMBER
2249 , x_value_segment_code         OUT NOCOPY VARCHAR2
2250 )
2251 RETURN VARCHAR2
2252 IS
2253 l_component_type       VARCHAR2(80)  ;
2254 l_component_code       VARCHAR2(30)  ;
2255 l_component_type_code  VARCHAR2(1)   ;
2256 l_component_appl_id    INTEGER       ;
2257 l_amb_context_code     VARCHAR2(30)  ;
2258 l_log_module           VARCHAR2(240) ;
2259 l_output_value         VARCHAR2(30)  ;
2260 BEGIN
2261 IF g_log_enabled THEN
2262       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2263 END IF;
2264 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2265 
2266       trace
2267          (p_msg      => 'BEGIN of AcctDerRule_15'
2268          ,p_level    => C_LEVEL_PROCEDURE
2269          ,p_module   => l_log_module);
2270 
2271 END IF;
2272 
2273 l_component_type         := 'AMB_ADR';
2274 l_component_code         := 'AP_RELATED_DIST_BAL_SEG';
2275 l_component_type_code    := 'S';
2276 l_component_appl_id      :=  200;
2277 l_amb_context_code       := 'DEFAULT';
2278 x_transaction_coa_id     :=  null;
2279 x_accounting_coa_id      :=  null;
2280 x_flexfield_segment_code := 'GL_BALANCING';
2281 x_flex_value_set_id      :=  null ;
2282 
2283 
2284  IF NVL(p_source_4,'
2285 ') =  'BALANCING_SEGMENT' AND 
2286 NVL(p_source_7,'
2287 ') =  'INVENTORY'
2288  THEN 
2289 --
2290   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2291 
2292       trace
2293          (p_msg      => 'END of AcctDerRule_15'
2294          ,p_level    => C_LEVEL_PROCEDURE
2295          ,p_module   => l_log_module);
2296 
2297   END IF;
2298   x_value_combination_id  := TO_NUMBER(p_source_17) ;
2299   x_value_segment_code    := 'GL_BALANCING' ;
2300   x_value_type_code       := 'S';
2301   l_output_value          :=  null;
2302   RETURN l_output_value;
2303 
2304  ELSE 
2305     IF p_override_seg_flag = 'Y' THEN 
2306        RETURN '#$NO_OVERRIDE#$';
2307     END IF;
2308  END IF;
2309 
2310 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2311 
2315          ,p_module   => l_log_module);
2312       trace
2313          (p_msg      => 'END of AcctDerRule_15(invalid)'
2314          ,p_level    => C_LEVEL_PROCEDURE
2316 
2317 END IF;
2318 
2319 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2320 x_value_combination_id  := null;
2321 x_value_segment_code    := null;
2322 x_value_type_code       := null;
2323 l_output_value          := null;
2324 xla_accounting_err_pkg.build_message
2325                  (p_appli_s_name            => 'XLA'
2326                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2327                  ,p_token_1                 => 'COMPONENT_NAME'
2328                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2329                                                             l_component_type
2330                                                           , l_component_code
2331                                                           , l_component_type_code
2332                                                           , l_component_appl_id
2333                                                           , l_amb_context_code
2334                                                           )
2335                  ,p_token_2                 => 'OWNER'
2336                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2337                                                         'XLA_OWNER_TYPE'
2338                                                         ,l_component_type_code
2339                                                         )
2340                  ,p_token_3                 => 'PAD_NAME'
2341                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2342                  ,p_token_4                 => 'PAD_OWNER'
2343                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2344                                                         'XLA_OWNER_TYPE'
2345                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2346                                                         )
2347                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2348                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2349                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2350                  ,p_ae_header_id            => NULL
2351 );
2352 RETURN l_output_value;
2353 EXCEPTION
2354   WHEN xla_exceptions_pkg.application_exception THEN
2355       RAISE;
2356   WHEN OTHERS THEN
2357        xla_exceptions_pkg.raise_message
2358            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_15');
2359 END AcctDerRule_15;
2360 --
2361 
2362 ---------------------------------------
2363 --
2364 -- PRIVATE FUNCTION
2365 --         AcctDerRule_16
2366 --
2367 ---------------------------------------
2368 FUNCTION AcctDerRule_16 (
2369   p_application_id             IN NUMBER
2370 , p_ae_header_id               IN NUMBER
2371 , p_side                       IN VARCHAR2
2372 , p_override_seg_flag          IN VARCHAR2 
2373 --Automatic Offsets Value
2374  , p_source_4            IN VARCHAR2
2375  , p_source_4_meaning    IN VARCHAR2
2376 --Retainage Related Item Distribution Account
2377  , p_source_23            IN NUMBER
2378 , x_transaction_coa_id         OUT NOCOPY NUMBER
2379 , x_accounting_coa_id          OUT NOCOPY NUMBER
2380 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2381 , x_flex_value_set_id          OUT NOCOPY NUMBER
2382 , x_value_type_code            OUT NOCOPY VARCHAR2
2383 , x_value_combination_id       OUT NOCOPY NUMBER
2384 , x_value_segment_code         OUT NOCOPY VARCHAR2
2385 )
2386 RETURN VARCHAR2
2387 IS
2388 l_component_type       VARCHAR2(80)  ;
2389 l_component_code       VARCHAR2(30)  ;
2390 l_component_type_code  VARCHAR2(1)   ;
2391 l_component_appl_id    INTEGER       ;
2392 l_amb_context_code     VARCHAR2(30)  ;
2393 l_log_module           VARCHAR2(240) ;
2394 l_output_value         VARCHAR2(30)  ;
2395 BEGIN
2396 IF g_log_enabled THEN
2397       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2398 END IF;
2399 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2400 
2401       trace
2402          (p_msg      => 'BEGIN of AcctDerRule_16'
2403          ,p_level    => C_LEVEL_PROCEDURE
2404          ,p_module   => l_log_module);
2405 
2406 END IF;
2407 
2408 l_component_type         := 'AMB_ADR';
2409 l_component_code         := 'AP_RETAIN_RELATED_BAL_SEG';
2410 l_component_type_code    := 'S';
2411 l_component_appl_id      :=  200;
2412 l_amb_context_code       := 'DEFAULT';
2413 x_transaction_coa_id     :=  null;
2414 x_accounting_coa_id      :=  null;
2415 x_flexfield_segment_code := 'GL_BALANCING';
2416 x_flex_value_set_id      :=  null ;
2417 
2418 
2419  IF NVL(p_source_4,'
2420 ') =  'BALANCING_SEGMENT'
2421  THEN 
2422 --
2423   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2424 
2425       trace
2426          (p_msg      => 'END of AcctDerRule_16'
2427          ,p_level    => C_LEVEL_PROCEDURE
2428          ,p_module   => l_log_module);
2429 
2430   END IF;
2431   x_value_combination_id  := TO_NUMBER(p_source_23) ;
2432   x_value_segment_code    := 'GL_BALANCING' ;
2433   x_value_type_code       := 'S';
2434   l_output_value          :=  null;
2435   RETURN l_output_value;
2436 
2437  ELSE 
2438     IF p_override_seg_flag = 'Y' THEN 
2442 
2439        RETURN '#$NO_OVERRIDE#$';
2440     END IF;
2441  END IF;
2443 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2444 
2445       trace
2446          (p_msg      => 'END of AcctDerRule_16(invalid)'
2447          ,p_level    => C_LEVEL_PROCEDURE
2448          ,p_module   => l_log_module);
2449 
2450 END IF;
2451 
2452 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2453 x_value_combination_id  := null;
2454 x_value_segment_code    := null;
2455 x_value_type_code       := null;
2456 l_output_value          := null;
2457 xla_accounting_err_pkg.build_message
2458                  (p_appli_s_name            => 'XLA'
2459                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2460                  ,p_token_1                 => 'COMPONENT_NAME'
2461                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2462                                                             l_component_type
2463                                                           , l_component_code
2464                                                           , l_component_type_code
2465                                                           , l_component_appl_id
2466                                                           , l_amb_context_code
2467                                                           )
2468                  ,p_token_2                 => 'OWNER'
2469                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2470                                                         'XLA_OWNER_TYPE'
2471                                                         ,l_component_type_code
2472                                                         )
2473                  ,p_token_3                 => 'PAD_NAME'
2474                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2475                  ,p_token_4                 => 'PAD_OWNER'
2476                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2477                                                         'XLA_OWNER_TYPE'
2478                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2479                                                         )
2480                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2481                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2482                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2483                  ,p_ae_header_id            => NULL
2484 );
2485 RETURN l_output_value;
2486 EXCEPTION
2487   WHEN xla_exceptions_pkg.application_exception THEN
2488       RAISE;
2489   WHEN OTHERS THEN
2490        xla_exceptions_pkg.raise_message
2491            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_16');
2492 END AcctDerRule_16;
2493 --
2494 
2495 ---------------------------------------
2496 --
2497 -- PRIVATE FUNCTION
2498 --         AcctDerRule_17
2499 --
2500 ---------------------------------------
2501 FUNCTION AcctDerRule_17 (
2502   p_application_id             IN NUMBER
2503 , p_ae_header_id               IN NUMBER
2504 , p_side                       IN VARCHAR2
2505 , p_override_seg_flag          IN VARCHAR2 
2506 --Automatic Offsets Value
2507  , p_source_4            IN VARCHAR2
2508  , p_source_4_meaning    IN VARCHAR2
2509 --Withholding Related Distribution Account
2510  , p_source_24            IN NUMBER
2511 , x_transaction_coa_id         OUT NOCOPY NUMBER
2512 , x_accounting_coa_id          OUT NOCOPY NUMBER
2513 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2514 , x_flex_value_set_id          OUT NOCOPY NUMBER
2515 , x_value_type_code            OUT NOCOPY VARCHAR2
2516 , x_value_combination_id       OUT NOCOPY NUMBER
2517 , x_value_segment_code         OUT NOCOPY VARCHAR2
2518 )
2519 RETURN VARCHAR2
2520 IS
2521 l_component_type       VARCHAR2(80)  ;
2522 l_component_code       VARCHAR2(30)  ;
2523 l_component_type_code  VARCHAR2(1)   ;
2524 l_component_appl_id    INTEGER       ;
2525 l_amb_context_code     VARCHAR2(30)  ;
2526 l_log_module           VARCHAR2(240) ;
2527 l_output_value         VARCHAR2(30)  ;
2528 BEGIN
2529 IF g_log_enabled THEN
2530       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2531 END IF;
2532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2533 
2534       trace
2535          (p_msg      => 'BEGIN of AcctDerRule_17'
2536          ,p_level    => C_LEVEL_PROCEDURE
2537          ,p_module   => l_log_module);
2538 
2539 END IF;
2540 
2541 l_component_type         := 'AMB_ADR';
2542 l_component_code         := 'AP_WH_RELATED_DIST_BAL_SEG';
2543 l_component_type_code    := 'S';
2544 l_component_appl_id      :=  200;
2545 l_amb_context_code       := 'DEFAULT';
2546 x_transaction_coa_id     :=  null;
2547 x_accounting_coa_id      :=  null;
2548 x_flexfield_segment_code := 'GL_BALANCING';
2549 x_flex_value_set_id      :=  null ;
2550 
2551 
2552  IF NVL(p_source_4,'
2553 ') =  'BALANCING_SEGMENT'
2554  THEN 
2555 --
2556   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2557 
2558       trace
2559          (p_msg      => 'END of AcctDerRule_17'
2560          ,p_level    => C_LEVEL_PROCEDURE
2561          ,p_module   => l_log_module);
2562 
2563   END IF;
2564   x_value_combination_id  := TO_NUMBER(p_source_24) ;
2568   RETURN l_output_value;
2565   x_value_segment_code    := 'GL_BALANCING' ;
2566   x_value_type_code       := 'S';
2567   l_output_value          :=  null;
2569 
2570  ELSE 
2571     IF p_override_seg_flag = 'Y' THEN 
2572        RETURN '#$NO_OVERRIDE#$';
2573     END IF;
2574  END IF;
2575 
2576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2577 
2578       trace
2579          (p_msg      => 'END of AcctDerRule_17(invalid)'
2580          ,p_level    => C_LEVEL_PROCEDURE
2581          ,p_module   => l_log_module);
2582 
2583 END IF;
2584 
2585 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2586 x_value_combination_id  := null;
2587 x_value_segment_code    := null;
2588 x_value_type_code       := null;
2589 l_output_value          := null;
2590 xla_accounting_err_pkg.build_message
2591                  (p_appli_s_name            => 'XLA'
2592                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2593                  ,p_token_1                 => 'COMPONENT_NAME'
2594                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2595                                                             l_component_type
2596                                                           , l_component_code
2597                                                           , l_component_type_code
2598                                                           , l_component_appl_id
2599                                                           , l_amb_context_code
2600                                                           )
2601                  ,p_token_2                 => 'OWNER'
2602                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2603                                                         'XLA_OWNER_TYPE'
2604                                                         ,l_component_type_code
2605                                                         )
2606                  ,p_token_3                 => 'PAD_NAME'
2607                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2608                  ,p_token_4                 => 'PAD_OWNER'
2609                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2610                                                         'XLA_OWNER_TYPE'
2611                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2612                                                         )
2613                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2614                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2615                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2616                  ,p_ae_header_id            => NULL
2617 );
2618 RETURN l_output_value;
2619 EXCEPTION
2620   WHEN xla_exceptions_pkg.application_exception THEN
2621       RAISE;
2622   WHEN OTHERS THEN
2623        xla_exceptions_pkg.raise_message
2624            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_17');
2625 END AcctDerRule_17;
2626 --
2627 
2628 ---------------------------------------
2629 --
2630 -- PRIVATE FUNCTION
2631 --         AcctDerRule_18
2632 --
2633 ---------------------------------------
2634 FUNCTION AcctDerRule_18 (
2635   p_application_id              IN NUMBER
2636 , p_ae_header_id                IN NUMBER
2637 , p_side                        IN VARCHAR2 
2638 --Automatic Offsets Value
2639  , p_source_4            IN VARCHAR2
2640  , p_source_4_meaning    IN VARCHAR2
2641 --Invoice Distribution Account
2642  , p_source_17            IN NUMBER
2643 --Bank Charges Account
2644  , p_source_25            IN NUMBER
2645 , x_transaction_coa_id         OUT NOCOPY NUMBER
2646 , x_accounting_coa_id          OUT NOCOPY NUMBER
2647 , x_value_type_code            OUT NOCOPY VARCHAR2
2648 )
2649 RETURN NUMBER
2650 IS
2651 l_component_type       VARCHAR2(80)  ;
2652 l_component_code       VARCHAR2(30)  ;
2653 l_component_type_code  VARCHAR2(1)   ;
2654 l_component_appl_id    INTEGER       ;
2655 l_amb_context_code     VARCHAR2(30)  ;
2656 l_log_module           VARCHAR2(240) ;
2657 l_output_value         NUMBER        ;
2658 BEGIN
2659 IF g_log_enabled THEN
2660       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2661 END IF;
2662 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2663       trace
2664          (p_msg      => 'BEGIN of AcctDerRule_18'
2665          ,p_level    => C_LEVEL_PROCEDURE
2666          ,p_module   => l_log_module);
2667 END IF;
2668 --
2669 l_component_type         := 'AMB_ADR';
2670 l_component_code         := 'AP_BANK_CHARGES';
2671 l_component_type_code    := 'S';
2672 l_component_appl_id      :=  200;
2673 l_amb_context_code       := 'DEFAULT';
2674 x_transaction_coa_id     :=  null;
2675 x_accounting_coa_id      :=  null;
2676 --
2677 
2678  IF NVL(p_source_4,'
2679 ') <>  'ACCOUNT_SEGMENT_VALUE'
2680  THEN 
2681  --
2682   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2683       trace
2684          (p_msg      => 'END of AcctDerRule_18'
2685          ,p_level    => C_LEVEL_PROCEDURE
2686          ,p_module   => l_log_module);
2687   END IF;
2688   x_value_type_code := 'S';
2689   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
2690   RETURN l_output_value;
2691 
2695  --
2692  ELSIF NVL(p_source_4,'
2693 ') =  'ACCOUNT_SEGMENT_VALUE'
2694  THEN 
2696   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2697       trace
2698          (p_msg      => 'END of AcctDerRule_18'
2699          ,p_level    => C_LEVEL_PROCEDURE
2700          ,p_module   => l_log_module);
2701   END IF;
2702   x_value_type_code := 'S';
2703   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
2704   RETURN l_output_value;
2705 
2706  END IF;
2707 --
2708 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2709       trace
2710          (p_msg      => 'END of AcctDerRule_18(invalid)'
2711          ,p_level    => C_LEVEL_PROCEDURE
2712          ,p_module   => l_log_module);
2713 END IF;
2714 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2715 x_value_type_code := null;
2716 l_output_value    := null;
2717 xla_accounting_err_pkg.build_message
2718                  (p_appli_s_name            => 'XLA'
2719                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2720                  ,p_token_1                 => 'COMPONENT_NAME'
2721                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2722                                                             l_component_type
2723                                                           , l_component_code
2724                                                           , l_component_type_code
2725                                                           , l_component_appl_id
2726                                                           , l_amb_context_code
2727                                                           )
2728                  ,p_token_2                 => 'OWNER'
2729                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2730                                                         'XLA_OWNER_TYPE'
2731                                                         ,l_component_type_code
2732                                                         )
2733                  ,p_token_3                 => 'PAD_NAME'
2734                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2735                  ,p_token_4                 => 'PAD_OWNER'
2736                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2737                                                         'XLA_OWNER_TYPE'
2738                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2739                                                         )
2740                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2741                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2742                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2743                  ,p_ae_header_id            => NULL
2744 );
2745 RETURN l_output_value;
2746 EXCEPTION
2747   WHEN xla_exceptions_pkg.application_exception THEN
2748       RAISE;
2749   WHEN OTHERS THEN
2750        xla_exceptions_pkg.raise_message
2751            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_18');
2752 END AcctDerRule_18;
2753 --
2754 
2755 ---------------------------------------
2756 --
2757 -- PRIVATE FUNCTION
2758 --         AcctDerRule_19
2759 --
2760 ---------------------------------------
2761 FUNCTION AcctDerRule_19 (
2762   p_application_id              IN NUMBER
2763 , p_ae_header_id                IN NUMBER
2764 , p_side                        IN VARCHAR2 
2765 --Automatic Offsets Value
2766  , p_source_4            IN VARCHAR2
2767  , p_source_4_meaning    IN VARCHAR2
2768 --Invoice Distribution Account
2769  , p_source_17            IN NUMBER
2770 --Bank Errors Account
2771  , p_source_26            IN NUMBER
2772 , x_transaction_coa_id         OUT NOCOPY NUMBER
2773 , x_accounting_coa_id          OUT NOCOPY NUMBER
2774 , x_value_type_code            OUT NOCOPY VARCHAR2
2775 )
2776 RETURN NUMBER
2777 IS
2778 l_component_type       VARCHAR2(80)  ;
2779 l_component_code       VARCHAR2(30)  ;
2780 l_component_type_code  VARCHAR2(1)   ;
2781 l_component_appl_id    INTEGER       ;
2782 l_amb_context_code     VARCHAR2(30)  ;
2783 l_log_module           VARCHAR2(240) ;
2784 l_output_value         NUMBER        ;
2785 BEGIN
2786 IF g_log_enabled THEN
2787       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
2788 END IF;
2789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2790       trace
2791          (p_msg      => 'BEGIN of AcctDerRule_19'
2792          ,p_level    => C_LEVEL_PROCEDURE
2793          ,p_module   => l_log_module);
2794 END IF;
2795 --
2796 l_component_type         := 'AMB_ADR';
2797 l_component_code         := 'AP_BANK_ERRORS';
2798 l_component_type_code    := 'S';
2799 l_component_appl_id      :=  200;
2800 l_amb_context_code       := 'DEFAULT';
2801 x_transaction_coa_id     :=  null;
2802 x_accounting_coa_id      :=  null;
2803 --
2804 
2805  IF NVL(p_source_4,'
2806 ') <>  'ACCOUNT_SEGMENT_VALUE'
2807  THEN 
2808  --
2809   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2810       trace
2811          (p_msg      => 'END of AcctDerRule_19'
2812          ,p_level    => C_LEVEL_PROCEDURE
2813          ,p_module   => l_log_module);
2814   END IF;
2815   x_value_type_code := 'S';
2816   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_26));
2817   RETURN l_output_value;
2818 
2819  ELSIF NVL(p_source_4,'
2820 ') =  'ACCOUNT_SEGMENT_VALUE'
2821  THEN 
2822  --
2826          ,p_level    => C_LEVEL_PROCEDURE
2823   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2824       trace
2825          (p_msg      => 'END of AcctDerRule_19'
2827          ,p_module   => l_log_module);
2828   END IF;
2829   x_value_type_code := 'S';
2830   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
2831   RETURN l_output_value;
2832 
2833  END IF;
2834 --
2835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2836       trace
2837          (p_msg      => 'END of AcctDerRule_19(invalid)'
2838          ,p_level    => C_LEVEL_PROCEDURE
2839          ,p_module   => l_log_module);
2840 END IF;
2841 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2842 x_value_type_code := null;
2843 l_output_value    := null;
2844 xla_accounting_err_pkg.build_message
2845                  (p_appli_s_name            => 'XLA'
2846                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2847                  ,p_token_1                 => 'COMPONENT_NAME'
2848                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2849                                                             l_component_type
2850                                                           , l_component_code
2851                                                           , l_component_type_code
2852                                                           , l_component_appl_id
2853                                                           , l_amb_context_code
2854                                                           )
2855                  ,p_token_2                 => 'OWNER'
2856                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2857                                                         'XLA_OWNER_TYPE'
2858                                                         ,l_component_type_code
2859                                                         )
2860                  ,p_token_3                 => 'PAD_NAME'
2861                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2862                  ,p_token_4                 => 'PAD_OWNER'
2863                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2864                                                         'XLA_OWNER_TYPE'
2865                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2866                                                         )
2867                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2868                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2869                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2870                  ,p_ae_header_id            => NULL
2871 );
2872 RETURN l_output_value;
2873 EXCEPTION
2874   WHEN xla_exceptions_pkg.application_exception THEN
2875       RAISE;
2876   WHEN OTHERS THEN
2877        xla_exceptions_pkg.raise_message
2878            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_19');
2879 END AcctDerRule_19;
2880 --
2881 
2882 ---------------------------------------
2883 --
2884 -- PRIVATE FUNCTION
2885 --         AcctDerRule_20
2886 --
2887 ---------------------------------------
2888 FUNCTION AcctDerRule_20 (
2889   p_application_id              IN NUMBER
2890 , p_ae_header_id                IN NUMBER
2891 , p_side                        IN VARCHAR2 
2892 --Bank Cash Account
2893  , p_source_1            IN NUMBER
2894 , x_transaction_coa_id         OUT NOCOPY NUMBER
2895 , x_accounting_coa_id          OUT NOCOPY NUMBER
2896 , x_value_type_code            OUT NOCOPY VARCHAR2
2897 )
2898 RETURN NUMBER
2899 IS
2900 l_component_type       VARCHAR2(80)  ;
2901 l_component_code       VARCHAR2(30)  ;
2902 l_component_type_code  VARCHAR2(1)   ;
2903 l_component_appl_id    INTEGER       ;
2904 l_amb_context_code     VARCHAR2(30)  ;
2905 l_log_module           VARCHAR2(240) ;
2906 l_output_value         NUMBER        ;
2907 BEGIN
2908 IF g_log_enabled THEN
2909       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_20';
2910 END IF;
2911 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2912       trace
2913          (p_msg      => 'BEGIN of AcctDerRule_20'
2914          ,p_level    => C_LEVEL_PROCEDURE
2915          ,p_module   => l_log_module);
2916 END IF;
2917 --
2918 l_component_type         := 'AMB_ADR';
2919 l_component_code         := 'AP_CASH';
2920 l_component_type_code    := 'S';
2921 l_component_appl_id      :=  200;
2922 l_amb_context_code       := 'DEFAULT';
2923 x_transaction_coa_id     :=  null;
2924 x_accounting_coa_id      :=  null;
2925 --
2926 
2927  --
2928   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2929       trace
2930          (p_msg      => 'END of AcctDerRule_20'
2931          ,p_level    => C_LEVEL_PROCEDURE
2932          ,p_module   => l_log_module);
2933   END IF;
2934   x_value_type_code := 'S';
2935   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_1));
2936   RETURN l_output_value;
2937 
2938 --
2939 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2940       trace
2941          (p_msg      => 'END of AcctDerRule_20(invalid)'
2942          ,p_level    => C_LEVEL_PROCEDURE
2943          ,p_module   => l_log_module);
2944 END IF;
2945 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2949                  (p_appli_s_name            => 'XLA'
2946 x_value_type_code := null;
2947 l_output_value    := null;
2948 xla_accounting_err_pkg.build_message
2950                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2951                  ,p_token_1                 => 'COMPONENT_NAME'
2952                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2953                                                             l_component_type
2954                                                           , l_component_code
2955                                                           , l_component_type_code
2956                                                           , l_component_appl_id
2957                                                           , l_amb_context_code
2958                                                           )
2959                  ,p_token_2                 => 'OWNER'
2960                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2961                                                         'XLA_OWNER_TYPE'
2962                                                         ,l_component_type_code
2963                                                         )
2964                  ,p_token_3                 => 'PAD_NAME'
2965                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2966                  ,p_token_4                 => 'PAD_OWNER'
2967                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2968                                                         'XLA_OWNER_TYPE'
2969                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2970                                                         )
2971                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2972                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2973                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2974                  ,p_ae_header_id            => NULL
2975 );
2976 RETURN l_output_value;
2977 EXCEPTION
2978   WHEN xla_exceptions_pkg.application_exception THEN
2979       RAISE;
2980   WHEN OTHERS THEN
2981        xla_exceptions_pkg.raise_message
2982            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_20');
2983 END AcctDerRule_20;
2984 --
2985 
2986 ---------------------------------------
2987 --
2988 -- PRIVATE FUNCTION
2989 --         AcctDerRule_21
2990 --
2991 ---------------------------------------
2992 FUNCTION AcctDerRule_21 (
2993   p_application_id              IN NUMBER
2994 , p_ae_header_id                IN NUMBER
2995 , p_side                        IN VARCHAR2 
2996 --System Discount Account
2997  , p_source_2            IN NUMBER
2998 --Discount Distribution Method
2999  , p_source_3            IN VARCHAR2
3000  , p_source_3_meaning    IN VARCHAR2
3001 --Automatic Offsets Value
3002  , p_source_4            IN VARCHAR2
3003  , p_source_4_meaning    IN VARCHAR2
3004 --Invoice Distribution Account
3005  , p_source_17            IN NUMBER
3006 --Invoice Distribution Type
3007  , p_source_20            IN VARCHAR2
3008  , p_source_20_meaning    IN VARCHAR2
3009 --Discount Account
3010  , p_source_27            IN NUMBER
3011 --Purchase Order Charge Account
3012  , p_source_28            IN NUMBER
3013 --Purchase Order Variance Account
3014  , p_source_29            IN NUMBER
3015 , x_transaction_coa_id         OUT NOCOPY NUMBER
3016 , x_accounting_coa_id          OUT NOCOPY NUMBER
3017 , x_value_type_code            OUT NOCOPY VARCHAR2
3018 )
3019 RETURN NUMBER
3020 IS
3021 l_component_type       VARCHAR2(80)  ;
3022 l_component_code       VARCHAR2(30)  ;
3023 l_component_type_code  VARCHAR2(1)   ;
3024 l_component_appl_id    INTEGER       ;
3025 l_amb_context_code     VARCHAR2(30)  ;
3026 l_log_module           VARCHAR2(240) ;
3027 l_output_value         NUMBER        ;
3028 BEGIN
3029 IF g_log_enabled THEN
3030       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
3031 END IF;
3032 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3033       trace
3034          (p_msg      => 'BEGIN of AcctDerRule_21'
3035          ,p_level    => C_LEVEL_PROCEDURE
3036          ,p_module   => l_log_module);
3037 END IF;
3038 --
3039 l_component_type         := 'AMB_ADR';
3040 l_component_code         := 'AP_DISCOUNT';
3041 l_component_type_code    := 'S';
3042 l_component_appl_id      :=  200;
3043 l_amb_context_code       := 'DEFAULT';
3044 x_transaction_coa_id     :=  null;
3045 x_accounting_coa_id      :=  null;
3046 --
3047 
3048  IF NVL(p_source_3,'
3049 ') =  'SYSTEM' AND 
3050 NVL(p_source_4,'
3051 ') <>  'ACCOUNT_SEGMENT_VALUE'
3052  THEN 
3053  --
3054   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3055       trace
3056          (p_msg      => 'END of AcctDerRule_21'
3057          ,p_level    => C_LEVEL_PROCEDURE
3058          ,p_module   => l_log_module);
3059   END IF;
3060   x_value_type_code := 'S';
3061   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_27));
3062   RETURN l_output_value;
3063 
3064  ELSIF NVL(p_source_3,'
3065 ') =  'SYSTEM' AND 
3066 NVL(p_source_4,'
3067 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3068 NVL(p_source_20,'
3069 ') <>  'ACCRUAL'
3070  THEN 
3071  --
3072   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3073       trace
3077   END IF;
3074          (p_msg      => 'END of AcctDerRule_21'
3075          ,p_level    => C_LEVEL_PROCEDURE
3076          ,p_module   => l_log_module);
3078   x_value_type_code := 'S';
3079   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3080   RETURN l_output_value;
3081 
3082  ELSIF NVL(p_source_3,'
3083 ') =  'SYSTEM' AND 
3084 NVL(p_source_4,'
3085 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3086 NVL(p_source_20,'
3087 ') =  'ACCRUAL'
3088  THEN 
3089  --
3090   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3091       trace
3092          (p_msg      => 'END of AcctDerRule_21'
3093          ,p_level    => C_LEVEL_PROCEDURE
3094          ,p_module   => l_log_module);
3095   END IF;
3096   x_value_type_code := 'S';
3097   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_28));
3098   RETURN l_output_value;
3099 
3100  ELSIF NVL(p_source_3,'
3101 ') =  'EXPENSE' AND 
3102 NVL(p_source_20,'
3103 ') <>  'ACCRUAL'
3104  THEN 
3105  --
3106   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3107       trace
3108          (p_msg      => 'END of AcctDerRule_21'
3109          ,p_level    => C_LEVEL_PROCEDURE
3110          ,p_module   => l_log_module);
3111   END IF;
3112   x_value_type_code := 'S';
3113   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3114   RETURN l_output_value;
3115 
3116  ELSIF NVL(p_source_3,'
3117 ') =  'EXPENSE' AND 
3118 NVL(p_source_20,'
3119 ') =  'ACCRUAL'
3120  THEN 
3121  --
3122   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3123       trace
3124          (p_msg      => 'END of AcctDerRule_21'
3125          ,p_level    => C_LEVEL_PROCEDURE
3126          ,p_module   => l_log_module);
3127   END IF;
3128   x_value_type_code := 'S';
3129   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
3130   RETURN l_output_value;
3131 
3132  ELSIF NVL(p_source_3,'
3133 ') =  'TAX' AND 
3134 NVL(p_source_4,'
3135 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3136 (NVL(p_source_20,'
3137 ') =  'REC_TAX' OR 
3138 NVL(p_source_20,'
3139 ') =  'NONREC_TAX' OR 
3140 NVL(p_source_20,'
3141 ') =  'TIPV' OR 
3142 NVL(p_source_20,'
3143 ') =  'TRV')
3144  THEN 
3145  --
3146   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3147       trace
3148          (p_msg      => 'END of AcctDerRule_21'
3149          ,p_level    => C_LEVEL_PROCEDURE
3150          ,p_module   => l_log_module);
3151   END IF;
3152   x_value_type_code := 'S';
3153   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3154   RETURN l_output_value;
3155 
3156  ELSIF NVL(p_source_3,'
3157 ') =  'TAX' AND 
3158 NVL(p_source_4,'
3159 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3160 (NVL(p_source_20,'
3161 ') <>  'REC_TAX' OR 
3162 NVL(p_source_20,'
3163 ') <>  'NONREC_TAX' OR 
3164 NVL(p_source_20,'
3165 ') <>  'TIPV' OR 
3166 NVL(p_source_20,'
3167 ') <>  'TRV')
3168  THEN 
3169  --
3170   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3171       trace
3172          (p_msg      => 'END of AcctDerRule_21'
3173          ,p_level    => C_LEVEL_PROCEDURE
3174          ,p_module   => l_log_module);
3175   END IF;
3176   x_value_type_code := 'S';
3177   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_2));
3178   RETURN l_output_value;
3179 
3180  ELSIF NVL(p_source_3,'
3181 ') =  'TAX' AND 
3182 NVL(p_source_4,'
3183 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3184 NVL(p_source_20,'
3185 ') <>  'ACCRUAL'
3186  THEN 
3187  --
3188   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3189       trace
3190          (p_msg      => 'END of AcctDerRule_21'
3191          ,p_level    => C_LEVEL_PROCEDURE
3192          ,p_module   => l_log_module);
3193   END IF;
3194   x_value_type_code := 'S';
3195   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3196   RETURN l_output_value;
3197 
3198  ELSIF NVL(p_source_3,'
3199 ') =  'TAX' AND 
3200 NVL(p_source_4,'
3201 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
3202 NVL(p_source_20,'
3203 ') =  'ACCRUAL'
3204  THEN 
3205  --
3206   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3207       trace
3208          (p_msg      => 'END of AcctDerRule_21'
3209          ,p_level    => C_LEVEL_PROCEDURE
3210          ,p_module   => l_log_module);
3211   END IF;
3212   x_value_type_code := 'S';
3213   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_28));
3214   RETURN l_output_value;
3215 
3216  END IF;
3217 --
3218 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3219       trace
3220          (p_msg      => 'END of AcctDerRule_21(invalid)'
3221          ,p_level    => C_LEVEL_PROCEDURE
3222          ,p_module   => l_log_module);
3223 END IF;
3224 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3225 x_value_type_code := null;
3226 l_output_value    := null;
3227 xla_accounting_err_pkg.build_message
3228                  (p_appli_s_name            => 'XLA'
3229                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3230                  ,p_token_1                 => 'COMPONENT_NAME'
3231                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3232                                                             l_component_type
3233                                                           , l_component_code
3237                                                           )
3234                                                           , l_component_type_code
3235                                                           , l_component_appl_id
3236                                                           , l_amb_context_code
3238                  ,p_token_2                 => 'OWNER'
3239                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3240                                                         'XLA_OWNER_TYPE'
3241                                                         ,l_component_type_code
3242                                                         )
3243                  ,p_token_3                 => 'PAD_NAME'
3244                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3245                  ,p_token_4                 => 'PAD_OWNER'
3246                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3247                                                         'XLA_OWNER_TYPE'
3248                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3249                                                         )
3250                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3251                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3252                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3253                  ,p_ae_header_id            => NULL
3254 );
3255 RETURN l_output_value;
3256 EXCEPTION
3257   WHEN xla_exceptions_pkg.application_exception THEN
3258       RAISE;
3259   WHEN OTHERS THEN
3260        xla_exceptions_pkg.raise_message
3261            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_21');
3262 END AcctDerRule_21;
3263 --
3264 
3265 ---------------------------------------
3266 --
3267 -- PRIVATE FUNCTION
3268 --         AcctDerRule_22
3269 --
3270 ---------------------------------------
3271 FUNCTION AcctDerRule_22 (
3272   p_application_id              IN NUMBER
3273 , p_ae_header_id                IN NUMBER
3274 , p_side                        IN VARCHAR2 
3275 --Automatic Offsets Value
3276  , p_source_4            IN VARCHAR2
3277  , p_source_4_meaning    IN VARCHAR2
3278 --Purchase Order Rate Variance Gain Account
3279  , p_source_5            IN NUMBER
3280 --Destination Type of the PO Distribution
3281  , p_source_7            IN VARCHAR2
3282  , p_source_7_meaning    IN VARCHAR2
3283 --Purchase Order Rate Variance Loss Account
3284  , p_source_8            IN NUMBER
3285 --Payment Distribution (Payment Rate) Ledger Amount
3286  , p_source_9            IN NUMBER
3287 --Payment Distribution (Cleared Rate) Ledger Amount
3288  , p_source_10            IN NUMBER
3289 --Invoice Distribution Account
3290  , p_source_17            IN NUMBER
3291 --Automatic Offsets Flag
3292  , p_source_30            IN VARCHAR2
3293  , p_source_30_meaning    IN VARCHAR2
3294 , x_transaction_coa_id         OUT NOCOPY NUMBER
3295 , x_accounting_coa_id          OUT NOCOPY NUMBER
3296 , x_value_type_code            OUT NOCOPY VARCHAR2
3297 )
3298 RETURN NUMBER
3299 IS
3300 l_component_type       VARCHAR2(80)  ;
3301 l_component_code       VARCHAR2(30)  ;
3302 l_component_type_code  VARCHAR2(1)   ;
3303 l_component_appl_id    INTEGER       ;
3304 l_amb_context_code     VARCHAR2(30)  ;
3305 l_log_module           VARCHAR2(240) ;
3306 l_output_value         NUMBER        ;
3307 BEGIN
3308 IF g_log_enabled THEN
3309       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
3310 END IF;
3311 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3312       trace
3313          (p_msg      => 'BEGIN of AcctDerRule_22'
3314          ,p_level    => C_LEVEL_PROCEDURE
3315          ,p_module   => l_log_module);
3316 END IF;
3317 --
3318 l_component_type         := 'AMB_ADR';
3319 l_component_code         := 'AP_ERV_TAXERV_CASH';
3320 l_component_type_code    := 'S';
3321 l_component_appl_id      :=  200;
3322 l_amb_context_code       := 'DEFAULT';
3323 x_transaction_coa_id     :=  null;
3324 x_accounting_coa_id      :=  null;
3325 --
3326 
3327  IF NVL(p_source_7,'
3328 ') =  'EXPENSE' OR 
3329 (NVL(p_source_7,'
3330 ') =  'INVENTORY' AND 
3331 NVL(p_source_4,'
3332 ') =  'ACCOUNT_SEGMENT_VALUE')
3333  THEN 
3334  --
3335   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3336       trace
3337          (p_msg      => 'END of AcctDerRule_22'
3338          ,p_level    => C_LEVEL_PROCEDURE
3339          ,p_module   => l_log_module);
3340   END IF;
3341   x_value_type_code := 'S';
3342   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3343   RETURN l_output_value;
3344 
3345  ELSIF NVL(p_source_7,'
3346 ') <>  'EXPENSE' AND 
3347 (p_source_9 <  0 OR 
3348 p_source_10 <  0) AND 
3349 (NVL(p_source_30,'
3350 ') =  'N' OR 
3351 NVL(p_source_4,'
3352 ') =  'BALANCING_SEGMENT')
3353  THEN 
3354  --
3355   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3356       trace
3357          (p_msg      => 'END of AcctDerRule_22'
3358          ,p_level    => C_LEVEL_PROCEDURE
3359          ,p_module   => l_log_module);
3360   END IF;
3361   x_value_type_code := 'S';
3362   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_5));
3363   RETURN l_output_value;
3364 
3365  ELSIF NVL(p_source_7,'
3366 ') <>  'EXPENSE' AND 
3367 (p_source_9 >  0 OR 
3368 p_source_10 >  0) AND 
3369 (NVL(p_source_30,'
3370 ') =  'N' OR 
3371 NVL(p_source_4,'
3372 ') =  'BALANCING_SEGMENT')
3373  THEN 
3377          (p_msg      => 'END of AcctDerRule_22'
3374  --
3375   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3376       trace
3378          ,p_level    => C_LEVEL_PROCEDURE
3379          ,p_module   => l_log_module);
3380   END IF;
3381   x_value_type_code := 'S';
3382   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_8));
3383   RETURN l_output_value;
3384 
3385  END IF;
3386 --
3387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3388       trace
3389          (p_msg      => 'END of AcctDerRule_22(invalid)'
3390          ,p_level    => C_LEVEL_PROCEDURE
3391          ,p_module   => l_log_module);
3392 END IF;
3393 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3394 x_value_type_code := null;
3395 l_output_value    := null;
3396 xla_accounting_err_pkg.build_message
3397                  (p_appli_s_name            => 'XLA'
3398                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3399                  ,p_token_1                 => 'COMPONENT_NAME'
3400                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3401                                                             l_component_type
3402                                                           , l_component_code
3403                                                           , l_component_type_code
3404                                                           , l_component_appl_id
3405                                                           , l_amb_context_code
3406                                                           )
3407                  ,p_token_2                 => 'OWNER'
3408                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3409                                                         'XLA_OWNER_TYPE'
3410                                                         ,l_component_type_code
3411                                                         )
3412                  ,p_token_3                 => 'PAD_NAME'
3413                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3414                  ,p_token_4                 => 'PAD_OWNER'
3415                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3416                                                         'XLA_OWNER_TYPE'
3417                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3418                                                         )
3419                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3420                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3421                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3422                  ,p_ae_header_id            => NULL
3423 );
3424 RETURN l_output_value;
3425 EXCEPTION
3426   WHEN xla_exceptions_pkg.application_exception THEN
3427       RAISE;
3428   WHEN OTHERS THEN
3429        xla_exceptions_pkg.raise_message
3430            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_22');
3431 END AcctDerRule_22;
3432 --
3433 
3434 ---------------------------------------
3435 --
3436 -- PRIVATE FUNCTION
3437 --         AcctDerRule_23
3438 --
3439 ---------------------------------------
3440 FUNCTION AcctDerRule_23 (
3441   p_application_id              IN NUMBER
3442 , p_ae_header_id                IN NUMBER
3443 , p_side                        IN VARCHAR2 
3444 --Automatic Offsets Value
3445  , p_source_4            IN VARCHAR2
3446  , p_source_4_meaning    IN VARCHAR2
3447 --Purchase Order Rate Variance Gain Account
3448  , p_source_5            IN NUMBER
3449 --Invoice Distribution Ledger Amount
3450  , p_source_6            IN NUMBER
3451 --Destination Type of the PO Distribution
3452  , p_source_7            IN VARCHAR2
3453  , p_source_7_meaning    IN VARCHAR2
3454 --Purchase Order Rate Variance Loss Account
3455  , p_source_8            IN NUMBER
3456 --Invoice Distribution Account
3457  , p_source_17            IN NUMBER
3458 --Automatic Offsets Flag
3459  , p_source_30            IN VARCHAR2
3460  , p_source_30_meaning    IN VARCHAR2
3461 , x_transaction_coa_id         OUT NOCOPY NUMBER
3462 , x_accounting_coa_id          OUT NOCOPY NUMBER
3463 , x_value_type_code            OUT NOCOPY VARCHAR2
3464 )
3465 RETURN NUMBER
3466 IS
3467 l_component_type       VARCHAR2(80)  ;
3468 l_component_code       VARCHAR2(30)  ;
3469 l_component_type_code  VARCHAR2(1)   ;
3470 l_component_appl_id    INTEGER       ;
3471 l_amb_context_code     VARCHAR2(30)  ;
3472 l_log_module           VARCHAR2(240) ;
3473 l_output_value         NUMBER        ;
3474 BEGIN
3475 IF g_log_enabled THEN
3476       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
3477 END IF;
3478 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3479       trace
3480          (p_msg      => 'BEGIN of AcctDerRule_23'
3481          ,p_level    => C_LEVEL_PROCEDURE
3482          ,p_module   => l_log_module);
3483 END IF;
3484 --
3485 l_component_type         := 'AMB_ADR';
3486 l_component_code         := 'AP_EXCHG_TAXEXCHG_RATE_VAR';
3487 l_component_type_code    := 'S';
3488 l_component_appl_id      :=  200;
3489 l_amb_context_code       := 'DEFAULT';
3490 x_transaction_coa_id     :=  null;
3491 x_accounting_coa_id      :=  null;
3492 --
3493 
3494  IF NVL(p_source_7,'
3495 ') =  'EXPENSE' OR 
3496 (NVL(p_source_7,'
3497 ') =  'INVENTORY' AND 
3498 NVL(p_source_4,'
3499 ') =  'ACCOUNT_SEGMENT_VALUE')
3500  THEN 
3504          (p_msg      => 'END of AcctDerRule_23'
3501  --
3502   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3503       trace
3505          ,p_level    => C_LEVEL_PROCEDURE
3506          ,p_module   => l_log_module);
3507   END IF;
3508   x_value_type_code := 'S';
3509   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3510   RETURN l_output_value;
3511 
3512  ELSIF NVL(p_source_7,'
3513 ') <>  'EXPENSE' AND 
3514 p_source_6 <=  0 AND 
3515 (NVL(p_source_30,'
3516 ') =  'N' OR 
3517 NVL(p_source_4,'
3518 ') =  'BALANCING_SEGMENT')
3519  THEN 
3520  --
3521   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3522       trace
3523          (p_msg      => 'END of AcctDerRule_23'
3524          ,p_level    => C_LEVEL_PROCEDURE
3525          ,p_module   => l_log_module);
3526   END IF;
3527   x_value_type_code := 'S';
3528   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_5));
3529   RETURN l_output_value;
3530 
3531  ELSIF NVL(p_source_7,'
3532 ') <>  'EXPENSE' AND 
3533 p_source_6 >  0 AND 
3534 (NVL(p_source_30,'
3535 ') =  'N' OR 
3536 NVL(p_source_4,'
3537 ') =  'BALANCING_SEGMENT')
3538  THEN 
3539  --
3540   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3541       trace
3542          (p_msg      => 'END of AcctDerRule_23'
3543          ,p_level    => C_LEVEL_PROCEDURE
3544          ,p_module   => l_log_module);
3545   END IF;
3546   x_value_type_code := 'S';
3547   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_8));
3548   RETURN l_output_value;
3549 
3550  END IF;
3551 --
3552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3553       trace
3554          (p_msg      => 'END of AcctDerRule_23(invalid)'
3555          ,p_level    => C_LEVEL_PROCEDURE
3556          ,p_module   => l_log_module);
3557 END IF;
3558 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3559 x_value_type_code := null;
3560 l_output_value    := null;
3561 xla_accounting_err_pkg.build_message
3562                  (p_appli_s_name            => 'XLA'
3563                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3564                  ,p_token_1                 => 'COMPONENT_NAME'
3565                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3566                                                             l_component_type
3567                                                           , l_component_code
3568                                                           , l_component_type_code
3569                                                           , l_component_appl_id
3570                                                           , l_amb_context_code
3571                                                           )
3572                  ,p_token_2                 => 'OWNER'
3573                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3574                                                         'XLA_OWNER_TYPE'
3575                                                         ,l_component_type_code
3576                                                         )
3577                  ,p_token_3                 => 'PAD_NAME'
3578                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3579                  ,p_token_4                 => 'PAD_OWNER'
3580                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3581                                                         'XLA_OWNER_TYPE'
3582                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3583                                                         )
3584                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3585                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3586                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3587                  ,p_ae_header_id            => NULL
3588 );
3589 RETURN l_output_value;
3590 EXCEPTION
3591   WHEN xla_exceptions_pkg.application_exception THEN
3592       RAISE;
3593   WHEN OTHERS THEN
3594        xla_exceptions_pkg.raise_message
3595            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_23');
3596 END AcctDerRule_23;
3597 --
3598 
3599 ---------------------------------------
3600 --
3601 -- PRIVATE FUNCTION
3602 --         AcctDerRule_24
3603 --
3604 ---------------------------------------
3605 FUNCTION AcctDerRule_24 (
3606   p_application_id              IN NUMBER
3607 , p_ae_header_id                IN NUMBER
3608 , p_side                        IN VARCHAR2 
3609 --Automatic Offsets Value
3610  , p_source_4            IN VARCHAR2
3611  , p_source_4_meaning    IN VARCHAR2
3612 --Bank Future Dated Payment Account
3613  , p_source_11            IN NUMBER
3614 --Future Dated Payment Account Source Option
3615  , p_source_12            IN VARCHAR2
3616  , p_source_12_meaning    IN VARCHAR2
3617 --Financials Options Future Dated Payment Account
3618  , p_source_13            IN NUMBER
3619 --Supplier Site Future Dated Payment Account
3620  , p_source_14            IN NUMBER
3621 --Invoice Distribution Account
3622  , p_source_17            IN NUMBER
3623 , x_transaction_coa_id         OUT NOCOPY NUMBER
3624 , x_accounting_coa_id          OUT NOCOPY NUMBER
3625 , x_value_type_code            OUT NOCOPY VARCHAR2
3626 )
3627 RETURN NUMBER
3628 IS
3629 l_component_type       VARCHAR2(80)  ;
3633 l_amb_context_code     VARCHAR2(30)  ;
3630 l_component_code       VARCHAR2(30)  ;
3631 l_component_type_code  VARCHAR2(1)   ;
3632 l_component_appl_id    INTEGER       ;
3634 l_log_module           VARCHAR2(240) ;
3635 l_output_value         NUMBER        ;
3636 BEGIN
3637 IF g_log_enabled THEN
3638       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
3639 END IF;
3640 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3641       trace
3642          (p_msg      => 'BEGIN of AcctDerRule_24'
3643          ,p_level    => C_LEVEL_PROCEDURE
3644          ,p_module   => l_log_module);
3645 END IF;
3646 --
3647 l_component_type         := 'AMB_ADR';
3648 l_component_code         := 'AP_FUTURE_DATED_PMT';
3649 l_component_type_code    := 'S';
3650 l_component_appl_id      :=  200;
3651 l_amb_context_code       := 'DEFAULT';
3652 x_transaction_coa_id     :=  null;
3653 x_accounting_coa_id      :=  null;
3654 --
3655 
3656  IF NVL(p_source_4,'
3657 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3658 NVL(p_source_12,'
3659 ') =  'BANK ACCOUNT' AND 
3660 TO_NUMBER(p_source_11) IS NOT NULL 
3661  THEN 
3662  --
3663   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3664       trace
3665          (p_msg      => 'END of AcctDerRule_24'
3666          ,p_level    => C_LEVEL_PROCEDURE
3667          ,p_module   => l_log_module);
3668   END IF;
3669   x_value_type_code := 'S';
3670   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_11));
3671   RETURN l_output_value;
3672 
3673  ELSIF NVL(p_source_4,'
3674 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3675 NVL(p_source_12,'
3676 ') =  'BANK ACCOUNT'
3677  THEN 
3678  --
3679   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3680       trace
3681          (p_msg      => 'END of AcctDerRule_24'
3682          ,p_level    => C_LEVEL_PROCEDURE
3683          ,p_module   => l_log_module);
3684   END IF;
3685   x_value_type_code := 'S';
3686   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_13));
3687   RETURN l_output_value;
3688 
3689  ELSIF NVL(p_source_4,'
3690 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3691 NVL(p_source_12,'
3692 ') =  'SUPPLIER SITE' AND 
3693 TO_NUMBER(p_source_14) IS NOT NULL 
3694  THEN 
3695  --
3696   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3697       trace
3698          (p_msg      => 'END of AcctDerRule_24'
3699          ,p_level    => C_LEVEL_PROCEDURE
3700          ,p_module   => l_log_module);
3701   END IF;
3702   x_value_type_code := 'S';
3703   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
3704   RETURN l_output_value;
3705 
3706  ELSIF NVL(p_source_4,'
3707 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3708 NVL(p_source_12,'
3709 ') =  'SUPPLIER SITE'
3710  THEN 
3711  --
3712   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3713       trace
3714          (p_msg      => 'END of AcctDerRule_24'
3715          ,p_level    => C_LEVEL_PROCEDURE
3716          ,p_module   => l_log_module);
3717   END IF;
3718   x_value_type_code := 'S';
3719   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_13));
3720   RETURN l_output_value;
3721 
3722  ELSIF NVL(p_source_4,'
3723 ') =  'ACCOUNT_SEGMENT_VALUE'
3724  THEN 
3725  --
3726   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3727       trace
3728          (p_msg      => 'END of AcctDerRule_24'
3729          ,p_level    => C_LEVEL_PROCEDURE
3730          ,p_module   => l_log_module);
3731   END IF;
3732   x_value_type_code := 'S';
3733   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3734   RETURN l_output_value;
3735 
3736  END IF;
3737 --
3738 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3739       trace
3740          (p_msg      => 'END of AcctDerRule_24(invalid)'
3741          ,p_level    => C_LEVEL_PROCEDURE
3742          ,p_module   => l_log_module);
3743 END IF;
3744 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3745 x_value_type_code := null;
3746 l_output_value    := null;
3747 xla_accounting_err_pkg.build_message
3748                  (p_appli_s_name            => 'XLA'
3749                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3750                  ,p_token_1                 => 'COMPONENT_NAME'
3751                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3752                                                             l_component_type
3753                                                           , l_component_code
3754                                                           , l_component_type_code
3755                                                           , l_component_appl_id
3756                                                           , l_amb_context_code
3757                                                           )
3758                  ,p_token_2                 => 'OWNER'
3759                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3760                                                         'XLA_OWNER_TYPE'
3761                                                         ,l_component_type_code
3762                                                         )
3763                  ,p_token_3                 => 'PAD_NAME'
3764                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3765                  ,p_token_4                 => 'PAD_OWNER'
3766                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3770                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3767                                                         'XLA_OWNER_TYPE'
3768                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3769                                                         )
3771                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3772                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3773                  ,p_ae_header_id            => NULL
3774 );
3775 RETURN l_output_value;
3776 EXCEPTION
3777   WHEN xla_exceptions_pkg.application_exception THEN
3778       RAISE;
3779   WHEN OTHERS THEN
3780        xla_exceptions_pkg.raise_message
3781            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_24');
3782 END AcctDerRule_24;
3783 --
3784 
3785 ---------------------------------------
3786 --
3787 -- PRIVATE FUNCTION
3788 --         AcctDerRule_25
3789 --
3790 ---------------------------------------
3791 FUNCTION AcctDerRule_25 (
3792   p_application_id              IN NUMBER
3793 , p_ae_header_id                IN NUMBER
3794 , p_side                        IN VARCHAR2 
3795 --Interest Account
3796  , p_source_15            IN NUMBER
3797 --Prorate Interest Invoice Across Distributions Option
3798  , p_source_16            IN VARCHAR2
3799 --Invoice Distribution Account
3800  , p_source_17            IN NUMBER
3801 , x_transaction_coa_id         OUT NOCOPY NUMBER
3802 , x_accounting_coa_id          OUT NOCOPY NUMBER
3803 , x_value_type_code            OUT NOCOPY VARCHAR2
3804 )
3805 RETURN NUMBER
3806 IS
3807 l_component_type       VARCHAR2(80)  ;
3808 l_component_code       VARCHAR2(30)  ;
3809 l_component_type_code  VARCHAR2(1)   ;
3810 l_component_appl_id    INTEGER       ;
3811 l_amb_context_code     VARCHAR2(30)  ;
3812 l_log_module           VARCHAR2(240) ;
3813 l_output_value         NUMBER        ;
3814 BEGIN
3815 IF g_log_enabled THEN
3816       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_25';
3817 END IF;
3818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3819       trace
3820          (p_msg      => 'BEGIN of AcctDerRule_25'
3821          ,p_level    => C_LEVEL_PROCEDURE
3822          ,p_module   => l_log_module);
3823 END IF;
3824 --
3825 l_component_type         := 'AMB_ADR';
3826 l_component_code         := 'AP_INTEREST';
3827 l_component_type_code    := 'S';
3828 l_component_appl_id      :=  200;
3829 l_amb_context_code       := 'DEFAULT';
3830 x_transaction_coa_id     :=  null;
3831 x_accounting_coa_id      :=  null;
3832 --
3833 
3834  IF NVL(p_source_16,'
3835 ') =  'N'
3836  THEN 
3837  --
3838   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3839       trace
3840          (p_msg      => 'END of AcctDerRule_25'
3841          ,p_level    => C_LEVEL_PROCEDURE
3842          ,p_module   => l_log_module);
3843   END IF;
3844   x_value_type_code := 'S';
3845   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_15));
3846   RETURN l_output_value;
3847 
3848  ELSIF NVL(p_source_16,'
3849 ') =  'Y'
3850  THEN 
3851  --
3852   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3853       trace
3854          (p_msg      => 'END of AcctDerRule_25'
3855          ,p_level    => C_LEVEL_PROCEDURE
3856          ,p_module   => l_log_module);
3857   END IF;
3858   x_value_type_code := 'S';
3859   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3860   RETURN l_output_value;
3861 
3862  END IF;
3863 --
3864 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3865       trace
3866          (p_msg      => 'END of AcctDerRule_25(invalid)'
3867          ,p_level    => C_LEVEL_PROCEDURE
3868          ,p_module   => l_log_module);
3869 END IF;
3870 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3871 x_value_type_code := null;
3872 l_output_value    := null;
3873 xla_accounting_err_pkg.build_message
3874                  (p_appli_s_name            => 'XLA'
3875                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3876                  ,p_token_1                 => 'COMPONENT_NAME'
3877                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3878                                                             l_component_type
3879                                                           , l_component_code
3880                                                           , l_component_type_code
3881                                                           , l_component_appl_id
3882                                                           , l_amb_context_code
3883                                                           )
3884                  ,p_token_2                 => 'OWNER'
3885                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3886                                                         'XLA_OWNER_TYPE'
3887                                                         ,l_component_type_code
3888                                                         )
3889                  ,p_token_3                 => 'PAD_NAME'
3890                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3891                  ,p_token_4                 => 'PAD_OWNER'
3892                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3896                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3893                                                         'XLA_OWNER_TYPE'
3894                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3895                                                         )
3897                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3898                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3899                  ,p_ae_header_id            => NULL
3900 );
3901 RETURN l_output_value;
3902 EXCEPTION
3903   WHEN xla_exceptions_pkg.application_exception THEN
3904       RAISE;
3905   WHEN OTHERS THEN
3906        xla_exceptions_pkg.raise_message
3907            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_25');
3908 END AcctDerRule_25;
3909 --
3910 
3911 ---------------------------------------
3912 --
3913 -- PRIVATE FUNCTION
3914 --         AcctDerRule_26
3915 --
3916 ---------------------------------------
3917 FUNCTION AcctDerRule_26 (
3918   p_application_id              IN NUMBER
3919 , p_ae_header_id                IN NUMBER
3920 , p_side                        IN VARCHAR2 
3921 --Invoice Distribution Account
3922  , p_source_17            IN NUMBER
3923 , x_transaction_coa_id         OUT NOCOPY NUMBER
3924 , x_accounting_coa_id          OUT NOCOPY NUMBER
3925 , x_value_type_code            OUT NOCOPY VARCHAR2
3926 )
3927 RETURN NUMBER
3928 IS
3929 l_component_type       VARCHAR2(80)  ;
3930 l_component_code       VARCHAR2(30)  ;
3931 l_component_type_code  VARCHAR2(1)   ;
3932 l_component_appl_id    INTEGER       ;
3933 l_amb_context_code     VARCHAR2(30)  ;
3934 l_log_module           VARCHAR2(240) ;
3935 l_output_value         NUMBER        ;
3936 BEGIN
3937 IF g_log_enabled THEN
3938       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_26';
3939 END IF;
3940 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3941       trace
3942          (p_msg      => 'BEGIN of AcctDerRule_26'
3943          ,p_level    => C_LEVEL_PROCEDURE
3944          ,p_module   => l_log_module);
3945 END IF;
3946 --
3947 l_component_type         := 'AMB_ADR';
3948 l_component_code         := 'AP_INVOICE_DIST';
3949 l_component_type_code    := 'S';
3950 l_component_appl_id      :=  200;
3951 l_amb_context_code       := 'DEFAULT';
3952 x_transaction_coa_id     :=  null;
3953 x_accounting_coa_id      :=  null;
3954 --
3955 
3956  --
3957   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3958       trace
3959          (p_msg      => 'END of AcctDerRule_26'
3960          ,p_level    => C_LEVEL_PROCEDURE
3961          ,p_module   => l_log_module);
3962   END IF;
3963   x_value_type_code := 'S';
3964   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
3965   RETURN l_output_value;
3966 
3967 --
3968 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3969       trace
3970          (p_msg      => 'END of AcctDerRule_26(invalid)'
3971          ,p_level    => C_LEVEL_PROCEDURE
3972          ,p_module   => l_log_module);
3973 END IF;
3974 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3975 x_value_type_code := null;
3976 l_output_value    := null;
3977 xla_accounting_err_pkg.build_message
3978                  (p_appli_s_name            => 'XLA'
3979                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3980                  ,p_token_1                 => 'COMPONENT_NAME'
3981                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3982                                                             l_component_type
3983                                                           , l_component_code
3984                                                           , l_component_type_code
3985                                                           , l_component_appl_id
3986                                                           , l_amb_context_code
3987                                                           )
3988                  ,p_token_2                 => 'OWNER'
3989                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3990                                                         'XLA_OWNER_TYPE'
3991                                                         ,l_component_type_code
3992                                                         )
3993                  ,p_token_3                 => 'PAD_NAME'
3994                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3995                  ,p_token_4                 => 'PAD_OWNER'
3996                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3997                                                         'XLA_OWNER_TYPE'
3998                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3999                                                         )
4000                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4001                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4002                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4003                  ,p_ae_header_id            => NULL
4004 );
4005 RETURN l_output_value;
4006 EXCEPTION
4007   WHEN xla_exceptions_pkg.application_exception THEN
4008       RAISE;
4009   WHEN OTHERS THEN
4010        xla_exceptions_pkg.raise_message
4014 
4011            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_26');
4012 END AcctDerRule_26;
4013 --
4015 ---------------------------------------
4016 --
4017 -- PRIVATE FUNCTION
4018 --         AcctDerRule_27
4019 --
4020 ---------------------------------------
4021 FUNCTION AcctDerRule_27 (
4022   p_application_id              IN NUMBER
4023 , p_ae_header_id                IN NUMBER
4024 , p_side                        IN VARCHAR2 
4025 --Payment Card Accrued Account
4026  , p_source_31            IN NUMBER
4027 , x_transaction_coa_id         OUT NOCOPY NUMBER
4028 , x_accounting_coa_id          OUT NOCOPY NUMBER
4029 , x_value_type_code            OUT NOCOPY VARCHAR2
4030 )
4031 RETURN NUMBER
4032 IS
4033 l_component_type       VARCHAR2(80)  ;
4034 l_component_code       VARCHAR2(30)  ;
4035 l_component_type_code  VARCHAR2(1)   ;
4036 l_component_appl_id    INTEGER       ;
4037 l_amb_context_code     VARCHAR2(30)  ;
4038 l_log_module           VARCHAR2(240) ;
4039 l_output_value         NUMBER        ;
4040 BEGIN
4041 IF g_log_enabled THEN
4042       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_27';
4043 END IF;
4044 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4045       trace
4046          (p_msg      => 'BEGIN of AcctDerRule_27'
4047          ,p_level    => C_LEVEL_PROCEDURE
4048          ,p_module   => l_log_module);
4049 END IF;
4050 --
4051 l_component_type         := 'AMB_ADR';
4052 l_component_code         := 'AP_PAYCARD_ACCRUED_ADR';
4053 l_component_type_code    := 'S';
4054 l_component_appl_id      :=  200;
4055 l_amb_context_code       := 'DEFAULT';
4056 x_transaction_coa_id     :=  null;
4057 x_accounting_coa_id      :=  null;
4058 --
4059 
4060  --
4061   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4062       trace
4063          (p_msg      => 'END of AcctDerRule_27'
4064          ,p_level    => C_LEVEL_PROCEDURE
4065          ,p_module   => l_log_module);
4066   END IF;
4067   x_value_type_code := 'S';
4068   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_31));
4069   RETURN l_output_value;
4070 
4071 --
4072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4073       trace
4074          (p_msg      => 'END of AcctDerRule_27(invalid)'
4075          ,p_level    => C_LEVEL_PROCEDURE
4076          ,p_module   => l_log_module);
4077 END IF;
4078 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4079 x_value_type_code := null;
4080 l_output_value    := null;
4081 xla_accounting_err_pkg.build_message
4082                  (p_appli_s_name            => 'XLA'
4083                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4084                  ,p_token_1                 => 'COMPONENT_NAME'
4085                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4086                                                             l_component_type
4087                                                           , l_component_code
4088                                                           , l_component_type_code
4089                                                           , l_component_appl_id
4090                                                           , l_amb_context_code
4091                                                           )
4092                  ,p_token_2                 => 'OWNER'
4093                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4094                                                         'XLA_OWNER_TYPE'
4095                                                         ,l_component_type_code
4096                                                         )
4097                  ,p_token_3                 => 'PAD_NAME'
4098                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4099                  ,p_token_4                 => 'PAD_OWNER'
4100                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4101                                                         'XLA_OWNER_TYPE'
4102                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4103                                                         )
4104                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4105                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4106                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4107                  ,p_ae_header_id            => NULL
4108 );
4109 RETURN l_output_value;
4110 EXCEPTION
4111   WHEN xla_exceptions_pkg.application_exception THEN
4112       RAISE;
4113   WHEN OTHERS THEN
4114        xla_exceptions_pkg.raise_message
4115            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_27');
4116 END AcctDerRule_27;
4117 --
4118 
4119 ---------------------------------------
4120 --
4121 -- PRIVATE FUNCTION
4122 --         AcctDerRule_28
4123 --
4124 ---------------------------------------
4125 FUNCTION AcctDerRule_28 (
4126   p_application_id              IN NUMBER
4127 , p_ae_header_id                IN NUMBER
4128 , p_side                        IN VARCHAR2 
4129 --Bank Cash Clearing Account
4130  , p_source_21            IN NUMBER
4131 , x_transaction_coa_id         OUT NOCOPY NUMBER
4132 , x_accounting_coa_id          OUT NOCOPY NUMBER
4136 IS
4133 , x_value_type_code            OUT NOCOPY VARCHAR2
4134 )
4135 RETURN NUMBER
4137 l_component_type       VARCHAR2(80)  ;
4138 l_component_code       VARCHAR2(30)  ;
4139 l_component_type_code  VARCHAR2(1)   ;
4140 l_component_appl_id    INTEGER       ;
4141 l_amb_context_code     VARCHAR2(30)  ;
4142 l_log_module           VARCHAR2(240) ;
4143 l_output_value         NUMBER        ;
4144 BEGIN
4145 IF g_log_enabled THEN
4146       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_28';
4147 END IF;
4148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4149       trace
4150          (p_msg      => 'BEGIN of AcctDerRule_28'
4151          ,p_level    => C_LEVEL_PROCEDURE
4152          ,p_module   => l_log_module);
4153 END IF;
4154 --
4155 l_component_type         := 'AMB_ADR';
4156 l_component_code         := 'AP_PMT_CASH_CLEAR';
4157 l_component_type_code    := 'S';
4158 l_component_appl_id      :=  200;
4159 l_amb_context_code       := 'DEFAULT';
4160 x_transaction_coa_id     :=  null;
4161 x_accounting_coa_id      :=  null;
4162 --
4163 
4164  --
4165   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4166       trace
4167          (p_msg      => 'END of AcctDerRule_28'
4168          ,p_level    => C_LEVEL_PROCEDURE
4169          ,p_module   => l_log_module);
4170   END IF;
4171   x_value_type_code := 'S';
4172   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_21));
4173   RETURN l_output_value;
4174 
4175 --
4176 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4177       trace
4178          (p_msg      => 'END of AcctDerRule_28(invalid)'
4179          ,p_level    => C_LEVEL_PROCEDURE
4180          ,p_module   => l_log_module);
4181 END IF;
4182 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4183 x_value_type_code := null;
4184 l_output_value    := null;
4185 xla_accounting_err_pkg.build_message
4186                  (p_appli_s_name            => 'XLA'
4187                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4188                  ,p_token_1                 => 'COMPONENT_NAME'
4189                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4190                                                             l_component_type
4191                                                           , l_component_code
4192                                                           , l_component_type_code
4193                                                           , l_component_appl_id
4194                                                           , l_amb_context_code
4195                                                           )
4196                  ,p_token_2                 => 'OWNER'
4197                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4198                                                         'XLA_OWNER_TYPE'
4199                                                         ,l_component_type_code
4200                                                         )
4201                  ,p_token_3                 => 'PAD_NAME'
4202                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4203                  ,p_token_4                 => 'PAD_OWNER'
4204                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4205                                                         'XLA_OWNER_TYPE'
4206                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4207                                                         )
4208                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4209                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4210                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4211                  ,p_ae_header_id            => NULL
4212 );
4213 RETURN l_output_value;
4214 EXCEPTION
4215   WHEN xla_exceptions_pkg.application_exception THEN
4216       RAISE;
4217   WHEN OTHERS THEN
4218        xla_exceptions_pkg.raise_message
4219            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_28');
4220 END AcctDerRule_28;
4221 --
4222 
4223 ---------------------------------------
4224 --
4225 -- PRIVATE FUNCTION
4226 --         AcctDerRule_29
4227 --
4228 ---------------------------------------
4229 FUNCTION AcctDerRule_29 (
4230   p_application_id              IN NUMBER
4231 , p_ae_header_id                IN NUMBER
4232 , p_side                        IN VARCHAR2 
4233 --Purchase Order Charge Account
4234  , p_source_28            IN NUMBER
4235 , x_transaction_coa_id         OUT NOCOPY NUMBER
4236 , x_accounting_coa_id          OUT NOCOPY NUMBER
4237 , x_value_type_code            OUT NOCOPY VARCHAR2
4238 )
4239 RETURN NUMBER
4240 IS
4241 l_component_type       VARCHAR2(80)  ;
4242 l_component_code       VARCHAR2(30)  ;
4243 l_component_type_code  VARCHAR2(1)   ;
4244 l_component_appl_id    INTEGER       ;
4245 l_amb_context_code     VARCHAR2(30)  ;
4246 l_log_module           VARCHAR2(240) ;
4247 l_output_value         NUMBER        ;
4248 BEGIN
4249 IF g_log_enabled THEN
4250       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_29';
4251 END IF;
4252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4253       trace
4254          (p_msg      => 'BEGIN of AcctDerRule_29'
4255          ,p_level    => C_LEVEL_PROCEDURE
4256          ,p_module   => l_log_module);
4260 l_component_code         := 'AP_PO_CHARGE_ACCT';
4257 END IF;
4258 --
4259 l_component_type         := 'AMB_ADR';
4261 l_component_type_code    := 'S';
4262 l_component_appl_id      :=  200;
4263 l_amb_context_code       := 'DEFAULT';
4264 x_transaction_coa_id     :=  null;
4265 x_accounting_coa_id      :=  null;
4266 --
4267 
4268  --
4269   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4270       trace
4271          (p_msg      => 'END of AcctDerRule_29'
4272          ,p_level    => C_LEVEL_PROCEDURE
4273          ,p_module   => l_log_module);
4274   END IF;
4275   x_value_type_code := 'S';
4276   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_28));
4277   RETURN l_output_value;
4278 
4279 --
4280 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4281       trace
4282          (p_msg      => 'END of AcctDerRule_29(invalid)'
4283          ,p_level    => C_LEVEL_PROCEDURE
4284          ,p_module   => l_log_module);
4285 END IF;
4286 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4287 x_value_type_code := null;
4288 l_output_value    := null;
4289 xla_accounting_err_pkg.build_message
4290                  (p_appli_s_name            => 'XLA'
4291                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4292                  ,p_token_1                 => 'COMPONENT_NAME'
4293                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4294                                                             l_component_type
4295                                                           , l_component_code
4296                                                           , l_component_type_code
4297                                                           , l_component_appl_id
4298                                                           , l_amb_context_code
4299                                                           )
4300                  ,p_token_2                 => 'OWNER'
4301                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4302                                                         'XLA_OWNER_TYPE'
4303                                                         ,l_component_type_code
4304                                                         )
4305                  ,p_token_3                 => 'PAD_NAME'
4306                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4307                  ,p_token_4                 => 'PAD_OWNER'
4308                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4309                                                         'XLA_OWNER_TYPE'
4310                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4311                                                         )
4312                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4313                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4314                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4315                  ,p_ae_header_id            => NULL
4316 );
4317 RETURN l_output_value;
4318 EXCEPTION
4319   WHEN xla_exceptions_pkg.application_exception THEN
4320       RAISE;
4321   WHEN OTHERS THEN
4322        xla_exceptions_pkg.raise_message
4323            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_29');
4324 END AcctDerRule_29;
4325 --
4326 
4327 ---------------------------------------
4328 --
4329 -- PRIVATE FUNCTION
4330 --         AcctDerRule_30
4331 --
4332 ---------------------------------------
4333 FUNCTION AcctDerRule_30 (
4334   p_application_id              IN NUMBER
4335 , p_ae_header_id                IN NUMBER
4336 , p_side                        IN VARCHAR2 
4337 --Invoice Distribution Account
4338  , p_source_17            IN NUMBER
4339 --Prepaid Expense Account Source Option
4340  , p_source_18            IN VARCHAR2
4341  , p_source_18_meaning    IN VARCHAR2
4342 --Purchase Order Number
4343  , p_source_19            IN VARCHAR2
4344 --Invoice Distribution Type
4345  , p_source_20            IN VARCHAR2
4346  , p_source_20_meaning    IN VARCHAR2
4347 --Purchase Order Charge Account
4348  , p_source_28            IN NUMBER
4349 , x_transaction_coa_id         OUT NOCOPY NUMBER
4350 , x_accounting_coa_id          OUT NOCOPY NUMBER
4351 , x_value_type_code            OUT NOCOPY VARCHAR2
4352 )
4353 RETURN NUMBER
4354 IS
4355 l_component_type       VARCHAR2(80)  ;
4356 l_component_code       VARCHAR2(30)  ;
4357 l_component_type_code  VARCHAR2(1)   ;
4358 l_component_appl_id    INTEGER       ;
4359 l_amb_context_code     VARCHAR2(30)  ;
4360 l_log_module           VARCHAR2(240) ;
4361 l_output_value         NUMBER        ;
4362 BEGIN
4363 IF g_log_enabled THEN
4364       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_30';
4365 END IF;
4366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4367       trace
4368          (p_msg      => 'BEGIN of AcctDerRule_30'
4369          ,p_level    => C_LEVEL_PROCEDURE
4370          ,p_module   => l_log_module);
4371 END IF;
4372 --
4373 l_component_type         := 'AMB_ADR';
4374 l_component_code         := 'AP_PREPAY_INVOICE_DIST';
4375 l_component_type_code    := 'S';
4376 l_component_appl_id      :=  200;
4377 l_amb_context_code       := 'DEFAULT';
4378 x_transaction_coa_id     :=  null;
4379 x_accounting_coa_id      :=  null;
4380 --
4381 
4385 ') =  'Y' AND 
4382  IF NVL(p_source_18,'
4383 ') <>  'Y' OR 
4384 (NVL(p_source_18,'
4386 p_source_19 IS NULL )
4387  THEN 
4388  --
4389   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4390       trace
4391          (p_msg      => 'END of AcctDerRule_30'
4392          ,p_level    => C_LEVEL_PROCEDURE
4393          ,p_module   => l_log_module);
4394   END IF;
4395   x_value_type_code := 'S';
4396   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
4397   RETURN l_output_value;
4398 
4399  ELSIF NVL(p_source_18,'
4400 ') =  'Y' AND 
4401 p_source_19 IS NOT NULL AND 
4402 NVL(p_source_20,'
4403 ') =  'ITEM'
4404  THEN 
4405  --
4406   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4407       trace
4408          (p_msg      => 'END of AcctDerRule_30'
4409          ,p_level    => C_LEVEL_PROCEDURE
4410          ,p_module   => l_log_module);
4411   END IF;
4412   x_value_type_code := 'S';
4413   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_28));
4414   RETURN l_output_value;
4415 
4416  END IF;
4417 --
4418 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4419       trace
4420          (p_msg      => 'END of AcctDerRule_30(invalid)'
4421          ,p_level    => C_LEVEL_PROCEDURE
4422          ,p_module   => l_log_module);
4423 END IF;
4424 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4425 x_value_type_code := null;
4426 l_output_value    := null;
4427 xla_accounting_err_pkg.build_message
4428                  (p_appli_s_name            => 'XLA'
4429                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4430                  ,p_token_1                 => 'COMPONENT_NAME'
4431                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4432                                                             l_component_type
4433                                                           , l_component_code
4434                                                           , l_component_type_code
4435                                                           , l_component_appl_id
4436                                                           , l_amb_context_code
4437                                                           )
4438                  ,p_token_2                 => 'OWNER'
4439                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4440                                                         'XLA_OWNER_TYPE'
4441                                                         ,l_component_type_code
4442                                                         )
4443                  ,p_token_3                 => 'PAD_NAME'
4444                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4445                  ,p_token_4                 => 'PAD_OWNER'
4446                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4447                                                         'XLA_OWNER_TYPE'
4448                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4449                                                         )
4450                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4451                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4452                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4453                  ,p_ae_header_id            => NULL
4454 );
4455 RETURN l_output_value;
4456 EXCEPTION
4457   WHEN xla_exceptions_pkg.application_exception THEN
4458       RAISE;
4459   WHEN OTHERS THEN
4460        xla_exceptions_pkg.raise_message
4461            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_30');
4462 END AcctDerRule_30;
4463 --
4464 
4465 ---------------------------------------
4466 --
4467 -- PRIVATE FUNCTION
4468 --         AcctDerRule_31
4469 --
4470 ---------------------------------------
4471 FUNCTION AcctDerRule_31 (
4472   p_application_id              IN NUMBER
4473 , p_ae_header_id                IN NUMBER
4474 , p_side                        IN VARCHAR2 
4475 --Automatic Offsets Value
4476  , p_source_4            IN VARCHAR2
4477  , p_source_4_meaning    IN VARCHAR2
4478 --Invoice Distribution Account
4479  , p_source_17            IN NUMBER
4480 --Internal Realized Gain Account
4481  , p_source_32            IN NUMBER
4482 --Bank Gain Account
4483  , p_source_33            IN NUMBER
4484 , x_transaction_coa_id         OUT NOCOPY NUMBER
4485 , x_accounting_coa_id          OUT NOCOPY NUMBER
4486 , x_value_type_code            OUT NOCOPY VARCHAR2
4487 )
4488 RETURN NUMBER
4489 IS
4490 l_component_type       VARCHAR2(80)  ;
4491 l_component_code       VARCHAR2(30)  ;
4492 l_component_type_code  VARCHAR2(1)   ;
4493 l_component_appl_id    INTEGER       ;
4494 l_amb_context_code     VARCHAR2(30)  ;
4495 l_log_module           VARCHAR2(240) ;
4496 l_output_value         NUMBER        ;
4497 BEGIN
4498 IF g_log_enabled THEN
4499       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_31';
4500 END IF;
4501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4502       trace
4503          (p_msg      => 'BEGIN of AcctDerRule_31'
4504          ,p_level    => C_LEVEL_PROCEDURE
4505          ,p_module   => l_log_module);
4506 END IF;
4507 --
4508 l_component_type         := 'AMB_ADR';
4509 l_component_code         := 'AP_REAL_GAIN';
4510 l_component_type_code    := 'S';
4514 x_accounting_coa_id      :=  null;
4511 l_component_appl_id      :=  200;
4512 l_amb_context_code       := 'DEFAULT';
4513 x_transaction_coa_id     :=  null;
4515 --
4516 
4517  IF NVL(p_source_4,'
4518 ') <>  'ACCOUNT_SEGMENT_VALUE'
4519  THEN 
4520  --
4521   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4522       trace
4523          (p_msg      => 'END of AcctDerRule_31'
4524          ,p_level    => C_LEVEL_PROCEDURE
4525          ,p_module   => l_log_module);
4526   END IF;
4527   x_value_type_code := 'S';
4528   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_32));
4529   RETURN l_output_value;
4530 
4531  ELSIF NVL(p_source_4,'
4532 ') <>  'ACCOUNT_SEGMENT_VALUE'
4533  THEN 
4534  --
4535   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4536       trace
4537          (p_msg      => 'END of AcctDerRule_31'
4538          ,p_level    => C_LEVEL_PROCEDURE
4539          ,p_module   => l_log_module);
4540   END IF;
4541   x_value_type_code := 'S';
4542   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_33));
4543   RETURN l_output_value;
4544 
4545  ELSIF NVL(p_source_4,'
4546 ') =  'ACCOUNT_SEGMENT_VALUE'
4547  THEN 
4548  --
4549   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4550       trace
4551          (p_msg      => 'END of AcctDerRule_31'
4552          ,p_level    => C_LEVEL_PROCEDURE
4553          ,p_module   => l_log_module);
4554   END IF;
4555   x_value_type_code := 'S';
4556   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
4557   RETURN l_output_value;
4558 
4559  END IF;
4560 --
4561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4562       trace
4563          (p_msg      => 'END of AcctDerRule_31(invalid)'
4564          ,p_level    => C_LEVEL_PROCEDURE
4565          ,p_module   => l_log_module);
4566 END IF;
4567 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4568 x_value_type_code := null;
4569 l_output_value    := null;
4570 xla_accounting_err_pkg.build_message
4571                  (p_appli_s_name            => 'XLA'
4572                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4573                  ,p_token_1                 => 'COMPONENT_NAME'
4574                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4575                                                             l_component_type
4576                                                           , l_component_code
4577                                                           , l_component_type_code
4578                                                           , l_component_appl_id
4579                                                           , l_amb_context_code
4580                                                           )
4581                  ,p_token_2                 => 'OWNER'
4582                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4583                                                         'XLA_OWNER_TYPE'
4584                                                         ,l_component_type_code
4585                                                         )
4586                  ,p_token_3                 => 'PAD_NAME'
4587                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4588                  ,p_token_4                 => 'PAD_OWNER'
4589                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4590                                                         'XLA_OWNER_TYPE'
4591                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4592                                                         )
4593                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4594                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4595                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4596                  ,p_ae_header_id            => NULL
4597 );
4598 RETURN l_output_value;
4599 EXCEPTION
4600   WHEN xla_exceptions_pkg.application_exception THEN
4601       RAISE;
4602   WHEN OTHERS THEN
4603        xla_exceptions_pkg.raise_message
4604            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_31');
4605 END AcctDerRule_31;
4606 --
4607 
4608 ---------------------------------------
4609 --
4610 -- PRIVATE FUNCTION
4611 --         AcctDerRule_32
4612 --
4613 ---------------------------------------
4614 FUNCTION AcctDerRule_32 (
4615   p_application_id              IN NUMBER
4616 , p_ae_header_id                IN NUMBER
4617 , p_side                        IN VARCHAR2 
4618 --Automatic Offsets Value
4619  , p_source_4            IN VARCHAR2
4620  , p_source_4_meaning    IN VARCHAR2
4621 --Invoice Distribution Account
4622  , p_source_17            IN NUMBER
4623 --Internal Realized Loss Account
4624  , p_source_34            IN NUMBER
4625 --Bank Loss Account
4626  , p_source_35            IN NUMBER
4627 , x_transaction_coa_id         OUT NOCOPY NUMBER
4628 , x_accounting_coa_id          OUT NOCOPY NUMBER
4629 , x_value_type_code            OUT NOCOPY VARCHAR2
4630 )
4631 RETURN NUMBER
4632 IS
4633 l_component_type       VARCHAR2(80)  ;
4634 l_component_code       VARCHAR2(30)  ;
4635 l_component_type_code  VARCHAR2(1)   ;
4636 l_component_appl_id    INTEGER       ;
4637 l_amb_context_code     VARCHAR2(30)  ;
4638 l_log_module           VARCHAR2(240) ;
4642       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_32';
4639 l_output_value         NUMBER        ;
4640 BEGIN
4641 IF g_log_enabled THEN
4643 END IF;
4644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4645       trace
4646          (p_msg      => 'BEGIN of AcctDerRule_32'
4647          ,p_level    => C_LEVEL_PROCEDURE
4648          ,p_module   => l_log_module);
4649 END IF;
4650 --
4651 l_component_type         := 'AMB_ADR';
4652 l_component_code         := 'AP_REAL_LOSS';
4653 l_component_type_code    := 'S';
4654 l_component_appl_id      :=  200;
4655 l_amb_context_code       := 'DEFAULT';
4656 x_transaction_coa_id     :=  null;
4657 x_accounting_coa_id      :=  null;
4658 --
4659 
4660  IF NVL(p_source_4,'
4661 ') <>  'ACCOUNT_SEGMENT_VALUE'
4662  THEN 
4663  --
4664   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4665       trace
4666          (p_msg      => 'END of AcctDerRule_32'
4667          ,p_level    => C_LEVEL_PROCEDURE
4668          ,p_module   => l_log_module);
4669   END IF;
4670   x_value_type_code := 'S';
4671   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_34));
4672   RETURN l_output_value;
4673 
4674  ELSIF NVL(p_source_4,'
4675 ') <>  'ACCOUNT_SEGMENT_VALUE'
4676  THEN 
4677  --
4678   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4679       trace
4680          (p_msg      => 'END of AcctDerRule_32'
4681          ,p_level    => C_LEVEL_PROCEDURE
4682          ,p_module   => l_log_module);
4683   END IF;
4684   x_value_type_code := 'S';
4685   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_35));
4686   RETURN l_output_value;
4687 
4688  ELSIF NVL(p_source_4,'
4689 ') =  'ACCOUNT_SEGMENT_VALUE'
4690  THEN 
4691  --
4692   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4693       trace
4694          (p_msg      => 'END of AcctDerRule_32'
4695          ,p_level    => C_LEVEL_PROCEDURE
4696          ,p_module   => l_log_module);
4697   END IF;
4698   x_value_type_code := 'S';
4699   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
4700   RETURN l_output_value;
4701 
4702  END IF;
4703 --
4704 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4705       trace
4706          (p_msg      => 'END of AcctDerRule_32(invalid)'
4707          ,p_level    => C_LEVEL_PROCEDURE
4708          ,p_module   => l_log_module);
4709 END IF;
4710 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4711 x_value_type_code := null;
4712 l_output_value    := null;
4713 xla_accounting_err_pkg.build_message
4714                  (p_appli_s_name            => 'XLA'
4715                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4716                  ,p_token_1                 => 'COMPONENT_NAME'
4717                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4718                                                             l_component_type
4719                                                           , l_component_code
4720                                                           , l_component_type_code
4721                                                           , l_component_appl_id
4722                                                           , l_amb_context_code
4723                                                           )
4724                  ,p_token_2                 => 'OWNER'
4725                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4726                                                         'XLA_OWNER_TYPE'
4727                                                         ,l_component_type_code
4728                                                         )
4729                  ,p_token_3                 => 'PAD_NAME'
4730                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4731                  ,p_token_4                 => 'PAD_OWNER'
4732                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4733                                                         'XLA_OWNER_TYPE'
4734                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4735                                                         )
4736                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4737                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4738                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4739                  ,p_ae_header_id            => NULL
4740 );
4741 RETURN l_output_value;
4742 EXCEPTION
4743   WHEN xla_exceptions_pkg.application_exception THEN
4744       RAISE;
4745   WHEN OTHERS THEN
4746        xla_exceptions_pkg.raise_message
4747            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_32');
4748 END AcctDerRule_32;
4749 --
4750 
4751 ---------------------------------------
4752 --
4753 -- PRIVATE FUNCTION
4754 --         AcctDerRule_33
4755 --
4756 ---------------------------------------
4757 FUNCTION AcctDerRule_33 (
4758   p_application_id              IN NUMBER
4759 , p_ae_header_id                IN NUMBER
4760 , p_side                        IN VARCHAR2 
4761 --Recipient Invoice Distribution Account
4762  , p_source_36            IN NUMBER
4763 , x_transaction_coa_id         OUT NOCOPY NUMBER
4764 , x_accounting_coa_id          OUT NOCOPY NUMBER
4765 , x_value_type_code            OUT NOCOPY VARCHAR2
4766 )
4767 RETURN NUMBER
4771 l_component_type_code  VARCHAR2(1)   ;
4768 IS
4769 l_component_type       VARCHAR2(80)  ;
4770 l_component_code       VARCHAR2(30)  ;
4772 l_component_appl_id    INTEGER       ;
4773 l_amb_context_code     VARCHAR2(30)  ;
4774 l_log_module           VARCHAR2(240) ;
4775 l_output_value         NUMBER        ;
4776 BEGIN
4777 IF g_log_enabled THEN
4778       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_33';
4779 END IF;
4780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4781       trace
4782          (p_msg      => 'BEGIN of AcctDerRule_33'
4783          ,p_level    => C_LEVEL_PROCEDURE
4784          ,p_module   => l_log_module);
4785 END IF;
4786 --
4787 l_component_type         := 'AMB_ADR';
4788 l_component_code         := 'AP_RECP_INV_DIST';
4789 l_component_type_code    := 'S';
4790 l_component_appl_id      :=  200;
4791 l_amb_context_code       := 'DEFAULT';
4792 x_transaction_coa_id     :=  null;
4793 x_accounting_coa_id      :=  null;
4794 --
4795 
4796  --
4797   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4798       trace
4799          (p_msg      => 'END of AcctDerRule_33'
4800          ,p_level    => C_LEVEL_PROCEDURE
4801          ,p_module   => l_log_module);
4802   END IF;
4803   x_value_type_code := 'S';
4804   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_36));
4805   RETURN l_output_value;
4806 
4807 --
4808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4809       trace
4810          (p_msg      => 'END of AcctDerRule_33(invalid)'
4811          ,p_level    => C_LEVEL_PROCEDURE
4812          ,p_module   => l_log_module);
4813 END IF;
4814 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4815 x_value_type_code := null;
4816 l_output_value    := null;
4817 xla_accounting_err_pkg.build_message
4818                  (p_appli_s_name            => 'XLA'
4819                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4820                  ,p_token_1                 => 'COMPONENT_NAME'
4821                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4822                                                             l_component_type
4823                                                           , l_component_code
4824                                                           , l_component_type_code
4825                                                           , l_component_appl_id
4826                                                           , l_amb_context_code
4827                                                           )
4828                  ,p_token_2                 => 'OWNER'
4829                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4830                                                         'XLA_OWNER_TYPE'
4831                                                         ,l_component_type_code
4832                                                         )
4833                  ,p_token_3                 => 'PAD_NAME'
4834                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4835                  ,p_token_4                 => 'PAD_OWNER'
4836                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4837                                                         'XLA_OWNER_TYPE'
4838                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4839                                                         )
4840                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4841                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4842                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4843                  ,p_ae_header_id            => NULL
4844 );
4845 RETURN l_output_value;
4846 EXCEPTION
4847   WHEN xla_exceptions_pkg.application_exception THEN
4848       RAISE;
4849   WHEN OTHERS THEN
4850        xla_exceptions_pkg.raise_message
4851            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_33');
4852 END AcctDerRule_33;
4853 --
4854 
4855 ---------------------------------------
4856 --
4857 -- PRIVATE FUNCTION
4858 --         AcctDerRule_34
4859 --
4860 ---------------------------------------
4861 FUNCTION AcctDerRule_34 (
4862   p_application_id              IN NUMBER
4863 , p_ae_header_id                IN NUMBER
4864 , p_side                        IN VARCHAR2 
4865 --Automatic Offsets Value
4866  , p_source_4            IN VARCHAR2
4867  , p_source_4_meaning    IN VARCHAR2
4868 --Invoice Distribution Account
4869  , p_source_17            IN NUMBER
4870 --Retainage Related Item Distribution Account
4871  , p_source_23            IN NUMBER
4872 , x_transaction_coa_id         OUT NOCOPY NUMBER
4873 , x_accounting_coa_id          OUT NOCOPY NUMBER
4874 , x_value_type_code            OUT NOCOPY VARCHAR2
4875 )
4876 RETURN NUMBER
4877 IS
4878 l_component_type       VARCHAR2(80)  ;
4879 l_component_code       VARCHAR2(30)  ;
4880 l_component_type_code  VARCHAR2(1)   ;
4881 l_component_appl_id    INTEGER       ;
4882 l_amb_context_code     VARCHAR2(30)  ;
4883 l_log_module           VARCHAR2(240) ;
4884 l_output_value         NUMBER        ;
4885 BEGIN
4886 IF g_log_enabled THEN
4887       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_34';
4888 END IF;
4889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4890       trace
4891          (p_msg      => 'BEGIN of AcctDerRule_34'
4895 --
4892          ,p_level    => C_LEVEL_PROCEDURE
4893          ,p_module   => l_log_module);
4894 END IF;
4896 l_component_type         := 'AMB_ADR';
4897 l_component_code         := 'AP_RETAINAGE';
4898 l_component_type_code    := 'S';
4899 l_component_appl_id      :=  200;
4900 l_amb_context_code       := 'DEFAULT';
4901 x_transaction_coa_id     :=  null;
4902 x_accounting_coa_id      :=  null;
4903 --
4904 
4905  IF NVL(p_source_4,'
4906 ') <>  'ACCOUNT_SEGMENT_VALUE'
4907  THEN 
4908  --
4909   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4910       trace
4911          (p_msg      => 'END of AcctDerRule_34'
4912          ,p_level    => C_LEVEL_PROCEDURE
4913          ,p_module   => l_log_module);
4914   END IF;
4915   x_value_type_code := 'S';
4916   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
4917   RETURN l_output_value;
4918 
4919  ELSIF NVL(p_source_4,'
4920 ') =  'ACCOUNT_SEGMENT_VALUE'
4921  THEN 
4922  --
4923   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4924       trace
4925          (p_msg      => 'END of AcctDerRule_34'
4926          ,p_level    => C_LEVEL_PROCEDURE
4927          ,p_module   => l_log_module);
4928   END IF;
4929   x_value_type_code := 'S';
4930   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_23));
4931   RETURN l_output_value;
4932 
4933  END IF;
4934 --
4935 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4936       trace
4937          (p_msg      => 'END of AcctDerRule_34(invalid)'
4938          ,p_level    => C_LEVEL_PROCEDURE
4939          ,p_module   => l_log_module);
4940 END IF;
4941 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4942 x_value_type_code := null;
4943 l_output_value    := null;
4944 xla_accounting_err_pkg.build_message
4945                  (p_appli_s_name            => 'XLA'
4946                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4947                  ,p_token_1                 => 'COMPONENT_NAME'
4948                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4949                                                             l_component_type
4950                                                           , l_component_code
4951                                                           , l_component_type_code
4952                                                           , l_component_appl_id
4953                                                           , l_amb_context_code
4954                                                           )
4955                  ,p_token_2                 => 'OWNER'
4956                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4957                                                         'XLA_OWNER_TYPE'
4958                                                         ,l_component_type_code
4959                                                         )
4960                  ,p_token_3                 => 'PAD_NAME'
4961                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4962                  ,p_token_4                 => 'PAD_OWNER'
4963                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4964                                                         'XLA_OWNER_TYPE'
4965                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4966                                                         )
4967                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4968                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4969                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4970                  ,p_ae_header_id            => NULL
4971 );
4972 RETURN l_output_value;
4973 EXCEPTION
4974   WHEN xla_exceptions_pkg.application_exception THEN
4975       RAISE;
4976   WHEN OTHERS THEN
4977        xla_exceptions_pkg.raise_message
4978            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_34');
4979 END AcctDerRule_34;
4980 --
4981 
4982 ---------------------------------------
4983 --
4984 -- PRIVATE FUNCTION
4985 --         AcctDerRule_35
4986 --
4987 ---------------------------------------
4988 FUNCTION AcctDerRule_35 (
4989   p_application_id              IN NUMBER
4990 , p_ae_header_id                IN NUMBER
4991 , p_side                        IN VARCHAR2 
4992 --Automatic Offsets Value
4993  , p_source_4            IN VARCHAR2
4994  , p_source_4_meaning    IN VARCHAR2
4995 --Invoice Distribution Account
4996  , p_source_17            IN NUMBER
4997 --Payables Options Rounding Account
4998  , p_source_37            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_35';
5015 END IF;
5016 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5017       trace
5018          (p_msg      => 'BEGIN of AcctDerRule_35'
5022 --
5019          ,p_level    => C_LEVEL_PROCEDURE
5020          ,p_module   => l_log_module);
5021 END IF;
5023 l_component_type         := 'AMB_ADR';
5024 l_component_code         := 'AP_ROUNDING';
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_4,'
5033 ') <>  'ACCOUNT_SEGMENT_VALUE'
5034  THEN 
5035  --
5036   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5037       trace
5038          (p_msg      => 'END of AcctDerRule_35'
5039          ,p_level    => C_LEVEL_PROCEDURE
5040          ,p_module   => l_log_module);
5041   END IF;
5042   x_value_type_code := 'S';
5043   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_37));
5044   RETURN l_output_value;
5045 
5046  ELSIF NVL(p_source_4,'
5047 ') =  'ACCOUNT_SEGMENT_VALUE'
5048  THEN 
5049  --
5050   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5051       trace
5052          (p_msg      => 'END of AcctDerRule_35'
5053          ,p_level    => C_LEVEL_PROCEDURE
5054          ,p_module   => l_log_module);
5055   END IF;
5056   x_value_type_code := 'S';
5057   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
5058   RETURN l_output_value;
5059 
5060  END IF;
5061 --
5062 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5063       trace
5064          (p_msg      => 'END of AcctDerRule_35(invalid)'
5065          ,p_level    => C_LEVEL_PROCEDURE
5066          ,p_module   => l_log_module);
5067 END IF;
5068 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5069 x_value_type_code := null;
5070 l_output_value    := null;
5071 xla_accounting_err_pkg.build_message
5072                  (p_appli_s_name            => 'XLA'
5073                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5074                  ,p_token_1                 => 'COMPONENT_NAME'
5075                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5076                                                             l_component_type
5077                                                           , l_component_code
5078                                                           , l_component_type_code
5079                                                           , l_component_appl_id
5080                                                           , l_amb_context_code
5081                                                           )
5082                  ,p_token_2                 => 'OWNER'
5083                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5084                                                         'XLA_OWNER_TYPE'
5085                                                         ,l_component_type_code
5086                                                         )
5087                  ,p_token_3                 => 'PAD_NAME'
5088                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5089                  ,p_token_4                 => 'PAD_OWNER'
5090                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5091                                                         'XLA_OWNER_TYPE'
5092                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5093                                                         )
5094                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5095                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5096                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5097                  ,p_ae_header_id            => NULL
5098 );
5099 RETURN l_output_value;
5100 EXCEPTION
5101   WHEN xla_exceptions_pkg.application_exception THEN
5102       RAISE;
5103   WHEN OTHERS THEN
5104        xla_exceptions_pkg.raise_message
5105            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_35');
5106 END AcctDerRule_35;
5107 --
5108 
5109 ---------------------------------------
5110 --
5111 -- PRIVATE FUNCTION
5112 --         AcctDerRule_36
5113 --
5114 ---------------------------------------
5115 FUNCTION AcctDerRule_36 (
5116   p_application_id              IN NUMBER
5117 , p_ae_header_id                IN NUMBER
5118 , p_side                        IN VARCHAR2 
5119 --Automatic Offsets Value
5120  , p_source_4            IN VARCHAR2
5121  , p_source_4_meaning    IN VARCHAR2
5122 --Invoice Distribution Account
5123  , p_source_17            IN NUMBER
5124 --Withholding Related Distribution Account
5125  , p_source_24            IN NUMBER
5126 , x_transaction_coa_id         OUT NOCOPY NUMBER
5127 , x_accounting_coa_id          OUT NOCOPY NUMBER
5128 , x_value_type_code            OUT NOCOPY VARCHAR2
5129 )
5130 RETURN NUMBER
5131 IS
5132 l_component_type       VARCHAR2(80)  ;
5133 l_component_code       VARCHAR2(30)  ;
5134 l_component_type_code  VARCHAR2(1)   ;
5135 l_component_appl_id    INTEGER       ;
5136 l_amb_context_code     VARCHAR2(30)  ;
5137 l_log_module           VARCHAR2(240) ;
5138 l_output_value         NUMBER        ;
5139 BEGIN
5140 IF g_log_enabled THEN
5141       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_36';
5142 END IF;
5143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5144       trace
5148 END IF;
5145          (p_msg      => 'BEGIN of AcctDerRule_36'
5146          ,p_level    => C_LEVEL_PROCEDURE
5147          ,p_module   => l_log_module);
5149 --
5150 l_component_type         := 'AMB_ADR';
5151 l_component_code         := 'AP_WH_DIST_ACCT';
5152 l_component_type_code    := 'S';
5153 l_component_appl_id      :=  200;
5154 l_amb_context_code       := 'DEFAULT';
5155 x_transaction_coa_id     :=  null;
5156 x_accounting_coa_id      :=  null;
5157 --
5158 
5159  IF NVL(p_source_4,'
5160 ') <>  'ACCOUNT_SEGMENT_VALUE'
5161  THEN 
5162  --
5163   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5164       trace
5165          (p_msg      => 'END of AcctDerRule_36'
5166          ,p_level    => C_LEVEL_PROCEDURE
5167          ,p_module   => l_log_module);
5168   END IF;
5169   x_value_type_code := 'S';
5170   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
5171   RETURN l_output_value;
5172 
5173  ELSIF NVL(p_source_4,'
5174 ') =  'ACCOUNT_SEGMENT_VALUE'
5175  THEN 
5176  --
5177   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5178       trace
5179          (p_msg      => 'END of AcctDerRule_36'
5180          ,p_level    => C_LEVEL_PROCEDURE
5181          ,p_module   => l_log_module);
5182   END IF;
5183   x_value_type_code := 'S';
5184   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_24));
5185   RETURN l_output_value;
5186 
5187  END IF;
5188 --
5189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5190       trace
5191          (p_msg      => 'END of AcctDerRule_36(invalid)'
5192          ,p_level    => C_LEVEL_PROCEDURE
5193          ,p_module   => l_log_module);
5194 END IF;
5195 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5196 x_value_type_code := null;
5197 l_output_value    := null;
5198 xla_accounting_err_pkg.build_message
5199                  (p_appli_s_name            => 'XLA'
5200                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5201                  ,p_token_1                 => 'COMPONENT_NAME'
5202                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5203                                                             l_component_type
5204                                                           , l_component_code
5205                                                           , l_component_type_code
5206                                                           , l_component_appl_id
5207                                                           , l_amb_context_code
5208                                                           )
5209                  ,p_token_2                 => 'OWNER'
5210                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5211                                                         'XLA_OWNER_TYPE'
5212                                                         ,l_component_type_code
5213                                                         )
5214                  ,p_token_3                 => 'PAD_NAME'
5215                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5216                  ,p_token_4                 => 'PAD_OWNER'
5217                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5218                                                         'XLA_OWNER_TYPE'
5219                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5220                                                         )
5221                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5222                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5223                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5224                  ,p_ae_header_id            => NULL
5225 );
5226 RETURN l_output_value;
5227 EXCEPTION
5228   WHEN xla_exceptions_pkg.application_exception THEN
5229       RAISE;
5230   WHEN OTHERS THEN
5231        xla_exceptions_pkg.raise_message
5232            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_36');
5233 END AcctDerRule_36;
5234 --
5235 
5236 ---------------------------------------
5237 --
5238 -- PRIVATE FUNCTION
5239 --         AcctDerRule_37
5240 --
5241 ---------------------------------------
5242 FUNCTION AcctDerRule_37 (
5243   p_application_id              IN NUMBER
5244 , p_ae_header_id                IN NUMBER
5245 , p_side                        IN VARCHAR2 
5246 --Invoice Distribution Account
5247  , p_source_17            IN NUMBER
5248 , x_transaction_coa_id         OUT NOCOPY NUMBER
5249 , x_accounting_coa_id          OUT NOCOPY NUMBER
5250 , x_value_type_code            OUT NOCOPY VARCHAR2
5251 )
5252 RETURN NUMBER
5253 IS
5254 l_component_type       VARCHAR2(80)  ;
5255 l_component_code       VARCHAR2(30)  ;
5256 l_component_type_code  VARCHAR2(1)   ;
5257 l_component_appl_id    INTEGER       ;
5258 l_amb_context_code     VARCHAR2(30)  ;
5259 l_log_module           VARCHAR2(240) ;
5260 l_output_value         NUMBER        ;
5261 BEGIN
5262 IF g_log_enabled THEN
5263       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_37';
5264 END IF;
5265 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5266       trace
5267          (p_msg      => 'BEGIN of AcctDerRule_37'
5268          ,p_level    => C_LEVEL_PROCEDURE
5269          ,p_module   => l_log_module);
5270 END IF;
5271 --
5275 l_component_appl_id      :=  200;
5272 l_component_type         := 'AMB_ADR';
5273 l_component_code         := 'FV_AP_INV_DISTRBUTION_CCID';
5274 l_component_type_code    := 'S';
5276 l_amb_context_code       := 'DEFAULT';
5277 x_transaction_coa_id     :=  null;
5278 x_accounting_coa_id      :=  null;
5279 --
5280 
5281  --
5282   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5283       trace
5284          (p_msg      => 'END of AcctDerRule_37'
5285          ,p_level    => C_LEVEL_PROCEDURE
5286          ,p_module   => l_log_module);
5287   END IF;
5288   x_value_type_code := 'S';
5289   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
5290   RETURN l_output_value;
5291 
5292 --
5293 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5294       trace
5295          (p_msg      => 'END of AcctDerRule_37(invalid)'
5296          ,p_level    => C_LEVEL_PROCEDURE
5297          ,p_module   => l_log_module);
5298 END IF;
5299 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5300 x_value_type_code := null;
5301 l_output_value    := null;
5302 xla_accounting_err_pkg.build_message
5303                  (p_appli_s_name            => 'XLA'
5304                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5305                  ,p_token_1                 => 'COMPONENT_NAME'
5306                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5307                                                             l_component_type
5308                                                           , l_component_code
5309                                                           , l_component_type_code
5310                                                           , l_component_appl_id
5311                                                           , l_amb_context_code
5312                                                           )
5313                  ,p_token_2                 => 'OWNER'
5314                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5315                                                         'XLA_OWNER_TYPE'
5316                                                         ,l_component_type_code
5317                                                         )
5318                  ,p_token_3                 => 'PAD_NAME'
5319                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5320                  ,p_token_4                 => 'PAD_OWNER'
5321                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5322                                                         'XLA_OWNER_TYPE'
5323                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5324                                                         )
5325                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5326                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5327                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5328                  ,p_ae_header_id            => NULL
5329 );
5330 RETURN l_output_value;
5331 EXCEPTION
5332   WHEN xla_exceptions_pkg.application_exception THEN
5333       RAISE;
5334   WHEN OTHERS THEN
5335        xla_exceptions_pkg.raise_message
5336            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctDerRule_37');
5337 END AcctDerRule_37;
5338 --
5339 
5340 ---------------------------------------
5341 --
5342 -- PRIVATE FUNCTION
5343 --         AcctLineType_38
5344 --
5345 ---------------------------------------
5346 PROCEDURE AcctLineType_38 (
5347   p_application_id        IN NUMBER
5348  ,p_event_id              IN NUMBER
5349  ,p_calculate_acctd_flag  IN VARCHAR2
5350  ,p_calculate_g_l_flag    IN VARCHAR2
5351  ,p_actual_flag           IN OUT VARCHAR2
5352  ,p_balance_type_code     OUT VARCHAR2
5353  ,p_gain_or_loss_ref      OUT VARCHAR2
5354  
5355 --Payment Distribution (Cleared Rate) Ledger Amount
5356  , p_source_10            IN NUMBER
5357 --Invoice Distribution Type
5358  , p_source_20            IN VARCHAR2
5359  , p_source_20_meaning    IN VARCHAR2
5360 --Purchase Order Charge Account
5361  , p_source_28            IN NUMBER
5362 --When to Account for Payment Option
5363  , p_source_38            IN VARCHAR2
5364 --Payment Distribution Type
5365  , p_source_39            IN VARCHAR2
5366  , p_source_39_meaning    IN VARCHAR2
5367 --Accounting Reversal Indicator
5368  , p_source_40            IN VARCHAR2
5369 --Payment Distribution Amount
5370  , p_source_41            IN NUMBER
5371 --Business Flow Accounts Payable Application Identifier
5372  , p_source_42            IN NUMBER
5373 --Business Flow Payment Distribution Type
5374  , p_source_43            IN VARCHAR2
5375 --Business Flow Payment Entity Code
5376  , p_source_44            IN VARCHAR2
5377 --Business Flow Payment Distribution Identifier
5378  , p_source_45            IN NUMBER
5379 --Business Flow Payment Identifier
5380  , p_source_46            IN NUMBER
5381 --Payment Distribution Identifier
5382  , p_source_47            IN NUMBER
5383 --Distribution Link Type
5384  , p_source_48            IN VARCHAR2
5385 --Payment Currency Code
5386  , p_source_49            IN VARCHAR2
5387 --Purchase Order Exchange Rate Date
5388  , p_source_50            IN DATE
5389 --Purchase Order Exchange Rate
5390  , p_source_51            IN NUMBER
5391 --Purchase Order Exchange Rate Type
5395  , p_source_53_meaning    IN VARCHAR2
5392  , p_source_52            IN VARCHAR2
5393 --Override Accounted Amount Indicator
5394  , p_source_53            IN VARCHAR2
5396 --Payment Supplier Identifier
5397  , p_source_54            IN NUMBER
5398 --Payment Supplier Site Identifier
5399  , p_source_55            IN NUMBER
5400 --Third Party Type
5401  , p_source_56            IN VARCHAR2
5402 --Payment Distribution Reversed Identifier
5403  , p_source_57            IN NUMBER
5404 --Invoice Distribution Tax Line Identifier
5405  , p_source_58            IN NUMBER
5406 --Invoice Distribution Summary Tax Line Identifier
5407  , p_source_59            IN NUMBER
5408 )
5409 IS
5410 
5411 l_component_type              VARCHAR2(80);
5412 l_component_code              VARCHAR2(30);
5413 l_component_type_code         VARCHAR2(1);
5414 l_component_appl_id           INTEGER;
5415 l_amb_context_code            VARCHAR2(30);
5416 l_entity_code                 VARCHAR2(30);
5417 l_event_class_code            VARCHAR2(30);
5418 l_ae_header_id                NUMBER;
5419 l_event_type_code             VARCHAR2(30);
5420 l_line_definition_code        VARCHAR2(30);
5421 l_line_definition_owner_code  VARCHAR2(1);
5422 --
5423 -- adr variables
5424 l_segment                     VARCHAR2(30);
5425 l_ccid                        NUMBER;
5426 l_adr_transaction_coa_id      NUMBER;
5427 l_adr_accounting_coa_id       NUMBER;
5428 l_adr_flexfield_segment_code  VARCHAR2(30);
5429 l_adr_flex_value_set_id       NUMBER;
5430 l_adr_value_type_code         VARCHAR2(30);
5431 l_adr_value_combination_id    NUMBER;
5432 l_adr_value_segment_code      VARCHAR2(30);
5433 
5434 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
5435 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
5436 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
5437 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
5438 
5439 -- 4262811 Variables ------------------------------------------------------------------------------------------
5440 l_entered_amt_idx             NUMBER;
5441 l_accted_amt_idx              NUMBER;
5442 l_acc_rev_flag                VARCHAR2(1);
5443 l_accrual_line_num            NUMBER;
5444 l_tmp_amt                     NUMBER;
5445 l_acc_rev_natural_side_code   VARCHAR2(1);
5446 
5447 l_num_entries                 NUMBER;
5448 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
5449 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
5450 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
5451 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
5452 l_recog_line_1                NUMBER;
5453 l_recog_line_2                NUMBER;
5454 
5455 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
5456 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
5457 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
5458 
5459 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5460 
5461 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
5462 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
5463 
5464 ---------------------------------------------------------------------------------------------------------------
5465 
5466 
5467 --
5468 -- bulk performance
5469 --
5470 l_balance_type_code           VARCHAR2(1);
5471 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
5472 l_log_module                  VARCHAR2(240);
5473 
5474 --
5475 -- Upgrade strategy
5476 --
5477 l_actual_upg_option           VARCHAR2(1);
5478 l_enc_upg_option           VARCHAR2(1);
5479 
5480 --
5481 BEGIN
5482 --
5483 IF g_log_enabled THEN
5484       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
5485 END IF;
5486 --
5487 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5488 
5489       trace
5490          (p_msg      => 'BEGIN of AcctLineType_38'
5491          ,p_level    => C_LEVEL_PROCEDURE
5492          ,p_module   => l_log_module);
5493 
5494 END IF;
5495 --
5496 l_component_type             := 'AMB_JLT';
5497 l_component_code             := 'AP_ACCRUAL_CLEAR';
5498 l_component_type_code        := 'S';
5499 l_component_appl_id          :=  200;
5500 l_amb_context_code           := 'DEFAULT';
5501 l_entity_code                := 'AP_PAYMENTS';
5502 l_event_class_code           := 'RECONCILED PAYMENTS';
5503 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
5504 l_line_definition_owner_code := 'S';
5505 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
5506 --
5507 l_balance_type_code          := 'A';
5508 l_segment                     := NULL;
5509 l_ccid                        := NULL;
5510 l_adr_transaction_coa_id      := NULL;
5511 l_adr_accounting_coa_id       := NULL;
5512 l_adr_flexfield_segment_code  := NULL;
5513 l_adr_flex_value_set_id       := NULL;
5514 l_adr_value_type_code         := NULL;
5515 l_adr_value_combination_id    := NULL;
5516 l_adr_value_segment_code      := NULL;
5517 
5518 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
5519 l_bflow_class_code           := '';    -- 4219869 Business Flow
5520 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
5521 l_budgetary_control_flag     := 'N';
5522 
5526 l_accted_amt_idx             := NULL;          -- 4262811
5523 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
5524 l_bflow_applied_to_amt       := NULL; -- 5132302
5525 l_entered_amt_idx            := NULL;          -- 4262811
5527 l_acc_rev_flag               := NULL;          -- 4262811
5528 l_accrual_line_num           := NULL;          -- 4262811
5529 l_tmp_amt                    := NULL;          -- 4262811
5530 --
5531  
5532 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5533     l_balance_type_code <> 'B' THEN
5534 IF NVL(p_source_38,'
5535 ') =  'CLEAR_CLEAR' AND 
5536 (NVL(p_source_20,'
5537 ') =  'ACCRUAL' OR 
5538 NVL(p_source_20,'
5539 ') =  'RETROACCRUAL') AND 
5540 (NVL(p_source_39,'
5541 ') =  'CASH' OR 
5542 NVL(p_source_39,'
5543 ') =  'AWT' OR 
5544 NVL(p_source_39,'
5545 ') =  'DISCOUNT')
5546  THEN 
5547 
5548    --
5549    XLA_AE_LINES_PKG.SetNewLine;
5550 
5551    p_balance_type_code          := l_balance_type_code;
5552    -- set the flag so later we will know whether the gain loss line needs to be created
5553    
5554    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5555      p_actual_flag :='A';
5556    END IF;
5557 
5558    --
5559    -- bulk performance
5560    --
5561    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5562                                       p_header_num   => 0); -- 4262811
5563    --
5564    -- set accounting line options
5565    --
5566    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5567            p_natural_side_code          => 'D'
5568          , p_gain_or_loss_flag          => 'N'
5569          , p_gl_transfer_mode_code      => 'S'
5570          , p_acct_entry_type_code       => 'A'
5571          , p_switch_side_flag           => 'Y'
5572          , p_merge_duplicate_code       => 'A'
5573          );
5574    --
5575    l_acc_rev_natural_side_code := 'C';  -- 4262811
5576    -- 
5577    --
5578    -- set accounting line type info
5579    --
5580    xla_ae_lines_pkg.SetAcctLineType
5581       (p_component_type             => l_component_type
5582       ,p_event_type_code            => l_event_type_code
5583       ,p_line_definition_owner_code => l_line_definition_owner_code
5584       ,p_line_definition_code       => l_line_definition_code
5585       ,p_accounting_line_code       => l_component_code
5586       ,p_accounting_line_type_code  => l_component_type_code
5587       ,p_accounting_line_appl_id    => l_component_appl_id
5588       ,p_amb_context_code           => l_amb_context_code
5589       ,p_entity_code                => l_entity_code
5590       ,p_event_class_code           => l_event_class_code);
5591    --
5592    -- set accounting class
5593    --
5594    xla_ae_lines_pkg.SetAcctClass(
5595            p_accounting_class_code  => 'ACCRUAL'
5596          , p_ae_header_id           => l_ae_header_id
5597          );
5598 
5599    --
5600    -- set rounding class
5601    --
5602    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5603                       'ACCRUAL';
5604 
5605    --
5606    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5607    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5608    --
5609    -- bulk performance
5610    --
5611    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5612 
5613    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5614       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5615 
5616    -- 4955764
5617    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5618       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5619 
5620    -- 4458381 Public Sector Enh
5621    
5622    --
5623    -- set accounting attributes for the line type
5624    --
5625    l_entered_amt_idx := 10;
5626    l_accted_amt_idx  := 15;
5627    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
5628    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5629    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
5630    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
5631    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
5632    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
5633    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
5634    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5635    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
5636    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
5637    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
5638    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
5639    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
5640    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5641    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
5642    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
5643    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
5644    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
5645    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
5649    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
5646    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
5647    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
5648    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
5650    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
5651    l_rec_acct_attrs.array_date_value(12)  := p_source_50;
5652    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
5653    l_rec_acct_attrs.array_num_value(13)  := p_source_51;
5654    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
5655    l_rec_acct_attrs.array_char_value(14)  := p_source_52;
5656    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
5657    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
5658    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
5659    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
5660    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
5661    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
5662    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
5663    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
5664    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
5665    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
5666    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
5667    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
5668    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
5669    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
5670    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
5671    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
5672    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
5673    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
5674    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
5675    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
5676 
5677    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5678    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5679 
5680    ---------------------------------------------------------------------------------------------------------------
5681    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5682    ---------------------------------------------------------------------------------------------------------------
5683    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5684 
5685    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5686    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5687 
5688    IF xla_accounting_cache_pkg.GetValueChar
5689          (p_source_code         => 'LEDGER_CATEGORY_CODE'
5690          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5691    AND l_bflow_method_code = 'PRIOR_ENTRY'
5692 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5693    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5694          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5695        )
5696    THEN
5697          xla_ae_lines_pkg.BflowUpgEntry
5698            (p_business_method_code    => l_bflow_method_code
5699            ,p_business_class_code     => l_bflow_class_code
5700            ,p_balance_type            => l_balance_type_code);
5701    ELSE
5702       NULL;
5703 -- No business flow processing for business flow method of NONE.
5704    END IF;
5705 
5706    --
5707    -- call analytical criteria
5708    --
5709    
5710    --
5711    -- call description
5712    --
5713    -- No description or it is inherited.
5714    --
5715    -- call ADRs
5716    -- Bug 4922099
5717    --
5718    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5719         (NVL(l_actual_upg_option, 'N') = 'O') OR
5720         (NVL(l_enc_upg_option, 'N') = 'O')
5721       )
5722    THEN
5723    NULL;
5724    --
5725    --
5726    
5727   l_ccid := AcctDerRule_29(
5728            p_application_id           => p_application_id
5729          , p_ae_header_id             => l_ae_header_id 
5730 , p_source_28 => p_source_28
5731          , x_transaction_coa_id       => l_adr_transaction_coa_id
5732          , x_accounting_coa_id        => l_adr_accounting_coa_id
5733          , x_value_type_code          => l_adr_value_type_code
5734          , p_side                     => 'NA'
5735    );
5736 
5737    xla_ae_lines_pkg.set_ccid(
5738     p_code_combination_id          => l_ccid
5739   , p_value_type_code              => l_adr_value_type_code
5740   , p_transaction_coa_id           => l_adr_transaction_coa_id
5741   , p_accounting_coa_id            => l_adr_accounting_coa_id
5742   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
5743   , p_adr_type_code                => 'S'
5744   , p_component_type               => l_component_type
5745   , p_component_code               => l_component_code
5746   , p_component_type_code          => l_component_type_code
5747   , p_component_appl_id            => l_component_appl_id
5748   , p_amb_context_code             => l_amb_context_code
5749   , p_side                         => 'NA'
5750   );
5751 
5752 
5753    --
5754    --
5755    END IF;
5756    --
5757    -- Bug 4922099
5758    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5762       )
5759           (NVL(l_enc_upg_option, 'N') = 'O')
5760         ) AND
5761         (l_bflow_method_code = 'PRIOR_ENTRY')
5763    THEN
5764       IF
5765       --
5766       1 = 2
5767       --
5768       THEN
5769       xla_accounting_err_pkg.build_message
5770                                     (p_appli_s_name            => 'XLA'
5771                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5772                                     ,p_token_1                 => 'LINE_NUMBER'
5773                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
5774                                     ,p_token_2                 => 'LINE_TYPE_NAME'
5775                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
5776                                                                              l_component_type
5777                                                                             ,l_component_code
5778                                                                             ,l_component_type_code
5779                                                                             ,l_component_appl_id
5780                                                                             ,l_amb_context_code
5781                                                                             ,l_entity_code
5782                                                                             ,l_event_class_code
5783                                                                            )
5784                                     ,p_token_3                 => 'OWNER'
5785                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
5786                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
5787                                                                           ,p_lookup_code    => l_component_type_code
5788                                                                          )
5789                                     ,p_token_4                 => 'PRODUCT_NAME'
5790                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5791                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5792                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5793                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5794                                     ,p_ae_header_id            =>  NULL
5795                                        );
5796 
5797         IF (C_LEVEL_ERROR>= g_log_level) THEN
5798                  trace
5799                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5800                       ,p_level    => C_LEVEL_ERROR
5801                       ,p_module   => l_log_module);
5802         END IF;
5803       END IF;
5804    END IF;
5805    --
5806    --
5807    ------------------------------------------------------------------------------------------------
5808    -- 4219869 Business Flow
5809    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5810    -- Prior Entry.  Currently, the following code is always generated.
5811    ------------------------------------------------------------------------------------------------
5812    XLA_AE_LINES_PKG.ValidateCurrentLine;
5813 
5814    ------------------------------------------------------------------------------------
5815    -- 4219869 Business Flow
5816    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5817    ------------------------------------------------------------------------------------
5818    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5819 
5820    ----------------------------------------------------------------------------------
5821    -- 4219869 Business Flow
5822    -- Update journal entry status -- Need to generate this within IF <condition>
5823    ----------------------------------------------------------------------------------
5824    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5825          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5826          ,p_balance_type_code => l_balance_type_code
5827          );
5828 
5829    -------------------------------------------------------------------------------------------
5830    -- 4262811 - Generate the Accrual Reversal lines
5831    -------------------------------------------------------------------------------------------
5832    BEGIN
5833       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5834                               (g_array_event(p_event_id).array_value_num('header_index'));
5835       IF l_acc_rev_flag IS NULL THEN
5836          l_acc_rev_flag := 'N';
5837       END IF;
5838    EXCEPTION
5839       WHEN OTHERS THEN
5840          l_acc_rev_flag := 'N';
5841    END;
5842    --
5843    IF (l_acc_rev_flag = 'Y') THEN
5844 
5845        -- 4645092  ------------------------------------------------------------------------------
5846        -- To allow MPA report to determine if it should generate report process
5847        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5848        ------------------------------------------------------------------------------------------
5849 
5850        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5851        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5852    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
5856    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5853    -- call ADRs
5854    -- Bug 4922099
5855    --
5857         (NVL(l_actual_upg_option, 'N') = 'O') OR
5858         (NVL(l_enc_upg_option, 'N') = 'O')
5859       )
5860    THEN
5861    NULL;
5862    --
5863    --
5864    
5865   l_ccid := AcctDerRule_29(
5866            p_application_id           => p_application_id
5867          , p_ae_header_id             => l_ae_header_id 
5868 , p_source_28 => p_source_28
5869          , x_transaction_coa_id       => l_adr_transaction_coa_id
5870          , x_accounting_coa_id        => l_adr_accounting_coa_id
5871          , x_value_type_code          => l_adr_value_type_code
5872          , p_side                     => 'NA'
5873    );
5874 
5875    xla_ae_lines_pkg.set_ccid(
5876     p_code_combination_id          => l_ccid
5877   , p_value_type_code              => l_adr_value_type_code
5878   , p_transaction_coa_id           => l_adr_transaction_coa_id
5879   , p_accounting_coa_id            => l_adr_accounting_coa_id
5880   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
5881   , p_adr_type_code                => 'S'
5882   , p_component_type               => l_component_type
5883   , p_component_code               => l_component_code
5884   , p_component_type_code          => l_component_type_code
5885   , p_component_appl_id            => l_component_appl_id
5886   , p_amb_context_code             => l_amb_context_code
5887   , p_side                         => 'NA'
5888   );
5889 
5890 
5891    --
5892    --
5893    END IF;
5894 
5895        --
5896        -- Update the line information that should be overwritten
5897        --
5898        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5899                                          p_header_num   => 1);
5900        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
5901 
5902        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5903 
5904        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
5905           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5906        END IF;
5907 
5908       --
5909       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5910       --
5911       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5912           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
5913       ELSE
5914           ---------------------------------------------------------------------------------------------------
5915           -- 4262811a Switch Sign
5916           ---------------------------------------------------------------------------------------------------
5917           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
5918           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5919                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5920           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5921                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5922           -- 5132302
5923           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5924                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5925 
5926       END IF;
5927 
5928       -- 4955764
5929       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5930       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5931 
5932 
5933       XLA_AE_LINES_PKG.ValidateCurrentLine;
5934       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5935 
5936       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5937                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5938                ,p_balance_type_code => l_balance_type_code);
5939 
5940    END IF;
5941 
5942    -----------------------------------------------------------------------------------------
5943    -- 4262811 Multiperiod Accounting
5944    -----------------------------------------------------------------------------------------
5945      -- No MPA option is assigned.
5946 
5947 
5948 END IF;
5949 END IF;
5950 --
5951 
5952 --
5953 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5954    trace
5955       (p_msg      => 'END of AcctLineType_38'
5956       ,p_level    => C_LEVEL_PROCEDURE
5957       ,p_module   => l_log_module);
5958 END IF;
5959 --
5960 EXCEPTION
5961   WHEN xla_exceptions_pkg.application_exception THEN
5962       RAISE;
5963   WHEN OTHERS THEN
5964        xla_exceptions_pkg.raise_message
5965            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_38');
5966 END AcctLineType_38;
5967 --
5968 
5969 ---------------------------------------
5970 --
5971 -- PRIVATE FUNCTION
5972 --         AcctLineType_39
5973 --
5974 ---------------------------------------
5975 PROCEDURE AcctLineType_39 (
5976   p_application_id        IN NUMBER
5977  ,p_event_id              IN NUMBER
5978  ,p_calculate_acctd_flag  IN VARCHAR2
5982  ,p_gain_or_loss_ref      OUT VARCHAR2
5979  ,p_calculate_g_l_flag    IN VARCHAR2
5980  ,p_actual_flag           IN OUT VARCHAR2
5981  ,p_balance_type_code     OUT VARCHAR2
5983  
5984 --Payment Distribution (Payment Rate) Ledger Amount
5985  , p_source_9            IN NUMBER
5986 --Invoice Distribution Type
5987  , p_source_20            IN VARCHAR2
5988  , p_source_20_meaning    IN VARCHAR2
5989 --Purchase Order Charge Account
5990  , p_source_28            IN NUMBER
5991 --When to Account for Payment Option
5992  , p_source_38            IN VARCHAR2
5993 --Payment Distribution Type
5994  , p_source_39            IN VARCHAR2
5995  , p_source_39_meaning    IN VARCHAR2
5996 --Accounting Reversal Indicator
5997  , p_source_40            IN VARCHAR2
5998 --Payment Distribution Amount
5999  , p_source_41            IN NUMBER
6000 --Business Flow Accounts Payable Application Identifier
6001  , p_source_42            IN NUMBER
6002 --Payment Distribution Identifier
6003  , p_source_47            IN NUMBER
6004 --Distribution Link Type
6005  , p_source_48            IN VARCHAR2
6006 --Payment Currency Code
6007  , p_source_49            IN VARCHAR2
6008 --Purchase Order Exchange Rate Date
6009  , p_source_50            IN DATE
6010 --Purchase Order Exchange Rate
6011  , p_source_51            IN NUMBER
6012 --Purchase Order Exchange Rate Type
6013  , p_source_52            IN VARCHAR2
6014 --Override Accounted Amount Indicator
6015  , p_source_53            IN VARCHAR2
6016  , p_source_53_meaning    IN VARCHAR2
6017 --Payment Supplier Identifier
6018  , p_source_54            IN NUMBER
6019 --Payment Supplier Site Identifier
6020  , p_source_55            IN NUMBER
6021 --Third Party Type
6022  , p_source_56            IN VARCHAR2
6023 --Payment Distribution Reversed Identifier
6024  , p_source_57            IN NUMBER
6025 --Invoice Distribution Tax Line Identifier
6026  , p_source_58            IN NUMBER
6027 --Invoice Distribution Summary Tax Line Identifier
6028  , p_source_59            IN NUMBER
6029 --Payment Type
6030  , p_source_60            IN VARCHAR2
6031  , p_source_60_meaning    IN VARCHAR2
6032 --Invoice Distribution Amount of the Payment Distribution
6033  , p_source_61            IN NUMBER
6034 --Business Flow Invoice Distribution Type
6035  , p_source_62            IN VARCHAR2
6036 --Business Flow Invoice Entity Code
6037  , p_source_63            IN VARCHAR2
6038 --Business Flow Invoice Distribution Identifier
6039  , p_source_64            IN NUMBER
6040 --Business Flow Invoice Identifier
6041  , p_source_65            IN NUMBER
6042 --Invoice Distribution Tax Distribution Identifier from Tax
6043  , p_source_66            IN NUMBER
6044 )
6045 IS
6046 
6047 l_component_type              VARCHAR2(80);
6048 l_component_code              VARCHAR2(30);
6049 l_component_type_code         VARCHAR2(1);
6050 l_component_appl_id           INTEGER;
6051 l_amb_context_code            VARCHAR2(30);
6052 l_entity_code                 VARCHAR2(30);
6053 l_event_class_code            VARCHAR2(30);
6054 l_ae_header_id                NUMBER;
6055 l_event_type_code             VARCHAR2(30);
6056 l_line_definition_code        VARCHAR2(30);
6057 l_line_definition_owner_code  VARCHAR2(1);
6058 --
6059 -- adr variables
6060 l_segment                     VARCHAR2(30);
6061 l_ccid                        NUMBER;
6062 l_adr_transaction_coa_id      NUMBER;
6063 l_adr_accounting_coa_id       NUMBER;
6064 l_adr_flexfield_segment_code  VARCHAR2(30);
6065 l_adr_flex_value_set_id       NUMBER;
6066 l_adr_value_type_code         VARCHAR2(30);
6067 l_adr_value_combination_id    NUMBER;
6068 l_adr_value_segment_code      VARCHAR2(30);
6069 
6070 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
6071 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
6072 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
6073 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
6074 
6075 -- 4262811 Variables ------------------------------------------------------------------------------------------
6076 l_entered_amt_idx             NUMBER;
6077 l_accted_amt_idx              NUMBER;
6078 l_acc_rev_flag                VARCHAR2(1);
6079 l_accrual_line_num            NUMBER;
6080 l_tmp_amt                     NUMBER;
6081 l_acc_rev_natural_side_code   VARCHAR2(1);
6082 
6083 l_num_entries                 NUMBER;
6084 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
6085 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
6086 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
6087 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
6088 l_recog_line_1                NUMBER;
6089 l_recog_line_2                NUMBER;
6090 
6091 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
6092 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
6093 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
6094 
6095 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6096 
6097 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
6098 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
6099 
6100 ---------------------------------------------------------------------------------------------------------------
6101 
6102 
6103 --
6107 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
6104 -- bulk performance
6105 --
6106 l_balance_type_code           VARCHAR2(1);
6108 l_log_module                  VARCHAR2(240);
6109 
6110 --
6111 -- Upgrade strategy
6112 --
6113 l_actual_upg_option           VARCHAR2(1);
6114 l_enc_upg_option           VARCHAR2(1);
6115 
6116 --
6117 BEGIN
6118 --
6119 IF g_log_enabled THEN
6120       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
6121 END IF;
6122 --
6123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6124 
6125       trace
6126          (p_msg      => 'BEGIN of AcctLineType_39'
6127          ,p_level    => C_LEVEL_PROCEDURE
6128          ,p_module   => l_log_module);
6129 
6130 END IF;
6131 --
6132 l_component_type             := 'AMB_JLT';
6133 l_component_code             := 'AP_ACCRUAL_PMT';
6134 l_component_type_code        := 'S';
6135 l_component_appl_id          :=  200;
6136 l_amb_context_code           := 'DEFAULT';
6137 l_entity_code                := 'AP_PAYMENTS';
6138 l_event_class_code           := 'PAYMENTS';
6139 l_event_type_code            := 'PAYMENTS_ALL';
6140 l_line_definition_owner_code := 'S';
6141 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
6142 --
6143 l_balance_type_code          := 'A';
6144 l_segment                     := NULL;
6145 l_ccid                        := NULL;
6146 l_adr_transaction_coa_id      := NULL;
6147 l_adr_accounting_coa_id       := NULL;
6148 l_adr_flexfield_segment_code  := NULL;
6149 l_adr_flex_value_set_id       := NULL;
6150 l_adr_value_type_code         := NULL;
6151 l_adr_value_combination_id    := NULL;
6152 l_adr_value_segment_code      := NULL;
6153 
6154 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
6155 l_bflow_class_code           := '';    -- 4219869 Business Flow
6156 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
6157 l_budgetary_control_flag     := 'N';
6158 
6159 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
6160 l_bflow_applied_to_amt       := NULL; -- 5132302
6161 l_entered_amt_idx            := NULL;          -- 4262811
6162 l_accted_amt_idx             := NULL;          -- 4262811
6163 l_acc_rev_flag               := NULL;          -- 4262811
6164 l_accrual_line_num           := NULL;          -- 4262811
6165 l_tmp_amt                    := NULL;          -- 4262811
6166 --
6167  
6168 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6169     l_balance_type_code <> 'B' THEN
6170 IF NVL(p_source_38,'
6171 ') <>  'CLEAR_CLEAR' AND 
6172 (NVL(p_source_20,'
6173 ') =  'ACCRUAL' OR 
6174 NVL(p_source_20,'
6175 ') =  'RETROACCRUAL') AND 
6176 (NVL(p_source_39,'
6177 ') =  'CASH' OR 
6178 NVL(p_source_39,'
6179 ') =  'AWT' OR 
6180 NVL(p_source_39,'
6181 ') =  'DISCOUNT') AND 
6182 NVL(p_source_60,'
6183 ') <>  'R'
6184  THEN 
6185 
6186    --
6187    XLA_AE_LINES_PKG.SetNewLine;
6188 
6189    p_balance_type_code          := l_balance_type_code;
6190    -- set the flag so later we will know whether the gain loss line needs to be created
6191    
6192    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6193      p_actual_flag :='A';
6194    END IF;
6195 
6196    --
6197    -- bulk performance
6198    --
6199    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6200                                       p_header_num   => 0); -- 4262811
6201    --
6202    -- set accounting line options
6203    --
6204    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6205            p_natural_side_code          => 'D'
6206          , p_gain_or_loss_flag          => 'N'
6207          , p_gl_transfer_mode_code      => 'S'
6208          , p_acct_entry_type_code       => 'A'
6209          , p_switch_side_flag           => 'Y'
6210          , p_merge_duplicate_code       => 'A'
6211          );
6212    --
6213    l_acc_rev_natural_side_code := 'C';  -- 4262811
6214    -- 
6215    --
6216    -- set accounting line type info
6217    --
6218    xla_ae_lines_pkg.SetAcctLineType
6219       (p_component_type             => l_component_type
6220       ,p_event_type_code            => l_event_type_code
6221       ,p_line_definition_owner_code => l_line_definition_owner_code
6222       ,p_line_definition_code       => l_line_definition_code
6223       ,p_accounting_line_code       => l_component_code
6224       ,p_accounting_line_type_code  => l_component_type_code
6225       ,p_accounting_line_appl_id    => l_component_appl_id
6226       ,p_amb_context_code           => l_amb_context_code
6227       ,p_entity_code                => l_entity_code
6228       ,p_event_class_code           => l_event_class_code);
6229    --
6230    -- set accounting class
6231    --
6232    xla_ae_lines_pkg.SetAcctClass(
6233            p_accounting_class_code  => 'ACCRUAL'
6234          , p_ae_header_id           => l_ae_header_id
6235          );
6236 
6237    --
6238    -- set rounding class
6239    --
6240    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6241                       'ACCRUAL';
6242 
6243    --
6244    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6248    --
6245    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6246    --
6247    -- bulk performance
6249    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6250 
6251    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6252       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6253 
6254    -- 4955764
6255    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6256       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6257 
6258    -- 4458381 Public Sector Enh
6259    
6260    --
6261    -- set accounting attributes for the line type
6262    --
6263    l_entered_amt_idx := 10;
6264    l_accted_amt_idx  := 15;
6265    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
6266    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6267    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
6268    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
6269    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
6270    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
6271    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
6272    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6273    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
6274    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
6275    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
6276    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
6277    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
6278    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6279    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
6280    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
6281    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
6282    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
6283    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
6284    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
6285    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
6286    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
6287    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
6288    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
6289    l_rec_acct_attrs.array_date_value(12)  := p_source_50;
6290    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
6291    l_rec_acct_attrs.array_num_value(13)  := p_source_51;
6292    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
6293    l_rec_acct_attrs.array_char_value(14)  := p_source_52;
6294    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
6295    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
6296    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
6297    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
6298    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
6299    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
6300    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
6301    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
6302    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
6303    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
6304    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
6305    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
6306    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
6307    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
6308    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
6309    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
6310    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
6311    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
6312    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
6313    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
6314 
6315    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6316    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6317 
6318    ---------------------------------------------------------------------------------------------------------------
6319    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6320    ---------------------------------------------------------------------------------------------------------------
6321    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6322 
6323    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6324    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6325 
6326    IF xla_accounting_cache_pkg.GetValueChar
6327          (p_source_code         => 'LEDGER_CATEGORY_CODE'
6328          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6329    AND l_bflow_method_code = 'PRIOR_ENTRY'
6330 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6331    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6332          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6333        )
6334    THEN
6335          xla_ae_lines_pkg.BflowUpgEntry
6336            (p_business_method_code    => l_bflow_method_code
6337            ,p_business_class_code     => l_bflow_class_code
6341 -- No business flow processing for business flow method of NONE.
6338            ,p_balance_type            => l_balance_type_code);
6339    ELSE
6340       NULL;
6342    END IF;
6343 
6344    --
6345    -- call analytical criteria
6346    --
6347    
6348    --
6349    -- call description
6350    --
6351    -- No description or it is inherited.
6352    --
6353    -- call ADRs
6354    -- Bug 4922099
6355    --
6356    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6357         (NVL(l_actual_upg_option, 'N') = 'O') OR
6358         (NVL(l_enc_upg_option, 'N') = 'O')
6359       )
6360    THEN
6361    NULL;
6362    --
6363    --
6364    
6365   l_ccid := AcctDerRule_29(
6366            p_application_id           => p_application_id
6367          , p_ae_header_id             => l_ae_header_id 
6368 , p_source_28 => p_source_28
6369          , x_transaction_coa_id       => l_adr_transaction_coa_id
6370          , x_accounting_coa_id        => l_adr_accounting_coa_id
6371          , x_value_type_code          => l_adr_value_type_code
6372          , p_side                     => 'NA'
6373    );
6374 
6375    xla_ae_lines_pkg.set_ccid(
6376     p_code_combination_id          => l_ccid
6377   , p_value_type_code              => l_adr_value_type_code
6378   , p_transaction_coa_id           => l_adr_transaction_coa_id
6379   , p_accounting_coa_id            => l_adr_accounting_coa_id
6380   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
6381   , p_adr_type_code                => 'S'
6382   , p_component_type               => l_component_type
6383   , p_component_code               => l_component_code
6384   , p_component_type_code          => l_component_type_code
6385   , p_component_appl_id            => l_component_appl_id
6386   , p_amb_context_code             => l_amb_context_code
6387   , p_side                         => 'NA'
6388   );
6389 
6390 
6391    --
6392    --
6393    END IF;
6394    --
6395    -- Bug 4922099
6396    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6397           (NVL(l_enc_upg_option, 'N') = 'O')
6398         ) AND
6399         (l_bflow_method_code = 'PRIOR_ENTRY')
6400       )
6401    THEN
6402       IF
6403       --
6404       1 = 2
6405       --
6406       THEN
6407       xla_accounting_err_pkg.build_message
6408                                     (p_appli_s_name            => 'XLA'
6409                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6410                                     ,p_token_1                 => 'LINE_NUMBER'
6411                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
6412                                     ,p_token_2                 => 'LINE_TYPE_NAME'
6413                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
6414                                                                              l_component_type
6415                                                                             ,l_component_code
6416                                                                             ,l_component_type_code
6417                                                                             ,l_component_appl_id
6418                                                                             ,l_amb_context_code
6419                                                                             ,l_entity_code
6420                                                                             ,l_event_class_code
6421                                                                            )
6422                                     ,p_token_3                 => 'OWNER'
6423                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
6424                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
6425                                                                           ,p_lookup_code    => l_component_type_code
6426                                                                          )
6427                                     ,p_token_4                 => 'PRODUCT_NAME'
6428                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6429                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6430                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6431                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6432                                     ,p_ae_header_id            =>  NULL
6433                                        );
6434 
6435         IF (C_LEVEL_ERROR>= g_log_level) THEN
6436                  trace
6437                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6438                       ,p_level    => C_LEVEL_ERROR
6439                       ,p_module   => l_log_module);
6440         END IF;
6441       END IF;
6442    END IF;
6443    --
6444    --
6445    ------------------------------------------------------------------------------------------------
6446    -- 4219869 Business Flow
6447    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6448    -- Prior Entry.  Currently, the following code is always generated.
6449    ------------------------------------------------------------------------------------------------
6453    -- 4219869 Business Flow
6450    XLA_AE_LINES_PKG.ValidateCurrentLine;
6451 
6452    ------------------------------------------------------------------------------------
6454    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6455    ------------------------------------------------------------------------------------
6456    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6457 
6458    ----------------------------------------------------------------------------------
6459    -- 4219869 Business Flow
6460    -- Update journal entry status -- Need to generate this within IF <condition>
6461    ----------------------------------------------------------------------------------
6462    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6463          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6464          ,p_balance_type_code => l_balance_type_code
6465          );
6466 
6467    -------------------------------------------------------------------------------------------
6468    -- 4262811 - Generate the Accrual Reversal lines
6469    -------------------------------------------------------------------------------------------
6470    BEGIN
6471       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6472                               (g_array_event(p_event_id).array_value_num('header_index'));
6473       IF l_acc_rev_flag IS NULL THEN
6474          l_acc_rev_flag := 'N';
6475       END IF;
6476    EXCEPTION
6477       WHEN OTHERS THEN
6478          l_acc_rev_flag := 'N';
6479    END;
6480    --
6481    IF (l_acc_rev_flag = 'Y') THEN
6482 
6483        -- 4645092  ------------------------------------------------------------------------------
6484        -- To allow MPA report to determine if it should generate report process
6485        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6486        ------------------------------------------------------------------------------------------
6487 
6488        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6489        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6490    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
6491    -- call ADRs
6492    -- Bug 4922099
6493    --
6494    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6495         (NVL(l_actual_upg_option, 'N') = 'O') OR
6496         (NVL(l_enc_upg_option, 'N') = 'O')
6497       )
6498    THEN
6499    NULL;
6500    --
6501    --
6502    
6503   l_ccid := AcctDerRule_29(
6504            p_application_id           => p_application_id
6505          , p_ae_header_id             => l_ae_header_id 
6506 , p_source_28 => p_source_28
6507          , x_transaction_coa_id       => l_adr_transaction_coa_id
6508          , x_accounting_coa_id        => l_adr_accounting_coa_id
6509          , x_value_type_code          => l_adr_value_type_code
6510          , p_side                     => 'NA'
6511    );
6512 
6513    xla_ae_lines_pkg.set_ccid(
6514     p_code_combination_id          => l_ccid
6515   , p_value_type_code              => l_adr_value_type_code
6516   , p_transaction_coa_id           => l_adr_transaction_coa_id
6517   , p_accounting_coa_id            => l_adr_accounting_coa_id
6518   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
6519   , p_adr_type_code                => 'S'
6520   , p_component_type               => l_component_type
6521   , p_component_code               => l_component_code
6522   , p_component_type_code          => l_component_type_code
6523   , p_component_appl_id            => l_component_appl_id
6524   , p_amb_context_code             => l_amb_context_code
6525   , p_side                         => 'NA'
6526   );
6527 
6528 
6529    --
6530    --
6531    END IF;
6532 
6533        --
6534        -- Update the line information that should be overwritten
6535        --
6536        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6537                                          p_header_num   => 1);
6538        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
6539 
6540        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6541 
6542        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
6543           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6544        END IF;
6545 
6546       --
6547       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6548       --
6549       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6550           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
6551       ELSE
6552           ---------------------------------------------------------------------------------------------------
6553           -- 4262811a Switch Sign
6554           ---------------------------------------------------------------------------------------------------
6555           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
6556           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6557                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6558           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6562                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6559                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6560           -- 5132302
6561           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6563 
6564       END IF;
6565 
6566       -- 4955764
6567       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6568       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6569 
6570 
6571       XLA_AE_LINES_PKG.ValidateCurrentLine;
6572       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6573 
6574       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6575                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6576                ,p_balance_type_code => l_balance_type_code);
6577 
6578    END IF;
6579 
6580    -----------------------------------------------------------------------------------------
6581    -- 4262811 Multiperiod Accounting
6582    -----------------------------------------------------------------------------------------
6583      -- No MPA option is assigned.
6584 
6585 
6586 END IF;
6587 END IF;
6588 --
6589 
6590 --
6591 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6592    trace
6593       (p_msg      => 'END of AcctLineType_39'
6594       ,p_level    => C_LEVEL_PROCEDURE
6595       ,p_module   => l_log_module);
6596 END IF;
6597 --
6598 EXCEPTION
6599   WHEN xla_exceptions_pkg.application_exception THEN
6600       RAISE;
6601   WHEN OTHERS THEN
6602        xla_exceptions_pkg.raise_message
6603            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_39');
6604 END AcctLineType_39;
6605 --
6606 
6607 ---------------------------------------
6608 --
6609 -- PRIVATE FUNCTION
6610 --         AcctLineType_40
6611 --
6612 ---------------------------------------
6613 PROCEDURE AcctLineType_40 (
6614   p_application_id        IN NUMBER
6615  ,p_event_id              IN NUMBER
6616  ,p_calculate_acctd_flag  IN VARCHAR2
6617  ,p_calculate_g_l_flag    IN VARCHAR2
6618  ,p_actual_flag           IN OUT VARCHAR2
6619  ,p_balance_type_code     OUT VARCHAR2
6620  ,p_gain_or_loss_ref      OUT VARCHAR2
6621  
6622 --Payment Distribution (Payment Rate) Ledger Amount
6623  , p_source_9            IN NUMBER
6624 --Invoice Distribution Type
6625  , p_source_20            IN VARCHAR2
6626  , p_source_20_meaning    IN VARCHAR2
6627 --Purchase Order Charge Account
6628  , p_source_28            IN NUMBER
6629 --When to Account for Payment Option
6630  , p_source_38            IN VARCHAR2
6631 --Payment Distribution Type
6632  , p_source_39            IN VARCHAR2
6633  , p_source_39_meaning    IN VARCHAR2
6634 --Accounting Reversal Indicator
6635  , p_source_40            IN VARCHAR2
6636 --Payment Distribution Amount
6637  , p_source_41            IN NUMBER
6638 --Business Flow Accounts Payable Application Identifier
6639  , p_source_42            IN NUMBER
6640 --Payment Distribution Identifier
6641  , p_source_47            IN NUMBER
6642 --Distribution Link Type
6643  , p_source_48            IN VARCHAR2
6644 --Payment Currency Code
6645  , p_source_49            IN VARCHAR2
6646 --Purchase Order Exchange Rate Date
6647  , p_source_50            IN DATE
6648 --Purchase Order Exchange Rate
6649  , p_source_51            IN NUMBER
6650 --Purchase Order Exchange Rate Type
6651  , p_source_52            IN VARCHAR2
6652 --Override Accounted Amount Indicator
6653  , p_source_53            IN VARCHAR2
6654  , p_source_53_meaning    IN VARCHAR2
6655 --Payment Supplier Identifier
6656  , p_source_54            IN NUMBER
6657 --Payment Supplier Site Identifier
6658  , p_source_55            IN NUMBER
6659 --Third Party Type
6660  , p_source_56            IN VARCHAR2
6661 --Payment Distribution Reversed Identifier
6662  , p_source_57            IN NUMBER
6663 --Invoice Distribution Tax Line Identifier
6664  , p_source_58            IN NUMBER
6665 --Invoice Distribution Summary Tax Line Identifier
6666  , p_source_59            IN NUMBER
6667 --Payment Type
6668  , p_source_60            IN VARCHAR2
6669  , p_source_60_meaning    IN VARCHAR2
6670 --Business Flow Invoice Distribution Type
6671  , p_source_62            IN VARCHAR2
6672 --Business Flow Invoice Entity Code
6673  , p_source_63            IN VARCHAR2
6674 --Business Flow Invoice Distribution Identifier
6675  , p_source_64            IN NUMBER
6676 --Business Flow Invoice Identifier
6677  , p_source_65            IN NUMBER
6678 --Invoice Distribution Tax Distribution Identifier from Tax
6679  , p_source_66            IN NUMBER
6680 )
6681 IS
6682 
6683 l_component_type              VARCHAR2(80);
6684 l_component_code              VARCHAR2(30);
6685 l_component_type_code         VARCHAR2(1);
6686 l_component_appl_id           INTEGER;
6687 l_amb_context_code            VARCHAR2(30);
6688 l_entity_code                 VARCHAR2(30);
6689 l_event_class_code            VARCHAR2(30);
6690 l_ae_header_id                NUMBER;
6691 l_event_type_code             VARCHAR2(30);
6692 l_line_definition_code        VARCHAR2(30);
6693 l_line_definition_owner_code  VARCHAR2(1);
6694 --
6695 -- adr variables
6696 l_segment                     VARCHAR2(30);
6697 l_ccid                        NUMBER;
6698 l_adr_transaction_coa_id      NUMBER;
6699 l_adr_accounting_coa_id       NUMBER;
6703 l_adr_value_combination_id    NUMBER;
6700 l_adr_flexfield_segment_code  VARCHAR2(30);
6701 l_adr_flex_value_set_id       NUMBER;
6702 l_adr_value_type_code         VARCHAR2(30);
6704 l_adr_value_segment_code      VARCHAR2(30);
6705 
6706 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
6707 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
6708 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
6709 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
6710 
6711 -- 4262811 Variables ------------------------------------------------------------------------------------------
6712 l_entered_amt_idx             NUMBER;
6713 l_accted_amt_idx              NUMBER;
6714 l_acc_rev_flag                VARCHAR2(1);
6715 l_accrual_line_num            NUMBER;
6716 l_tmp_amt                     NUMBER;
6717 l_acc_rev_natural_side_code   VARCHAR2(1);
6718 
6719 l_num_entries                 NUMBER;
6720 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
6721 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
6722 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
6723 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
6724 l_recog_line_1                NUMBER;
6725 l_recog_line_2                NUMBER;
6726 
6727 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
6728 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
6729 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
6730 
6731 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6732 
6733 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
6734 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
6735 
6736 ---------------------------------------------------------------------------------------------------------------
6737 
6738 
6739 --
6740 -- bulk performance
6741 --
6742 l_balance_type_code           VARCHAR2(1);
6743 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
6744 l_log_module                  VARCHAR2(240);
6745 
6746 --
6747 -- Upgrade strategy
6748 --
6749 l_actual_upg_option           VARCHAR2(1);
6750 l_enc_upg_option           VARCHAR2(1);
6751 
6752 --
6753 BEGIN
6754 --
6755 IF g_log_enabled THEN
6756       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
6757 END IF;
6758 --
6759 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6760 
6761       trace
6762          (p_msg      => 'BEGIN of AcctLineType_40'
6763          ,p_level    => C_LEVEL_PROCEDURE
6764          ,p_module   => l_log_module);
6765 
6766 END IF;
6767 --
6768 l_component_type             := 'AMB_JLT';
6769 l_component_code             := 'AP_ACCRUAL_REF';
6770 l_component_type_code        := 'S';
6771 l_component_appl_id          :=  200;
6772 l_amb_context_code           := 'DEFAULT';
6773 l_entity_code                := 'AP_PAYMENTS';
6774 l_event_class_code           := 'REFUNDS';
6775 l_event_type_code            := 'REFUNDS_ALL';
6776 l_line_definition_owner_code := 'S';
6777 l_line_definition_code       := 'CASH_REFUNDS_ALL';
6778 --
6779 l_balance_type_code          := 'A';
6780 l_segment                     := NULL;
6781 l_ccid                        := NULL;
6782 l_adr_transaction_coa_id      := NULL;
6783 l_adr_accounting_coa_id       := NULL;
6784 l_adr_flexfield_segment_code  := NULL;
6785 l_adr_flex_value_set_id       := NULL;
6786 l_adr_value_type_code         := NULL;
6787 l_adr_value_combination_id    := NULL;
6788 l_adr_value_segment_code      := NULL;
6789 
6790 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
6791 l_bflow_class_code           := '';    -- 4219869 Business Flow
6792 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
6793 l_budgetary_control_flag     := 'N';
6794 
6795 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
6796 l_bflow_applied_to_amt       := NULL; -- 5132302
6797 l_entered_amt_idx            := NULL;          -- 4262811
6798 l_accted_amt_idx             := NULL;          -- 4262811
6799 l_acc_rev_flag               := NULL;          -- 4262811
6800 l_accrual_line_num           := NULL;          -- 4262811
6801 l_tmp_amt                    := NULL;          -- 4262811
6802 --
6803  
6804 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6805     l_balance_type_code <> 'B' THEN
6806 IF NVL(p_source_38,'
6807 ') <>  'CLEAR_CLEAR' AND 
6808 (NVL(p_source_20,'
6809 ') =  'ACCRUAL' OR 
6810 NVL(p_source_20,'
6811 ') =  'RETROACCRUAL') AND 
6812 (NVL(p_source_39,'
6813 ') =  'CASH' OR 
6814 NVL(p_source_39,'
6815 ') =  'DISCOUNT') AND 
6816 NVL(p_source_60,'
6817 ') =  'R'
6818  THEN 
6819 
6820    --
6821    XLA_AE_LINES_PKG.SetNewLine;
6822 
6823    p_balance_type_code          := l_balance_type_code;
6824    -- set the flag so later we will know whether the gain loss line needs to be created
6825    
6826    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6827      p_actual_flag :='A';
6828    END IF;
6829 
6830    --
6831    -- bulk performance
6832    --
6833    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6837    --
6834                                       p_header_num   => 0); -- 4262811
6835    --
6836    -- set accounting line options
6838    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6839            p_natural_side_code          => 'D'
6840          , p_gain_or_loss_flag          => 'N'
6841          , p_gl_transfer_mode_code      => 'S'
6842          , p_acct_entry_type_code       => 'A'
6843          , p_switch_side_flag           => 'Y'
6844          , p_merge_duplicate_code       => 'A'
6845          );
6846    --
6847    l_acc_rev_natural_side_code := 'C';  -- 4262811
6848    -- 
6849    --
6850    -- set accounting line type info
6851    --
6852    xla_ae_lines_pkg.SetAcctLineType
6853       (p_component_type             => l_component_type
6854       ,p_event_type_code            => l_event_type_code
6855       ,p_line_definition_owner_code => l_line_definition_owner_code
6856       ,p_line_definition_code       => l_line_definition_code
6857       ,p_accounting_line_code       => l_component_code
6858       ,p_accounting_line_type_code  => l_component_type_code
6859       ,p_accounting_line_appl_id    => l_component_appl_id
6860       ,p_amb_context_code           => l_amb_context_code
6861       ,p_entity_code                => l_entity_code
6862       ,p_event_class_code           => l_event_class_code);
6863    --
6864    -- set accounting class
6865    --
6866    xla_ae_lines_pkg.SetAcctClass(
6867            p_accounting_class_code  => 'ACCRUAL'
6868          , p_ae_header_id           => l_ae_header_id
6869          );
6870 
6871    --
6872    -- set rounding class
6873    --
6874    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6875                       'ACCRUAL';
6876 
6877    --
6878    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6879    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6880    --
6881    -- bulk performance
6882    --
6883    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6884 
6885    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6886       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6887 
6888    -- 4955764
6889    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6890       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6891 
6892    -- 4458381 Public Sector Enh
6893    
6894    --
6895    -- set accounting attributes for the line type
6896    --
6897    l_entered_amt_idx := 9;
6898    l_accted_amt_idx  := 14;
6899    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
6900    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6901    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
6902    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
6903    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
6904    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6905    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
6906    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
6907    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
6908    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
6909    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
6910    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6911    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
6912    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
6913    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
6914    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
6915    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
6916    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
6917    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
6918    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
6919    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
6920    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
6921    l_rec_acct_attrs.array_date_value(11)  := p_source_50;
6922    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
6923    l_rec_acct_attrs.array_num_value(12)  := p_source_51;
6924    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
6925    l_rec_acct_attrs.array_char_value(13)  := p_source_52;
6926    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
6927    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
6928    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
6929    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
6930    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
6931    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
6932    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
6933    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
6934    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
6935    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
6936    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
6937    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
6938    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
6939    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
6943    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
6940    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
6941    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
6942    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
6944    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
6945    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
6946 
6947    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6948    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6949 
6950    ---------------------------------------------------------------------------------------------------------------
6951    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6952    ---------------------------------------------------------------------------------------------------------------
6953    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6954 
6955    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6956    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6957 
6958    IF xla_accounting_cache_pkg.GetValueChar
6959          (p_source_code         => 'LEDGER_CATEGORY_CODE'
6960          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6961    AND l_bflow_method_code = 'PRIOR_ENTRY'
6962 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6963    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6964          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6965        )
6966    THEN
6967          xla_ae_lines_pkg.BflowUpgEntry
6968            (p_business_method_code    => l_bflow_method_code
6969            ,p_business_class_code     => l_bflow_class_code
6970            ,p_balance_type            => l_balance_type_code);
6971    ELSE
6972       NULL;
6973 -- No business flow processing for business flow method of NONE.
6974    END IF;
6975 
6976    --
6977    -- call analytical criteria
6978    --
6979    
6980    --
6981    -- call description
6982    --
6983    -- No description or it is inherited.
6984    --
6985    -- call ADRs
6986    -- Bug 4922099
6987    --
6988    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6989         (NVL(l_actual_upg_option, 'N') = 'O') OR
6990         (NVL(l_enc_upg_option, 'N') = 'O')
6991       )
6992    THEN
6993    NULL;
6994    --
6995    --
6996    
6997   l_ccid := AcctDerRule_29(
6998            p_application_id           => p_application_id
6999          , p_ae_header_id             => l_ae_header_id 
7000 , p_source_28 => p_source_28
7001          , x_transaction_coa_id       => l_adr_transaction_coa_id
7002          , x_accounting_coa_id        => l_adr_accounting_coa_id
7003          , x_value_type_code          => l_adr_value_type_code
7004          , p_side                     => 'NA'
7005    );
7006 
7007    xla_ae_lines_pkg.set_ccid(
7008     p_code_combination_id          => l_ccid
7009   , p_value_type_code              => l_adr_value_type_code
7010   , p_transaction_coa_id           => l_adr_transaction_coa_id
7011   , p_accounting_coa_id            => l_adr_accounting_coa_id
7012   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
7013   , p_adr_type_code                => 'S'
7014   , p_component_type               => l_component_type
7015   , p_component_code               => l_component_code
7016   , p_component_type_code          => l_component_type_code
7017   , p_component_appl_id            => l_component_appl_id
7018   , p_amb_context_code             => l_amb_context_code
7019   , p_side                         => 'NA'
7020   );
7021 
7022 
7023    --
7024    --
7025    END IF;
7026    --
7027    -- Bug 4922099
7028    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7029           (NVL(l_enc_upg_option, 'N') = 'O')
7030         ) AND
7031         (l_bflow_method_code = 'PRIOR_ENTRY')
7032       )
7033    THEN
7034       IF
7035       --
7036       1 = 2
7037       --
7038       THEN
7039       xla_accounting_err_pkg.build_message
7040                                     (p_appli_s_name            => 'XLA'
7041                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7042                                     ,p_token_1                 => 'LINE_NUMBER'
7043                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7044                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7045                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7046                                                                              l_component_type
7047                                                                             ,l_component_code
7048                                                                             ,l_component_type_code
7049                                                                             ,l_component_appl_id
7050                                                                             ,l_amb_context_code
7051                                                                             ,l_entity_code
7052                                                                             ,l_event_class_code
7056                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7053                                                                            )
7054                                     ,p_token_3                 => 'OWNER'
7055                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7057                                                                           ,p_lookup_code    => l_component_type_code
7058                                                                          )
7059                                     ,p_token_4                 => 'PRODUCT_NAME'
7060                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7061                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7062                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7063                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7064                                     ,p_ae_header_id            =>  NULL
7065                                        );
7066 
7067         IF (C_LEVEL_ERROR>= g_log_level) THEN
7068                  trace
7069                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7070                       ,p_level    => C_LEVEL_ERROR
7071                       ,p_module   => l_log_module);
7072         END IF;
7073       END IF;
7074    END IF;
7075    --
7076    --
7077    ------------------------------------------------------------------------------------------------
7078    -- 4219869 Business Flow
7079    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7080    -- Prior Entry.  Currently, the following code is always generated.
7081    ------------------------------------------------------------------------------------------------
7082    XLA_AE_LINES_PKG.ValidateCurrentLine;
7083 
7084    ------------------------------------------------------------------------------------
7085    -- 4219869 Business Flow
7086    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7087    ------------------------------------------------------------------------------------
7088    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7089 
7090    ----------------------------------------------------------------------------------
7091    -- 4219869 Business Flow
7092    -- Update journal entry status -- Need to generate this within IF <condition>
7093    ----------------------------------------------------------------------------------
7094    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7095          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7096          ,p_balance_type_code => l_balance_type_code
7097          );
7098 
7099    -------------------------------------------------------------------------------------------
7100    -- 4262811 - Generate the Accrual Reversal lines
7101    -------------------------------------------------------------------------------------------
7102    BEGIN
7103       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7104                               (g_array_event(p_event_id).array_value_num('header_index'));
7105       IF l_acc_rev_flag IS NULL THEN
7106          l_acc_rev_flag := 'N';
7107       END IF;
7108    EXCEPTION
7109       WHEN OTHERS THEN
7110          l_acc_rev_flag := 'N';
7111    END;
7112    --
7113    IF (l_acc_rev_flag = 'Y') THEN
7114 
7115        -- 4645092  ------------------------------------------------------------------------------
7116        -- To allow MPA report to determine if it should generate report process
7117        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7118        ------------------------------------------------------------------------------------------
7119 
7120        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7121        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7122    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7123    -- call ADRs
7124    -- Bug 4922099
7125    --
7126    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7127         (NVL(l_actual_upg_option, 'N') = 'O') OR
7128         (NVL(l_enc_upg_option, 'N') = 'O')
7129       )
7130    THEN
7131    NULL;
7132    --
7133    --
7134    
7135   l_ccid := AcctDerRule_29(
7136            p_application_id           => p_application_id
7137          , p_ae_header_id             => l_ae_header_id 
7138 , p_source_28 => p_source_28
7139          , x_transaction_coa_id       => l_adr_transaction_coa_id
7140          , x_accounting_coa_id        => l_adr_accounting_coa_id
7141          , x_value_type_code          => l_adr_value_type_code
7142          , p_side                     => 'NA'
7143    );
7144 
7145    xla_ae_lines_pkg.set_ccid(
7146     p_code_combination_id          => l_ccid
7147   , p_value_type_code              => l_adr_value_type_code
7148   , p_transaction_coa_id           => l_adr_transaction_coa_id
7149   , p_accounting_coa_id            => l_adr_accounting_coa_id
7150   , p_adr_code                     => 'AP_PO_CHARGE_ACCT'
7151   , p_adr_type_code                => 'S'
7152   , p_component_type               => l_component_type
7153   , p_component_code               => l_component_code
7154   , p_component_type_code          => l_component_type_code
7155   , p_component_appl_id            => l_component_appl_id
7159 
7156   , p_amb_context_code             => l_amb_context_code
7157   , p_side                         => 'NA'
7158   );
7160 
7161    --
7162    --
7163    END IF;
7164 
7165        --
7166        -- Update the line information that should be overwritten
7167        --
7168        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7169                                          p_header_num   => 1);
7170        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
7171 
7172        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7173 
7174        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
7175           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7176        END IF;
7177 
7178       --
7179       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7180       --
7181       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7182           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
7183       ELSE
7184           ---------------------------------------------------------------------------------------------------
7185           -- 4262811a Switch Sign
7186           ---------------------------------------------------------------------------------------------------
7187           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
7188           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7189                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7190           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7191                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7192           -- 5132302
7193           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7194                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7195 
7196       END IF;
7197 
7198       -- 4955764
7199       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7200       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7201 
7202 
7203       XLA_AE_LINES_PKG.ValidateCurrentLine;
7204       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7205 
7206       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7207                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7208                ,p_balance_type_code => l_balance_type_code);
7209 
7210    END IF;
7211 
7212    -----------------------------------------------------------------------------------------
7213    -- 4262811 Multiperiod Accounting
7214    -----------------------------------------------------------------------------------------
7215      -- No MPA option is assigned.
7216 
7217 
7218 END IF;
7219 END IF;
7220 --
7221 
7222 --
7223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7224    trace
7225       (p_msg      => 'END of AcctLineType_40'
7226       ,p_level    => C_LEVEL_PROCEDURE
7227       ,p_module   => l_log_module);
7228 END IF;
7229 --
7230 EXCEPTION
7231   WHEN xla_exceptions_pkg.application_exception THEN
7232       RAISE;
7233   WHEN OTHERS THEN
7234        xla_exceptions_pkg.raise_message
7235            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_40');
7236 END AcctLineType_40;
7237 --
7238 
7239 ---------------------------------------
7240 --
7241 -- PRIVATE FUNCTION
7242 --         AcctLineType_41
7243 --
7244 ---------------------------------------
7245 PROCEDURE AcctLineType_41 (
7246   p_application_id        IN NUMBER
7247  ,p_event_id              IN NUMBER
7248  ,p_calculate_acctd_flag  IN VARCHAR2
7249  ,p_calculate_g_l_flag    IN VARCHAR2
7250  ,p_actual_flag           IN OUT VARCHAR2
7251  ,p_balance_type_code     OUT VARCHAR2
7252  ,p_gain_or_loss_ref      OUT VARCHAR2
7253  
7254 --Invoice Distribution Account
7255  , p_source_17            IN NUMBER
7256 --When to Account for Payment Option
7257  , p_source_38            IN VARCHAR2
7258 --Accounting Reversal Indicator
7259  , p_source_40            IN VARCHAR2
7260 --Business Flow Accounts Payable Application Identifier
7261  , p_source_42            IN NUMBER
7262 --Distribution Link Type
7263  , p_source_48            IN VARCHAR2
7264 --Purchase Order Exchange Rate Date
7265  , p_source_50            IN DATE
7266 --Purchase Order Exchange Rate
7267  , p_source_51            IN NUMBER
7268 --Purchase Order Exchange Rate Type
7269  , p_source_52            IN VARCHAR2
7270 --Override Accounted Amount Indicator
7271  , p_source_53            IN VARCHAR2
7272  , p_source_53_meaning    IN VARCHAR2
7273 --Third Party Type
7274  , p_source_56            IN VARCHAR2
7275 --Invoice Distribution Tax Line Identifier
7276  , p_source_58            IN NUMBER
7277 --Invoice Distribution Summary Tax Line Identifier
7278  , p_source_59            IN NUMBER
7279 --Invoice Distribution Tax Distribution Identifier from Tax
7280  , p_source_66            IN NUMBER
7281 --Prepayment Distribution Type
7282  , p_source_67            IN VARCHAR2
7283 --Recipient Invoice Distribution Type
7284  , p_source_68            IN VARCHAR2
7285  , p_source_68_meaning    IN VARCHAR2
7286 --Prepayment Application Distribution Identifier
7290 --Business Flow Prepayment Invoice Distribution Type
7287  , p_source_71            IN NUMBER
7288 --Invoice Identifier
7289  , p_source_72            IN NUMBER
7291  , p_source_73            IN VARCHAR2
7292 --Business Flow Prepayment Invoice Entity Code
7293  , p_source_74            IN VARCHAR2
7294 --Business Flow Prepayment Invoice Distribution Identifier
7295  , p_source_75            IN NUMBER
7296 --Business Flow Prepayment Invoice Identifier
7297  , p_source_76            IN NUMBER
7298 --Upgrade Encumbrance Credit Account Class
7299  , p_source_77            IN VARCHAR2
7300 --Payables Encumbrance Upgrade Credit Account
7301  , p_source_78            IN NUMBER
7302 --Payables Encumbrance Upgrade Credit Amount
7303  , p_source_79            IN NUMBER
7304 --Invoice Currency Code
7305  , p_source_80            IN VARCHAR2
7306 --Payables Encumbrance Upgrade Credit Base Amount
7307  , p_source_81            IN NUMBER
7308 --Upgrade Encumbrance Debit Account Class
7309  , p_source_82            IN VARCHAR2
7310 --Payables Encumbrance Upgrade Debit Account
7311  , p_source_83            IN NUMBER
7312 --Payables Encumbrance Upgrade Debit Amount
7313  , p_source_84            IN NUMBER
7314 --Payables Encumbrance Upgrade Debit Base Amount
7315  , p_source_85            IN NUMBER
7316 --Payables Encumbrance Upgrade Option
7317  , p_source_86            IN VARCHAR2
7318 --Prepayment Distribution Amount
7319  , p_source_87            IN NUMBER
7320 --Prepayment Clearing Currency Code
7321  , p_source_88            IN VARCHAR2
7322 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
7323  , p_source_89            IN NUMBER
7324 --Deferred Accounting End Date
7325  , p_source_90            IN DATE
7326 --Deferred Accounting Option
7327  , p_source_91            IN VARCHAR2
7328 --Deferred Accounting Start Date
7329  , p_source_92            IN DATE
7330 --Invoice Supplier Identifier
7331  , p_source_93            IN NUMBER
7332 --Invoice Supplier Site Identifier
7333  , p_source_94            IN NUMBER
7334 --Identifier of the Prepayment Application Reversed
7335  , p_source_95            IN NUMBER
7336 --Payables Upgrade Credit Encumbrance Type Identifier
7337  , p_source_96            IN NUMBER
7338 --Payables Upgrade Debit Encumbrance Type Identifier
7339  , p_source_97            IN NUMBER
7340 )
7341 IS
7342 
7343 l_component_type              VARCHAR2(80);
7344 l_component_code              VARCHAR2(30);
7345 l_component_type_code         VARCHAR2(1);
7346 l_component_appl_id           INTEGER;
7347 l_amb_context_code            VARCHAR2(30);
7348 l_entity_code                 VARCHAR2(30);
7349 l_event_class_code            VARCHAR2(30);
7350 l_ae_header_id                NUMBER;
7351 l_event_type_code             VARCHAR2(30);
7352 l_line_definition_code        VARCHAR2(30);
7353 l_line_definition_owner_code  VARCHAR2(1);
7354 --
7355 -- adr variables
7356 l_segment                     VARCHAR2(30);
7357 l_ccid                        NUMBER;
7358 l_adr_transaction_coa_id      NUMBER;
7359 l_adr_accounting_coa_id       NUMBER;
7360 l_adr_flexfield_segment_code  VARCHAR2(30);
7361 l_adr_flex_value_set_id       NUMBER;
7362 l_adr_value_type_code         VARCHAR2(30);
7363 l_adr_value_combination_id    NUMBER;
7364 l_adr_value_segment_code      VARCHAR2(30);
7365 
7366 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
7367 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
7368 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
7369 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
7370 
7371 -- 4262811 Variables ------------------------------------------------------------------------------------------
7372 l_entered_amt_idx             NUMBER;
7373 l_accted_amt_idx              NUMBER;
7374 l_acc_rev_flag                VARCHAR2(1);
7375 l_accrual_line_num            NUMBER;
7376 l_tmp_amt                     NUMBER;
7377 l_acc_rev_natural_side_code   VARCHAR2(1);
7378 
7379 l_num_entries                 NUMBER;
7380 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
7381 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
7382 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
7383 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
7384 l_recog_line_1                NUMBER;
7385 l_recog_line_2                NUMBER;
7386 
7387 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
7388 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
7389 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
7390 
7391 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7392 
7393 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
7394 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
7395 
7396 ---------------------------------------------------------------------------------------------------------------
7397 
7398 
7399 --
7400 -- bulk performance
7401 --
7402 l_balance_type_code           VARCHAR2(1);
7403 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
7404 l_log_module                  VARCHAR2(240);
7405 
7406 --
7407 -- Upgrade strategy
7408 --
7409 l_actual_upg_option           VARCHAR2(1);
7410 l_enc_upg_option           VARCHAR2(1);
7411 
7412 --
7413 BEGIN
7414 --
7415 IF g_log_enabled THEN
7416       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
7420 
7417 END IF;
7418 --
7419 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7421       trace
7422          (p_msg      => 'BEGIN of AcctLineType_41'
7423          ,p_level    => C_LEVEL_PROCEDURE
7424          ,p_module   => l_log_module);
7425 
7426 END IF;
7427 --
7428 l_component_type             := 'AMB_JLT';
7429 l_component_code             := 'AP_ACCR_PREPAY_CLR_RATE_APP';
7430 l_component_type_code        := 'S';
7431 l_component_appl_id          :=  200;
7432 l_amb_context_code           := 'DEFAULT';
7433 l_entity_code                := 'AP_INVOICES';
7434 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
7435 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
7436 l_line_definition_owner_code := 'S';
7437 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
7438 --
7439 l_balance_type_code          := 'A';
7440 l_segment                     := NULL;
7441 l_ccid                        := NULL;
7442 l_adr_transaction_coa_id      := NULL;
7443 l_adr_accounting_coa_id       := NULL;
7444 l_adr_flexfield_segment_code  := NULL;
7445 l_adr_flex_value_set_id       := NULL;
7446 l_adr_value_type_code         := NULL;
7447 l_adr_value_combination_id    := NULL;
7448 l_adr_value_segment_code      := NULL;
7449 
7450 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
7451 l_bflow_class_code           := '';    -- 4219869 Business Flow
7452 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
7453 l_budgetary_control_flag     := 'N';
7454 
7455 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
7456 l_bflow_applied_to_amt       := NULL; -- 5132302
7457 l_entered_amt_idx            := NULL;          -- 4262811
7458 l_accted_amt_idx             := NULL;          -- 4262811
7459 l_acc_rev_flag               := NULL;          -- 4262811
7460 l_accrual_line_num           := NULL;          -- 4262811
7461 l_tmp_amt                    := NULL;          -- 4262811
7462 --
7463  
7464 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7465     l_balance_type_code <> 'B' THEN
7466 IF NVL(p_source_38,'
7467 ') =  'CLEAR_CLEAR' AND 
7468 (NVL(p_source_67,'
7469 ') =  'PREPAY APPL' OR 
7470 NVL(p_source_67,'
7471 ') =  'PREPAY APPL NONREC TAX' OR 
7472 NVL(p_source_67,'
7473 ') =  'PREPAY APPL REC TAX') AND 
7474 (NVL(p_source_68,'
7475 ') =  'ACCRUAL' OR 
7476 NVL(p_source_68,'
7477 ') =  'RETROACCRUAL')
7478  THEN 
7479 
7480    --
7481    XLA_AE_LINES_PKG.SetNewLine;
7482 
7483    p_balance_type_code          := l_balance_type_code;
7484    -- set the flag so later we will know whether the gain loss line needs to be created
7485    
7486    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7487      p_actual_flag :='A';
7488    END IF;
7489 
7490    --
7491    -- bulk performance
7492    --
7493    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7494                                       p_header_num   => 0); -- 4262811
7495    --
7496    -- set accounting line options
7497    --
7498    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7499            p_natural_side_code          => 'C'
7500          , p_gain_or_loss_flag          => 'N'
7501          , p_gl_transfer_mode_code      => 'S'
7502          , p_acct_entry_type_code       => 'A'
7503          , p_switch_side_flag           => 'Y'
7504          , p_merge_duplicate_code       => 'A'
7505          );
7506    --
7507    l_acc_rev_natural_side_code := 'D';  -- 4262811
7508    -- 
7509    --
7510    -- set accounting line type info
7511    --
7512    xla_ae_lines_pkg.SetAcctLineType
7513       (p_component_type             => l_component_type
7514       ,p_event_type_code            => l_event_type_code
7515       ,p_line_definition_owner_code => l_line_definition_owner_code
7516       ,p_line_definition_code       => l_line_definition_code
7517       ,p_accounting_line_code       => l_component_code
7518       ,p_accounting_line_type_code  => l_component_type_code
7519       ,p_accounting_line_appl_id    => l_component_appl_id
7520       ,p_amb_context_code           => l_amb_context_code
7521       ,p_entity_code                => l_entity_code
7522       ,p_event_class_code           => l_event_class_code);
7523    --
7524    -- set accounting class
7525    --
7526    xla_ae_lines_pkg.SetAcctClass(
7527            p_accounting_class_code  => 'ACCRUAL'
7528          , p_ae_header_id           => l_ae_header_id
7529          );
7530 
7531    --
7532    -- set rounding class
7533    --
7534    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7535                       'ACCRUAL';
7536 
7537    --
7538    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7539    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7540    --
7541    -- bulk performance
7542    --
7543    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7544 
7545    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7546       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7547 
7548    -- 4955764
7549    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7553    
7550       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7551 
7552    -- 4458381 Public Sector Enh
7554    --
7555    -- set accounting attributes for the line type
7556    --
7557    l_entered_amt_idx := 25;
7558    l_accted_amt_idx  := 30;
7559    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
7560    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7561    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
7562    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7563    l_rec_acct_attrs.array_num_value(2)  := 
7564 xla_ae_sources_pkg.GetSystemSourceNum(
7565    p_source_code           => 'XLA_EVENT_APPL_ID'
7566  , p_source_type_code      => 'Y'
7567  , p_source_application_id =>  602
7568 );
7569    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7570    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
7571    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7572    l_rec_acct_attrs.array_char_value(4)  := 
7573 xla_ae_sources_pkg.GetSystemSourceChar(
7574    p_source_code           => 'XLA_ENTITY_CODE'
7575  , p_source_type_code      => 'Y'
7576  , p_source_application_id =>  602
7577 );
7578    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7579    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
7580    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7581    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
7582    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7583    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
7584    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7585    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
7586    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7587    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
7588    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7589    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
7590    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7591    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
7592    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7593    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
7594    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7595    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
7596    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
7597    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
7598    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
7599    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
7600    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
7601    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
7602    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
7603    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
7604    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
7605    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
7606    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
7607    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
7608    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
7609    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
7610    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
7611    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
7612    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
7613    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
7614    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
7615    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
7616    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
7617    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
7618    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
7619    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
7620    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
7621    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
7622    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
7623    l_rec_acct_attrs.array_date_value(27)  := p_source_50;
7624    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
7625    l_rec_acct_attrs.array_num_value(28)  := p_source_51;
7626    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
7627    l_rec_acct_attrs.array_char_value(29)  := p_source_52;
7628    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
7629    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
7630    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
7631    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
7632    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
7633    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
7634    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
7635    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
7636    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
7637    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
7638    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
7639    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
7640    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
7641    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
7642    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
7643    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
7647    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
7644    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
7645    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
7646    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
7648    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
7649    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
7650    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
7651    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
7652    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
7653    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
7654    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
7655    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
7656    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
7657    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
7658 
7659    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7660    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7661 
7662    ---------------------------------------------------------------------------------------------------------------
7663    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7664    ---------------------------------------------------------------------------------------------------------------
7665    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7666 
7667    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7668    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7669 
7670    IF xla_accounting_cache_pkg.GetValueChar
7671          (p_source_code         => 'LEDGER_CATEGORY_CODE'
7672          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7673    AND l_bflow_method_code = 'PRIOR_ENTRY'
7674 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7675    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7676          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7677        )
7678    THEN
7679          xla_ae_lines_pkg.BflowUpgEntry
7680            (p_business_method_code    => l_bflow_method_code
7681            ,p_business_class_code     => l_bflow_class_code
7682            ,p_balance_type            => l_balance_type_code);
7683    ELSE
7684       NULL;
7685 -- No business flow processing for business flow method of NONE.
7686    END IF;
7687 
7688    --
7689    -- call analytical criteria
7690    --
7691    
7692    --
7693    -- call description
7694    --
7695    -- No description or it is inherited.
7696    --
7697    -- call ADRs
7698    -- Bug 4922099
7699    --
7700    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7701         (NVL(l_actual_upg_option, 'N') = 'O') OR
7702         (NVL(l_enc_upg_option, 'N') = 'O')
7703       )
7704    THEN
7705    NULL;
7706    --
7707    --
7708    
7709   l_ccid := AcctDerRule_26(
7710            p_application_id           => p_application_id
7711          , p_ae_header_id             => l_ae_header_id 
7712 , p_source_17 => p_source_17
7713          , x_transaction_coa_id       => l_adr_transaction_coa_id
7714          , x_accounting_coa_id        => l_adr_accounting_coa_id
7715          , x_value_type_code          => l_adr_value_type_code
7716          , p_side                     => 'NA'
7717    );
7718 
7719    xla_ae_lines_pkg.set_ccid(
7720     p_code_combination_id          => l_ccid
7721   , p_value_type_code              => l_adr_value_type_code
7722   , p_transaction_coa_id           => l_adr_transaction_coa_id
7723   , p_accounting_coa_id            => l_adr_accounting_coa_id
7724   , p_adr_code                     => 'AP_INVOICE_DIST'
7725   , p_adr_type_code                => 'S'
7726   , p_component_type               => l_component_type
7727   , p_component_code               => l_component_code
7728   , p_component_type_code          => l_component_type_code
7729   , p_component_appl_id            => l_component_appl_id
7730   , p_amb_context_code             => l_amb_context_code
7731   , p_side                         => 'NA'
7732   );
7733 
7734 
7735    --
7736    --
7737    END IF;
7738    --
7739    -- Bug 4922099
7740    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7741           (NVL(l_enc_upg_option, 'N') = 'O')
7742         ) AND
7743         (l_bflow_method_code = 'PRIOR_ENTRY')
7744       )
7745    THEN
7746       IF
7747       --
7748       1 = 2
7749       --
7750       THEN
7751       xla_accounting_err_pkg.build_message
7752                                     (p_appli_s_name            => 'XLA'
7753                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7754                                     ,p_token_1                 => 'LINE_NUMBER'
7755                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7756                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7757                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7758                                                                              l_component_type
7759                                                                             ,l_component_code
7763                                                                             ,l_entity_code
7760                                                                             ,l_component_type_code
7761                                                                             ,l_component_appl_id
7762                                                                             ,l_amb_context_code
7764                                                                             ,l_event_class_code
7765                                                                            )
7766                                     ,p_token_3                 => 'OWNER'
7767                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7768                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7769                                                                           ,p_lookup_code    => l_component_type_code
7770                                                                          )
7771                                     ,p_token_4                 => 'PRODUCT_NAME'
7772                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7773                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7774                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7775                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7776                                     ,p_ae_header_id            =>  NULL
7777                                        );
7778 
7779         IF (C_LEVEL_ERROR>= g_log_level) THEN
7780                  trace
7781                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7782                       ,p_level    => C_LEVEL_ERROR
7783                       ,p_module   => l_log_module);
7784         END IF;
7785       END IF;
7786    END IF;
7787    --
7788    --
7789    ------------------------------------------------------------------------------------------------
7790    -- 4219869 Business Flow
7791    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7792    -- Prior Entry.  Currently, the following code is always generated.
7793    ------------------------------------------------------------------------------------------------
7794    XLA_AE_LINES_PKG.ValidateCurrentLine;
7795 
7796    ------------------------------------------------------------------------------------
7797    -- 4219869 Business Flow
7798    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7799    ------------------------------------------------------------------------------------
7800    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7801 
7802    ----------------------------------------------------------------------------------
7803    -- 4219869 Business Flow
7804    -- Update journal entry status -- Need to generate this within IF <condition>
7805    ----------------------------------------------------------------------------------
7806    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7807          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7808          ,p_balance_type_code => l_balance_type_code
7809          );
7810 
7811    -------------------------------------------------------------------------------------------
7812    -- 4262811 - Generate the Accrual Reversal lines
7813    -------------------------------------------------------------------------------------------
7814    BEGIN
7815       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7816                               (g_array_event(p_event_id).array_value_num('header_index'));
7817       IF l_acc_rev_flag IS NULL THEN
7818          l_acc_rev_flag := 'N';
7819       END IF;
7820    EXCEPTION
7821       WHEN OTHERS THEN
7822          l_acc_rev_flag := 'N';
7823    END;
7824    --
7825    IF (l_acc_rev_flag = 'Y') THEN
7826 
7827        -- 4645092  ------------------------------------------------------------------------------
7828        -- To allow MPA report to determine if it should generate report process
7829        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7830        ------------------------------------------------------------------------------------------
7831 
7832        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7833        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7834    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7835    -- call ADRs
7836    -- Bug 4922099
7837    --
7838    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7839         (NVL(l_actual_upg_option, 'N') = 'O') OR
7840         (NVL(l_enc_upg_option, 'N') = 'O')
7841       )
7842    THEN
7843    NULL;
7844    --
7845    --
7846    
7847   l_ccid := AcctDerRule_26(
7848            p_application_id           => p_application_id
7849          , p_ae_header_id             => l_ae_header_id 
7850 , p_source_17 => p_source_17
7851          , x_transaction_coa_id       => l_adr_transaction_coa_id
7852          , x_accounting_coa_id        => l_adr_accounting_coa_id
7853          , x_value_type_code          => l_adr_value_type_code
7854          , p_side                     => 'NA'
7855    );
7856 
7857    xla_ae_lines_pkg.set_ccid(
7858     p_code_combination_id          => l_ccid
7859   , p_value_type_code              => l_adr_value_type_code
7863   , p_adr_type_code                => 'S'
7860   , p_transaction_coa_id           => l_adr_transaction_coa_id
7861   , p_accounting_coa_id            => l_adr_accounting_coa_id
7862   , p_adr_code                     => 'AP_INVOICE_DIST'
7864   , p_component_type               => l_component_type
7865   , p_component_code               => l_component_code
7866   , p_component_type_code          => l_component_type_code
7867   , p_component_appl_id            => l_component_appl_id
7868   , p_amb_context_code             => l_amb_context_code
7869   , p_side                         => 'NA'
7870   );
7871 
7872 
7873    --
7874    --
7875    END IF;
7876 
7877        --
7878        -- Update the line information that should be overwritten
7879        --
7880        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7881                                          p_header_num   => 1);
7882        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
7883 
7884        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7885 
7886        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
7887           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7888        END IF;
7889 
7890       --
7891       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7892       --
7893       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7894           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
7895       ELSE
7896           ---------------------------------------------------------------------------------------------------
7897           -- 4262811a Switch Sign
7898           ---------------------------------------------------------------------------------------------------
7899           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
7900           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7901                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7902           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7903                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7904           -- 5132302
7905           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7906                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7907 
7908       END IF;
7909 
7910       -- 4955764
7911       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7912       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7913 
7914 
7915       XLA_AE_LINES_PKG.ValidateCurrentLine;
7916       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7917 
7918       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7919                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7920                ,p_balance_type_code => l_balance_type_code);
7921 
7922    END IF;
7923 
7924    -----------------------------------------------------------------------------------------
7925    -- 4262811 Multiperiod Accounting
7926    -----------------------------------------------------------------------------------------
7927      -- No MPA option is assigned.
7928 
7929 
7930 END IF;
7931 END IF;
7932 --
7933 
7934 --
7935 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7936    trace
7937       (p_msg      => 'END of AcctLineType_41'
7938       ,p_level    => C_LEVEL_PROCEDURE
7939       ,p_module   => l_log_module);
7940 END IF;
7941 --
7942 EXCEPTION
7943   WHEN xla_exceptions_pkg.application_exception THEN
7944       RAISE;
7945   WHEN OTHERS THEN
7946        xla_exceptions_pkg.raise_message
7947            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_41');
7948 END AcctLineType_41;
7949 --
7950 
7951 ---------------------------------------
7952 --
7953 -- PRIVATE FUNCTION
7954 --         AcctLineType_42
7955 --
7956 ---------------------------------------
7957 PROCEDURE AcctLineType_42 (
7958   p_application_id        IN NUMBER
7959  ,p_event_id              IN NUMBER
7960  ,p_calculate_acctd_flag  IN VARCHAR2
7961  ,p_calculate_g_l_flag    IN VARCHAR2
7962  ,p_actual_flag           IN OUT VARCHAR2
7963  ,p_balance_type_code     OUT VARCHAR2
7964  ,p_gain_or_loss_ref      OUT VARCHAR2
7965  
7966 --Invoice Distribution Account
7967  , p_source_17            IN NUMBER
7968 --When to Account for Payment Option
7969  , p_source_38            IN VARCHAR2
7970 --Accounting Reversal Indicator
7971  , p_source_40            IN VARCHAR2
7972 --Business Flow Accounts Payable Application Identifier
7973  , p_source_42            IN NUMBER
7974 --Distribution Link Type
7975  , p_source_48            IN VARCHAR2
7976 --Purchase Order Exchange Rate Date
7977  , p_source_50            IN DATE
7978 --Purchase Order Exchange Rate
7979  , p_source_51            IN NUMBER
7980 --Purchase Order Exchange Rate Type
7981  , p_source_52            IN VARCHAR2
7982 --Override Accounted Amount Indicator
7983  , p_source_53            IN VARCHAR2
7984  , p_source_53_meaning    IN VARCHAR2
7988  , p_source_58            IN NUMBER
7985 --Third Party Type
7986  , p_source_56            IN VARCHAR2
7987 --Invoice Distribution Tax Line Identifier
7989 --Invoice Distribution Summary Tax Line Identifier
7990  , p_source_59            IN NUMBER
7991 --Invoice Distribution Tax Distribution Identifier from Tax
7992  , p_source_66            IN NUMBER
7993 --Prepayment Distribution Type
7994  , p_source_67            IN VARCHAR2
7995 --Recipient Invoice Distribution Type
7996  , p_source_68            IN VARCHAR2
7997  , p_source_68_meaning    IN VARCHAR2
7998 --Prepayment Application Distribution Identifier
7999  , p_source_71            IN NUMBER
8000 --Invoice Identifier
8001  , p_source_72            IN NUMBER
8002 --Business Flow Prepayment Invoice Distribution Type
8003  , p_source_73            IN VARCHAR2
8004 --Business Flow Prepayment Invoice Entity Code
8005  , p_source_74            IN VARCHAR2
8006 --Business Flow Prepayment Invoice Distribution Identifier
8007  , p_source_75            IN NUMBER
8008 --Business Flow Prepayment Invoice Identifier
8009  , p_source_76            IN NUMBER
8010 --Upgrade Encumbrance Credit Account Class
8011  , p_source_77            IN VARCHAR2
8012 --Payables Encumbrance Upgrade Credit Account
8013  , p_source_78            IN NUMBER
8014 --Payables Encumbrance Upgrade Credit Amount
8015  , p_source_79            IN NUMBER
8016 --Invoice Currency Code
8017  , p_source_80            IN VARCHAR2
8018 --Payables Encumbrance Upgrade Credit Base Amount
8019  , p_source_81            IN NUMBER
8020 --Upgrade Encumbrance Debit Account Class
8021  , p_source_82            IN VARCHAR2
8022 --Payables Encumbrance Upgrade Debit Account
8023  , p_source_83            IN NUMBER
8024 --Payables Encumbrance Upgrade Debit Amount
8025  , p_source_84            IN NUMBER
8026 --Payables Encumbrance Upgrade Debit Base Amount
8027  , p_source_85            IN NUMBER
8028 --Payables Encumbrance Upgrade Option
8029  , p_source_86            IN VARCHAR2
8030 --Prepayment Distribution Amount
8031  , p_source_87            IN NUMBER
8032 --Deferred Accounting End Date
8033  , p_source_90            IN DATE
8034 --Deferred Accounting Option
8035  , p_source_91            IN VARCHAR2
8036 --Deferred Accounting Start Date
8037  , p_source_92            IN DATE
8038 --Invoice Supplier Identifier
8039  , p_source_93            IN NUMBER
8040 --Invoice Supplier Site Identifier
8041  , p_source_94            IN NUMBER
8042 --Identifier of the Prepayment Application Reversed
8043  , p_source_95            IN NUMBER
8044 --Payables Upgrade Credit Encumbrance Type Identifier
8045  , p_source_96            IN NUMBER
8046 --Payables Upgrade Debit Encumbrance Type Identifier
8047  , p_source_97            IN NUMBER
8048 --Prepayment Payment Currency Code
8049  , p_source_98            IN VARCHAR2
8050 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
8051  , p_source_99            IN NUMBER
8052 )
8053 IS
8054 
8055 l_component_type              VARCHAR2(80);
8056 l_component_code              VARCHAR2(30);
8057 l_component_type_code         VARCHAR2(1);
8058 l_component_appl_id           INTEGER;
8059 l_amb_context_code            VARCHAR2(30);
8060 l_entity_code                 VARCHAR2(30);
8061 l_event_class_code            VARCHAR2(30);
8062 l_ae_header_id                NUMBER;
8063 l_event_type_code             VARCHAR2(30);
8064 l_line_definition_code        VARCHAR2(30);
8065 l_line_definition_owner_code  VARCHAR2(1);
8066 --
8067 -- adr variables
8068 l_segment                     VARCHAR2(30);
8069 l_ccid                        NUMBER;
8070 l_adr_transaction_coa_id      NUMBER;
8071 l_adr_accounting_coa_id       NUMBER;
8072 l_adr_flexfield_segment_code  VARCHAR2(30);
8073 l_adr_flex_value_set_id       NUMBER;
8074 l_adr_value_type_code         VARCHAR2(30);
8075 l_adr_value_combination_id    NUMBER;
8076 l_adr_value_segment_code      VARCHAR2(30);
8077 
8078 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8079 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8080 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8081 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8082 
8083 -- 4262811 Variables ------------------------------------------------------------------------------------------
8084 l_entered_amt_idx             NUMBER;
8085 l_accted_amt_idx              NUMBER;
8086 l_acc_rev_flag                VARCHAR2(1);
8087 l_accrual_line_num            NUMBER;
8088 l_tmp_amt                     NUMBER;
8089 l_acc_rev_natural_side_code   VARCHAR2(1);
8090 
8091 l_num_entries                 NUMBER;
8092 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8093 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8094 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8095 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8096 l_recog_line_1                NUMBER;
8097 l_recog_line_2                NUMBER;
8098 
8099 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8100 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8101 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8102 
8103 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8104 
8108 ---------------------------------------------------------------------------------------------------------------
8105 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8106 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8107 
8109 
8110 
8111 --
8112 -- bulk performance
8113 --
8114 l_balance_type_code           VARCHAR2(1);
8115 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8116 l_log_module                  VARCHAR2(240);
8117 
8118 --
8119 -- Upgrade strategy
8120 --
8121 l_actual_upg_option           VARCHAR2(1);
8122 l_enc_upg_option           VARCHAR2(1);
8123 
8124 --
8125 BEGIN
8126 --
8127 IF g_log_enabled THEN
8128       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
8129 END IF;
8130 --
8131 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8132 
8133       trace
8134          (p_msg      => 'BEGIN of AcctLineType_42'
8135          ,p_level    => C_LEVEL_PROCEDURE
8136          ,p_module   => l_log_module);
8137 
8138 END IF;
8139 --
8140 l_component_type             := 'AMB_JLT';
8141 l_component_code             := 'AP_ACCR_PREPAY_PAY_RATE_APP';
8142 l_component_type_code        := 'S';
8143 l_component_appl_id          :=  200;
8144 l_amb_context_code           := 'DEFAULT';
8145 l_entity_code                := 'AP_INVOICES';
8146 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
8147 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
8148 l_line_definition_owner_code := 'S';
8149 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
8150 --
8151 l_balance_type_code          := 'A';
8152 l_segment                     := NULL;
8153 l_ccid                        := NULL;
8154 l_adr_transaction_coa_id      := NULL;
8155 l_adr_accounting_coa_id       := NULL;
8156 l_adr_flexfield_segment_code  := NULL;
8157 l_adr_flex_value_set_id       := NULL;
8158 l_adr_value_type_code         := NULL;
8159 l_adr_value_combination_id    := NULL;
8160 l_adr_value_segment_code      := NULL;
8161 
8162 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8163 l_bflow_class_code           := '';    -- 4219869 Business Flow
8164 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8165 l_budgetary_control_flag     := 'N';
8166 
8167 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8168 l_bflow_applied_to_amt       := NULL; -- 5132302
8169 l_entered_amt_idx            := NULL;          -- 4262811
8170 l_accted_amt_idx             := NULL;          -- 4262811
8171 l_acc_rev_flag               := NULL;          -- 4262811
8172 l_accrual_line_num           := NULL;          -- 4262811
8173 l_tmp_amt                    := NULL;          -- 4262811
8174 --
8175  
8176 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8177     l_balance_type_code <> 'B' THEN
8178 IF NVL(p_source_38,'
8179 ') <>  'CLEAR_CLEAR' AND 
8180 (NVL(p_source_67,'
8181 ') =  'PREPAY APPL' OR 
8182 NVL(p_source_67,'
8183 ') =  'PREPAY APPL NONREC TAX' OR 
8184 NVL(p_source_67,'
8185 ') =  'PREPAY APPL REC TAX') AND 
8186 (NVL(p_source_68,'
8187 ') =  'ACCRUAL' OR 
8188 NVL(p_source_68,'
8189 ') =  'RETROACCRUAL')
8190  THEN 
8191 
8192    --
8193    XLA_AE_LINES_PKG.SetNewLine;
8194 
8195    p_balance_type_code          := l_balance_type_code;
8196    -- set the flag so later we will know whether the gain loss line needs to be created
8197    
8198    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8199      p_actual_flag :='A';
8200    END IF;
8201 
8202    --
8203    -- bulk performance
8204    --
8205    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8206                                       p_header_num   => 0); -- 4262811
8207    --
8208    -- set accounting line options
8209    --
8210    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8211            p_natural_side_code          => 'C'
8212          , p_gain_or_loss_flag          => 'N'
8213          , p_gl_transfer_mode_code      => 'S'
8214          , p_acct_entry_type_code       => 'A'
8215          , p_switch_side_flag           => 'Y'
8216          , p_merge_duplicate_code       => 'A'
8217          );
8218    --
8219    l_acc_rev_natural_side_code := 'D';  -- 4262811
8220    -- 
8221    --
8222    -- set accounting line type info
8223    --
8224    xla_ae_lines_pkg.SetAcctLineType
8225       (p_component_type             => l_component_type
8226       ,p_event_type_code            => l_event_type_code
8227       ,p_line_definition_owner_code => l_line_definition_owner_code
8228       ,p_line_definition_code       => l_line_definition_code
8229       ,p_accounting_line_code       => l_component_code
8230       ,p_accounting_line_type_code  => l_component_type_code
8231       ,p_accounting_line_appl_id    => l_component_appl_id
8232       ,p_amb_context_code           => l_amb_context_code
8233       ,p_entity_code                => l_entity_code
8234       ,p_event_class_code           => l_event_class_code);
8235    --
8236    -- set accounting class
8237    --
8238    xla_ae_lines_pkg.SetAcctClass(
8239            p_accounting_class_code  => 'ACCRUAL'
8240          , p_ae_header_id           => l_ae_header_id
8241          );
8242 
8246    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8243    --
8244    -- set rounding class
8245    --
8247                       'ACCRUAL';
8248 
8249    --
8250    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8251    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8252    --
8253    -- bulk performance
8254    --
8255    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8256 
8257    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8258       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8259 
8260    -- 4955764
8261    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8262       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8263 
8264    -- 4458381 Public Sector Enh
8265    
8266    --
8267    -- set accounting attributes for the line type
8268    --
8269    l_entered_amt_idx := 25;
8270    l_accted_amt_idx  := 30;
8271    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
8272    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8273    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
8274    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8275    l_rec_acct_attrs.array_num_value(2)  := 
8276 xla_ae_sources_pkg.GetSystemSourceNum(
8277    p_source_code           => 'XLA_EVENT_APPL_ID'
8278  , p_source_type_code      => 'Y'
8279  , p_source_application_id =>  602
8280 );
8281    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8282    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
8283    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8284    l_rec_acct_attrs.array_char_value(4)  := 
8285 xla_ae_sources_pkg.GetSystemSourceChar(
8286    p_source_code           => 'XLA_ENTITY_CODE'
8287  , p_source_type_code      => 'Y'
8288  , p_source_application_id =>  602
8289 );
8290    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8291    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
8292    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8293    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
8294    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8295    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
8296    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8297    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
8298    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8299    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
8300    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8301    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
8302    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8303    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
8304    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8305    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
8306    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8307    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
8308    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
8309    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
8310    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
8311    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
8312    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
8313    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
8314    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
8315    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
8316    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
8317    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
8318    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
8319    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
8320    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
8321    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
8322    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
8323    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
8324    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
8325    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
8326    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
8327    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
8328    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
8329    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
8330    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
8331    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
8332    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
8333    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
8334    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
8335    l_rec_acct_attrs.array_date_value(27)  := p_source_50;
8336    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
8337    l_rec_acct_attrs.array_num_value(28)  := p_source_51;
8338    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
8339    l_rec_acct_attrs.array_char_value(29)  := p_source_52;
8340    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
8341    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
8345    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
8342    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
8343    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
8344    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
8346    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
8347    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
8348    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
8349    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
8350    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
8351    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
8352    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
8353    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
8354    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
8355    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
8356    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
8357    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
8358    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
8359    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
8360    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
8361    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
8362    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
8363    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
8364    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
8365    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
8366    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
8367    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
8368    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
8369    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
8370 
8371    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8372    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8373 
8374    ---------------------------------------------------------------------------------------------------------------
8375    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8376    ---------------------------------------------------------------------------------------------------------------
8377    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8378 
8379    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8380    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8381 
8382    IF xla_accounting_cache_pkg.GetValueChar
8383          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8384          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8385    AND l_bflow_method_code = 'PRIOR_ENTRY'
8386 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8387    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8388          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8389        )
8390    THEN
8391          xla_ae_lines_pkg.BflowUpgEntry
8392            (p_business_method_code    => l_bflow_method_code
8393            ,p_business_class_code     => l_bflow_class_code
8394            ,p_balance_type            => l_balance_type_code);
8395    ELSE
8396       NULL;
8397 -- No business flow processing for business flow method of NONE.
8398    END IF;
8399 
8400    --
8401    -- call analytical criteria
8402    --
8403    
8404    --
8405    -- call description
8406    --
8407    -- No description or it is inherited.
8408    --
8409    -- call ADRs
8410    -- Bug 4922099
8411    --
8412    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8413         (NVL(l_actual_upg_option, 'N') = 'O') OR
8414         (NVL(l_enc_upg_option, 'N') = 'O')
8415       )
8416    THEN
8417    NULL;
8418    --
8419    --
8420    
8421   l_ccid := AcctDerRule_26(
8422            p_application_id           => p_application_id
8423          , p_ae_header_id             => l_ae_header_id 
8424 , p_source_17 => p_source_17
8425          , x_transaction_coa_id       => l_adr_transaction_coa_id
8426          , x_accounting_coa_id        => l_adr_accounting_coa_id
8427          , x_value_type_code          => l_adr_value_type_code
8428          , p_side                     => 'NA'
8429    );
8430 
8431    xla_ae_lines_pkg.set_ccid(
8432     p_code_combination_id          => l_ccid
8433   , p_value_type_code              => l_adr_value_type_code
8434   , p_transaction_coa_id           => l_adr_transaction_coa_id
8435   , p_accounting_coa_id            => l_adr_accounting_coa_id
8436   , p_adr_code                     => 'AP_INVOICE_DIST'
8437   , p_adr_type_code                => 'S'
8438   , p_component_type               => l_component_type
8439   , p_component_code               => l_component_code
8440   , p_component_type_code          => l_component_type_code
8441   , p_component_appl_id            => l_component_appl_id
8442   , p_amb_context_code             => l_amb_context_code
8443   , p_side                         => 'NA'
8444   );
8445 
8446 
8447    --
8448    --
8449    END IF;
8450    --
8451    -- Bug 4922099
8452    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8456       )
8453           (NVL(l_enc_upg_option, 'N') = 'O')
8454         ) AND
8455         (l_bflow_method_code = 'PRIOR_ENTRY')
8457    THEN
8458       IF
8459       --
8460       1 = 2
8461       --
8462       THEN
8463       xla_accounting_err_pkg.build_message
8464                                     (p_appli_s_name            => 'XLA'
8465                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8466                                     ,p_token_1                 => 'LINE_NUMBER'
8467                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
8468                                     ,p_token_2                 => 'LINE_TYPE_NAME'
8469                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
8470                                                                              l_component_type
8471                                                                             ,l_component_code
8472                                                                             ,l_component_type_code
8473                                                                             ,l_component_appl_id
8474                                                                             ,l_amb_context_code
8475                                                                             ,l_entity_code
8476                                                                             ,l_event_class_code
8477                                                                            )
8478                                     ,p_token_3                 => 'OWNER'
8479                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
8480                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
8481                                                                           ,p_lookup_code    => l_component_type_code
8482                                                                          )
8483                                     ,p_token_4                 => 'PRODUCT_NAME'
8484                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8485                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8486                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8487                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8488                                     ,p_ae_header_id            =>  NULL
8489                                        );
8490 
8491         IF (C_LEVEL_ERROR>= g_log_level) THEN
8492                  trace
8493                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8494                       ,p_level    => C_LEVEL_ERROR
8495                       ,p_module   => l_log_module);
8496         END IF;
8497       END IF;
8498    END IF;
8499    --
8500    --
8501    ------------------------------------------------------------------------------------------------
8502    -- 4219869 Business Flow
8503    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8504    -- Prior Entry.  Currently, the following code is always generated.
8505    ------------------------------------------------------------------------------------------------
8506    XLA_AE_LINES_PKG.ValidateCurrentLine;
8507 
8508    ------------------------------------------------------------------------------------
8509    -- 4219869 Business Flow
8510    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8511    ------------------------------------------------------------------------------------
8512    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8513 
8514    ----------------------------------------------------------------------------------
8515    -- 4219869 Business Flow
8516    -- Update journal entry status -- Need to generate this within IF <condition>
8517    ----------------------------------------------------------------------------------
8518    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8519          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8520          ,p_balance_type_code => l_balance_type_code
8521          );
8522 
8523    -------------------------------------------------------------------------------------------
8524    -- 4262811 - Generate the Accrual Reversal lines
8525    -------------------------------------------------------------------------------------------
8526    BEGIN
8527       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8528                               (g_array_event(p_event_id).array_value_num('header_index'));
8529       IF l_acc_rev_flag IS NULL THEN
8530          l_acc_rev_flag := 'N';
8531       END IF;
8532    EXCEPTION
8533       WHEN OTHERS THEN
8534          l_acc_rev_flag := 'N';
8535    END;
8536    --
8537    IF (l_acc_rev_flag = 'Y') THEN
8538 
8539        -- 4645092  ------------------------------------------------------------------------------
8540        -- To allow MPA report to determine if it should generate report process
8541        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8542        ------------------------------------------------------------------------------------------
8543 
8544        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8545        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8546    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
8550    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8547    -- call ADRs
8548    -- Bug 4922099
8549    --
8551         (NVL(l_actual_upg_option, 'N') = 'O') OR
8552         (NVL(l_enc_upg_option, 'N') = 'O')
8553       )
8554    THEN
8555    NULL;
8556    --
8557    --
8558    
8559   l_ccid := AcctDerRule_26(
8560            p_application_id           => p_application_id
8561          , p_ae_header_id             => l_ae_header_id 
8562 , p_source_17 => p_source_17
8563          , x_transaction_coa_id       => l_adr_transaction_coa_id
8564          , x_accounting_coa_id        => l_adr_accounting_coa_id
8565          , x_value_type_code          => l_adr_value_type_code
8566          , p_side                     => 'NA'
8567    );
8568 
8569    xla_ae_lines_pkg.set_ccid(
8570     p_code_combination_id          => l_ccid
8571   , p_value_type_code              => l_adr_value_type_code
8572   , p_transaction_coa_id           => l_adr_transaction_coa_id
8573   , p_accounting_coa_id            => l_adr_accounting_coa_id
8574   , p_adr_code                     => 'AP_INVOICE_DIST'
8575   , p_adr_type_code                => 'S'
8576   , p_component_type               => l_component_type
8577   , p_component_code               => l_component_code
8578   , p_component_type_code          => l_component_type_code
8579   , p_component_appl_id            => l_component_appl_id
8580   , p_amb_context_code             => l_amb_context_code
8581   , p_side                         => 'NA'
8582   );
8583 
8584 
8585    --
8586    --
8587    END IF;
8588 
8589        --
8590        -- Update the line information that should be overwritten
8591        --
8592        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8593                                          p_header_num   => 1);
8594        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
8595 
8596        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8597 
8598        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
8599           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8600        END IF;
8601 
8602       --
8603       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8604       --
8605       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8606           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
8607       ELSE
8608           ---------------------------------------------------------------------------------------------------
8609           -- 4262811a Switch Sign
8610           ---------------------------------------------------------------------------------------------------
8611           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
8612           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8613                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8614           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8615                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8616           -- 5132302
8617           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8618                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8619 
8620       END IF;
8621 
8622       -- 4955764
8623       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8624       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8625 
8626 
8627       XLA_AE_LINES_PKG.ValidateCurrentLine;
8628       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8629 
8630       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8631                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8632                ,p_balance_type_code => l_balance_type_code);
8633 
8634    END IF;
8635 
8636    -----------------------------------------------------------------------------------------
8637    -- 4262811 Multiperiod Accounting
8638    -----------------------------------------------------------------------------------------
8639      -- No MPA option is assigned.
8640 
8641 
8642 END IF;
8643 END IF;
8644 --
8645 
8646 --
8647 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8648    trace
8649       (p_msg      => 'END of AcctLineType_42'
8650       ,p_level    => C_LEVEL_PROCEDURE
8651       ,p_module   => l_log_module);
8652 END IF;
8653 --
8654 EXCEPTION
8655   WHEN xla_exceptions_pkg.application_exception THEN
8656       RAISE;
8657   WHEN OTHERS THEN
8658        xla_exceptions_pkg.raise_message
8659            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_42');
8660 END AcctLineType_42;
8661 --
8662 
8663 ---------------------------------------
8664 --
8665 -- PRIVATE FUNCTION
8666 --         AcctLineType_43
8667 --
8668 ---------------------------------------
8669 PROCEDURE AcctLineType_43 (
8670   p_application_id        IN NUMBER
8674  ,p_actual_flag           IN OUT VARCHAR2
8671  ,p_event_id              IN NUMBER
8672  ,p_calculate_acctd_flag  IN VARCHAR2
8673  ,p_calculate_g_l_flag    IN VARCHAR2
8675  ,p_balance_type_code     OUT VARCHAR2
8676  ,p_gain_or_loss_ref      OUT VARCHAR2
8677  
8678 --Automatic Offsets Value
8679  , p_source_4            IN VARCHAR2
8680  , p_source_4_meaning    IN VARCHAR2
8681 --Purchase Order Rate Variance Gain Account
8682  , p_source_5            IN NUMBER
8683 --Destination Type of the PO Distribution
8684  , p_source_7            IN VARCHAR2
8685  , p_source_7_meaning    IN VARCHAR2
8686 --Purchase Order Rate Variance Loss Account
8687  , p_source_8            IN NUMBER
8688 --Payment Distribution (Payment Rate) Ledger Amount
8689  , p_source_9            IN NUMBER
8690 --Payment Distribution (Cleared Rate) Ledger Amount
8691  , p_source_10            IN NUMBER
8692 --Invoice Distribution Account
8693  , p_source_17            IN NUMBER
8694 --Invoice Distribution Type
8695  , p_source_20            IN VARCHAR2
8696  , p_source_20_meaning    IN VARCHAR2
8697 --Automatic Offsets Flag
8698  , p_source_30            IN VARCHAR2
8699  , p_source_30_meaning    IN VARCHAR2
8700 --When to Account for Payment Option
8701  , p_source_38            IN VARCHAR2
8702 --Payment Distribution Type
8703  , p_source_39            IN VARCHAR2
8704  , p_source_39_meaning    IN VARCHAR2
8705 --Accounting Reversal Indicator
8706  , p_source_40            IN VARCHAR2
8707 --Payment Distribution Amount
8708  , p_source_41            IN NUMBER
8709 --Business Flow Accounts Payable Application Identifier
8710  , p_source_42            IN NUMBER
8711 --Business Flow Payment Distribution Type
8712  , p_source_43            IN VARCHAR2
8713 --Business Flow Payment Entity Code
8714  , p_source_44            IN VARCHAR2
8715 --Business Flow Payment Distribution Identifier
8716  , p_source_45            IN NUMBER
8717 --Business Flow Payment Identifier
8718  , p_source_46            IN NUMBER
8719 --Payment Distribution Identifier
8720  , p_source_47            IN NUMBER
8721 --Distribution Link Type
8722  , p_source_48            IN VARCHAR2
8723 --Override Accounted Amount Indicator
8724  , p_source_53            IN VARCHAR2
8725  , p_source_53_meaning    IN VARCHAR2
8726 --Payment Supplier Identifier
8727  , p_source_54            IN NUMBER
8728 --Payment Supplier Site Identifier
8729  , p_source_55            IN NUMBER
8730 --Third Party Type
8731  , p_source_56            IN VARCHAR2
8732 --Payment Distribution Reversed Identifier
8733  , p_source_57            IN NUMBER
8734 --Invoice Distribution Tax Line Identifier
8735  , p_source_58            IN NUMBER
8736 --Invoice Distribution Summary Tax Line Identifier
8737  , p_source_59            IN NUMBER
8738 )
8739 IS
8740 
8741 l_component_type              VARCHAR2(80);
8742 l_component_code              VARCHAR2(30);
8743 l_component_type_code         VARCHAR2(1);
8744 l_component_appl_id           INTEGER;
8745 l_amb_context_code            VARCHAR2(30);
8746 l_entity_code                 VARCHAR2(30);
8747 l_event_class_code            VARCHAR2(30);
8748 l_ae_header_id                NUMBER;
8749 l_event_type_code             VARCHAR2(30);
8750 l_line_definition_code        VARCHAR2(30);
8751 l_line_definition_owner_code  VARCHAR2(1);
8752 --
8753 -- adr variables
8754 l_segment                     VARCHAR2(30);
8755 l_ccid                        NUMBER;
8756 l_adr_transaction_coa_id      NUMBER;
8757 l_adr_accounting_coa_id       NUMBER;
8758 l_adr_flexfield_segment_code  VARCHAR2(30);
8759 l_adr_flex_value_set_id       NUMBER;
8760 l_adr_value_type_code         VARCHAR2(30);
8761 l_adr_value_combination_id    NUMBER;
8762 l_adr_value_segment_code      VARCHAR2(30);
8763 
8764 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8765 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8766 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8767 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8768 
8769 -- 4262811 Variables ------------------------------------------------------------------------------------------
8770 l_entered_amt_idx             NUMBER;
8771 l_accted_amt_idx              NUMBER;
8772 l_acc_rev_flag                VARCHAR2(1);
8773 l_accrual_line_num            NUMBER;
8774 l_tmp_amt                     NUMBER;
8775 l_acc_rev_natural_side_code   VARCHAR2(1);
8776 
8777 l_num_entries                 NUMBER;
8778 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8779 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8780 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8781 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8782 l_recog_line_1                NUMBER;
8783 l_recog_line_2                NUMBER;
8784 
8785 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8786 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8787 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8788 
8789 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8790 
8791 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8792 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8793 
8797 --
8794 ---------------------------------------------------------------------------------------------------------------
8795 
8796 
8798 -- bulk performance
8799 --
8800 l_balance_type_code           VARCHAR2(1);
8801 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8802 l_log_module                  VARCHAR2(240);
8803 
8804 --
8805 -- Upgrade strategy
8806 --
8807 l_actual_upg_option           VARCHAR2(1);
8808 l_enc_upg_option           VARCHAR2(1);
8809 
8810 --
8811 BEGIN
8812 --
8813 IF g_log_enabled THEN
8814       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
8815 END IF;
8816 --
8817 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8818 
8819       trace
8820          (p_msg      => 'BEGIN of AcctLineType_43'
8821          ,p_level    => C_LEVEL_PROCEDURE
8822          ,p_module   => l_log_module);
8823 
8824 END IF;
8825 --
8826 l_component_type             := 'AMB_JLT';
8827 l_component_code             := 'AP_ALC_EX_RATE_VAR_CLEAR';
8828 l_component_type_code        := 'S';
8829 l_component_appl_id          :=  200;
8830 l_amb_context_code           := 'DEFAULT';
8831 l_entity_code                := 'AP_PAYMENTS';
8832 l_event_class_code           := 'RECONCILED PAYMENTS';
8833 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
8834 l_line_definition_owner_code := 'S';
8835 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
8836 --
8837 l_balance_type_code          := 'A';
8838 l_segment                     := NULL;
8839 l_ccid                        := NULL;
8840 l_adr_transaction_coa_id      := NULL;
8841 l_adr_accounting_coa_id       := NULL;
8842 l_adr_flexfield_segment_code  := NULL;
8843 l_adr_flex_value_set_id       := NULL;
8844 l_adr_value_type_code         := NULL;
8845 l_adr_value_combination_id    := NULL;
8846 l_adr_value_segment_code      := NULL;
8847 
8848 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8849 l_bflow_class_code           := '';    -- 4219869 Business Flow
8850 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8851 l_budgetary_control_flag     := 'N';
8852 
8853 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8854 l_bflow_applied_to_amt       := NULL; -- 5132302
8855 l_entered_amt_idx            := NULL;          -- 4262811
8856 l_accted_amt_idx             := NULL;          -- 4262811
8857 l_acc_rev_flag               := NULL;          -- 4262811
8858 l_accrual_line_num           := NULL;          -- 4262811
8859 l_tmp_amt                    := NULL;          -- 4262811
8860 --
8861 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
8862             (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
8863                return;
8864   END IF;
8865   
8866 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8867     l_balance_type_code <> 'B' THEN
8868 IF NVL(p_source_38,'
8869 ') =  'CLEAR_CLEAR' AND 
8870 NVL(p_source_20,'
8871 ') =  'ACCRUAL' AND 
8872 (NVL(p_source_39,'
8873 ') =  'CASH' OR 
8874 NVL(p_source_39,'
8875 ') =  'DISCOUNT')
8876  THEN 
8877 
8878    --
8879    XLA_AE_LINES_PKG.SetNewLine;
8880 
8881    p_balance_type_code          := l_balance_type_code;
8882    -- set the flag so later we will know whether the gain loss line needs to be created
8883    
8884    IF(l_balance_type_code = 'A' ) THEN
8885      p_actual_flag :='G';
8886    END IF;
8887 
8888    --
8889    -- bulk performance
8890    --
8891    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8892                                       p_header_num   => 0); -- 4262811
8893    --
8894    -- set accounting line options
8895    --
8896    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8897            p_natural_side_code          => 'G'
8898          , p_gain_or_loss_flag          => 'N'
8899          , p_gl_transfer_mode_code      => 'S'
8900          , p_acct_entry_type_code       => 'A'
8901          , p_switch_side_flag           => ''
8902          , p_merge_duplicate_code       => 'A'
8903          );
8904    --
8905    l_acc_rev_natural_side_code := 'C';  -- 4262811
8906    -- 
8907    --
8908    -- set accounting line type info
8909    --
8910    xla_ae_lines_pkg.SetAcctLineType
8911       (p_component_type             => l_component_type
8912       ,p_event_type_code            => l_event_type_code
8913       ,p_line_definition_owner_code => l_line_definition_owner_code
8914       ,p_line_definition_code       => l_line_definition_code
8915       ,p_accounting_line_code       => l_component_code
8916       ,p_accounting_line_type_code  => l_component_type_code
8917       ,p_accounting_line_appl_id    => l_component_appl_id
8918       ,p_amb_context_code           => l_amb_context_code
8919       ,p_entity_code                => l_entity_code
8920       ,p_event_class_code           => l_event_class_code);
8921    --
8922    -- set accounting class
8923    --
8924    xla_ae_lines_pkg.SetAcctClass(
8925            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
8926          , p_ae_header_id           => l_ae_header_id
8927          );
8928 
8929    --
8930    -- set rounding class
8931    --
8935    --
8932    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8933                       'EXCHANGE_RATE_VARIANCE';
8934 
8936    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8937    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8938    --
8939    -- bulk performance
8940    --
8941    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8942 
8943    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8944       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8945 
8946    -- 4955764
8947    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8948       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8949 
8950    -- 4458381 Public Sector Enh
8951    
8952    --
8953    -- set accounting attributes for the line type
8954    --
8955    l_entered_amt_idx := NULL;
8956    l_accted_amt_idx  := 10;
8957    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
8958    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8959    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
8960    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
8961    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
8962    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
8963    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
8964    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8965    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
8966    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
8967    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
8968    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
8969    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
8970    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8971    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
8972    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
8973    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
8974    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
8975    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
8976    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
8977    l_rec_acct_attrs.array_num_value(10)  := p_source_10;
8978    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
8979    l_rec_acct_attrs.array_char_value(11)  := p_source_53;
8980    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
8981    l_rec_acct_attrs.array_num_value(12)  := p_source_54;
8982    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
8983    l_rec_acct_attrs.array_num_value(13)  := p_source_55;
8984    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
8985    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
8986    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
8987    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
8988    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
8989    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
8990    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
8991    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
8992    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
8993    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
8994    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
8995    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
8996 
8997    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8998    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8999 
9000    ---------------------------------------------------------------------------------------------------------------
9001    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9002    ---------------------------------------------------------------------------------------------------------------
9003    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9004 
9005    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9006    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9007 
9008    IF xla_accounting_cache_pkg.GetValueChar
9009          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9010          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9011    AND l_bflow_method_code = 'PRIOR_ENTRY'
9012 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9013    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9014          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9015        )
9016    THEN
9017          xla_ae_lines_pkg.BflowUpgEntry
9018            (p_business_method_code    => l_bflow_method_code
9019            ,p_business_class_code     => l_bflow_class_code
9020            ,p_balance_type            => l_balance_type_code);
9021    ELSE
9022       NULL;
9023 -- No business flow processing for business flow method of NONE.
9024    END IF;
9025 
9026    --
9027    -- call analytical criteria
9028    --
9029    
9030    --
9034    --
9031    -- call description
9032    --
9033    -- No description or it is inherited.
9035    -- call ADRs
9036    -- Bug 4922099
9037    --
9038    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9039         (NVL(l_actual_upg_option, 'N') = 'O') OR
9040         (NVL(l_enc_upg_option, 'N') = 'O')
9041       )
9042    THEN
9043    NULL;
9044    --
9045    --
9046    
9047   l_ccid := AcctDerRule_22(
9048            p_application_id           => p_application_id
9049          , p_ae_header_id             => l_ae_header_id 
9050 , p_source_4 => p_source_4
9051 , p_source_4_meaning => p_source_4_meaning
9052 , p_source_5 => p_source_5
9053 , p_source_7 => p_source_7
9054 , p_source_7_meaning => p_source_7_meaning
9055 , p_source_8 => p_source_8
9056 , p_source_9 => p_source_9
9057 , p_source_10 => p_source_10
9058 , p_source_17 => p_source_17
9059 , p_source_30 => p_source_30
9060 , p_source_30_meaning => p_source_30_meaning
9061          , x_transaction_coa_id       => l_adr_transaction_coa_id
9062          , x_accounting_coa_id        => l_adr_accounting_coa_id
9063          , x_value_type_code          => l_adr_value_type_code
9064          , p_side                     => 'ALL'
9065    );
9066 
9067    xla_ae_lines_pkg.set_ccid(
9068     p_code_combination_id          => l_ccid
9069   , p_value_type_code              => l_adr_value_type_code
9070   , p_transaction_coa_id           => l_adr_transaction_coa_id
9071   , p_accounting_coa_id            => l_adr_accounting_coa_id
9072   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
9073   , p_adr_type_code                => 'S'
9074   , p_component_type               => l_component_type
9075   , p_component_code               => l_component_code
9076   , p_component_type_code          => l_component_type_code
9077   , p_component_appl_id            => l_component_appl_id
9078   , p_amb_context_code             => l_amb_context_code
9079   , p_side                         => 'ALL'
9080   );
9081 
9082 
9083    l_segment := AcctDerRule_5(
9084            p_application_id           => p_application_id
9085          , p_ae_header_id             => l_ae_header_id 
9086 , p_source_4 => p_source_4
9087 , p_source_4_meaning => p_source_4_meaning
9088 , p_source_5 => p_source_5
9089 , p_source_7 => p_source_7
9090 , p_source_7_meaning => p_source_7_meaning
9091          , x_transaction_coa_id       => l_adr_transaction_coa_id
9092          , x_accounting_coa_id        => l_adr_accounting_coa_id
9093          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9094          , x_flex_value_set_id        => l_adr_flex_value_set_id
9095          , x_value_type_code          => l_adr_value_type_code
9096          , x_value_combination_id     => l_adr_value_combination_id
9097          , x_value_segment_code       => l_adr_value_segment_code
9098          , p_side                     => 'CREDIT'
9099          , p_override_seg_flag        => 'Y'
9100    );
9101 
9102    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9103 
9104       xla_ae_lines_pkg.set_segment(
9105           p_to_segment_code         => 'GL_ACCOUNT'
9106         , p_segment_value           => l_segment
9107         , p_from_segment_code       => l_adr_value_segment_code
9108         , p_from_combination_id     => l_adr_value_combination_id
9109         , p_value_type_code         => l_adr_value_type_code
9110         , p_transaction_coa_id      => l_adr_transaction_coa_id
9111         , p_accounting_coa_id       => l_adr_accounting_coa_id
9112         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9113         , p_flex_value_set_id       => l_adr_flex_value_set_id
9114         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9115         , p_adr_type_code           => 'S'
9116         , p_component_type          => l_component_type
9117         , p_component_code          => l_component_code
9118         , p_component_type_code     => l_component_type_code
9119         , p_component_appl_id       => l_component_appl_id
9120         , p_amb_context_code        => l_amb_context_code
9121         , p_entity_code             => 'AP_PAYMENTS'
9122         , p_event_class_code        => 'RECONCILED PAYMENTS'
9123         , p_side                    => 'CREDIT'
9124         );
9125 
9126   END IF;
9127 
9128    l_segment := AcctDerRule_6(
9129            p_application_id           => p_application_id
9130          , p_ae_header_id             => l_ae_header_id 
9131 , p_source_4 => p_source_4
9132 , p_source_4_meaning => p_source_4_meaning
9133 , p_source_7 => p_source_7
9134 , p_source_7_meaning => p_source_7_meaning
9135 , p_source_8 => p_source_8
9136          , x_transaction_coa_id       => l_adr_transaction_coa_id
9137          , x_accounting_coa_id        => l_adr_accounting_coa_id
9138          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9139          , x_flex_value_set_id        => l_adr_flex_value_set_id
9140          , x_value_type_code          => l_adr_value_type_code
9141          , x_value_combination_id     => l_adr_value_combination_id
9142          , x_value_segment_code       => l_adr_value_segment_code
9143          , p_side                     => 'DEBIT'
9144          , p_override_seg_flag        => 'Y'
9145    );
9146 
9147    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9148 
9149       xla_ae_lines_pkg.set_segment(
9153         , p_from_combination_id     => l_adr_value_combination_id
9150           p_to_segment_code         => 'GL_ACCOUNT'
9151         , p_segment_value           => l_segment
9152         , p_from_segment_code       => l_adr_value_segment_code
9154         , p_value_type_code         => l_adr_value_type_code
9155         , p_transaction_coa_id      => l_adr_transaction_coa_id
9156         , p_accounting_coa_id       => l_adr_accounting_coa_id
9157         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9158         , p_flex_value_set_id       => l_adr_flex_value_set_id
9159         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9160         , p_adr_type_code           => 'S'
9161         , p_component_type          => l_component_type
9162         , p_component_code          => l_component_code
9163         , p_component_type_code     => l_component_type_code
9164         , p_component_appl_id       => l_component_appl_id
9165         , p_amb_context_code        => l_amb_context_code
9166         , p_entity_code             => 'AP_PAYMENTS'
9167         , p_event_class_code        => 'RECONCILED PAYMENTS'
9168         , p_side                    => 'DEBIT'
9169         );
9170 
9171   END IF;
9172 
9173    l_segment := AcctDerRule_15(
9174            p_application_id           => p_application_id
9175          , p_ae_header_id             => l_ae_header_id 
9176 , p_source_4 => p_source_4
9177 , p_source_4_meaning => p_source_4_meaning
9178 , p_source_7 => p_source_7
9179 , p_source_7_meaning => p_source_7_meaning
9180 , p_source_17 => p_source_17
9181          , x_transaction_coa_id       => l_adr_transaction_coa_id
9182          , x_accounting_coa_id        => l_adr_accounting_coa_id
9183          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9184          , x_flex_value_set_id        => l_adr_flex_value_set_id
9185          , x_value_type_code          => l_adr_value_type_code
9186          , x_value_combination_id     => l_adr_value_combination_id
9187          , x_value_segment_code       => l_adr_value_segment_code
9188          , p_side                     => 'ALL'
9189          , p_override_seg_flag        => 'Y'
9190    );
9191 
9192    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9193 
9194       xla_ae_lines_pkg.set_segment(
9195           p_to_segment_code         => 'GL_BALANCING'
9196         , p_segment_value           => l_segment
9197         , p_from_segment_code       => l_adr_value_segment_code
9198         , p_from_combination_id     => l_adr_value_combination_id
9199         , p_value_type_code         => l_adr_value_type_code
9200         , p_transaction_coa_id      => l_adr_transaction_coa_id
9201         , p_accounting_coa_id       => l_adr_accounting_coa_id
9202         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9203         , p_flex_value_set_id       => l_adr_flex_value_set_id
9204         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
9205         , p_adr_type_code           => 'S'
9206         , p_component_type          => l_component_type
9207         , p_component_code          => l_component_code
9208         , p_component_type_code     => l_component_type_code
9209         , p_component_appl_id       => l_component_appl_id
9210         , p_amb_context_code        => l_amb_context_code
9211         , p_entity_code             => 'AP_PAYMENTS'
9212         , p_event_class_code        => 'RECONCILED PAYMENTS'
9213         , p_side                    => 'ALL'
9214         );
9215 
9216   END IF;
9217 
9218    --
9219    --
9220    END IF;
9221    --
9222    -- Bug 4922099
9223    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9224           (NVL(l_enc_upg_option, 'N') = 'O')
9225         ) AND
9226         (l_bflow_method_code = 'PRIOR_ENTRY')
9227       )
9228    THEN
9229       IF
9230       --
9231       1 = 2
9232       --
9233       THEN
9234       xla_accounting_err_pkg.build_message
9235                                     (p_appli_s_name            => 'XLA'
9236                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9237                                     ,p_token_1                 => 'LINE_NUMBER'
9238                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
9239                                     ,p_token_2                 => 'LINE_TYPE_NAME'
9240                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
9241                                                                              l_component_type
9242                                                                             ,l_component_code
9243                                                                             ,l_component_type_code
9244                                                                             ,l_component_appl_id
9245                                                                             ,l_amb_context_code
9246                                                                             ,l_entity_code
9247                                                                             ,l_event_class_code
9248                                                                            )
9249                                     ,p_token_3                 => 'OWNER'
9250                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
9251                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
9252                                                                           ,p_lookup_code    => l_component_type_code
9253                                                                          )
9257                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9254                                     ,p_token_4                 => 'PRODUCT_NAME'
9255                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9256                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9258                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9259                                     ,p_ae_header_id            =>  NULL
9260                                        );
9261 
9262         IF (C_LEVEL_ERROR>= g_log_level) THEN
9263                  trace
9264                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9265                       ,p_level    => C_LEVEL_ERROR
9266                       ,p_module   => l_log_module);
9267         END IF;
9268       END IF;
9269    END IF;
9270    --
9271    --
9272    ------------------------------------------------------------------------------------------------
9273    -- 4219869 Business Flow
9274    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9275    -- Prior Entry.  Currently, the following code is always generated.
9276    ------------------------------------------------------------------------------------------------
9277    XLA_AE_LINES_PKG.ValidateCurrentLine;
9278 
9279    ------------------------------------------------------------------------------------
9280    -- 4219869 Business Flow
9281    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9282    ------------------------------------------------------------------------------------
9283    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9284 
9285    ----------------------------------------------------------------------------------
9286    -- 4219869 Business Flow
9287    -- Update journal entry status -- Need to generate this within IF <condition>
9288    ----------------------------------------------------------------------------------
9289    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9290          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9291          ,p_balance_type_code => l_balance_type_code
9292          );
9293 
9294    -------------------------------------------------------------------------------------------
9295    -- 4262811 - Generate the Accrual Reversal lines
9296    -------------------------------------------------------------------------------------------
9297    BEGIN
9298       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9299                               (g_array_event(p_event_id).array_value_num('header_index'));
9300       IF l_acc_rev_flag IS NULL THEN
9301          l_acc_rev_flag := 'N';
9302       END IF;
9303    EXCEPTION
9304       WHEN OTHERS THEN
9305          l_acc_rev_flag := 'N';
9306    END;
9307    --
9308    IF (l_acc_rev_flag = 'Y') THEN
9309 
9310        -- 4645092  ------------------------------------------------------------------------------
9311        -- To allow MPA report to determine if it should generate report process
9312        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9313        ------------------------------------------------------------------------------------------
9314 
9315        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9316        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9317    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
9318    -- call ADRs
9319    -- Bug 4922099
9320    --
9321    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9322         (NVL(l_actual_upg_option, 'N') = 'O') OR
9323         (NVL(l_enc_upg_option, 'N') = 'O')
9324       )
9325    THEN
9326    NULL;
9327    --
9328    --
9329    
9330   l_ccid := AcctDerRule_22(
9331            p_application_id           => p_application_id
9332          , p_ae_header_id             => l_ae_header_id 
9333 , p_source_4 => p_source_4
9334 , p_source_4_meaning => p_source_4_meaning
9335 , p_source_5 => p_source_5
9336 , p_source_7 => p_source_7
9337 , p_source_7_meaning => p_source_7_meaning
9338 , p_source_8 => p_source_8
9339 , p_source_9 => p_source_9
9340 , p_source_10 => p_source_10
9341 , p_source_17 => p_source_17
9342 , p_source_30 => p_source_30
9343 , p_source_30_meaning => p_source_30_meaning
9344          , x_transaction_coa_id       => l_adr_transaction_coa_id
9345          , x_accounting_coa_id        => l_adr_accounting_coa_id
9346          , x_value_type_code          => l_adr_value_type_code
9347          , p_side                     => 'ALL'
9348    );
9349 
9350    xla_ae_lines_pkg.set_ccid(
9351     p_code_combination_id          => l_ccid
9352   , p_value_type_code              => l_adr_value_type_code
9353   , p_transaction_coa_id           => l_adr_transaction_coa_id
9354   , p_accounting_coa_id            => l_adr_accounting_coa_id
9355   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
9356   , p_adr_type_code                => 'S'
9357   , p_component_type               => l_component_type
9358   , p_component_code               => l_component_code
9359   , p_component_type_code          => l_component_type_code
9360   , p_component_appl_id            => l_component_appl_id
9361   , p_amb_context_code             => l_amb_context_code
9365 
9362   , p_side                         => 'ALL'
9363   );
9364 
9366    l_segment := AcctDerRule_5(
9367            p_application_id           => p_application_id
9368          , p_ae_header_id             => l_ae_header_id 
9369 , p_source_4 => p_source_4
9370 , p_source_4_meaning => p_source_4_meaning
9371 , p_source_5 => p_source_5
9372 , p_source_7 => p_source_7
9373 , p_source_7_meaning => p_source_7_meaning
9374          , x_transaction_coa_id       => l_adr_transaction_coa_id
9375          , x_accounting_coa_id        => l_adr_accounting_coa_id
9376          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9377          , x_flex_value_set_id        => l_adr_flex_value_set_id
9378          , x_value_type_code          => l_adr_value_type_code
9379          , x_value_combination_id     => l_adr_value_combination_id
9380          , x_value_segment_code       => l_adr_value_segment_code
9381          , p_side                     => 'CREDIT'
9382          , p_override_seg_flag        => 'Y'
9383    );
9384 
9385    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9386 
9387       xla_ae_lines_pkg.set_segment(
9388           p_to_segment_code         => 'GL_ACCOUNT'
9389         , p_segment_value           => l_segment
9390         , p_from_segment_code       => l_adr_value_segment_code
9391         , p_from_combination_id     => l_adr_value_combination_id
9392         , p_value_type_code         => l_adr_value_type_code
9393         , p_transaction_coa_id      => l_adr_transaction_coa_id
9394         , p_accounting_coa_id       => l_adr_accounting_coa_id
9395         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9396         , p_flex_value_set_id       => l_adr_flex_value_set_id
9397         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9398         , p_adr_type_code           => 'S'
9399         , p_component_type          => l_component_type
9400         , p_component_code          => l_component_code
9401         , p_component_type_code     => l_component_type_code
9402         , p_component_appl_id       => l_component_appl_id
9403         , p_amb_context_code        => l_amb_context_code
9404         , p_entity_code             => 'AP_PAYMENTS'
9405         , p_event_class_code        => 'RECONCILED PAYMENTS'
9406         , p_side                    => 'CREDIT'
9407         );
9408 
9409   END IF;
9410 
9411    l_segment := AcctDerRule_6(
9412            p_application_id           => p_application_id
9413          , p_ae_header_id             => l_ae_header_id 
9414 , p_source_4 => p_source_4
9415 , p_source_4_meaning => p_source_4_meaning
9416 , p_source_7 => p_source_7
9417 , p_source_7_meaning => p_source_7_meaning
9418 , p_source_8 => p_source_8
9419          , x_transaction_coa_id       => l_adr_transaction_coa_id
9420          , x_accounting_coa_id        => l_adr_accounting_coa_id
9421          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9422          , x_flex_value_set_id        => l_adr_flex_value_set_id
9423          , x_value_type_code          => l_adr_value_type_code
9424          , x_value_combination_id     => l_adr_value_combination_id
9425          , x_value_segment_code       => l_adr_value_segment_code
9426          , p_side                     => 'DEBIT'
9427          , p_override_seg_flag        => 'Y'
9428    );
9429 
9430    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9431 
9432       xla_ae_lines_pkg.set_segment(
9433           p_to_segment_code         => 'GL_ACCOUNT'
9434         , p_segment_value           => l_segment
9435         , p_from_segment_code       => l_adr_value_segment_code
9436         , p_from_combination_id     => l_adr_value_combination_id
9437         , p_value_type_code         => l_adr_value_type_code
9438         , p_transaction_coa_id      => l_adr_transaction_coa_id
9439         , p_accounting_coa_id       => l_adr_accounting_coa_id
9440         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9441         , p_flex_value_set_id       => l_adr_flex_value_set_id
9442         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9443         , p_adr_type_code           => 'S'
9444         , p_component_type          => l_component_type
9445         , p_component_code          => l_component_code
9446         , p_component_type_code     => l_component_type_code
9447         , p_component_appl_id       => l_component_appl_id
9448         , p_amb_context_code        => l_amb_context_code
9449         , p_entity_code             => 'AP_PAYMENTS'
9450         , p_event_class_code        => 'RECONCILED PAYMENTS'
9451         , p_side                    => 'DEBIT'
9452         );
9453 
9454   END IF;
9455 
9456    l_segment := AcctDerRule_15(
9457            p_application_id           => p_application_id
9458          , p_ae_header_id             => l_ae_header_id 
9459 , p_source_4 => p_source_4
9460 , p_source_4_meaning => p_source_4_meaning
9461 , p_source_7 => p_source_7
9462 , p_source_7_meaning => p_source_7_meaning
9463 , p_source_17 => p_source_17
9464          , x_transaction_coa_id       => l_adr_transaction_coa_id
9465          , x_accounting_coa_id        => l_adr_accounting_coa_id
9466          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9467          , x_flex_value_set_id        => l_adr_flex_value_set_id
9468          , x_value_type_code          => l_adr_value_type_code
9469          , x_value_combination_id     => l_adr_value_combination_id
9470          , x_value_segment_code       => l_adr_value_segment_code
9471          , p_side                     => 'ALL'
9475    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9472          , p_override_seg_flag        => 'Y'
9473    );
9474 
9476 
9477       xla_ae_lines_pkg.set_segment(
9478           p_to_segment_code         => 'GL_BALANCING'
9479         , p_segment_value           => l_segment
9480         , p_from_segment_code       => l_adr_value_segment_code
9481         , p_from_combination_id     => l_adr_value_combination_id
9482         , p_value_type_code         => l_adr_value_type_code
9483         , p_transaction_coa_id      => l_adr_transaction_coa_id
9484         , p_accounting_coa_id       => l_adr_accounting_coa_id
9485         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9486         , p_flex_value_set_id       => l_adr_flex_value_set_id
9487         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
9488         , p_adr_type_code           => 'S'
9489         , p_component_type          => l_component_type
9490         , p_component_code          => l_component_code
9491         , p_component_type_code     => l_component_type_code
9492         , p_component_appl_id       => l_component_appl_id
9493         , p_amb_context_code        => l_amb_context_code
9494         , p_entity_code             => 'AP_PAYMENTS'
9495         , p_event_class_code        => 'RECONCILED PAYMENTS'
9496         , p_side                    => 'ALL'
9497         );
9498 
9499   END IF;
9500 
9501    --
9502    --
9503    END IF;
9504 
9505        --
9506        -- Update the line information that should be overwritten
9507        --
9508        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9509                                          p_header_num   => 1);
9510        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
9511 
9512        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9513 
9514        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
9515           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9516        END IF;
9517 
9518       --
9519       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9520       --
9521       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9522           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
9523       ELSE
9524           ---------------------------------------------------------------------------------------------------
9525           -- 4262811a Switch Sign
9526           ---------------------------------------------------------------------------------------------------
9527           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
9528           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9529                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9530           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9531                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9532           -- 5132302
9533           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9534                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9535 
9536       END IF;
9537 
9538       -- 4955764
9539       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9540       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9541 
9542 
9543       XLA_AE_LINES_PKG.ValidateCurrentLine;
9544       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9545 
9546       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9547                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9548                ,p_balance_type_code => l_balance_type_code);
9549 
9550    END IF;
9551 
9552    -----------------------------------------------------------------------------------------
9553    -- 4262811 Multiperiod Accounting
9554    -----------------------------------------------------------------------------------------
9555      -- No MPA option is assigned.
9556 
9557 
9558 END IF;
9559 END IF;
9560 --
9561 
9562 --
9563 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9564    trace
9565       (p_msg      => 'END of AcctLineType_43'
9566       ,p_level    => C_LEVEL_PROCEDURE
9567       ,p_module   => l_log_module);
9568 END IF;
9569 --
9570 EXCEPTION
9571   WHEN xla_exceptions_pkg.application_exception THEN
9572       RAISE;
9573   WHEN OTHERS THEN
9574        xla_exceptions_pkg.raise_message
9575            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_43');
9576 END AcctLineType_43;
9577 --
9578 
9579 ---------------------------------------
9580 --
9581 -- PRIVATE FUNCTION
9582 --         AcctLineType_44
9583 --
9584 ---------------------------------------
9585 PROCEDURE AcctLineType_44 (
9586   p_application_id        IN NUMBER
9587  ,p_event_id              IN NUMBER
9588  ,p_calculate_acctd_flag  IN VARCHAR2
9589  ,p_calculate_g_l_flag    IN VARCHAR2
9590  ,p_actual_flag           IN OUT VARCHAR2
9594 --Automatic Offsets Value
9591  ,p_balance_type_code     OUT VARCHAR2
9592  ,p_gain_or_loss_ref      OUT VARCHAR2
9593  
9595  , p_source_4            IN VARCHAR2
9596  , p_source_4_meaning    IN VARCHAR2
9597 --Purchase Order Rate Variance Gain Account
9598  , p_source_5            IN NUMBER
9599 --Destination Type of the PO Distribution
9600  , p_source_7            IN VARCHAR2
9601  , p_source_7_meaning    IN VARCHAR2
9602 --Purchase Order Rate Variance Loss Account
9603  , p_source_8            IN NUMBER
9604 --Payment Distribution (Payment Rate) Ledger Amount
9605  , p_source_9            IN NUMBER
9606 --Payment Distribution (Cleared Rate) Ledger Amount
9607  , p_source_10            IN NUMBER
9608 --Invoice Distribution Account
9609  , p_source_17            IN NUMBER
9610 --Invoice Distribution Type
9611  , p_source_20            IN VARCHAR2
9612  , p_source_20_meaning    IN VARCHAR2
9613 --Automatic Offsets Flag
9614  , p_source_30            IN VARCHAR2
9615  , p_source_30_meaning    IN VARCHAR2
9616 --When to Account for Payment Option
9617  , p_source_38            IN VARCHAR2
9618 --Accounting Reversal Indicator
9619  , p_source_40            IN VARCHAR2
9620 --Business Flow Accounts Payable Application Identifier
9621  , p_source_42            IN NUMBER
9622 --Payment Distribution Identifier
9623  , p_source_47            IN NUMBER
9624 --Distribution Link Type
9625  , p_source_48            IN VARCHAR2
9626 --Override Accounted Amount Indicator
9627  , p_source_53            IN VARCHAR2
9628  , p_source_53_meaning    IN VARCHAR2
9629 --Payment Supplier Identifier
9630  , p_source_54            IN NUMBER
9631 --Payment Supplier Site Identifier
9632  , p_source_55            IN NUMBER
9633 --Third Party Type
9634  , p_source_56            IN VARCHAR2
9635 --Payment Distribution Reversed Identifier
9636  , p_source_57            IN NUMBER
9637 --Invoice Distribution Tax Line Identifier
9638  , p_source_58            IN NUMBER
9639 --Invoice Distribution Summary Tax Line Identifier
9640  , p_source_59            IN NUMBER
9641 --Payment Type
9642  , p_source_60            IN VARCHAR2
9643  , p_source_60_meaning    IN VARCHAR2
9644 --Invoice Distribution Amount of the Payment Distribution
9645  , p_source_61            IN NUMBER
9646 --Business Flow Invoice Distribution Type
9647  , p_source_62            IN VARCHAR2
9648 --Business Flow Invoice Entity Code
9649  , p_source_63            IN VARCHAR2
9650 --Business Flow Invoice Distribution Identifier
9651  , p_source_64            IN NUMBER
9652 --Business Flow Invoice Identifier
9653  , p_source_65            IN NUMBER
9654 --Invoice Distribution Tax Distribution Identifier from Tax
9655  , p_source_66            IN NUMBER
9656 )
9657 IS
9658 
9659 l_component_type              VARCHAR2(80);
9660 l_component_code              VARCHAR2(30);
9661 l_component_type_code         VARCHAR2(1);
9662 l_component_appl_id           INTEGER;
9663 l_amb_context_code            VARCHAR2(30);
9664 l_entity_code                 VARCHAR2(30);
9665 l_event_class_code            VARCHAR2(30);
9666 l_ae_header_id                NUMBER;
9667 l_event_type_code             VARCHAR2(30);
9668 l_line_definition_code        VARCHAR2(30);
9669 l_line_definition_owner_code  VARCHAR2(1);
9670 --
9671 -- adr variables
9672 l_segment                     VARCHAR2(30);
9673 l_ccid                        NUMBER;
9674 l_adr_transaction_coa_id      NUMBER;
9675 l_adr_accounting_coa_id       NUMBER;
9676 l_adr_flexfield_segment_code  VARCHAR2(30);
9677 l_adr_flex_value_set_id       NUMBER;
9678 l_adr_value_type_code         VARCHAR2(30);
9679 l_adr_value_combination_id    NUMBER;
9680 l_adr_value_segment_code      VARCHAR2(30);
9681 
9682 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
9683 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
9684 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
9685 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
9686 
9687 -- 4262811 Variables ------------------------------------------------------------------------------------------
9688 l_entered_amt_idx             NUMBER;
9689 l_accted_amt_idx              NUMBER;
9690 l_acc_rev_flag                VARCHAR2(1);
9691 l_accrual_line_num            NUMBER;
9692 l_tmp_amt                     NUMBER;
9693 l_acc_rev_natural_side_code   VARCHAR2(1);
9694 
9695 l_num_entries                 NUMBER;
9696 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
9697 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
9698 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
9699 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
9700 l_recog_line_1                NUMBER;
9701 l_recog_line_2                NUMBER;
9702 
9703 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
9704 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
9705 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
9706 
9707 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9708 
9709 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
9710 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
9711 
9712 ---------------------------------------------------------------------------------------------------------------
9713 
9717 --
9714 
9715 --
9716 -- bulk performance
9718 l_balance_type_code           VARCHAR2(1);
9719 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
9720 l_log_module                  VARCHAR2(240);
9721 
9722 --
9723 -- Upgrade strategy
9724 --
9725 l_actual_upg_option           VARCHAR2(1);
9726 l_enc_upg_option           VARCHAR2(1);
9727 
9728 --
9729 BEGIN
9730 --
9731 IF g_log_enabled THEN
9732       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
9733 END IF;
9734 --
9735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9736 
9737       trace
9738          (p_msg      => 'BEGIN of AcctLineType_44'
9739          ,p_level    => C_LEVEL_PROCEDURE
9740          ,p_module   => l_log_module);
9741 
9742 END IF;
9743 --
9744 l_component_type             := 'AMB_JLT';
9745 l_component_code             := 'AP_ALC_EX_RATE_VAR_PMT';
9746 l_component_type_code        := 'S';
9747 l_component_appl_id          :=  200;
9748 l_amb_context_code           := 'DEFAULT';
9749 l_entity_code                := 'AP_PAYMENTS';
9750 l_event_class_code           := 'PAYMENTS';
9751 l_event_type_code            := 'PAYMENTS_ALL';
9752 l_line_definition_owner_code := 'S';
9753 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
9754 --
9755 l_balance_type_code          := 'A';
9756 l_segment                     := NULL;
9757 l_ccid                        := NULL;
9758 l_adr_transaction_coa_id      := NULL;
9759 l_adr_accounting_coa_id       := NULL;
9760 l_adr_flexfield_segment_code  := NULL;
9761 l_adr_flex_value_set_id       := NULL;
9762 l_adr_value_type_code         := NULL;
9763 l_adr_value_combination_id    := NULL;
9764 l_adr_value_segment_code      := NULL;
9765 
9766 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
9767 l_bflow_class_code           := '';    -- 4219869 Business Flow
9768 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
9769 l_budgetary_control_flag     := 'N';
9770 
9771 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
9772 l_bflow_applied_to_amt       := NULL; -- 5132302
9773 l_entered_amt_idx            := NULL;          -- 4262811
9774 l_accted_amt_idx             := NULL;          -- 4262811
9775 l_acc_rev_flag               := NULL;          -- 4262811
9776 l_accrual_line_num           := NULL;          -- 4262811
9777 l_tmp_amt                    := NULL;          -- 4262811
9778 --
9779 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
9780             (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
9781                return;
9782   END IF;
9783   
9784 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9785     l_balance_type_code <> 'B' THEN
9786 IF NVL(p_source_38,'
9787 ') <>  'CLEAR_CLEAR' AND 
9788 NVL(p_source_20,'
9789 ') =  'ACCRUAL' AND 
9790 NVL(p_source_60,'
9791 ') <>  'R'
9792  THEN 
9793 
9794    --
9795    XLA_AE_LINES_PKG.SetNewLine;
9796 
9797    p_balance_type_code          := l_balance_type_code;
9798    -- set the flag so later we will know whether the gain loss line needs to be created
9799    
9800    IF(l_balance_type_code = 'A' ) THEN
9801      p_actual_flag :='G';
9802    END IF;
9803 
9804    --
9805    -- bulk performance
9806    --
9807    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9808                                       p_header_num   => 0); -- 4262811
9809    --
9810    -- set accounting line options
9811    --
9812    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9813            p_natural_side_code          => 'G'
9814          , p_gain_or_loss_flag          => 'N'
9815          , p_gl_transfer_mode_code      => 'S'
9816          , p_acct_entry_type_code       => 'A'
9817          , p_switch_side_flag           => ''
9818          , p_merge_duplicate_code       => 'A'
9819          );
9820    --
9821    l_acc_rev_natural_side_code := 'C';  -- 4262811
9822    -- 
9823    --
9824    -- set accounting line type info
9825    --
9826    xla_ae_lines_pkg.SetAcctLineType
9827       (p_component_type             => l_component_type
9828       ,p_event_type_code            => l_event_type_code
9829       ,p_line_definition_owner_code => l_line_definition_owner_code
9830       ,p_line_definition_code       => l_line_definition_code
9831       ,p_accounting_line_code       => l_component_code
9832       ,p_accounting_line_type_code  => l_component_type_code
9833       ,p_accounting_line_appl_id    => l_component_appl_id
9834       ,p_amb_context_code           => l_amb_context_code
9835       ,p_entity_code                => l_entity_code
9836       ,p_event_class_code           => l_event_class_code);
9837    --
9838    -- set accounting class
9839    --
9840    xla_ae_lines_pkg.SetAcctClass(
9841            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
9842          , p_ae_header_id           => l_ae_header_id
9843          );
9844 
9845    --
9846    -- set rounding class
9847    --
9848    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9849                       'EXCHANGE_RATE_VARIANCE';
9850 
9851    --
9855    -- bulk performance
9852    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9853    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9854    --
9856    --
9857    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9858 
9859    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9860       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9861 
9862    -- 4955764
9863    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9864       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9865 
9866    -- 4458381 Public Sector Enh
9867    
9868    --
9869    -- set accounting attributes for the line type
9870    --
9871    l_entered_amt_idx := NULL;
9872    l_accted_amt_idx  := 10;
9873    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
9874    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9875    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
9876    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
9877    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
9878    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
9879    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
9880    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9881    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
9882    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
9883    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
9884    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
9885    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
9886    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9887    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
9888    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
9889    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
9890    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
9891    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
9892    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
9893    l_rec_acct_attrs.array_num_value(10)  := p_source_9;
9894    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
9895    l_rec_acct_attrs.array_char_value(11)  := p_source_53;
9896    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
9897    l_rec_acct_attrs.array_num_value(12)  := p_source_54;
9898    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
9899    l_rec_acct_attrs.array_num_value(13)  := p_source_55;
9900    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
9901    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
9902    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
9903    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
9904    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
9905    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
9906    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
9907    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
9908    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
9909    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
9910    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
9911    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
9912 
9913    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9914    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9915 
9916    ---------------------------------------------------------------------------------------------------------------
9917    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9918    ---------------------------------------------------------------------------------------------------------------
9919    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9920 
9921    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9922    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9923 
9924    IF xla_accounting_cache_pkg.GetValueChar
9925          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9926          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9927    AND l_bflow_method_code = 'PRIOR_ENTRY'
9928 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9929    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9930          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9931        )
9932    THEN
9933          xla_ae_lines_pkg.BflowUpgEntry
9934            (p_business_method_code    => l_bflow_method_code
9935            ,p_business_class_code     => l_bflow_class_code
9936            ,p_balance_type            => l_balance_type_code);
9937    ELSE
9938       NULL;
9939 -- No business flow processing for business flow method of NONE.
9940    END IF;
9941 
9942    --
9943    -- call analytical criteria
9944    --
9945    
9946    --
9947    -- call description
9948    --
9949    -- No description or it is inherited.
9950    --
9951    -- call ADRs
9952    -- Bug 4922099
9953    --
9957       )
9954    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9955         (NVL(l_actual_upg_option, 'N') = 'O') OR
9956         (NVL(l_enc_upg_option, 'N') = 'O')
9958    THEN
9959    NULL;
9960    --
9961    --
9962    
9963   l_ccid := AcctDerRule_22(
9964            p_application_id           => p_application_id
9965          , p_ae_header_id             => l_ae_header_id 
9966 , p_source_4 => p_source_4
9967 , p_source_4_meaning => p_source_4_meaning
9968 , p_source_5 => p_source_5
9969 , p_source_7 => p_source_7
9970 , p_source_7_meaning => p_source_7_meaning
9971 , p_source_8 => p_source_8
9972 , p_source_9 => p_source_9
9973 , p_source_10 => p_source_10
9974 , p_source_17 => p_source_17
9975 , p_source_30 => p_source_30
9976 , p_source_30_meaning => p_source_30_meaning
9977          , x_transaction_coa_id       => l_adr_transaction_coa_id
9978          , x_accounting_coa_id        => l_adr_accounting_coa_id
9979          , x_value_type_code          => l_adr_value_type_code
9980          , p_side                     => 'ALL'
9981    );
9982 
9983    xla_ae_lines_pkg.set_ccid(
9984     p_code_combination_id          => l_ccid
9985   , p_value_type_code              => l_adr_value_type_code
9986   , p_transaction_coa_id           => l_adr_transaction_coa_id
9987   , p_accounting_coa_id            => l_adr_accounting_coa_id
9988   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
9989   , p_adr_type_code                => 'S'
9990   , p_component_type               => l_component_type
9991   , p_component_code               => l_component_code
9992   , p_component_type_code          => l_component_type_code
9993   , p_component_appl_id            => l_component_appl_id
9994   , p_amb_context_code             => l_amb_context_code
9995   , p_side                         => 'ALL'
9996   );
9997 
9998 
9999    l_segment := AcctDerRule_5(
10000            p_application_id           => p_application_id
10001          , p_ae_header_id             => l_ae_header_id 
10002 , p_source_4 => p_source_4
10003 , p_source_4_meaning => p_source_4_meaning
10004 , p_source_5 => p_source_5
10005 , p_source_7 => p_source_7
10006 , p_source_7_meaning => p_source_7_meaning
10007          , x_transaction_coa_id       => l_adr_transaction_coa_id
10008          , x_accounting_coa_id        => l_adr_accounting_coa_id
10009          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10010          , x_flex_value_set_id        => l_adr_flex_value_set_id
10011          , x_value_type_code          => l_adr_value_type_code
10012          , x_value_combination_id     => l_adr_value_combination_id
10013          , x_value_segment_code       => l_adr_value_segment_code
10014          , p_side                     => 'CREDIT'
10015          , p_override_seg_flag        => 'Y'
10016    );
10017 
10018    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10019 
10020       xla_ae_lines_pkg.set_segment(
10021           p_to_segment_code         => 'GL_ACCOUNT'
10022         , p_segment_value           => l_segment
10023         , p_from_segment_code       => l_adr_value_segment_code
10024         , p_from_combination_id     => l_adr_value_combination_id
10025         , p_value_type_code         => l_adr_value_type_code
10026         , p_transaction_coa_id      => l_adr_transaction_coa_id
10027         , p_accounting_coa_id       => l_adr_accounting_coa_id
10028         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10029         , p_flex_value_set_id       => l_adr_flex_value_set_id
10030         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10031         , p_adr_type_code           => 'S'
10032         , p_component_type          => l_component_type
10033         , p_component_code          => l_component_code
10034         , p_component_type_code     => l_component_type_code
10035         , p_component_appl_id       => l_component_appl_id
10036         , p_amb_context_code        => l_amb_context_code
10037         , p_entity_code             => 'AP_PAYMENTS'
10038         , p_event_class_code        => 'PAYMENTS'
10039         , p_side                    => 'CREDIT'
10040         );
10041 
10042   END IF;
10043 
10044    l_segment := AcctDerRule_6(
10045            p_application_id           => p_application_id
10046          , p_ae_header_id             => l_ae_header_id 
10047 , p_source_4 => p_source_4
10048 , p_source_4_meaning => p_source_4_meaning
10049 , p_source_7 => p_source_7
10050 , p_source_7_meaning => p_source_7_meaning
10051 , p_source_8 => p_source_8
10052          , x_transaction_coa_id       => l_adr_transaction_coa_id
10053          , x_accounting_coa_id        => l_adr_accounting_coa_id
10054          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10055          , x_flex_value_set_id        => l_adr_flex_value_set_id
10056          , x_value_type_code          => l_adr_value_type_code
10057          , x_value_combination_id     => l_adr_value_combination_id
10058          , x_value_segment_code       => l_adr_value_segment_code
10059          , p_side                     => 'DEBIT'
10060          , p_override_seg_flag        => 'Y'
10061    );
10062 
10063    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10064 
10065       xla_ae_lines_pkg.set_segment(
10066           p_to_segment_code         => 'GL_ACCOUNT'
10067         , p_segment_value           => l_segment
10071         , p_transaction_coa_id      => l_adr_transaction_coa_id
10068         , p_from_segment_code       => l_adr_value_segment_code
10069         , p_from_combination_id     => l_adr_value_combination_id
10070         , p_value_type_code         => l_adr_value_type_code
10072         , p_accounting_coa_id       => l_adr_accounting_coa_id
10073         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10074         , p_flex_value_set_id       => l_adr_flex_value_set_id
10075         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10076         , p_adr_type_code           => 'S'
10077         , p_component_type          => l_component_type
10078         , p_component_code          => l_component_code
10079         , p_component_type_code     => l_component_type_code
10080         , p_component_appl_id       => l_component_appl_id
10081         , p_amb_context_code        => l_amb_context_code
10082         , p_entity_code             => 'AP_PAYMENTS'
10083         , p_event_class_code        => 'PAYMENTS'
10084         , p_side                    => 'DEBIT'
10085         );
10086 
10087   END IF;
10088 
10089    l_segment := AcctDerRule_15(
10090            p_application_id           => p_application_id
10091          , p_ae_header_id             => l_ae_header_id 
10092 , p_source_4 => p_source_4
10093 , p_source_4_meaning => p_source_4_meaning
10094 , p_source_7 => p_source_7
10095 , p_source_7_meaning => p_source_7_meaning
10096 , p_source_17 => p_source_17
10097          , x_transaction_coa_id       => l_adr_transaction_coa_id
10098          , x_accounting_coa_id        => l_adr_accounting_coa_id
10099          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10100          , x_flex_value_set_id        => l_adr_flex_value_set_id
10101          , x_value_type_code          => l_adr_value_type_code
10102          , x_value_combination_id     => l_adr_value_combination_id
10103          , x_value_segment_code       => l_adr_value_segment_code
10104          , p_side                     => 'ALL'
10105          , p_override_seg_flag        => 'Y'
10106    );
10107 
10108    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10109 
10110       xla_ae_lines_pkg.set_segment(
10111           p_to_segment_code         => 'GL_BALANCING'
10112         , p_segment_value           => l_segment
10113         , p_from_segment_code       => l_adr_value_segment_code
10114         , p_from_combination_id     => l_adr_value_combination_id
10115         , p_value_type_code         => l_adr_value_type_code
10116         , p_transaction_coa_id      => l_adr_transaction_coa_id
10117         , p_accounting_coa_id       => l_adr_accounting_coa_id
10118         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10119         , p_flex_value_set_id       => l_adr_flex_value_set_id
10120         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10121         , p_adr_type_code           => 'S'
10122         , p_component_type          => l_component_type
10123         , p_component_code          => l_component_code
10124         , p_component_type_code     => l_component_type_code
10125         , p_component_appl_id       => l_component_appl_id
10126         , p_amb_context_code        => l_amb_context_code
10127         , p_entity_code             => 'AP_PAYMENTS'
10128         , p_event_class_code        => 'PAYMENTS'
10129         , p_side                    => 'ALL'
10130         );
10131 
10132   END IF;
10133 
10134    --
10135    --
10136    END IF;
10137    --
10138    -- Bug 4922099
10139    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10140           (NVL(l_enc_upg_option, 'N') = 'O')
10141         ) AND
10142         (l_bflow_method_code = 'PRIOR_ENTRY')
10143       )
10144    THEN
10145       IF
10146       --
10147       1 = 2
10148       --
10149       THEN
10150       xla_accounting_err_pkg.build_message
10151                                     (p_appli_s_name            => 'XLA'
10152                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10153                                     ,p_token_1                 => 'LINE_NUMBER'
10154                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
10155                                     ,p_token_2                 => 'LINE_TYPE_NAME'
10156                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
10157                                                                              l_component_type
10158                                                                             ,l_component_code
10159                                                                             ,l_component_type_code
10160                                                                             ,l_component_appl_id
10161                                                                             ,l_amb_context_code
10162                                                                             ,l_entity_code
10163                                                                             ,l_event_class_code
10164                                                                            )
10165                                     ,p_token_3                 => 'OWNER'
10166                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
10167                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
10168                                                                           ,p_lookup_code    => l_component_type_code
10169                                                                          )
10173                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10170                                     ,p_token_4                 => 'PRODUCT_NAME'
10171                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10172                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10174                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10175                                     ,p_ae_header_id            =>  NULL
10176                                        );
10177 
10178         IF (C_LEVEL_ERROR>= g_log_level) THEN
10179                  trace
10180                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10181                       ,p_level    => C_LEVEL_ERROR
10182                       ,p_module   => l_log_module);
10183         END IF;
10184       END IF;
10185    END IF;
10186    --
10187    --
10188    ------------------------------------------------------------------------------------------------
10189    -- 4219869 Business Flow
10190    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10191    -- Prior Entry.  Currently, the following code is always generated.
10192    ------------------------------------------------------------------------------------------------
10193    XLA_AE_LINES_PKG.ValidateCurrentLine;
10194 
10195    ------------------------------------------------------------------------------------
10196    -- 4219869 Business Flow
10197    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10198    ------------------------------------------------------------------------------------
10199    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10200 
10201    ----------------------------------------------------------------------------------
10202    -- 4219869 Business Flow
10203    -- Update journal entry status -- Need to generate this within IF <condition>
10204    ----------------------------------------------------------------------------------
10205    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10206          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10207          ,p_balance_type_code => l_balance_type_code
10208          );
10209 
10210    -------------------------------------------------------------------------------------------
10211    -- 4262811 - Generate the Accrual Reversal lines
10212    -------------------------------------------------------------------------------------------
10213    BEGIN
10214       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10215                               (g_array_event(p_event_id).array_value_num('header_index'));
10216       IF l_acc_rev_flag IS NULL THEN
10217          l_acc_rev_flag := 'N';
10218       END IF;
10219    EXCEPTION
10220       WHEN OTHERS THEN
10221          l_acc_rev_flag := 'N';
10222    END;
10223    --
10224    IF (l_acc_rev_flag = 'Y') THEN
10225 
10226        -- 4645092  ------------------------------------------------------------------------------
10227        -- To allow MPA report to determine if it should generate report process
10228        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10229        ------------------------------------------------------------------------------------------
10230 
10231        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10232        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10233    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
10234    -- call ADRs
10235    -- Bug 4922099
10236    --
10237    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10238         (NVL(l_actual_upg_option, 'N') = 'O') OR
10239         (NVL(l_enc_upg_option, 'N') = 'O')
10240       )
10241    THEN
10242    NULL;
10243    --
10244    --
10245    
10246   l_ccid := AcctDerRule_22(
10247            p_application_id           => p_application_id
10248          , p_ae_header_id             => l_ae_header_id 
10249 , p_source_4 => p_source_4
10250 , p_source_4_meaning => p_source_4_meaning
10251 , p_source_5 => p_source_5
10252 , p_source_7 => p_source_7
10253 , p_source_7_meaning => p_source_7_meaning
10254 , p_source_8 => p_source_8
10255 , p_source_9 => p_source_9
10256 , p_source_10 => p_source_10
10257 , p_source_17 => p_source_17
10258 , p_source_30 => p_source_30
10259 , p_source_30_meaning => p_source_30_meaning
10260          , x_transaction_coa_id       => l_adr_transaction_coa_id
10261          , x_accounting_coa_id        => l_adr_accounting_coa_id
10262          , x_value_type_code          => l_adr_value_type_code
10263          , p_side                     => 'ALL'
10264    );
10265 
10266    xla_ae_lines_pkg.set_ccid(
10267     p_code_combination_id          => l_ccid
10268   , p_value_type_code              => l_adr_value_type_code
10269   , p_transaction_coa_id           => l_adr_transaction_coa_id
10270   , p_accounting_coa_id            => l_adr_accounting_coa_id
10271   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
10272   , p_adr_type_code                => 'S'
10273   , p_component_type               => l_component_type
10274   , p_component_code               => l_component_code
10275   , p_component_type_code          => l_component_type_code
10276   , p_component_appl_id            => l_component_appl_id
10280 
10277   , p_amb_context_code             => l_amb_context_code
10278   , p_side                         => 'ALL'
10279   );
10281 
10282    l_segment := AcctDerRule_5(
10283            p_application_id           => p_application_id
10284          , p_ae_header_id             => l_ae_header_id 
10285 , p_source_4 => p_source_4
10286 , p_source_4_meaning => p_source_4_meaning
10287 , p_source_5 => p_source_5
10288 , p_source_7 => p_source_7
10289 , p_source_7_meaning => p_source_7_meaning
10290          , x_transaction_coa_id       => l_adr_transaction_coa_id
10291          , x_accounting_coa_id        => l_adr_accounting_coa_id
10292          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10293          , x_flex_value_set_id        => l_adr_flex_value_set_id
10294          , x_value_type_code          => l_adr_value_type_code
10295          , x_value_combination_id     => l_adr_value_combination_id
10296          , x_value_segment_code       => l_adr_value_segment_code
10297          , p_side                     => 'CREDIT'
10298          , p_override_seg_flag        => 'Y'
10299    );
10300 
10301    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10302 
10303       xla_ae_lines_pkg.set_segment(
10304           p_to_segment_code         => 'GL_ACCOUNT'
10305         , p_segment_value           => l_segment
10306         , p_from_segment_code       => l_adr_value_segment_code
10307         , p_from_combination_id     => l_adr_value_combination_id
10308         , p_value_type_code         => l_adr_value_type_code
10309         , p_transaction_coa_id      => l_adr_transaction_coa_id
10310         , p_accounting_coa_id       => l_adr_accounting_coa_id
10311         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10312         , p_flex_value_set_id       => l_adr_flex_value_set_id
10313         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10314         , p_adr_type_code           => 'S'
10315         , p_component_type          => l_component_type
10316         , p_component_code          => l_component_code
10317         , p_component_type_code     => l_component_type_code
10318         , p_component_appl_id       => l_component_appl_id
10319         , p_amb_context_code        => l_amb_context_code
10320         , p_entity_code             => 'AP_PAYMENTS'
10321         , p_event_class_code        => 'PAYMENTS'
10322         , p_side                    => 'CREDIT'
10323         );
10324 
10325   END IF;
10326 
10327    l_segment := AcctDerRule_6(
10328            p_application_id           => p_application_id
10329          , p_ae_header_id             => l_ae_header_id 
10330 , p_source_4 => p_source_4
10331 , p_source_4_meaning => p_source_4_meaning
10332 , p_source_7 => p_source_7
10333 , p_source_7_meaning => p_source_7_meaning
10334 , p_source_8 => p_source_8
10335          , x_transaction_coa_id       => l_adr_transaction_coa_id
10336          , x_accounting_coa_id        => l_adr_accounting_coa_id
10337          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10338          , x_flex_value_set_id        => l_adr_flex_value_set_id
10339          , x_value_type_code          => l_adr_value_type_code
10340          , x_value_combination_id     => l_adr_value_combination_id
10341          , x_value_segment_code       => l_adr_value_segment_code
10342          , p_side                     => 'DEBIT'
10343          , p_override_seg_flag        => 'Y'
10344    );
10345 
10346    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10347 
10348       xla_ae_lines_pkg.set_segment(
10349           p_to_segment_code         => 'GL_ACCOUNT'
10350         , p_segment_value           => l_segment
10351         , p_from_segment_code       => l_adr_value_segment_code
10352         , p_from_combination_id     => l_adr_value_combination_id
10353         , p_value_type_code         => l_adr_value_type_code
10354         , p_transaction_coa_id      => l_adr_transaction_coa_id
10355         , p_accounting_coa_id       => l_adr_accounting_coa_id
10356         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10357         , p_flex_value_set_id       => l_adr_flex_value_set_id
10358         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10359         , p_adr_type_code           => 'S'
10360         , p_component_type          => l_component_type
10361         , p_component_code          => l_component_code
10362         , p_component_type_code     => l_component_type_code
10363         , p_component_appl_id       => l_component_appl_id
10364         , p_amb_context_code        => l_amb_context_code
10365         , p_entity_code             => 'AP_PAYMENTS'
10366         , p_event_class_code        => 'PAYMENTS'
10367         , p_side                    => 'DEBIT'
10368         );
10369 
10370   END IF;
10371 
10372    l_segment := AcctDerRule_15(
10373            p_application_id           => p_application_id
10374          , p_ae_header_id             => l_ae_header_id 
10375 , p_source_4 => p_source_4
10376 , p_source_4_meaning => p_source_4_meaning
10377 , p_source_7 => p_source_7
10378 , p_source_7_meaning => p_source_7_meaning
10379 , p_source_17 => p_source_17
10380          , x_transaction_coa_id       => l_adr_transaction_coa_id
10381          , x_accounting_coa_id        => l_adr_accounting_coa_id
10382          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10383          , x_flex_value_set_id        => l_adr_flex_value_set_id
10384          , x_value_type_code          => l_adr_value_type_code
10385          , x_value_combination_id     => l_adr_value_combination_id
10389    );
10386          , x_value_segment_code       => l_adr_value_segment_code
10387          , p_side                     => 'ALL'
10388          , p_override_seg_flag        => 'Y'
10390 
10391    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10392 
10393       xla_ae_lines_pkg.set_segment(
10394           p_to_segment_code         => 'GL_BALANCING'
10395         , p_segment_value           => l_segment
10396         , p_from_segment_code       => l_adr_value_segment_code
10397         , p_from_combination_id     => l_adr_value_combination_id
10398         , p_value_type_code         => l_adr_value_type_code
10399         , p_transaction_coa_id      => l_adr_transaction_coa_id
10400         , p_accounting_coa_id       => l_adr_accounting_coa_id
10401         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10402         , p_flex_value_set_id       => l_adr_flex_value_set_id
10403         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10404         , p_adr_type_code           => 'S'
10405         , p_component_type          => l_component_type
10406         , p_component_code          => l_component_code
10407         , p_component_type_code     => l_component_type_code
10408         , p_component_appl_id       => l_component_appl_id
10409         , p_amb_context_code        => l_amb_context_code
10410         , p_entity_code             => 'AP_PAYMENTS'
10411         , p_event_class_code        => 'PAYMENTS'
10412         , p_side                    => 'ALL'
10413         );
10414 
10415   END IF;
10416 
10417    --
10418    --
10419    END IF;
10420 
10421        --
10422        -- Update the line information that should be overwritten
10423        --
10424        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10425                                          p_header_num   => 1);
10426        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
10427 
10428        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10429 
10430        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
10431           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10432        END IF;
10433 
10434       --
10435       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10436       --
10437       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10438           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
10439       ELSE
10440           ---------------------------------------------------------------------------------------------------
10441           -- 4262811a Switch Sign
10442           ---------------------------------------------------------------------------------------------------
10443           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
10444           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10445                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10446           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10447                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10448           -- 5132302
10449           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10450                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10451 
10452       END IF;
10453 
10454       -- 4955764
10455       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10456       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10457 
10458 
10459       XLA_AE_LINES_PKG.ValidateCurrentLine;
10460       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10461 
10462       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10463                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10464                ,p_balance_type_code => l_balance_type_code);
10465 
10466    END IF;
10467 
10468    -----------------------------------------------------------------------------------------
10469    -- 4262811 Multiperiod Accounting
10470    -----------------------------------------------------------------------------------------
10471      -- No MPA option is assigned.
10472 
10473 
10474 END IF;
10475 END IF;
10476 --
10477 
10478 --
10479 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10480    trace
10481       (p_msg      => 'END of AcctLineType_44'
10482       ,p_level    => C_LEVEL_PROCEDURE
10483       ,p_module   => l_log_module);
10484 END IF;
10485 --
10486 EXCEPTION
10487   WHEN xla_exceptions_pkg.application_exception THEN
10488       RAISE;
10489   WHEN OTHERS THEN
10490        xla_exceptions_pkg.raise_message
10491            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_44');
10492 END AcctLineType_44;
10493 --
10494 
10495 ---------------------------------------
10496 --
10497 -- PRIVATE FUNCTION
10498 --         AcctLineType_45
10499 --
10500 ---------------------------------------
10501 PROCEDURE AcctLineType_45 (
10505  ,p_calculate_g_l_flag    IN VARCHAR2
10502   p_application_id        IN NUMBER
10503  ,p_event_id              IN NUMBER
10504  ,p_calculate_acctd_flag  IN VARCHAR2
10506  ,p_actual_flag           IN OUT VARCHAR2
10507  ,p_balance_type_code     OUT VARCHAR2
10508  ,p_gain_or_loss_ref      OUT VARCHAR2
10509  
10510 --Automatic Offsets Value
10511  , p_source_4            IN VARCHAR2
10512  , p_source_4_meaning    IN VARCHAR2
10513 --Purchase Order Rate Variance Gain Account
10514  , p_source_5            IN NUMBER
10515 --Invoice Distribution Ledger Amount
10516  , p_source_6            IN NUMBER
10517 --Destination Type of the PO Distribution
10518  , p_source_7            IN VARCHAR2
10519  , p_source_7_meaning    IN VARCHAR2
10520 --Purchase Order Rate Variance Loss Account
10521  , p_source_8            IN NUMBER
10522 --Invoice Distribution Account
10523  , p_source_17            IN NUMBER
10524 --Automatic Offsets Flag
10525  , p_source_30            IN VARCHAR2
10526  , p_source_30_meaning    IN VARCHAR2
10527 --Accounting Reversal Indicator
10528  , p_source_40            IN VARCHAR2
10529 --Business Flow Accounts Payable Application Identifier
10530  , p_source_42            IN NUMBER
10531 --Distribution Link Type
10532  , p_source_48            IN VARCHAR2
10533 --Override Accounted Amount Indicator
10534  , p_source_53            IN VARCHAR2
10535  , p_source_53_meaning    IN VARCHAR2
10536 --Third Party Type
10537  , p_source_56            IN VARCHAR2
10538 --Invoice Distribution Tax Line Identifier
10539  , p_source_58            IN NUMBER
10540 --Invoice Distribution Summary Tax Line Identifier
10541  , p_source_59            IN NUMBER
10542 --Invoice Distribution Tax Distribution Identifier from Tax
10543  , p_source_66            IN NUMBER
10544 --Prepayment Distribution Type
10545  , p_source_67            IN VARCHAR2
10546 --Recipient Invoice Distribution Type
10547  , p_source_68            IN VARCHAR2
10548  , p_source_68_meaning    IN VARCHAR2
10549 --Prepayment Application Distribution Identifier
10550  , p_source_71            IN NUMBER
10551 --Invoice Identifier
10552  , p_source_72            IN NUMBER
10553 --Business Flow Prepayment Invoice Distribution Type
10554  , p_source_73            IN VARCHAR2
10555 --Business Flow Prepayment Invoice Entity Code
10556  , p_source_74            IN VARCHAR2
10557 --Business Flow Prepayment Invoice Distribution Identifier
10558  , p_source_75            IN NUMBER
10559 --Business Flow Prepayment Invoice Identifier
10560  , p_source_76            IN NUMBER
10561 --Upgrade Encumbrance Credit Account Class
10562  , p_source_77            IN VARCHAR2
10563 --Payables Encumbrance Upgrade Credit Account
10564  , p_source_78            IN NUMBER
10565 --Payables Encumbrance Upgrade Credit Amount
10566  , p_source_79            IN NUMBER
10567 --Invoice Currency Code
10568  , p_source_80            IN VARCHAR2
10569 --Payables Encumbrance Upgrade Credit Base Amount
10570  , p_source_81            IN NUMBER
10571 --Upgrade Encumbrance Debit Account Class
10572  , p_source_82            IN VARCHAR2
10573 --Payables Encumbrance Upgrade Debit Account
10574  , p_source_83            IN NUMBER
10575 --Payables Encumbrance Upgrade Debit Amount
10576  , p_source_84            IN NUMBER
10577 --Payables Encumbrance Upgrade Debit Base Amount
10578  , p_source_85            IN NUMBER
10579 --Payables Encumbrance Upgrade Option
10580  , p_source_86            IN VARCHAR2
10581 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
10582  , p_source_89            IN NUMBER
10583 --Deferred Accounting End Date
10584  , p_source_90            IN DATE
10585 --Deferred Accounting Option
10586  , p_source_91            IN VARCHAR2
10587 --Deferred Accounting Start Date
10588  , p_source_92            IN DATE
10589 --Invoice Supplier Identifier
10590  , p_source_93            IN NUMBER
10591 --Invoice Supplier Site Identifier
10592  , p_source_94            IN NUMBER
10593 --Identifier of the Prepayment Application Reversed
10594  , p_source_95            IN NUMBER
10595 --Payables Upgrade Credit Encumbrance Type Identifier
10596  , p_source_96            IN NUMBER
10597 --Payables Upgrade Debit Encumbrance Type Identifier
10598  , p_source_97            IN NUMBER
10599 )
10600 IS
10601 
10602 l_component_type              VARCHAR2(80);
10603 l_component_code              VARCHAR2(30);
10604 l_component_type_code         VARCHAR2(1);
10605 l_component_appl_id           INTEGER;
10606 l_amb_context_code            VARCHAR2(30);
10607 l_entity_code                 VARCHAR2(30);
10608 l_event_class_code            VARCHAR2(30);
10609 l_ae_header_id                NUMBER;
10610 l_event_type_code             VARCHAR2(30);
10611 l_line_definition_code        VARCHAR2(30);
10612 l_line_definition_owner_code  VARCHAR2(1);
10613 --
10614 -- adr variables
10615 l_segment                     VARCHAR2(30);
10616 l_ccid                        NUMBER;
10617 l_adr_transaction_coa_id      NUMBER;
10618 l_adr_accounting_coa_id       NUMBER;
10619 l_adr_flexfield_segment_code  VARCHAR2(30);
10620 l_adr_flex_value_set_id       NUMBER;
10621 l_adr_value_type_code         VARCHAR2(30);
10622 l_adr_value_combination_id    NUMBER;
10623 l_adr_value_segment_code      VARCHAR2(30);
10624 
10625 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
10626 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
10630 -- 4262811 Variables ------------------------------------------------------------------------------------------
10627 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
10628 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
10629 
10631 l_entered_amt_idx             NUMBER;
10632 l_accted_amt_idx              NUMBER;
10633 l_acc_rev_flag                VARCHAR2(1);
10634 l_accrual_line_num            NUMBER;
10635 l_tmp_amt                     NUMBER;
10636 l_acc_rev_natural_side_code   VARCHAR2(1);
10637 
10638 l_num_entries                 NUMBER;
10639 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
10640 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
10641 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
10642 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
10643 l_recog_line_1                NUMBER;
10644 l_recog_line_2                NUMBER;
10645 
10646 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
10647 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
10648 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
10649 
10650 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10651 
10652 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
10653 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
10654 
10655 ---------------------------------------------------------------------------------------------------------------
10656 
10657 
10658 --
10659 -- bulk performance
10660 --
10661 l_balance_type_code           VARCHAR2(1);
10662 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
10663 l_log_module                  VARCHAR2(240);
10664 
10665 --
10666 -- Upgrade strategy
10667 --
10668 l_actual_upg_option           VARCHAR2(1);
10669 l_enc_upg_option           VARCHAR2(1);
10670 
10671 --
10672 BEGIN
10673 --
10674 IF g_log_enabled THEN
10675       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
10676 END IF;
10677 --
10678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10679 
10680       trace
10681          (p_msg      => 'BEGIN of AcctLineType_45'
10682          ,p_level    => C_LEVEL_PROCEDURE
10683          ,p_module   => l_log_module);
10684 
10685 END IF;
10686 --
10687 l_component_type             := 'AMB_JLT';
10688 l_component_code             := 'AP_ALC_EX_RATE_VAR_PREPAY_APP';
10689 l_component_type_code        := 'S';
10690 l_component_appl_id          :=  200;
10691 l_amb_context_code           := 'DEFAULT';
10692 l_entity_code                := 'AP_INVOICES';
10693 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
10694 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
10695 l_line_definition_owner_code := 'S';
10696 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
10697 --
10698 l_balance_type_code          := 'A';
10699 l_segment                     := NULL;
10700 l_ccid                        := NULL;
10701 l_adr_transaction_coa_id      := NULL;
10702 l_adr_accounting_coa_id       := NULL;
10703 l_adr_flexfield_segment_code  := NULL;
10704 l_adr_flex_value_set_id       := NULL;
10705 l_adr_value_type_code         := NULL;
10706 l_adr_value_combination_id    := NULL;
10707 l_adr_value_segment_code      := NULL;
10708 
10709 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
10710 l_bflow_class_code           := '';    -- 4219869 Business Flow
10711 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
10712 l_budgetary_control_flag     := 'N';
10713 
10714 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
10715 l_bflow_applied_to_amt       := NULL; -- 5132302
10716 l_entered_amt_idx            := NULL;          -- 4262811
10717 l_accted_amt_idx             := NULL;          -- 4262811
10718 l_acc_rev_flag               := NULL;          -- 4262811
10719 l_accrual_line_num           := NULL;          -- 4262811
10720 l_tmp_amt                    := NULL;          -- 4262811
10721 --
10722 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10723             (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
10724                return;
10725   END IF;
10726   
10727 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10728     l_balance_type_code <> 'B' THEN
10729 IF (NVL(p_source_67,'
10730 ') =  'PREPAY APPL' OR 
10731 NVL(p_source_67,'
10732 ') =  'PREPAY APPL NONREC TAX' OR 
10733 NVL(p_source_67,'
10734 ') =  'PREPAY APPL REC TAX') AND 
10735 NVL(p_source_68,'
10736 ') =  'ACCRUAL'
10737  THEN 
10738 
10739    --
10740    XLA_AE_LINES_PKG.SetNewLine;
10741 
10742    p_balance_type_code          := l_balance_type_code;
10743    -- set the flag so later we will know whether the gain loss line needs to be created
10744    
10745    IF(l_balance_type_code = 'A' ) THEN
10746      p_actual_flag :='G';
10747    END IF;
10748 
10749    --
10750    -- bulk performance
10751    --
10752    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10753                                       p_header_num   => 0); -- 4262811
10754    --
10755    -- set accounting line options
10759          , p_gain_or_loss_flag          => 'N'
10756    --
10757    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10758            p_natural_side_code          => 'G'
10760          , p_gl_transfer_mode_code      => 'S'
10761          , p_acct_entry_type_code       => 'A'
10762          , p_switch_side_flag           => ''
10763          , p_merge_duplicate_code       => 'A'
10764          );
10765    --
10766    l_acc_rev_natural_side_code := 'C';  -- 4262811
10767    -- 
10768    --
10769    -- set accounting line type info
10770    --
10771    xla_ae_lines_pkg.SetAcctLineType
10772       (p_component_type             => l_component_type
10773       ,p_event_type_code            => l_event_type_code
10774       ,p_line_definition_owner_code => l_line_definition_owner_code
10775       ,p_line_definition_code       => l_line_definition_code
10776       ,p_accounting_line_code       => l_component_code
10777       ,p_accounting_line_type_code  => l_component_type_code
10778       ,p_accounting_line_appl_id    => l_component_appl_id
10779       ,p_amb_context_code           => l_amb_context_code
10780       ,p_entity_code                => l_entity_code
10781       ,p_event_class_code           => l_event_class_code);
10782    --
10783    -- set accounting class
10784    --
10785    xla_ae_lines_pkg.SetAcctClass(
10786            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
10787          , p_ae_header_id           => l_ae_header_id
10788          );
10789 
10790    --
10791    -- set rounding class
10792    --
10793    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10794                       'EXCHANGE_RATE_VARIANCE';
10795 
10796    --
10797    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10798    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10799    --
10800    -- bulk performance
10801    --
10802    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10803 
10804    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10805       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10806 
10807    -- 4955764
10808    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10809       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10810 
10811    -- 4458381 Public Sector Enh
10812    
10813    --
10814    -- set accounting attributes for the line type
10815    --
10816    l_entered_amt_idx := NULL;
10817    l_accted_amt_idx  := 25;
10818    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
10819    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10820    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
10821    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10822    l_rec_acct_attrs.array_num_value(2)  := 
10823 xla_ae_sources_pkg.GetSystemSourceNum(
10824    p_source_code           => 'XLA_EVENT_APPL_ID'
10825  , p_source_type_code      => 'Y'
10826  , p_source_application_id =>  602
10827 );
10828    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10829    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
10830    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10831    l_rec_acct_attrs.array_char_value(4)  := 
10832 xla_ae_sources_pkg.GetSystemSourceChar(
10833    p_source_code           => 'XLA_ENTITY_CODE'
10834  , p_source_type_code      => 'Y'
10835  , p_source_application_id =>  602
10836 );
10837    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10838    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
10839    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10840    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
10841    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10842    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
10843    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10844    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
10845    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10846    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
10847    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10848    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
10849    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10850    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
10851    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10852    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
10853    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10854    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
10855    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
10856    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
10857    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
10858    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
10859    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
10860    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
10861    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
10862    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
10866    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
10863    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
10864    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
10865    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
10867    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
10868    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
10869    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
10870    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
10871    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
10872    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
10873    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
10874    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
10875    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
10876    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
10877    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
10878    l_rec_acct_attrs.array_num_value(25)  := p_source_89;
10879    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
10880    l_rec_acct_attrs.array_date_value(26)  := p_source_90;
10881    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
10882    l_rec_acct_attrs.array_char_value(27)  := p_source_91;
10883    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
10884    l_rec_acct_attrs.array_date_value(28)  := p_source_92;
10885    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
10886    l_rec_acct_attrs.array_char_value(29)  := p_source_53;
10887    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
10888    l_rec_acct_attrs.array_num_value(30)  := p_source_93;
10889    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
10890    l_rec_acct_attrs.array_num_value(31)  := p_source_94;
10891    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
10892    l_rec_acct_attrs.array_char_value(32)  := p_source_56;
10893    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
10894    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_95);
10895    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
10896    l_rec_acct_attrs.array_char_value(34)  := p_source_48;
10897    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
10898    l_rec_acct_attrs.array_num_value(35)  := p_source_58;
10899    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
10900    l_rec_acct_attrs.array_num_value(36)  := p_source_66;
10901    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
10902    l_rec_acct_attrs.array_num_value(37)  := p_source_59;
10903    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
10904    l_rec_acct_attrs.array_num_value(38)  := p_source_96;
10905    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
10906    l_rec_acct_attrs.array_num_value(39)  := p_source_97;
10907 
10908    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10909    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10910 
10911    ---------------------------------------------------------------------------------------------------------------
10912    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10913    ---------------------------------------------------------------------------------------------------------------
10914    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10915 
10916    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10917    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10918 
10919    IF xla_accounting_cache_pkg.GetValueChar
10920          (p_source_code         => 'LEDGER_CATEGORY_CODE'
10921          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10922    AND l_bflow_method_code = 'PRIOR_ENTRY'
10923 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10924    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10925          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10926        )
10927    THEN
10928          xla_ae_lines_pkg.BflowUpgEntry
10929            (p_business_method_code    => l_bflow_method_code
10930            ,p_business_class_code     => l_bflow_class_code
10931            ,p_balance_type            => l_balance_type_code);
10932    ELSE
10933       NULL;
10934 -- No business flow processing for business flow method of NONE.
10935    END IF;
10936 
10937    --
10938    -- call analytical criteria
10939    --
10940    
10941    --
10942    -- call description
10943    --
10944    -- No description or it is inherited.
10945    --
10946    -- call ADRs
10947    -- Bug 4922099
10948    --
10949    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10950         (NVL(l_actual_upg_option, 'N') = 'O') OR
10951         (NVL(l_enc_upg_option, 'N') = 'O')
10952       )
10953    THEN
10954    NULL;
10955    --
10956    --
10957    
10958   l_ccid := AcctDerRule_23(
10959            p_application_id           => p_application_id
10960          , p_ae_header_id             => l_ae_header_id 
10961 , p_source_4 => p_source_4
10962 , p_source_4_meaning => p_source_4_meaning
10963 , p_source_5 => p_source_5
10964 , p_source_6 => p_source_6
10968 , p_source_17 => p_source_17
10965 , p_source_7 => p_source_7
10966 , p_source_7_meaning => p_source_7_meaning
10967 , p_source_8 => p_source_8
10969 , p_source_30 => p_source_30
10970 , p_source_30_meaning => p_source_30_meaning
10971          , x_transaction_coa_id       => l_adr_transaction_coa_id
10972          , x_accounting_coa_id        => l_adr_accounting_coa_id
10973          , x_value_type_code          => l_adr_value_type_code
10974          , p_side                     => 'ALL'
10975    );
10976 
10977    xla_ae_lines_pkg.set_ccid(
10978     p_code_combination_id          => l_ccid
10979   , p_value_type_code              => l_adr_value_type_code
10980   , p_transaction_coa_id           => l_adr_transaction_coa_id
10981   , p_accounting_coa_id            => l_adr_accounting_coa_id
10982   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10983   , p_adr_type_code                => 'S'
10984   , p_component_type               => l_component_type
10985   , p_component_code               => l_component_code
10986   , p_component_type_code          => l_component_type_code
10987   , p_component_appl_id            => l_component_appl_id
10988   , p_amb_context_code             => l_amb_context_code
10989   , p_side                         => 'ALL'
10990   );
10991 
10992 
10993    l_segment := AcctDerRule_5(
10994            p_application_id           => p_application_id
10995          , p_ae_header_id             => l_ae_header_id 
10996 , p_source_4 => p_source_4
10997 , p_source_4_meaning => p_source_4_meaning
10998 , p_source_5 => p_source_5
10999 , p_source_7 => p_source_7
11000 , p_source_7_meaning => p_source_7_meaning
11001          , x_transaction_coa_id       => l_adr_transaction_coa_id
11002          , x_accounting_coa_id        => l_adr_accounting_coa_id
11003          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11004          , x_flex_value_set_id        => l_adr_flex_value_set_id
11005          , x_value_type_code          => l_adr_value_type_code
11006          , x_value_combination_id     => l_adr_value_combination_id
11007          , x_value_segment_code       => l_adr_value_segment_code
11008          , p_side                     => 'CREDIT'
11009          , p_override_seg_flag        => 'Y'
11010    );
11011 
11012    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11013 
11014       xla_ae_lines_pkg.set_segment(
11015           p_to_segment_code         => 'GL_ACCOUNT'
11016         , p_segment_value           => l_segment
11017         , p_from_segment_code       => l_adr_value_segment_code
11018         , p_from_combination_id     => l_adr_value_combination_id
11019         , p_value_type_code         => l_adr_value_type_code
11020         , p_transaction_coa_id      => l_adr_transaction_coa_id
11021         , p_accounting_coa_id       => l_adr_accounting_coa_id
11022         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11023         , p_flex_value_set_id       => l_adr_flex_value_set_id
11024         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11025         , p_adr_type_code           => 'S'
11026         , p_component_type          => l_component_type
11027         , p_component_code          => l_component_code
11028         , p_component_type_code     => l_component_type_code
11029         , p_component_appl_id       => l_component_appl_id
11030         , p_amb_context_code        => l_amb_context_code
11031         , p_entity_code             => 'AP_INVOICES'
11032         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11033         , p_side                    => 'CREDIT'
11034         );
11035 
11036   END IF;
11037 
11038    l_segment := AcctDerRule_6(
11039            p_application_id           => p_application_id
11040          , p_ae_header_id             => l_ae_header_id 
11041 , p_source_4 => p_source_4
11042 , p_source_4_meaning => p_source_4_meaning
11043 , p_source_7 => p_source_7
11044 , p_source_7_meaning => p_source_7_meaning
11045 , p_source_8 => p_source_8
11046          , x_transaction_coa_id       => l_adr_transaction_coa_id
11047          , x_accounting_coa_id        => l_adr_accounting_coa_id
11048          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11049          , x_flex_value_set_id        => l_adr_flex_value_set_id
11050          , x_value_type_code          => l_adr_value_type_code
11051          , x_value_combination_id     => l_adr_value_combination_id
11052          , x_value_segment_code       => l_adr_value_segment_code
11053          , p_side                     => 'DEBIT'
11054          , p_override_seg_flag        => 'Y'
11055    );
11056 
11057    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11058 
11059       xla_ae_lines_pkg.set_segment(
11060           p_to_segment_code         => 'GL_ACCOUNT'
11061         , p_segment_value           => l_segment
11062         , p_from_segment_code       => l_adr_value_segment_code
11063         , p_from_combination_id     => l_adr_value_combination_id
11064         , p_value_type_code         => l_adr_value_type_code
11065         , p_transaction_coa_id      => l_adr_transaction_coa_id
11066         , p_accounting_coa_id       => l_adr_accounting_coa_id
11067         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11068         , p_flex_value_set_id       => l_adr_flex_value_set_id
11069         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11073         , p_component_type_code     => l_component_type_code
11070         , p_adr_type_code           => 'S'
11071         , p_component_type          => l_component_type
11072         , p_component_code          => l_component_code
11074         , p_component_appl_id       => l_component_appl_id
11075         , p_amb_context_code        => l_amb_context_code
11076         , p_entity_code             => 'AP_INVOICES'
11077         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11078         , p_side                    => 'DEBIT'
11079         );
11080 
11081   END IF;
11082 
11083    l_segment := AcctDerRule_15(
11084            p_application_id           => p_application_id
11085          , p_ae_header_id             => l_ae_header_id 
11086 , p_source_4 => p_source_4
11087 , p_source_4_meaning => p_source_4_meaning
11088 , p_source_7 => p_source_7
11089 , p_source_7_meaning => p_source_7_meaning
11090 , p_source_17 => p_source_17
11091          , x_transaction_coa_id       => l_adr_transaction_coa_id
11092          , x_accounting_coa_id        => l_adr_accounting_coa_id
11093          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11094          , x_flex_value_set_id        => l_adr_flex_value_set_id
11095          , x_value_type_code          => l_adr_value_type_code
11096          , x_value_combination_id     => l_adr_value_combination_id
11097          , x_value_segment_code       => l_adr_value_segment_code
11098          , p_side                     => 'ALL'
11099          , p_override_seg_flag        => 'Y'
11100    );
11101 
11102    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11103 
11104       xla_ae_lines_pkg.set_segment(
11105           p_to_segment_code         => 'GL_BALANCING'
11106         , p_segment_value           => l_segment
11107         , p_from_segment_code       => l_adr_value_segment_code
11108         , p_from_combination_id     => l_adr_value_combination_id
11109         , p_value_type_code         => l_adr_value_type_code
11110         , p_transaction_coa_id      => l_adr_transaction_coa_id
11111         , p_accounting_coa_id       => l_adr_accounting_coa_id
11112         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11113         , p_flex_value_set_id       => l_adr_flex_value_set_id
11114         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11115         , p_adr_type_code           => 'S'
11116         , p_component_type          => l_component_type
11117         , p_component_code          => l_component_code
11118         , p_component_type_code     => l_component_type_code
11119         , p_component_appl_id       => l_component_appl_id
11120         , p_amb_context_code        => l_amb_context_code
11121         , p_entity_code             => 'AP_INVOICES'
11122         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11123         , p_side                    => 'ALL'
11124         );
11125 
11126   END IF;
11127 
11128    --
11129    --
11130    END IF;
11131    --
11132    -- Bug 4922099
11133    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11134           (NVL(l_enc_upg_option, 'N') = 'O')
11135         ) AND
11136         (l_bflow_method_code = 'PRIOR_ENTRY')
11137       )
11138    THEN
11139       IF
11140       --
11141       1 = 2
11142       --
11143       THEN
11144       xla_accounting_err_pkg.build_message
11145                                     (p_appli_s_name            => 'XLA'
11146                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11147                                     ,p_token_1                 => 'LINE_NUMBER'
11148                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
11149                                     ,p_token_2                 => 'LINE_TYPE_NAME'
11150                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
11151                                                                              l_component_type
11152                                                                             ,l_component_code
11153                                                                             ,l_component_type_code
11154                                                                             ,l_component_appl_id
11155                                                                             ,l_amb_context_code
11156                                                                             ,l_entity_code
11157                                                                             ,l_event_class_code
11158                                                                            )
11159                                     ,p_token_3                 => 'OWNER'
11160                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
11161                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
11162                                                                           ,p_lookup_code    => l_component_type_code
11163                                                                          )
11164                                     ,p_token_4                 => 'PRODUCT_NAME'
11165                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11166                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11167                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11171 
11168                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11169                                     ,p_ae_header_id            =>  NULL
11170                                        );
11172         IF (C_LEVEL_ERROR>= g_log_level) THEN
11173                  trace
11174                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11175                       ,p_level    => C_LEVEL_ERROR
11176                       ,p_module   => l_log_module);
11177         END IF;
11178       END IF;
11179    END IF;
11180    --
11181    --
11182    ------------------------------------------------------------------------------------------------
11183    -- 4219869 Business Flow
11184    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11185    -- Prior Entry.  Currently, the following code is always generated.
11186    ------------------------------------------------------------------------------------------------
11187    XLA_AE_LINES_PKG.ValidateCurrentLine;
11188 
11189    ------------------------------------------------------------------------------------
11190    -- 4219869 Business Flow
11191    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11192    ------------------------------------------------------------------------------------
11193    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11194 
11195    ----------------------------------------------------------------------------------
11196    -- 4219869 Business Flow
11197    -- Update journal entry status -- Need to generate this within IF <condition>
11198    ----------------------------------------------------------------------------------
11199    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11200          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11201          ,p_balance_type_code => l_balance_type_code
11202          );
11203 
11204    -------------------------------------------------------------------------------------------
11205    -- 4262811 - Generate the Accrual Reversal lines
11206    -------------------------------------------------------------------------------------------
11207    BEGIN
11208       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11209                               (g_array_event(p_event_id).array_value_num('header_index'));
11210       IF l_acc_rev_flag IS NULL THEN
11211          l_acc_rev_flag := 'N';
11212       END IF;
11213    EXCEPTION
11214       WHEN OTHERS THEN
11215          l_acc_rev_flag := 'N';
11216    END;
11217    --
11218    IF (l_acc_rev_flag = 'Y') THEN
11219 
11220        -- 4645092  ------------------------------------------------------------------------------
11221        -- To allow MPA report to determine if it should generate report process
11222        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11223        ------------------------------------------------------------------------------------------
11224 
11225        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11226        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11227    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
11228    -- call ADRs
11229    -- Bug 4922099
11230    --
11231    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11232         (NVL(l_actual_upg_option, 'N') = 'O') OR
11233         (NVL(l_enc_upg_option, 'N') = 'O')
11234       )
11235    THEN
11236    NULL;
11237    --
11238    --
11239    
11240   l_ccid := AcctDerRule_23(
11241            p_application_id           => p_application_id
11242          , p_ae_header_id             => l_ae_header_id 
11243 , p_source_4 => p_source_4
11244 , p_source_4_meaning => p_source_4_meaning
11245 , p_source_5 => p_source_5
11246 , p_source_6 => p_source_6
11247 , p_source_7 => p_source_7
11248 , p_source_7_meaning => p_source_7_meaning
11249 , p_source_8 => p_source_8
11250 , p_source_17 => p_source_17
11251 , p_source_30 => p_source_30
11252 , p_source_30_meaning => p_source_30_meaning
11253          , x_transaction_coa_id       => l_adr_transaction_coa_id
11254          , x_accounting_coa_id        => l_adr_accounting_coa_id
11255          , x_value_type_code          => l_adr_value_type_code
11256          , p_side                     => 'ALL'
11257    );
11258 
11259    xla_ae_lines_pkg.set_ccid(
11260     p_code_combination_id          => l_ccid
11261   , p_value_type_code              => l_adr_value_type_code
11262   , p_transaction_coa_id           => l_adr_transaction_coa_id
11263   , p_accounting_coa_id            => l_adr_accounting_coa_id
11264   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11265   , p_adr_type_code                => 'S'
11266   , p_component_type               => l_component_type
11267   , p_component_code               => l_component_code
11268   , p_component_type_code          => l_component_type_code
11269   , p_component_appl_id            => l_component_appl_id
11270   , p_amb_context_code             => l_amb_context_code
11271   , p_side                         => 'ALL'
11272   );
11273 
11274 
11275    l_segment := AcctDerRule_5(
11276            p_application_id           => p_application_id
11277          , p_ae_header_id             => l_ae_header_id 
11278 , p_source_4 => p_source_4
11279 , p_source_4_meaning => p_source_4_meaning
11280 , p_source_5 => p_source_5
11281 , p_source_7 => p_source_7
11282 , p_source_7_meaning => p_source_7_meaning
11286          , x_flex_value_set_id        => l_adr_flex_value_set_id
11283          , x_transaction_coa_id       => l_adr_transaction_coa_id
11284          , x_accounting_coa_id        => l_adr_accounting_coa_id
11285          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11287          , x_value_type_code          => l_adr_value_type_code
11288          , x_value_combination_id     => l_adr_value_combination_id
11289          , x_value_segment_code       => l_adr_value_segment_code
11290          , p_side                     => 'CREDIT'
11291          , p_override_seg_flag        => 'Y'
11292    );
11293 
11294    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11295 
11296       xla_ae_lines_pkg.set_segment(
11297           p_to_segment_code         => 'GL_ACCOUNT'
11298         , p_segment_value           => l_segment
11299         , p_from_segment_code       => l_adr_value_segment_code
11300         , p_from_combination_id     => l_adr_value_combination_id
11301         , p_value_type_code         => l_adr_value_type_code
11302         , p_transaction_coa_id      => l_adr_transaction_coa_id
11303         , p_accounting_coa_id       => l_adr_accounting_coa_id
11304         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11305         , p_flex_value_set_id       => l_adr_flex_value_set_id
11306         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11307         , p_adr_type_code           => 'S'
11308         , p_component_type          => l_component_type
11309         , p_component_code          => l_component_code
11310         , p_component_type_code     => l_component_type_code
11311         , p_component_appl_id       => l_component_appl_id
11312         , p_amb_context_code        => l_amb_context_code
11313         , p_entity_code             => 'AP_INVOICES'
11314         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11315         , p_side                    => 'CREDIT'
11316         );
11317 
11318   END IF;
11319 
11320    l_segment := AcctDerRule_6(
11321            p_application_id           => p_application_id
11322          , p_ae_header_id             => l_ae_header_id 
11323 , p_source_4 => p_source_4
11324 , p_source_4_meaning => p_source_4_meaning
11325 , p_source_7 => p_source_7
11326 , p_source_7_meaning => p_source_7_meaning
11327 , p_source_8 => p_source_8
11328          , x_transaction_coa_id       => l_adr_transaction_coa_id
11329          , x_accounting_coa_id        => l_adr_accounting_coa_id
11330          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11331          , x_flex_value_set_id        => l_adr_flex_value_set_id
11332          , x_value_type_code          => l_adr_value_type_code
11333          , x_value_combination_id     => l_adr_value_combination_id
11334          , x_value_segment_code       => l_adr_value_segment_code
11335          , p_side                     => 'DEBIT'
11336          , p_override_seg_flag        => 'Y'
11337    );
11338 
11339    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11340 
11341       xla_ae_lines_pkg.set_segment(
11342           p_to_segment_code         => 'GL_ACCOUNT'
11343         , p_segment_value           => l_segment
11344         , p_from_segment_code       => l_adr_value_segment_code
11345         , p_from_combination_id     => l_adr_value_combination_id
11346         , p_value_type_code         => l_adr_value_type_code
11347         , p_transaction_coa_id      => l_adr_transaction_coa_id
11348         , p_accounting_coa_id       => l_adr_accounting_coa_id
11349         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11350         , p_flex_value_set_id       => l_adr_flex_value_set_id
11351         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11352         , p_adr_type_code           => 'S'
11353         , p_component_type          => l_component_type
11354         , p_component_code          => l_component_code
11355         , p_component_type_code     => l_component_type_code
11356         , p_component_appl_id       => l_component_appl_id
11357         , p_amb_context_code        => l_amb_context_code
11358         , p_entity_code             => 'AP_INVOICES'
11359         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11360         , p_side                    => 'DEBIT'
11361         );
11362 
11363   END IF;
11364 
11365    l_segment := AcctDerRule_15(
11366            p_application_id           => p_application_id
11367          , p_ae_header_id             => l_ae_header_id 
11368 , p_source_4 => p_source_4
11369 , p_source_4_meaning => p_source_4_meaning
11370 , p_source_7 => p_source_7
11371 , p_source_7_meaning => p_source_7_meaning
11372 , p_source_17 => p_source_17
11373          , x_transaction_coa_id       => l_adr_transaction_coa_id
11374          , x_accounting_coa_id        => l_adr_accounting_coa_id
11375          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11376          , x_flex_value_set_id        => l_adr_flex_value_set_id
11377          , x_value_type_code          => l_adr_value_type_code
11378          , x_value_combination_id     => l_adr_value_combination_id
11379          , x_value_segment_code       => l_adr_value_segment_code
11380          , p_side                     => 'ALL'
11381          , p_override_seg_flag        => 'Y'
11382    );
11383 
11384    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11385 
11386       xla_ae_lines_pkg.set_segment(
11387           p_to_segment_code         => 'GL_BALANCING'
11388         , p_segment_value           => l_segment
11389         , p_from_segment_code       => l_adr_value_segment_code
11393         , p_accounting_coa_id       => l_adr_accounting_coa_id
11390         , p_from_combination_id     => l_adr_value_combination_id
11391         , p_value_type_code         => l_adr_value_type_code
11392         , p_transaction_coa_id      => l_adr_transaction_coa_id
11394         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11395         , p_flex_value_set_id       => l_adr_flex_value_set_id
11396         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11397         , p_adr_type_code           => 'S'
11398         , p_component_type          => l_component_type
11399         , p_component_code          => l_component_code
11400         , p_component_type_code     => l_component_type_code
11401         , p_component_appl_id       => l_component_appl_id
11402         , p_amb_context_code        => l_amb_context_code
11403         , p_entity_code             => 'AP_INVOICES'
11404         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
11405         , p_side                    => 'ALL'
11406         );
11407 
11408   END IF;
11409 
11410    --
11411    --
11412    END IF;
11413 
11414        --
11415        -- Update the line information that should be overwritten
11416        --
11417        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11418                                          p_header_num   => 1);
11419        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
11420 
11421        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11422 
11423        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
11424           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11425        END IF;
11426 
11427       --
11428       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11429       --
11430       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11431           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
11432       ELSE
11433           ---------------------------------------------------------------------------------------------------
11434           -- 4262811a Switch Sign
11435           ---------------------------------------------------------------------------------------------------
11436           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
11437           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11438                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11439           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11440                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11441           -- 5132302
11442           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11443                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11444 
11445       END IF;
11446 
11447       -- 4955764
11448       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11449       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11450 
11451 
11452       XLA_AE_LINES_PKG.ValidateCurrentLine;
11453       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11454 
11455       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11456                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11457                ,p_balance_type_code => l_balance_type_code);
11458 
11459    END IF;
11460 
11461    -----------------------------------------------------------------------------------------
11462    -- 4262811 Multiperiod Accounting
11463    -----------------------------------------------------------------------------------------
11464      -- No MPA option is assigned.
11465 
11466 
11467 END IF;
11468 END IF;
11469 --
11470 
11471 --
11472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11473    trace
11474       (p_msg      => 'END of AcctLineType_45'
11475       ,p_level    => C_LEVEL_PROCEDURE
11476       ,p_module   => l_log_module);
11477 END IF;
11478 --
11479 EXCEPTION
11480   WHEN xla_exceptions_pkg.application_exception THEN
11481       RAISE;
11482   WHEN OTHERS THEN
11483        xla_exceptions_pkg.raise_message
11484            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_45');
11485 END AcctLineType_45;
11486 --
11487 
11488 ---------------------------------------
11489 --
11490 -- PRIVATE FUNCTION
11491 --         AcctLineType_46
11492 --
11493 ---------------------------------------
11494 PROCEDURE AcctLineType_46 (
11495   p_application_id        IN NUMBER
11496  ,p_event_id              IN NUMBER
11497  ,p_calculate_acctd_flag  IN VARCHAR2
11498  ,p_calculate_g_l_flag    IN VARCHAR2
11499  ,p_actual_flag           IN OUT VARCHAR2
11500  ,p_balance_type_code     OUT VARCHAR2
11501  ,p_gain_or_loss_ref      OUT VARCHAR2
11502  
11503 --Automatic Offsets Value
11504  , p_source_4            IN VARCHAR2
11505  , p_source_4_meaning    IN VARCHAR2
11506 --Purchase Order Rate Variance Gain Account
11507  , p_source_5            IN NUMBER
11511 --Purchase Order Rate Variance Loss Account
11508 --Destination Type of the PO Distribution
11509  , p_source_7            IN VARCHAR2
11510  , p_source_7_meaning    IN VARCHAR2
11512  , p_source_8            IN NUMBER
11513 --Payment Distribution (Payment Rate) Ledger Amount
11514  , p_source_9            IN NUMBER
11515 --Payment Distribution (Cleared Rate) Ledger Amount
11516  , p_source_10            IN NUMBER
11517 --Invoice Distribution Account
11518  , p_source_17            IN NUMBER
11519 --Invoice Distribution Type
11520  , p_source_20            IN VARCHAR2
11521  , p_source_20_meaning    IN VARCHAR2
11522 --Automatic Offsets Flag
11523  , p_source_30            IN VARCHAR2
11524  , p_source_30_meaning    IN VARCHAR2
11525 --When to Account for Payment Option
11526  , p_source_38            IN VARCHAR2
11527 --Accounting Reversal Indicator
11528  , p_source_40            IN VARCHAR2
11529 --Business Flow Accounts Payable Application Identifier
11530  , p_source_42            IN NUMBER
11531 --Payment Distribution Identifier
11532  , p_source_47            IN NUMBER
11533 --Distribution Link Type
11534  , p_source_48            IN VARCHAR2
11535 --Override Accounted Amount Indicator
11536  , p_source_53            IN VARCHAR2
11537  , p_source_53_meaning    IN VARCHAR2
11538 --Payment Supplier Identifier
11539  , p_source_54            IN NUMBER
11540 --Payment Supplier Site Identifier
11541  , p_source_55            IN NUMBER
11542 --Third Party Type
11543  , p_source_56            IN VARCHAR2
11544 --Payment Distribution Reversed Identifier
11545  , p_source_57            IN NUMBER
11546 --Invoice Distribution Tax Line Identifier
11547  , p_source_58            IN NUMBER
11548 --Invoice Distribution Summary Tax Line Identifier
11549  , p_source_59            IN NUMBER
11550 --Payment Type
11551  , p_source_60            IN VARCHAR2
11552  , p_source_60_meaning    IN VARCHAR2
11553 --Business Flow Invoice Distribution Type
11554  , p_source_62            IN VARCHAR2
11555 --Business Flow Invoice Entity Code
11556  , p_source_63            IN VARCHAR2
11557 --Business Flow Invoice Distribution Identifier
11558  , p_source_64            IN NUMBER
11559 --Business Flow Invoice Identifier
11560  , p_source_65            IN NUMBER
11561 --Invoice Distribution Tax Distribution Identifier from Tax
11562  , p_source_66            IN NUMBER
11563 )
11564 IS
11565 
11566 l_component_type              VARCHAR2(80);
11567 l_component_code              VARCHAR2(30);
11568 l_component_type_code         VARCHAR2(1);
11569 l_component_appl_id           INTEGER;
11570 l_amb_context_code            VARCHAR2(30);
11571 l_entity_code                 VARCHAR2(30);
11572 l_event_class_code            VARCHAR2(30);
11573 l_ae_header_id                NUMBER;
11574 l_event_type_code             VARCHAR2(30);
11575 l_line_definition_code        VARCHAR2(30);
11576 l_line_definition_owner_code  VARCHAR2(1);
11577 --
11578 -- adr variables
11579 l_segment                     VARCHAR2(30);
11580 l_ccid                        NUMBER;
11581 l_adr_transaction_coa_id      NUMBER;
11582 l_adr_accounting_coa_id       NUMBER;
11583 l_adr_flexfield_segment_code  VARCHAR2(30);
11584 l_adr_flex_value_set_id       NUMBER;
11585 l_adr_value_type_code         VARCHAR2(30);
11586 l_adr_value_combination_id    NUMBER;
11587 l_adr_value_segment_code      VARCHAR2(30);
11588 
11589 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
11590 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
11591 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
11592 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
11593 
11594 -- 4262811 Variables ------------------------------------------------------------------------------------------
11595 l_entered_amt_idx             NUMBER;
11596 l_accted_amt_idx              NUMBER;
11597 l_acc_rev_flag                VARCHAR2(1);
11598 l_accrual_line_num            NUMBER;
11599 l_tmp_amt                     NUMBER;
11600 l_acc_rev_natural_side_code   VARCHAR2(1);
11601 
11602 l_num_entries                 NUMBER;
11603 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
11604 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
11605 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
11606 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
11607 l_recog_line_1                NUMBER;
11608 l_recog_line_2                NUMBER;
11609 
11610 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
11611 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
11612 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
11613 
11614 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11615 
11616 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
11617 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
11618 
11619 ---------------------------------------------------------------------------------------------------------------
11620 
11621 
11622 --
11623 -- bulk performance
11624 --
11625 l_balance_type_code           VARCHAR2(1);
11626 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
11627 l_log_module                  VARCHAR2(240);
11628 
11629 --
11630 -- Upgrade strategy
11631 --
11635 --
11632 l_actual_upg_option           VARCHAR2(1);
11633 l_enc_upg_option           VARCHAR2(1);
11634 
11636 BEGIN
11637 --
11638 IF g_log_enabled THEN
11639       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
11640 END IF;
11641 --
11642 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11643 
11644       trace
11645          (p_msg      => 'BEGIN of AcctLineType_46'
11646          ,p_level    => C_LEVEL_PROCEDURE
11647          ,p_module   => l_log_module);
11648 
11649 END IF;
11650 --
11651 l_component_type             := 'AMB_JLT';
11652 l_component_code             := 'AP_ALC_EX_RATE_VAR_REF';
11653 l_component_type_code        := 'S';
11654 l_component_appl_id          :=  200;
11655 l_amb_context_code           := 'DEFAULT';
11656 l_entity_code                := 'AP_PAYMENTS';
11657 l_event_class_code           := 'REFUNDS';
11658 l_event_type_code            := 'REFUNDS_ALL';
11659 l_line_definition_owner_code := 'S';
11660 l_line_definition_code       := 'CASH_REFUNDS_ALL';
11661 --
11662 l_balance_type_code          := 'A';
11663 l_segment                     := NULL;
11664 l_ccid                        := NULL;
11665 l_adr_transaction_coa_id      := NULL;
11666 l_adr_accounting_coa_id       := NULL;
11667 l_adr_flexfield_segment_code  := NULL;
11668 l_adr_flex_value_set_id       := NULL;
11669 l_adr_value_type_code         := NULL;
11670 l_adr_value_combination_id    := NULL;
11671 l_adr_value_segment_code      := NULL;
11672 
11673 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
11674 l_bflow_class_code           := '';    -- 4219869 Business Flow
11675 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
11676 l_budgetary_control_flag     := 'N';
11677 
11678 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
11679 l_bflow_applied_to_amt       := NULL; -- 5132302
11680 l_entered_amt_idx            := NULL;          -- 4262811
11681 l_accted_amt_idx             := NULL;          -- 4262811
11682 l_acc_rev_flag               := NULL;          -- 4262811
11683 l_accrual_line_num           := NULL;          -- 4262811
11684 l_tmp_amt                    := NULL;          -- 4262811
11685 --
11686 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
11687             (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
11688                return;
11689   END IF;
11690   
11691 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11692     l_balance_type_code <> 'B' THEN
11693 IF NVL(p_source_38,'
11694 ') <>  'CLEAR_CLEAR' AND 
11695 NVL(p_source_20,'
11696 ') =  'ACCRUAL' AND 
11697 NVL(p_source_60,'
11698 ') =  'R'
11699  THEN 
11700 
11701    --
11702    XLA_AE_LINES_PKG.SetNewLine;
11703 
11704    p_balance_type_code          := l_balance_type_code;
11705    -- set the flag so later we will know whether the gain loss line needs to be created
11706    
11707    IF(l_balance_type_code = 'A' ) THEN
11708      p_actual_flag :='G';
11709    END IF;
11710 
11711    --
11712    -- bulk performance
11713    --
11714    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11715                                       p_header_num   => 0); -- 4262811
11716    --
11717    -- set accounting line options
11718    --
11719    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11720            p_natural_side_code          => 'G'
11721          , p_gain_or_loss_flag          => 'N'
11722          , p_gl_transfer_mode_code      => 'S'
11723          , p_acct_entry_type_code       => 'A'
11724          , p_switch_side_flag           => ''
11725          , p_merge_duplicate_code       => 'A'
11726          );
11727    --
11728    l_acc_rev_natural_side_code := 'C';  -- 4262811
11729    -- 
11730    --
11731    -- set accounting line type info
11732    --
11733    xla_ae_lines_pkg.SetAcctLineType
11734       (p_component_type             => l_component_type
11735       ,p_event_type_code            => l_event_type_code
11736       ,p_line_definition_owner_code => l_line_definition_owner_code
11737       ,p_line_definition_code       => l_line_definition_code
11738       ,p_accounting_line_code       => l_component_code
11739       ,p_accounting_line_type_code  => l_component_type_code
11740       ,p_accounting_line_appl_id    => l_component_appl_id
11741       ,p_amb_context_code           => l_amb_context_code
11742       ,p_entity_code                => l_entity_code
11743       ,p_event_class_code           => l_event_class_code);
11744    --
11745    -- set accounting class
11746    --
11747    xla_ae_lines_pkg.SetAcctClass(
11748            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
11749          , p_ae_header_id           => l_ae_header_id
11750          );
11751 
11752    --
11753    -- set rounding class
11754    --
11755    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11756                       'EXCHANGE_RATE_VARIANCE';
11757 
11758    --
11759    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11760    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11761    --
11762    -- bulk performance
11766    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11763    --
11764    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11765 
11767       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11768 
11769    -- 4955764
11770    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11771       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11772 
11773    -- 4458381 Public Sector Enh
11774    
11775    --
11776    -- set accounting attributes for the line type
11777    --
11778    l_entered_amt_idx := NULL;
11779    l_accted_amt_idx  := 9;
11780    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
11781    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11782    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
11783    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
11784    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
11785    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11786    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
11787    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
11788    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
11789    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
11790    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
11791    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11792    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
11793    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
11794    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
11795    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
11796    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
11797    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
11798    l_rec_acct_attrs.array_num_value(9)  := p_source_9;
11799    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
11800    l_rec_acct_attrs.array_char_value(10)  := p_source_53;
11801    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
11802    l_rec_acct_attrs.array_num_value(11)  := p_source_54;
11803    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
11804    l_rec_acct_attrs.array_num_value(12)  := p_source_55;
11805    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
11806    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
11807    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
11808    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
11809    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
11810    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
11811    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
11812    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
11813    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
11814    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
11815    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
11816    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
11817 
11818    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11819    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11820 
11821    ---------------------------------------------------------------------------------------------------------------
11822    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11823    ---------------------------------------------------------------------------------------------------------------
11824    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11825 
11826    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11827    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11828 
11829    IF xla_accounting_cache_pkg.GetValueChar
11830          (p_source_code         => 'LEDGER_CATEGORY_CODE'
11831          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11832    AND l_bflow_method_code = 'PRIOR_ENTRY'
11833 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11834    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11835          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11836        )
11837    THEN
11838          xla_ae_lines_pkg.BflowUpgEntry
11839            (p_business_method_code    => l_bflow_method_code
11840            ,p_business_class_code     => l_bflow_class_code
11841            ,p_balance_type            => l_balance_type_code);
11842    ELSE
11843       NULL;
11844 -- No business flow processing for business flow method of NONE.
11845    END IF;
11846 
11847    --
11848    -- call analytical criteria
11849    --
11850    
11851    --
11852    -- call description
11853    --
11854    -- No description or it is inherited.
11855    --
11856    -- call ADRs
11857    -- Bug 4922099
11858    --
11859    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11860         (NVL(l_actual_upg_option, 'N') = 'O') OR
11861         (NVL(l_enc_upg_option, 'N') = 'O')
11862       )
11863    THEN
11864    NULL;
11865    --
11866    --
11867    
11868   l_ccid := AcctDerRule_22(
11872 , p_source_4_meaning => p_source_4_meaning
11869            p_application_id           => p_application_id
11870          , p_ae_header_id             => l_ae_header_id 
11871 , p_source_4 => p_source_4
11873 , p_source_5 => p_source_5
11874 , p_source_7 => p_source_7
11875 , p_source_7_meaning => p_source_7_meaning
11876 , p_source_8 => p_source_8
11877 , p_source_9 => p_source_9
11878 , p_source_10 => p_source_10
11879 , p_source_17 => p_source_17
11880 , p_source_30 => p_source_30
11881 , p_source_30_meaning => p_source_30_meaning
11882          , x_transaction_coa_id       => l_adr_transaction_coa_id
11883          , x_accounting_coa_id        => l_adr_accounting_coa_id
11884          , x_value_type_code          => l_adr_value_type_code
11885          , p_side                     => 'ALL'
11886    );
11887 
11888    xla_ae_lines_pkg.set_ccid(
11889     p_code_combination_id          => l_ccid
11890   , p_value_type_code              => l_adr_value_type_code
11891   , p_transaction_coa_id           => l_adr_transaction_coa_id
11892   , p_accounting_coa_id            => l_adr_accounting_coa_id
11893   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
11894   , p_adr_type_code                => 'S'
11895   , p_component_type               => l_component_type
11896   , p_component_code               => l_component_code
11897   , p_component_type_code          => l_component_type_code
11898   , p_component_appl_id            => l_component_appl_id
11899   , p_amb_context_code             => l_amb_context_code
11900   , p_side                         => 'ALL'
11901   );
11902 
11903 
11904    l_segment := AcctDerRule_5(
11905            p_application_id           => p_application_id
11906          , p_ae_header_id             => l_ae_header_id 
11907 , p_source_4 => p_source_4
11908 , p_source_4_meaning => p_source_4_meaning
11909 , p_source_5 => p_source_5
11910 , p_source_7 => p_source_7
11911 , p_source_7_meaning => p_source_7_meaning
11912          , x_transaction_coa_id       => l_adr_transaction_coa_id
11913          , x_accounting_coa_id        => l_adr_accounting_coa_id
11914          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11915          , x_flex_value_set_id        => l_adr_flex_value_set_id
11916          , x_value_type_code          => l_adr_value_type_code
11917          , x_value_combination_id     => l_adr_value_combination_id
11918          , x_value_segment_code       => l_adr_value_segment_code
11919          , p_side                     => 'CREDIT'
11920          , p_override_seg_flag        => 'Y'
11921    );
11922 
11923    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11924 
11925       xla_ae_lines_pkg.set_segment(
11926           p_to_segment_code         => 'GL_ACCOUNT'
11927         , p_segment_value           => l_segment
11928         , p_from_segment_code       => l_adr_value_segment_code
11929         , p_from_combination_id     => l_adr_value_combination_id
11930         , p_value_type_code         => l_adr_value_type_code
11931         , p_transaction_coa_id      => l_adr_transaction_coa_id
11932         , p_accounting_coa_id       => l_adr_accounting_coa_id
11933         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11934         , p_flex_value_set_id       => l_adr_flex_value_set_id
11935         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11936         , p_adr_type_code           => 'S'
11937         , p_component_type          => l_component_type
11938         , p_component_code          => l_component_code
11939         , p_component_type_code     => l_component_type_code
11940         , p_component_appl_id       => l_component_appl_id
11941         , p_amb_context_code        => l_amb_context_code
11942         , p_entity_code             => 'AP_PAYMENTS'
11943         , p_event_class_code        => 'REFUNDS'
11944         , p_side                    => 'CREDIT'
11945         );
11946 
11947   END IF;
11948 
11949    l_segment := AcctDerRule_6(
11950            p_application_id           => p_application_id
11951          , p_ae_header_id             => l_ae_header_id 
11952 , p_source_4 => p_source_4
11953 , p_source_4_meaning => p_source_4_meaning
11954 , p_source_7 => p_source_7
11955 , p_source_7_meaning => p_source_7_meaning
11956 , p_source_8 => p_source_8
11957          , x_transaction_coa_id       => l_adr_transaction_coa_id
11958          , x_accounting_coa_id        => l_adr_accounting_coa_id
11959          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11960          , x_flex_value_set_id        => l_adr_flex_value_set_id
11961          , x_value_type_code          => l_adr_value_type_code
11962          , x_value_combination_id     => l_adr_value_combination_id
11963          , x_value_segment_code       => l_adr_value_segment_code
11964          , p_side                     => 'DEBIT'
11965          , p_override_seg_flag        => 'Y'
11966    );
11967 
11968    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11969 
11970       xla_ae_lines_pkg.set_segment(
11971           p_to_segment_code         => 'GL_ACCOUNT'
11972         , p_segment_value           => l_segment
11973         , p_from_segment_code       => l_adr_value_segment_code
11974         , p_from_combination_id     => l_adr_value_combination_id
11975         , p_value_type_code         => l_adr_value_type_code
11976         , p_transaction_coa_id      => l_adr_transaction_coa_id
11977         , p_accounting_coa_id       => l_adr_accounting_coa_id
11978         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11982         , p_component_type          => l_component_type
11979         , p_flex_value_set_id       => l_adr_flex_value_set_id
11980         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11981         , p_adr_type_code           => 'S'
11983         , p_component_code          => l_component_code
11984         , p_component_type_code     => l_component_type_code
11985         , p_component_appl_id       => l_component_appl_id
11986         , p_amb_context_code        => l_amb_context_code
11987         , p_entity_code             => 'AP_PAYMENTS'
11988         , p_event_class_code        => 'REFUNDS'
11989         , p_side                    => 'DEBIT'
11990         );
11991 
11992   END IF;
11993 
11994    l_segment := AcctDerRule_15(
11995            p_application_id           => p_application_id
11996          , p_ae_header_id             => l_ae_header_id 
11997 , p_source_4 => p_source_4
11998 , p_source_4_meaning => p_source_4_meaning
11999 , p_source_7 => p_source_7
12000 , p_source_7_meaning => p_source_7_meaning
12001 , p_source_17 => p_source_17
12002          , x_transaction_coa_id       => l_adr_transaction_coa_id
12003          , x_accounting_coa_id        => l_adr_accounting_coa_id
12004          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12005          , x_flex_value_set_id        => l_adr_flex_value_set_id
12006          , x_value_type_code          => l_adr_value_type_code
12007          , x_value_combination_id     => l_adr_value_combination_id
12008          , x_value_segment_code       => l_adr_value_segment_code
12009          , p_side                     => 'ALL'
12010          , p_override_seg_flag        => 'Y'
12011    );
12012 
12013    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12014 
12015       xla_ae_lines_pkg.set_segment(
12016           p_to_segment_code         => 'GL_BALANCING'
12017         , p_segment_value           => l_segment
12018         , p_from_segment_code       => l_adr_value_segment_code
12019         , p_from_combination_id     => l_adr_value_combination_id
12020         , p_value_type_code         => l_adr_value_type_code
12021         , p_transaction_coa_id      => l_adr_transaction_coa_id
12022         , p_accounting_coa_id       => l_adr_accounting_coa_id
12023         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12024         , p_flex_value_set_id       => l_adr_flex_value_set_id
12025         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12026         , p_adr_type_code           => 'S'
12027         , p_component_type          => l_component_type
12028         , p_component_code          => l_component_code
12029         , p_component_type_code     => l_component_type_code
12030         , p_component_appl_id       => l_component_appl_id
12031         , p_amb_context_code        => l_amb_context_code
12032         , p_entity_code             => 'AP_PAYMENTS'
12033         , p_event_class_code        => 'REFUNDS'
12034         , p_side                    => 'ALL'
12035         );
12036 
12037   END IF;
12038 
12039    --
12040    --
12041    END IF;
12042    --
12043    -- Bug 4922099
12044    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12045           (NVL(l_enc_upg_option, 'N') = 'O')
12046         ) AND
12047         (l_bflow_method_code = 'PRIOR_ENTRY')
12048       )
12049    THEN
12050       IF
12051       --
12052       1 = 2
12053       --
12054       THEN
12055       xla_accounting_err_pkg.build_message
12056                                     (p_appli_s_name            => 'XLA'
12057                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12058                                     ,p_token_1                 => 'LINE_NUMBER'
12059                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
12060                                     ,p_token_2                 => 'LINE_TYPE_NAME'
12061                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
12062                                                                              l_component_type
12063                                                                             ,l_component_code
12064                                                                             ,l_component_type_code
12065                                                                             ,l_component_appl_id
12066                                                                             ,l_amb_context_code
12067                                                                             ,l_entity_code
12068                                                                             ,l_event_class_code
12069                                                                            )
12070                                     ,p_token_3                 => 'OWNER'
12071                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
12072                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
12073                                                                           ,p_lookup_code    => l_component_type_code
12074                                                                          )
12075                                     ,p_token_4                 => 'PRODUCT_NAME'
12076                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12077                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12081                                        );
12078                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12079                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12080                                     ,p_ae_header_id            =>  NULL
12082 
12083         IF (C_LEVEL_ERROR>= g_log_level) THEN
12084                  trace
12085                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12086                       ,p_level    => C_LEVEL_ERROR
12087                       ,p_module   => l_log_module);
12088         END IF;
12089       END IF;
12090    END IF;
12091    --
12092    --
12093    ------------------------------------------------------------------------------------------------
12094    -- 4219869 Business Flow
12095    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12096    -- Prior Entry.  Currently, the following code is always generated.
12097    ------------------------------------------------------------------------------------------------
12098    XLA_AE_LINES_PKG.ValidateCurrentLine;
12099 
12100    ------------------------------------------------------------------------------------
12101    -- 4219869 Business Flow
12102    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12103    ------------------------------------------------------------------------------------
12104    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12105 
12106    ----------------------------------------------------------------------------------
12107    -- 4219869 Business Flow
12108    -- Update journal entry status -- Need to generate this within IF <condition>
12109    ----------------------------------------------------------------------------------
12110    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12111          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12112          ,p_balance_type_code => l_balance_type_code
12113          );
12114 
12115    -------------------------------------------------------------------------------------------
12116    -- 4262811 - Generate the Accrual Reversal lines
12117    -------------------------------------------------------------------------------------------
12118    BEGIN
12119       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12120                               (g_array_event(p_event_id).array_value_num('header_index'));
12121       IF l_acc_rev_flag IS NULL THEN
12122          l_acc_rev_flag := 'N';
12123       END IF;
12124    EXCEPTION
12125       WHEN OTHERS THEN
12126          l_acc_rev_flag := 'N';
12127    END;
12128    --
12129    IF (l_acc_rev_flag = 'Y') THEN
12130 
12131        -- 4645092  ------------------------------------------------------------------------------
12132        -- To allow MPA report to determine if it should generate report process
12133        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12134        ------------------------------------------------------------------------------------------
12135 
12136        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12137        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12138    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
12139    -- call ADRs
12140    -- Bug 4922099
12141    --
12142    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12143         (NVL(l_actual_upg_option, 'N') = 'O') OR
12144         (NVL(l_enc_upg_option, 'N') = 'O')
12145       )
12146    THEN
12147    NULL;
12148    --
12149    --
12150    
12151   l_ccid := AcctDerRule_22(
12152            p_application_id           => p_application_id
12153          , p_ae_header_id             => l_ae_header_id 
12154 , p_source_4 => p_source_4
12155 , p_source_4_meaning => p_source_4_meaning
12156 , p_source_5 => p_source_5
12157 , p_source_7 => p_source_7
12158 , p_source_7_meaning => p_source_7_meaning
12159 , p_source_8 => p_source_8
12160 , p_source_9 => p_source_9
12161 , p_source_10 => p_source_10
12162 , p_source_17 => p_source_17
12163 , p_source_30 => p_source_30
12164 , p_source_30_meaning => p_source_30_meaning
12165          , x_transaction_coa_id       => l_adr_transaction_coa_id
12166          , x_accounting_coa_id        => l_adr_accounting_coa_id
12167          , x_value_type_code          => l_adr_value_type_code
12168          , p_side                     => 'ALL'
12169    );
12170 
12171    xla_ae_lines_pkg.set_ccid(
12172     p_code_combination_id          => l_ccid
12173   , p_value_type_code              => l_adr_value_type_code
12174   , p_transaction_coa_id           => l_adr_transaction_coa_id
12175   , p_accounting_coa_id            => l_adr_accounting_coa_id
12176   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
12177   , p_adr_type_code                => 'S'
12178   , p_component_type               => l_component_type
12179   , p_component_code               => l_component_code
12180   , p_component_type_code          => l_component_type_code
12181   , p_component_appl_id            => l_component_appl_id
12182   , p_amb_context_code             => l_amb_context_code
12183   , p_side                         => 'ALL'
12184   );
12185 
12186 
12187    l_segment := AcctDerRule_5(
12188            p_application_id           => p_application_id
12189          , p_ae_header_id             => l_ae_header_id 
12190 , p_source_4 => p_source_4
12194 , p_source_7_meaning => p_source_7_meaning
12191 , p_source_4_meaning => p_source_4_meaning
12192 , p_source_5 => p_source_5
12193 , p_source_7 => p_source_7
12195          , x_transaction_coa_id       => l_adr_transaction_coa_id
12196          , x_accounting_coa_id        => l_adr_accounting_coa_id
12197          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12198          , x_flex_value_set_id        => l_adr_flex_value_set_id
12199          , x_value_type_code          => l_adr_value_type_code
12200          , x_value_combination_id     => l_adr_value_combination_id
12201          , x_value_segment_code       => l_adr_value_segment_code
12202          , p_side                     => 'CREDIT'
12203          , p_override_seg_flag        => 'Y'
12204    );
12205 
12206    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12207 
12208       xla_ae_lines_pkg.set_segment(
12209           p_to_segment_code         => 'GL_ACCOUNT'
12210         , p_segment_value           => l_segment
12211         , p_from_segment_code       => l_adr_value_segment_code
12212         , p_from_combination_id     => l_adr_value_combination_id
12213         , p_value_type_code         => l_adr_value_type_code
12214         , p_transaction_coa_id      => l_adr_transaction_coa_id
12215         , p_accounting_coa_id       => l_adr_accounting_coa_id
12216         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12217         , p_flex_value_set_id       => l_adr_flex_value_set_id
12218         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12219         , p_adr_type_code           => 'S'
12220         , p_component_type          => l_component_type
12221         , p_component_code          => l_component_code
12222         , p_component_type_code     => l_component_type_code
12223         , p_component_appl_id       => l_component_appl_id
12224         , p_amb_context_code        => l_amb_context_code
12225         , p_entity_code             => 'AP_PAYMENTS'
12226         , p_event_class_code        => 'REFUNDS'
12227         , p_side                    => 'CREDIT'
12228         );
12229 
12230   END IF;
12231 
12232    l_segment := AcctDerRule_6(
12233            p_application_id           => p_application_id
12234          , p_ae_header_id             => l_ae_header_id 
12235 , p_source_4 => p_source_4
12236 , p_source_4_meaning => p_source_4_meaning
12237 , p_source_7 => p_source_7
12238 , p_source_7_meaning => p_source_7_meaning
12239 , p_source_8 => p_source_8
12240          , x_transaction_coa_id       => l_adr_transaction_coa_id
12241          , x_accounting_coa_id        => l_adr_accounting_coa_id
12242          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12243          , x_flex_value_set_id        => l_adr_flex_value_set_id
12244          , x_value_type_code          => l_adr_value_type_code
12245          , x_value_combination_id     => l_adr_value_combination_id
12246          , x_value_segment_code       => l_adr_value_segment_code
12247          , p_side                     => 'DEBIT'
12248          , p_override_seg_flag        => 'Y'
12249    );
12250 
12251    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12252 
12253       xla_ae_lines_pkg.set_segment(
12254           p_to_segment_code         => 'GL_ACCOUNT'
12255         , p_segment_value           => l_segment
12256         , p_from_segment_code       => l_adr_value_segment_code
12257         , p_from_combination_id     => l_adr_value_combination_id
12258         , p_value_type_code         => l_adr_value_type_code
12259         , p_transaction_coa_id      => l_adr_transaction_coa_id
12260         , p_accounting_coa_id       => l_adr_accounting_coa_id
12261         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12262         , p_flex_value_set_id       => l_adr_flex_value_set_id
12263         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12264         , p_adr_type_code           => 'S'
12265         , p_component_type          => l_component_type
12266         , p_component_code          => l_component_code
12267         , p_component_type_code     => l_component_type_code
12268         , p_component_appl_id       => l_component_appl_id
12269         , p_amb_context_code        => l_amb_context_code
12270         , p_entity_code             => 'AP_PAYMENTS'
12271         , p_event_class_code        => 'REFUNDS'
12272         , p_side                    => 'DEBIT'
12273         );
12274 
12275   END IF;
12276 
12277    l_segment := AcctDerRule_15(
12278            p_application_id           => p_application_id
12279          , p_ae_header_id             => l_ae_header_id 
12280 , p_source_4 => p_source_4
12281 , p_source_4_meaning => p_source_4_meaning
12282 , p_source_7 => p_source_7
12283 , p_source_7_meaning => p_source_7_meaning
12284 , p_source_17 => p_source_17
12285          , x_transaction_coa_id       => l_adr_transaction_coa_id
12286          , x_accounting_coa_id        => l_adr_accounting_coa_id
12287          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12288          , x_flex_value_set_id        => l_adr_flex_value_set_id
12289          , x_value_type_code          => l_adr_value_type_code
12290          , x_value_combination_id     => l_adr_value_combination_id
12291          , x_value_segment_code       => l_adr_value_segment_code
12292          , p_side                     => 'ALL'
12293          , p_override_seg_flag        => 'Y'
12294    );
12295 
12296    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12297 
12298       xla_ae_lines_pkg.set_segment(
12302         , p_from_combination_id     => l_adr_value_combination_id
12299           p_to_segment_code         => 'GL_BALANCING'
12300         , p_segment_value           => l_segment
12301         , p_from_segment_code       => l_adr_value_segment_code
12303         , p_value_type_code         => l_adr_value_type_code
12304         , p_transaction_coa_id      => l_adr_transaction_coa_id
12305         , p_accounting_coa_id       => l_adr_accounting_coa_id
12306         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12307         , p_flex_value_set_id       => l_adr_flex_value_set_id
12308         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12309         , p_adr_type_code           => 'S'
12310         , p_component_type          => l_component_type
12311         , p_component_code          => l_component_code
12312         , p_component_type_code     => l_component_type_code
12313         , p_component_appl_id       => l_component_appl_id
12314         , p_amb_context_code        => l_amb_context_code
12315         , p_entity_code             => 'AP_PAYMENTS'
12316         , p_event_class_code        => 'REFUNDS'
12317         , p_side                    => 'ALL'
12318         );
12319 
12320   END IF;
12321 
12322    --
12323    --
12324    END IF;
12325 
12326        --
12327        -- Update the line information that should be overwritten
12328        --
12329        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12330                                          p_header_num   => 1);
12331        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
12332 
12333        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12334 
12335        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
12336           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12337        END IF;
12338 
12339       --
12340       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12341       --
12342       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12343           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
12344       ELSE
12345           ---------------------------------------------------------------------------------------------------
12346           -- 4262811a Switch Sign
12347           ---------------------------------------------------------------------------------------------------
12348           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
12349           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12350                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12351           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12352                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12353           -- 5132302
12354           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12355                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12356 
12357       END IF;
12358 
12359       -- 4955764
12360       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12361       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12362 
12363 
12364       XLA_AE_LINES_PKG.ValidateCurrentLine;
12365       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12366 
12367       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12368                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12369                ,p_balance_type_code => l_balance_type_code);
12370 
12371    END IF;
12372 
12373    -----------------------------------------------------------------------------------------
12374    -- 4262811 Multiperiod Accounting
12375    -----------------------------------------------------------------------------------------
12376      -- No MPA option is assigned.
12377 
12378 
12379 END IF;
12380 END IF;
12381 --
12382 
12383 --
12384 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12385    trace
12386       (p_msg      => 'END of AcctLineType_46'
12387       ,p_level    => C_LEVEL_PROCEDURE
12388       ,p_module   => l_log_module);
12389 END IF;
12390 --
12391 EXCEPTION
12392   WHEN xla_exceptions_pkg.application_exception THEN
12393       RAISE;
12394   WHEN OTHERS THEN
12395        xla_exceptions_pkg.raise_message
12396            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_46');
12397 END AcctLineType_46;
12398 --
12399 
12400 ---------------------------------------
12401 --
12402 -- PRIVATE FUNCTION
12403 --         AcctLineType_47
12404 --
12405 ---------------------------------------
12406 PROCEDURE AcctLineType_47 (
12407   p_application_id        IN NUMBER
12408  ,p_event_id              IN NUMBER
12409  ,p_calculate_acctd_flag  IN VARCHAR2
12410  ,p_calculate_g_l_flag    IN VARCHAR2
12411  ,p_actual_flag           IN OUT VARCHAR2
12412  ,p_balance_type_code     OUT VARCHAR2
12413  ,p_gain_or_loss_ref      OUT VARCHAR2
12414  
12415 --Automatic Offsets Value
12419  , p_source_5            IN NUMBER
12416  , p_source_4            IN VARCHAR2
12417  , p_source_4_meaning    IN VARCHAR2
12418 --Purchase Order Rate Variance Gain Account
12420 --Destination Type of the PO Distribution
12421  , p_source_7            IN VARCHAR2
12422  , p_source_7_meaning    IN VARCHAR2
12423 --Purchase Order Rate Variance Loss Account
12424  , p_source_8            IN NUMBER
12425 --Payment Distribution (Payment Rate) Ledger Amount
12426  , p_source_9            IN NUMBER
12427 --Payment Distribution (Cleared Rate) Ledger Amount
12428  , p_source_10            IN NUMBER
12429 --Invoice Distribution Account
12430  , p_source_17            IN NUMBER
12431 --Invoice Distribution Type
12432  , p_source_20            IN VARCHAR2
12433  , p_source_20_meaning    IN VARCHAR2
12434 --Automatic Offsets Flag
12435  , p_source_30            IN VARCHAR2
12436  , p_source_30_meaning    IN VARCHAR2
12437 --When to Account for Payment Option
12438  , p_source_38            IN VARCHAR2
12439 --Payment Distribution Type
12440  , p_source_39            IN VARCHAR2
12441  , p_source_39_meaning    IN VARCHAR2
12442 --Accounting Reversal Indicator
12443  , p_source_40            IN VARCHAR2
12444 --Payment Distribution Amount
12445  , p_source_41            IN NUMBER
12446 --Business Flow Accounts Payable Application Identifier
12447  , p_source_42            IN NUMBER
12448 --Business Flow Payment Distribution Type
12449  , p_source_43            IN VARCHAR2
12450 --Business Flow Payment Entity Code
12451  , p_source_44            IN VARCHAR2
12452 --Business Flow Payment Distribution Identifier
12453  , p_source_45            IN NUMBER
12454 --Business Flow Payment Identifier
12455  , p_source_46            IN NUMBER
12456 --Payment Distribution Identifier
12457  , p_source_47            IN NUMBER
12458 --Distribution Link Type
12459  , p_source_48            IN VARCHAR2
12460 --Override Accounted Amount Indicator
12461  , p_source_53            IN VARCHAR2
12462  , p_source_53_meaning    IN VARCHAR2
12463 --Payment Supplier Identifier
12464  , p_source_54            IN NUMBER
12465 --Payment Supplier Site Identifier
12466  , p_source_55            IN NUMBER
12467 --Third Party Type
12468  , p_source_56            IN VARCHAR2
12469 --Payment Distribution Reversed Identifier
12470  , p_source_57            IN NUMBER
12471 --Invoice Distribution Tax Line Identifier
12472  , p_source_58            IN NUMBER
12473 --Invoice Distribution Summary Tax Line Identifier
12474  , p_source_59            IN NUMBER
12475 --Accrue on Receipt Option
12476  , p_source_100            IN VARCHAR2
12477  , p_source_100_meaning    IN VARCHAR2
12478 )
12479 IS
12480 
12481 l_component_type              VARCHAR2(80);
12482 l_component_code              VARCHAR2(30);
12483 l_component_type_code         VARCHAR2(1);
12484 l_component_appl_id           INTEGER;
12485 l_amb_context_code            VARCHAR2(30);
12486 l_entity_code                 VARCHAR2(30);
12487 l_event_class_code            VARCHAR2(30);
12488 l_ae_header_id                NUMBER;
12489 l_event_type_code             VARCHAR2(30);
12490 l_line_definition_code        VARCHAR2(30);
12491 l_line_definition_owner_code  VARCHAR2(1);
12492 --
12493 -- adr variables
12494 l_segment                     VARCHAR2(30);
12495 l_ccid                        NUMBER;
12496 l_adr_transaction_coa_id      NUMBER;
12497 l_adr_accounting_coa_id       NUMBER;
12498 l_adr_flexfield_segment_code  VARCHAR2(30);
12499 l_adr_flex_value_set_id       NUMBER;
12500 l_adr_value_type_code         VARCHAR2(30);
12501 l_adr_value_combination_id    NUMBER;
12502 l_adr_value_segment_code      VARCHAR2(30);
12503 
12504 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
12505 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
12506 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
12507 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
12508 
12509 -- 4262811 Variables ------------------------------------------------------------------------------------------
12510 l_entered_amt_idx             NUMBER;
12511 l_accted_amt_idx              NUMBER;
12512 l_acc_rev_flag                VARCHAR2(1);
12513 l_accrual_line_num            NUMBER;
12514 l_tmp_amt                     NUMBER;
12515 l_acc_rev_natural_side_code   VARCHAR2(1);
12516 
12517 l_num_entries                 NUMBER;
12518 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
12519 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
12520 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
12521 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
12522 l_recog_line_1                NUMBER;
12523 l_recog_line_2                NUMBER;
12524 
12525 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
12526 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
12527 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
12528 
12529 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12530 
12531 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
12532 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
12533 
12534 ---------------------------------------------------------------------------------------------------------------
12535 
12539 --
12536 
12537 --
12538 -- bulk performance
12540 l_balance_type_code           VARCHAR2(1);
12541 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
12542 l_log_module                  VARCHAR2(240);
12543 
12544 --
12545 -- Upgrade strategy
12546 --
12547 l_actual_upg_option           VARCHAR2(1);
12548 l_enc_upg_option           VARCHAR2(1);
12549 
12550 --
12551 BEGIN
12552 --
12553 IF g_log_enabled THEN
12554       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
12555 END IF;
12556 --
12557 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12558 
12559       trace
12560          (p_msg      => 'BEGIN of AcctLineType_47'
12561          ,p_level    => C_LEVEL_PROCEDURE
12562          ,p_module   => l_log_module);
12563 
12564 END IF;
12565 --
12566 l_component_type             := 'AMB_JLT';
12567 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_CLEAR';
12568 l_component_type_code        := 'S';
12569 l_component_appl_id          :=  200;
12570 l_amb_context_code           := 'DEFAULT';
12571 l_entity_code                := 'AP_PAYMENTS';
12572 l_event_class_code           := 'RECONCILED PAYMENTS';
12573 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
12574 l_line_definition_owner_code := 'S';
12575 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
12576 --
12577 l_balance_type_code          := 'A';
12578 l_segment                     := NULL;
12579 l_ccid                        := NULL;
12580 l_adr_transaction_coa_id      := NULL;
12581 l_adr_accounting_coa_id       := NULL;
12582 l_adr_flexfield_segment_code  := NULL;
12583 l_adr_flex_value_set_id       := NULL;
12584 l_adr_value_type_code         := NULL;
12585 l_adr_value_combination_id    := NULL;
12586 l_adr_value_segment_code      := NULL;
12587 
12588 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
12589 l_bflow_class_code           := '';    -- 4219869 Business Flow
12590 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
12591 l_budgetary_control_flag     := 'N';
12592 
12593 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
12594 l_bflow_applied_to_amt       := NULL; -- 5132302
12595 l_entered_amt_idx            := NULL;          -- 4262811
12596 l_accted_amt_idx             := NULL;          -- 4262811
12597 l_acc_rev_flag               := NULL;          -- 4262811
12598 l_accrual_line_num           := NULL;          -- 4262811
12599 l_tmp_amt                    := NULL;          -- 4262811
12600 --
12601 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
12602             (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
12603                return;
12604   END IF;
12605   
12606 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12607     l_balance_type_code <> 'B' THEN
12608 IF NVL(p_source_38,'
12609 ') =  'CLEAR_CLEAR' AND 
12610 NVL(p_source_20,'
12611 ') =  'NONREC_TAX' AND 
12612 NVL(p_source_100,'
12613 ') =  'Y' AND 
12614 (NVL(p_source_39,'
12615 ') =  'CASH' OR 
12616 NVL(p_source_39,'
12617 ') =  'DISCOUNT')
12618  THEN 
12619 
12620    --
12621    XLA_AE_LINES_PKG.SetNewLine;
12622 
12623    p_balance_type_code          := l_balance_type_code;
12624    -- set the flag so later we will know whether the gain loss line needs to be created
12625    
12626    IF(l_balance_type_code = 'A' ) THEN
12627      p_actual_flag :='G';
12628    END IF;
12629 
12630    --
12631    -- bulk performance
12632    --
12633    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12634                                       p_header_num   => 0); -- 4262811
12635    --
12636    -- set accounting line options
12637    --
12638    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12639            p_natural_side_code          => 'G'
12640          , p_gain_or_loss_flag          => 'N'
12641          , p_gl_transfer_mode_code      => 'S'
12642          , p_acct_entry_type_code       => 'A'
12643          , p_switch_side_flag           => ''
12644          , p_merge_duplicate_code       => 'A'
12645          );
12646    --
12647    l_acc_rev_natural_side_code := 'C';  -- 4262811
12648    -- 
12649    --
12650    -- set accounting line type info
12651    --
12652    xla_ae_lines_pkg.SetAcctLineType
12653       (p_component_type             => l_component_type
12654       ,p_event_type_code            => l_event_type_code
12655       ,p_line_definition_owner_code => l_line_definition_owner_code
12656       ,p_line_definition_code       => l_line_definition_code
12657       ,p_accounting_line_code       => l_component_code
12658       ,p_accounting_line_type_code  => l_component_type_code
12659       ,p_accounting_line_appl_id    => l_component_appl_id
12660       ,p_amb_context_code           => l_amb_context_code
12661       ,p_entity_code                => l_entity_code
12662       ,p_event_class_code           => l_event_class_code);
12663    --
12664    -- set accounting class
12665    --
12666    xla_ae_lines_pkg.SetAcctClass(
12667            p_accounting_class_code  => 'TERV'
12668          , p_ae_header_id           => l_ae_header_id
12669          );
12670 
12671    --
12672    -- set rounding class
12673    --
12677    --
12674    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12675                       'TERV';
12676 
12678    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12679    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12680    --
12681    -- bulk performance
12682    --
12683    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12684 
12685    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12686       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12687 
12688    -- 4955764
12689    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12690       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12691 
12692    -- 4458381 Public Sector Enh
12693    
12694    --
12695    -- set accounting attributes for the line type
12696    --
12697    l_entered_amt_idx := NULL;
12698    l_accted_amt_idx  := 10;
12699    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
12700    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12701    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
12702    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
12703    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
12704    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
12705    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
12706    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12707    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
12708    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
12709    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
12710    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
12711    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
12712    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12713    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
12714    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
12715    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
12716    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
12717    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
12718    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
12719    l_rec_acct_attrs.array_num_value(10)  := p_source_10;
12720    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
12721    l_rec_acct_attrs.array_char_value(11)  := p_source_53;
12722    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
12723    l_rec_acct_attrs.array_num_value(12)  := p_source_54;
12724    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
12725    l_rec_acct_attrs.array_num_value(13)  := p_source_55;
12726    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
12727    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
12728    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
12729    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
12730    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
12731    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
12732    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
12733    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
12734    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
12735    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
12736    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
12737    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
12738 
12739    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12740    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12741 
12742    ---------------------------------------------------------------------------------------------------------------
12743    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12744    ---------------------------------------------------------------------------------------------------------------
12745    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12746 
12747    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12748    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12749 
12750    IF xla_accounting_cache_pkg.GetValueChar
12751          (p_source_code         => 'LEDGER_CATEGORY_CODE'
12752          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12753    AND l_bflow_method_code = 'PRIOR_ENTRY'
12754 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12755    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12756          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12757        )
12758    THEN
12759          xla_ae_lines_pkg.BflowUpgEntry
12760            (p_business_method_code    => l_bflow_method_code
12761            ,p_business_class_code     => l_bflow_class_code
12762            ,p_balance_type            => l_balance_type_code);
12763    ELSE
12764       NULL;
12765 -- No business flow processing for business flow method of NONE.
12766    END IF;
12767 
12768    --
12769    -- call analytical criteria
12770    --
12771    
12772    --
12776    --
12773    -- call description
12774    --
12775    -- No description or it is inherited.
12777    -- call ADRs
12778    -- Bug 4922099
12779    --
12780    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12781         (NVL(l_actual_upg_option, 'N') = 'O') OR
12782         (NVL(l_enc_upg_option, 'N') = 'O')
12783       )
12784    THEN
12785    NULL;
12786    --
12787    --
12788    
12789   l_ccid := AcctDerRule_22(
12790            p_application_id           => p_application_id
12791          , p_ae_header_id             => l_ae_header_id 
12792 , p_source_4 => p_source_4
12793 , p_source_4_meaning => p_source_4_meaning
12794 , p_source_5 => p_source_5
12795 , p_source_7 => p_source_7
12796 , p_source_7_meaning => p_source_7_meaning
12797 , p_source_8 => p_source_8
12798 , p_source_9 => p_source_9
12799 , p_source_10 => p_source_10
12800 , p_source_17 => p_source_17
12801 , p_source_30 => p_source_30
12802 , p_source_30_meaning => p_source_30_meaning
12803          , x_transaction_coa_id       => l_adr_transaction_coa_id
12804          , x_accounting_coa_id        => l_adr_accounting_coa_id
12805          , x_value_type_code          => l_adr_value_type_code
12806          , p_side                     => 'ALL'
12807    );
12808 
12809    xla_ae_lines_pkg.set_ccid(
12810     p_code_combination_id          => l_ccid
12811   , p_value_type_code              => l_adr_value_type_code
12812   , p_transaction_coa_id           => l_adr_transaction_coa_id
12813   , p_accounting_coa_id            => l_adr_accounting_coa_id
12814   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
12815   , p_adr_type_code                => 'S'
12816   , p_component_type               => l_component_type
12817   , p_component_code               => l_component_code
12818   , p_component_type_code          => l_component_type_code
12819   , p_component_appl_id            => l_component_appl_id
12820   , p_amb_context_code             => l_amb_context_code
12821   , p_side                         => 'ALL'
12822   );
12823 
12824 
12825    l_segment := AcctDerRule_5(
12826            p_application_id           => p_application_id
12827          , p_ae_header_id             => l_ae_header_id 
12828 , p_source_4 => p_source_4
12829 , p_source_4_meaning => p_source_4_meaning
12830 , p_source_5 => p_source_5
12831 , p_source_7 => p_source_7
12832 , p_source_7_meaning => p_source_7_meaning
12833          , x_transaction_coa_id       => l_adr_transaction_coa_id
12834          , x_accounting_coa_id        => l_adr_accounting_coa_id
12835          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12836          , x_flex_value_set_id        => l_adr_flex_value_set_id
12837          , x_value_type_code          => l_adr_value_type_code
12838          , x_value_combination_id     => l_adr_value_combination_id
12839          , x_value_segment_code       => l_adr_value_segment_code
12840          , p_side                     => 'CREDIT'
12841          , p_override_seg_flag        => 'Y'
12842    );
12843 
12844    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12845 
12846       xla_ae_lines_pkg.set_segment(
12847           p_to_segment_code         => 'GL_ACCOUNT'
12848         , p_segment_value           => l_segment
12849         , p_from_segment_code       => l_adr_value_segment_code
12850         , p_from_combination_id     => l_adr_value_combination_id
12851         , p_value_type_code         => l_adr_value_type_code
12852         , p_transaction_coa_id      => l_adr_transaction_coa_id
12853         , p_accounting_coa_id       => l_adr_accounting_coa_id
12854         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12855         , p_flex_value_set_id       => l_adr_flex_value_set_id
12856         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12857         , p_adr_type_code           => 'S'
12858         , p_component_type          => l_component_type
12859         , p_component_code          => l_component_code
12860         , p_component_type_code     => l_component_type_code
12861         , p_component_appl_id       => l_component_appl_id
12862         , p_amb_context_code        => l_amb_context_code
12863         , p_entity_code             => 'AP_PAYMENTS'
12864         , p_event_class_code        => 'RECONCILED PAYMENTS'
12865         , p_side                    => 'CREDIT'
12866         );
12867 
12868   END IF;
12869 
12870    l_segment := AcctDerRule_6(
12871            p_application_id           => p_application_id
12872          , p_ae_header_id             => l_ae_header_id 
12873 , p_source_4 => p_source_4
12874 , p_source_4_meaning => p_source_4_meaning
12875 , p_source_7 => p_source_7
12876 , p_source_7_meaning => p_source_7_meaning
12877 , p_source_8 => p_source_8
12878          , x_transaction_coa_id       => l_adr_transaction_coa_id
12879          , x_accounting_coa_id        => l_adr_accounting_coa_id
12880          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12881          , x_flex_value_set_id        => l_adr_flex_value_set_id
12882          , x_value_type_code          => l_adr_value_type_code
12883          , x_value_combination_id     => l_adr_value_combination_id
12884          , x_value_segment_code       => l_adr_value_segment_code
12885          , p_side                     => 'DEBIT'
12886          , p_override_seg_flag        => 'Y'
12887    );
12888 
12889    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12890 
12891       xla_ae_lines_pkg.set_segment(
12892           p_to_segment_code         => 'GL_ACCOUNT'
12893         , p_segment_value           => l_segment
12894         , p_from_segment_code       => l_adr_value_segment_code
12898         , p_accounting_coa_id       => l_adr_accounting_coa_id
12895         , p_from_combination_id     => l_adr_value_combination_id
12896         , p_value_type_code         => l_adr_value_type_code
12897         , p_transaction_coa_id      => l_adr_transaction_coa_id
12899         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12900         , p_flex_value_set_id       => l_adr_flex_value_set_id
12901         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12902         , p_adr_type_code           => 'S'
12903         , p_component_type          => l_component_type
12904         , p_component_code          => l_component_code
12905         , p_component_type_code     => l_component_type_code
12906         , p_component_appl_id       => l_component_appl_id
12907         , p_amb_context_code        => l_amb_context_code
12908         , p_entity_code             => 'AP_PAYMENTS'
12909         , p_event_class_code        => 'RECONCILED PAYMENTS'
12910         , p_side                    => 'DEBIT'
12911         );
12912 
12913   END IF;
12914 
12915    l_segment := AcctDerRule_15(
12916            p_application_id           => p_application_id
12917          , p_ae_header_id             => l_ae_header_id 
12918 , p_source_4 => p_source_4
12919 , p_source_4_meaning => p_source_4_meaning
12920 , p_source_7 => p_source_7
12921 , p_source_7_meaning => p_source_7_meaning
12922 , p_source_17 => p_source_17
12923          , x_transaction_coa_id       => l_adr_transaction_coa_id
12924          , x_accounting_coa_id        => l_adr_accounting_coa_id
12925          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12926          , x_flex_value_set_id        => l_adr_flex_value_set_id
12927          , x_value_type_code          => l_adr_value_type_code
12928          , x_value_combination_id     => l_adr_value_combination_id
12929          , x_value_segment_code       => l_adr_value_segment_code
12930          , p_side                     => 'ALL'
12931          , p_override_seg_flag        => 'Y'
12932    );
12933 
12934    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12935 
12936       xla_ae_lines_pkg.set_segment(
12937           p_to_segment_code         => 'GL_BALANCING'
12938         , p_segment_value           => l_segment
12939         , p_from_segment_code       => l_adr_value_segment_code
12940         , p_from_combination_id     => l_adr_value_combination_id
12941         , p_value_type_code         => l_adr_value_type_code
12942         , p_transaction_coa_id      => l_adr_transaction_coa_id
12943         , p_accounting_coa_id       => l_adr_accounting_coa_id
12944         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12945         , p_flex_value_set_id       => l_adr_flex_value_set_id
12946         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12947         , p_adr_type_code           => 'S'
12948         , p_component_type          => l_component_type
12949         , p_component_code          => l_component_code
12950         , p_component_type_code     => l_component_type_code
12951         , p_component_appl_id       => l_component_appl_id
12952         , p_amb_context_code        => l_amb_context_code
12953         , p_entity_code             => 'AP_PAYMENTS'
12954         , p_event_class_code        => 'RECONCILED PAYMENTS'
12955         , p_side                    => 'ALL'
12956         );
12957 
12958   END IF;
12959 
12960    --
12961    --
12962    END IF;
12963    --
12964    -- Bug 4922099
12965    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12966           (NVL(l_enc_upg_option, 'N') = 'O')
12967         ) AND
12968         (l_bflow_method_code = 'PRIOR_ENTRY')
12969       )
12970    THEN
12971       IF
12972       --
12973       1 = 2
12974       --
12975       THEN
12976       xla_accounting_err_pkg.build_message
12977                                     (p_appli_s_name            => 'XLA'
12978                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12979                                     ,p_token_1                 => 'LINE_NUMBER'
12980                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
12981                                     ,p_token_2                 => 'LINE_TYPE_NAME'
12982                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
12983                                                                              l_component_type
12984                                                                             ,l_component_code
12985                                                                             ,l_component_type_code
12986                                                                             ,l_component_appl_id
12987                                                                             ,l_amb_context_code
12988                                                                             ,l_entity_code
12989                                                                             ,l_event_class_code
12990                                                                            )
12991                                     ,p_token_3                 => 'OWNER'
12992                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
12993                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
12994                                                                           ,p_lookup_code    => l_component_type_code
12995                                                                          )
12999                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12996                                     ,p_token_4                 => 'PRODUCT_NAME'
12997                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12998                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13000                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13001                                     ,p_ae_header_id            =>  NULL
13002                                        );
13003 
13004         IF (C_LEVEL_ERROR>= g_log_level) THEN
13005                  trace
13006                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13007                       ,p_level    => C_LEVEL_ERROR
13008                       ,p_module   => l_log_module);
13009         END IF;
13010       END IF;
13011    END IF;
13012    --
13013    --
13014    ------------------------------------------------------------------------------------------------
13015    -- 4219869 Business Flow
13016    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13017    -- Prior Entry.  Currently, the following code is always generated.
13018    ------------------------------------------------------------------------------------------------
13019    XLA_AE_LINES_PKG.ValidateCurrentLine;
13020 
13021    ------------------------------------------------------------------------------------
13022    -- 4219869 Business Flow
13023    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13024    ------------------------------------------------------------------------------------
13025    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13026 
13027    ----------------------------------------------------------------------------------
13028    -- 4219869 Business Flow
13029    -- Update journal entry status -- Need to generate this within IF <condition>
13030    ----------------------------------------------------------------------------------
13031    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13032          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13033          ,p_balance_type_code => l_balance_type_code
13034          );
13035 
13036    -------------------------------------------------------------------------------------------
13037    -- 4262811 - Generate the Accrual Reversal lines
13038    -------------------------------------------------------------------------------------------
13039    BEGIN
13040       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13041                               (g_array_event(p_event_id).array_value_num('header_index'));
13042       IF l_acc_rev_flag IS NULL THEN
13043          l_acc_rev_flag := 'N';
13044       END IF;
13045    EXCEPTION
13046       WHEN OTHERS THEN
13047          l_acc_rev_flag := 'N';
13048    END;
13049    --
13050    IF (l_acc_rev_flag = 'Y') THEN
13051 
13052        -- 4645092  ------------------------------------------------------------------------------
13053        -- To allow MPA report to determine if it should generate report process
13054        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13055        ------------------------------------------------------------------------------------------
13056 
13057        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13058        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13059    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
13060    -- call ADRs
13061    -- Bug 4922099
13062    --
13063    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13064         (NVL(l_actual_upg_option, 'N') = 'O') OR
13065         (NVL(l_enc_upg_option, 'N') = 'O')
13066       )
13067    THEN
13068    NULL;
13069    --
13070    --
13071    
13072   l_ccid := AcctDerRule_22(
13073            p_application_id           => p_application_id
13074          , p_ae_header_id             => l_ae_header_id 
13075 , p_source_4 => p_source_4
13076 , p_source_4_meaning => p_source_4_meaning
13077 , p_source_5 => p_source_5
13078 , p_source_7 => p_source_7
13079 , p_source_7_meaning => p_source_7_meaning
13080 , p_source_8 => p_source_8
13081 , p_source_9 => p_source_9
13082 , p_source_10 => p_source_10
13083 , p_source_17 => p_source_17
13084 , p_source_30 => p_source_30
13085 , p_source_30_meaning => p_source_30_meaning
13086          , x_transaction_coa_id       => l_adr_transaction_coa_id
13087          , x_accounting_coa_id        => l_adr_accounting_coa_id
13088          , x_value_type_code          => l_adr_value_type_code
13089          , p_side                     => 'ALL'
13090    );
13091 
13092    xla_ae_lines_pkg.set_ccid(
13093     p_code_combination_id          => l_ccid
13094   , p_value_type_code              => l_adr_value_type_code
13095   , p_transaction_coa_id           => l_adr_transaction_coa_id
13096   , p_accounting_coa_id            => l_adr_accounting_coa_id
13097   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
13098   , p_adr_type_code                => 'S'
13099   , p_component_type               => l_component_type
13100   , p_component_code               => l_component_code
13101   , p_component_type_code          => l_component_type_code
13102   , p_component_appl_id            => l_component_appl_id
13103   , p_amb_context_code             => l_amb_context_code
13104   , p_side                         => 'ALL'
13108    l_segment := AcctDerRule_5(
13105   );
13106 
13107 
13109            p_application_id           => p_application_id
13110          , p_ae_header_id             => l_ae_header_id 
13111 , p_source_4 => p_source_4
13112 , p_source_4_meaning => p_source_4_meaning
13113 , p_source_5 => p_source_5
13114 , p_source_7 => p_source_7
13115 , p_source_7_meaning => p_source_7_meaning
13116          , x_transaction_coa_id       => l_adr_transaction_coa_id
13117          , x_accounting_coa_id        => l_adr_accounting_coa_id
13118          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13119          , x_flex_value_set_id        => l_adr_flex_value_set_id
13120          , x_value_type_code          => l_adr_value_type_code
13121          , x_value_combination_id     => l_adr_value_combination_id
13122          , x_value_segment_code       => l_adr_value_segment_code
13123          , p_side                     => 'CREDIT'
13124          , p_override_seg_flag        => 'Y'
13125    );
13126 
13127    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13128 
13129       xla_ae_lines_pkg.set_segment(
13130           p_to_segment_code         => 'GL_ACCOUNT'
13131         , p_segment_value           => l_segment
13132         , p_from_segment_code       => l_adr_value_segment_code
13133         , p_from_combination_id     => l_adr_value_combination_id
13134         , p_value_type_code         => l_adr_value_type_code
13135         , p_transaction_coa_id      => l_adr_transaction_coa_id
13136         , p_accounting_coa_id       => l_adr_accounting_coa_id
13137         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13138         , p_flex_value_set_id       => l_adr_flex_value_set_id
13139         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13140         , p_adr_type_code           => 'S'
13141         , p_component_type          => l_component_type
13142         , p_component_code          => l_component_code
13143         , p_component_type_code     => l_component_type_code
13144         , p_component_appl_id       => l_component_appl_id
13145         , p_amb_context_code        => l_amb_context_code
13146         , p_entity_code             => 'AP_PAYMENTS'
13147         , p_event_class_code        => 'RECONCILED PAYMENTS'
13148         , p_side                    => 'CREDIT'
13149         );
13150 
13151   END IF;
13152 
13153    l_segment := AcctDerRule_6(
13154            p_application_id           => p_application_id
13155          , p_ae_header_id             => l_ae_header_id 
13156 , p_source_4 => p_source_4
13157 , p_source_4_meaning => p_source_4_meaning
13158 , p_source_7 => p_source_7
13159 , p_source_7_meaning => p_source_7_meaning
13160 , p_source_8 => p_source_8
13161          , x_transaction_coa_id       => l_adr_transaction_coa_id
13162          , x_accounting_coa_id        => l_adr_accounting_coa_id
13163          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13164          , x_flex_value_set_id        => l_adr_flex_value_set_id
13165          , x_value_type_code          => l_adr_value_type_code
13166          , x_value_combination_id     => l_adr_value_combination_id
13167          , x_value_segment_code       => l_adr_value_segment_code
13168          , p_side                     => 'DEBIT'
13169          , p_override_seg_flag        => 'Y'
13170    );
13171 
13172    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13173 
13174       xla_ae_lines_pkg.set_segment(
13175           p_to_segment_code         => 'GL_ACCOUNT'
13176         , p_segment_value           => l_segment
13177         , p_from_segment_code       => l_adr_value_segment_code
13178         , p_from_combination_id     => l_adr_value_combination_id
13179         , p_value_type_code         => l_adr_value_type_code
13180         , p_transaction_coa_id      => l_adr_transaction_coa_id
13181         , p_accounting_coa_id       => l_adr_accounting_coa_id
13182         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13183         , p_flex_value_set_id       => l_adr_flex_value_set_id
13184         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13185         , p_adr_type_code           => 'S'
13186         , p_component_type          => l_component_type
13187         , p_component_code          => l_component_code
13188         , p_component_type_code     => l_component_type_code
13189         , p_component_appl_id       => l_component_appl_id
13190         , p_amb_context_code        => l_amb_context_code
13191         , p_entity_code             => 'AP_PAYMENTS'
13192         , p_event_class_code        => 'RECONCILED PAYMENTS'
13193         , p_side                    => 'DEBIT'
13194         );
13195 
13196   END IF;
13197 
13198    l_segment := AcctDerRule_15(
13199            p_application_id           => p_application_id
13200          , p_ae_header_id             => l_ae_header_id 
13201 , p_source_4 => p_source_4
13202 , p_source_4_meaning => p_source_4_meaning
13203 , p_source_7 => p_source_7
13204 , p_source_7_meaning => p_source_7_meaning
13205 , p_source_17 => p_source_17
13206          , x_transaction_coa_id       => l_adr_transaction_coa_id
13207          , x_accounting_coa_id        => l_adr_accounting_coa_id
13208          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13209          , x_flex_value_set_id        => l_adr_flex_value_set_id
13210          , x_value_type_code          => l_adr_value_type_code
13211          , x_value_combination_id     => l_adr_value_combination_id
13212          , x_value_segment_code       => l_adr_value_segment_code
13213          , p_side                     => 'ALL'
13217    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13214          , p_override_seg_flag        => 'Y'
13215    );
13216 
13218 
13219       xla_ae_lines_pkg.set_segment(
13220           p_to_segment_code         => 'GL_BALANCING'
13221         , p_segment_value           => l_segment
13222         , p_from_segment_code       => l_adr_value_segment_code
13223         , p_from_combination_id     => l_adr_value_combination_id
13224         , p_value_type_code         => l_adr_value_type_code
13225         , p_transaction_coa_id      => l_adr_transaction_coa_id
13226         , p_accounting_coa_id       => l_adr_accounting_coa_id
13227         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13228         , p_flex_value_set_id       => l_adr_flex_value_set_id
13229         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13230         , p_adr_type_code           => 'S'
13231         , p_component_type          => l_component_type
13232         , p_component_code          => l_component_code
13233         , p_component_type_code     => l_component_type_code
13234         , p_component_appl_id       => l_component_appl_id
13235         , p_amb_context_code        => l_amb_context_code
13236         , p_entity_code             => 'AP_PAYMENTS'
13237         , p_event_class_code        => 'RECONCILED PAYMENTS'
13238         , p_side                    => 'ALL'
13239         );
13240 
13241   END IF;
13242 
13243    --
13244    --
13245    END IF;
13246 
13247        --
13248        -- Update the line information that should be overwritten
13249        --
13250        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13251                                          p_header_num   => 1);
13252        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
13253 
13254        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13255 
13256        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
13257           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13258        END IF;
13259 
13260       --
13261       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13262       --
13263       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13264           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
13265       ELSE
13266           ---------------------------------------------------------------------------------------------------
13267           -- 4262811a Switch Sign
13268           ---------------------------------------------------------------------------------------------------
13269           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
13270           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13271                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13272           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13273                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13274           -- 5132302
13275           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13276                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13277 
13278       END IF;
13279 
13280       -- 4955764
13281       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13282       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13283 
13284 
13285       XLA_AE_LINES_PKG.ValidateCurrentLine;
13286       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13287 
13288       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13289                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13290                ,p_balance_type_code => l_balance_type_code);
13291 
13292    END IF;
13293 
13294    -----------------------------------------------------------------------------------------
13295    -- 4262811 Multiperiod Accounting
13296    -----------------------------------------------------------------------------------------
13297      -- No MPA option is assigned.
13298 
13299 
13300 END IF;
13301 END IF;
13302 --
13303 
13304 --
13305 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13306    trace
13307       (p_msg      => 'END of AcctLineType_47'
13308       ,p_level    => C_LEVEL_PROCEDURE
13309       ,p_module   => l_log_module);
13310 END IF;
13311 --
13312 EXCEPTION
13313   WHEN xla_exceptions_pkg.application_exception THEN
13314       RAISE;
13315   WHEN OTHERS THEN
13316        xla_exceptions_pkg.raise_message
13317            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_47');
13318 END AcctLineType_47;
13319 --
13320 
13321 ---------------------------------------
13322 --
13323 -- PRIVATE FUNCTION
13324 --         AcctLineType_48
13325 --
13326 ---------------------------------------
13327 PROCEDURE AcctLineType_48 (
13328   p_application_id        IN NUMBER
13332  ,p_actual_flag           IN OUT VARCHAR2
13329  ,p_event_id              IN NUMBER
13330  ,p_calculate_acctd_flag  IN VARCHAR2
13331  ,p_calculate_g_l_flag    IN VARCHAR2
13333  ,p_balance_type_code     OUT VARCHAR2
13334  ,p_gain_or_loss_ref      OUT VARCHAR2
13335  
13336 --Automatic Offsets Value
13337  , p_source_4            IN VARCHAR2
13338  , p_source_4_meaning    IN VARCHAR2
13339 --Purchase Order Rate Variance Gain Account
13340  , p_source_5            IN NUMBER
13341 --Destination Type of the PO Distribution
13342  , p_source_7            IN VARCHAR2
13343  , p_source_7_meaning    IN VARCHAR2
13344 --Purchase Order Rate Variance Loss Account
13345  , p_source_8            IN NUMBER
13346 --Payment Distribution (Payment Rate) Ledger Amount
13347  , p_source_9            IN NUMBER
13348 --Payment Distribution (Cleared Rate) Ledger Amount
13349  , p_source_10            IN NUMBER
13350 --Invoice Distribution Account
13351  , p_source_17            IN NUMBER
13352 --Invoice Distribution Type
13353  , p_source_20            IN VARCHAR2
13354  , p_source_20_meaning    IN VARCHAR2
13355 --Automatic Offsets Flag
13356  , p_source_30            IN VARCHAR2
13357  , p_source_30_meaning    IN VARCHAR2
13358 --When to Account for Payment Option
13359  , p_source_38            IN VARCHAR2
13360 --Payment Distribution Type
13361  , p_source_39            IN VARCHAR2
13362  , p_source_39_meaning    IN VARCHAR2
13363 --Accounting Reversal Indicator
13364  , p_source_40            IN VARCHAR2
13365 --Business Flow Accounts Payable Application Identifier
13366  , p_source_42            IN NUMBER
13367 --Payment Distribution Identifier
13368  , p_source_47            IN NUMBER
13369 --Distribution Link Type
13370  , p_source_48            IN VARCHAR2
13371 --Override Accounted Amount Indicator
13372  , p_source_53            IN VARCHAR2
13373  , p_source_53_meaning    IN VARCHAR2
13374 --Payment Supplier Identifier
13375  , p_source_54            IN NUMBER
13376 --Payment Supplier Site Identifier
13377  , p_source_55            IN NUMBER
13378 --Third Party Type
13379  , p_source_56            IN VARCHAR2
13380 --Payment Distribution Reversed Identifier
13381  , p_source_57            IN NUMBER
13382 --Invoice Distribution Tax Line Identifier
13383  , p_source_58            IN NUMBER
13384 --Invoice Distribution Summary Tax Line Identifier
13385  , p_source_59            IN NUMBER
13386 --Payment Type
13387  , p_source_60            IN VARCHAR2
13388  , p_source_60_meaning    IN VARCHAR2
13389 --Invoice Distribution Amount of the Payment Distribution
13390  , p_source_61            IN NUMBER
13391 --Business Flow Invoice Distribution Type
13392  , p_source_62            IN VARCHAR2
13393 --Business Flow Invoice Entity Code
13394  , p_source_63            IN VARCHAR2
13395 --Business Flow Invoice Distribution Identifier
13396  , p_source_64            IN NUMBER
13397 --Business Flow Invoice Identifier
13398  , p_source_65            IN NUMBER
13399 --Invoice Distribution Tax Distribution Identifier from Tax
13400  , p_source_66            IN NUMBER
13401 --Accrue on Receipt Option
13402  , p_source_100            IN VARCHAR2
13403  , p_source_100_meaning    IN VARCHAR2
13404 --Invoice Type Paid
13405  , p_source_101            IN VARCHAR2
13406  , p_source_101_meaning    IN VARCHAR2
13407 )
13408 IS
13409 
13410 l_component_type              VARCHAR2(80);
13411 l_component_code              VARCHAR2(30);
13412 l_component_type_code         VARCHAR2(1);
13413 l_component_appl_id           INTEGER;
13414 l_amb_context_code            VARCHAR2(30);
13415 l_entity_code                 VARCHAR2(30);
13416 l_event_class_code            VARCHAR2(30);
13417 l_ae_header_id                NUMBER;
13418 l_event_type_code             VARCHAR2(30);
13419 l_line_definition_code        VARCHAR2(30);
13420 l_line_definition_owner_code  VARCHAR2(1);
13421 --
13422 -- adr variables
13423 l_segment                     VARCHAR2(30);
13424 l_ccid                        NUMBER;
13425 l_adr_transaction_coa_id      NUMBER;
13426 l_adr_accounting_coa_id       NUMBER;
13427 l_adr_flexfield_segment_code  VARCHAR2(30);
13428 l_adr_flex_value_set_id       NUMBER;
13429 l_adr_value_type_code         VARCHAR2(30);
13430 l_adr_value_combination_id    NUMBER;
13431 l_adr_value_segment_code      VARCHAR2(30);
13432 
13433 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
13434 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
13435 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
13436 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
13437 
13438 -- 4262811 Variables ------------------------------------------------------------------------------------------
13439 l_entered_amt_idx             NUMBER;
13440 l_accted_amt_idx              NUMBER;
13441 l_acc_rev_flag                VARCHAR2(1);
13442 l_accrual_line_num            NUMBER;
13443 l_tmp_amt                     NUMBER;
13444 l_acc_rev_natural_side_code   VARCHAR2(1);
13445 
13446 l_num_entries                 NUMBER;
13447 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
13448 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
13449 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
13450 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
13451 l_recog_line_1                NUMBER;
13452 l_recog_line_2                NUMBER;
13453 
13457 
13454 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
13455 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
13456 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
13458 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13459 
13460 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
13461 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
13462 
13463 ---------------------------------------------------------------------------------------------------------------
13464 
13465 
13466 --
13467 -- bulk performance
13468 --
13469 l_balance_type_code           VARCHAR2(1);
13470 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
13471 l_log_module                  VARCHAR2(240);
13472 
13473 --
13474 -- Upgrade strategy
13475 --
13476 l_actual_upg_option           VARCHAR2(1);
13477 l_enc_upg_option           VARCHAR2(1);
13478 
13479 --
13480 BEGIN
13481 --
13482 IF g_log_enabled THEN
13483       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
13484 END IF;
13485 --
13486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13487 
13488       trace
13489          (p_msg      => 'BEGIN of AcctLineType_48'
13490          ,p_level    => C_LEVEL_PROCEDURE
13491          ,p_module   => l_log_module);
13492 
13493 END IF;
13494 --
13495 l_component_type             := 'AMB_JLT';
13496 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_PMT';
13497 l_component_type_code        := 'S';
13498 l_component_appl_id          :=  200;
13499 l_amb_context_code           := 'DEFAULT';
13500 l_entity_code                := 'AP_PAYMENTS';
13501 l_event_class_code           := 'PAYMENTS';
13502 l_event_type_code            := 'PAYMENTS_ALL';
13503 l_line_definition_owner_code := 'S';
13504 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
13505 --
13506 l_balance_type_code          := 'A';
13507 l_segment                     := NULL;
13508 l_ccid                        := NULL;
13509 l_adr_transaction_coa_id      := NULL;
13510 l_adr_accounting_coa_id       := NULL;
13511 l_adr_flexfield_segment_code  := NULL;
13512 l_adr_flex_value_set_id       := NULL;
13513 l_adr_value_type_code         := NULL;
13514 l_adr_value_combination_id    := NULL;
13515 l_adr_value_segment_code      := NULL;
13516 
13517 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
13518 l_bflow_class_code           := '';    -- 4219869 Business Flow
13519 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
13520 l_budgetary_control_flag     := 'N';
13521 
13522 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
13523 l_bflow_applied_to_amt       := NULL; -- 5132302
13524 l_entered_amt_idx            := NULL;          -- 4262811
13525 l_accted_amt_idx             := NULL;          -- 4262811
13526 l_acc_rev_flag               := NULL;          -- 4262811
13527 l_accrual_line_num           := NULL;          -- 4262811
13528 l_tmp_amt                    := NULL;          -- 4262811
13529 --
13530 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13531             (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
13532                return;
13533   END IF;
13534   
13535 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13536     l_balance_type_code <> 'B' THEN
13537 IF NVL(p_source_38,'
13538 ') <>  'CLEAR_CLEAR' AND 
13539 NVL(p_source_20,'
13540 ') =  'NONREC_TAX' AND 
13541 NVL(p_source_100,'
13542 ') =  'Y' AND 
13543 NVL(p_source_101,'
13544 ') <>  'INTEREST' AND 
13545 (NVL(p_source_39,'
13546 ') =  'CASH' OR 
13547 NVL(p_source_39,'
13548 ') =  'DISCOUNT') AND 
13549 NVL(p_source_60,'
13550 ') <>  'R'
13551  THEN 
13552 
13553    --
13554    XLA_AE_LINES_PKG.SetNewLine;
13555 
13556    p_balance_type_code          := l_balance_type_code;
13557    -- set the flag so later we will know whether the gain loss line needs to be created
13558    
13559    IF(l_balance_type_code = 'A' ) THEN
13560      p_actual_flag :='G';
13561    END IF;
13562 
13563    --
13564    -- bulk performance
13565    --
13566    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13567                                       p_header_num   => 0); -- 4262811
13568    --
13569    -- set accounting line options
13570    --
13571    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13572            p_natural_side_code          => 'G'
13573          , p_gain_or_loss_flag          => 'N'
13574          , p_gl_transfer_mode_code      => 'S'
13575          , p_acct_entry_type_code       => 'A'
13576          , p_switch_side_flag           => ''
13577          , p_merge_duplicate_code       => 'A'
13578          );
13579    --
13580    l_acc_rev_natural_side_code := 'C';  -- 4262811
13581    -- 
13582    --
13583    -- set accounting line type info
13584    --
13585    xla_ae_lines_pkg.SetAcctLineType
13586       (p_component_type             => l_component_type
13587       ,p_event_type_code            => l_event_type_code
13588       ,p_line_definition_owner_code => l_line_definition_owner_code
13592       ,p_accounting_line_appl_id    => l_component_appl_id
13589       ,p_line_definition_code       => l_line_definition_code
13590       ,p_accounting_line_code       => l_component_code
13591       ,p_accounting_line_type_code  => l_component_type_code
13593       ,p_amb_context_code           => l_amb_context_code
13594       ,p_entity_code                => l_entity_code
13595       ,p_event_class_code           => l_event_class_code);
13596    --
13597    -- set accounting class
13598    --
13599    xla_ae_lines_pkg.SetAcctClass(
13600            p_accounting_class_code  => 'TERV'
13601          , p_ae_header_id           => l_ae_header_id
13602          );
13603 
13604    --
13605    -- set rounding class
13606    --
13607    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13608                       'TERV';
13609 
13610    --
13611    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13612    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13613    --
13614    -- bulk performance
13615    --
13616    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13617 
13618    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13619       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13620 
13621    -- 4955764
13622    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13623       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13624 
13625    -- 4458381 Public Sector Enh
13626    
13627    --
13628    -- set accounting attributes for the line type
13629    --
13630    l_entered_amt_idx := NULL;
13631    l_accted_amt_idx  := 10;
13632    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
13633    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13634    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
13635    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
13636    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
13637    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
13638    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
13639    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13640    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
13641    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
13642    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
13643    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
13644    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
13645    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13646    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
13647    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
13648    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
13649    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
13650    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
13651    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
13652    l_rec_acct_attrs.array_num_value(10)  := p_source_9;
13653    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
13654    l_rec_acct_attrs.array_char_value(11)  := p_source_53;
13655    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
13656    l_rec_acct_attrs.array_num_value(12)  := p_source_54;
13657    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
13658    l_rec_acct_attrs.array_num_value(13)  := p_source_55;
13659    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
13660    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
13661    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
13662    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
13663    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
13664    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
13665    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
13666    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
13667    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
13668    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
13669    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
13670    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
13671 
13672    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13673    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13674 
13675    ---------------------------------------------------------------------------------------------------------------
13676    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13677    ---------------------------------------------------------------------------------------------------------------
13678    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13679 
13680    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13681    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13682 
13683    IF xla_accounting_cache_pkg.GetValueChar
13684          (p_source_code         => 'LEDGER_CATEGORY_CODE'
13688    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13685          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13686    AND l_bflow_method_code = 'PRIOR_ENTRY'
13687 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13689          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13690        )
13691    THEN
13692          xla_ae_lines_pkg.BflowUpgEntry
13693            (p_business_method_code    => l_bflow_method_code
13694            ,p_business_class_code     => l_bflow_class_code
13695            ,p_balance_type            => l_balance_type_code);
13696    ELSE
13697       NULL;
13698 -- No business flow processing for business flow method of NONE.
13699    END IF;
13700 
13701    --
13702    -- call analytical criteria
13703    --
13704    
13705    --
13706    -- call description
13707    --
13708    -- No description or it is inherited.
13709    --
13710    -- call ADRs
13711    -- Bug 4922099
13712    --
13713    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13714         (NVL(l_actual_upg_option, 'N') = 'O') OR
13715         (NVL(l_enc_upg_option, 'N') = 'O')
13716       )
13717    THEN
13718    NULL;
13719    --
13720    --
13721    
13722   l_ccid := AcctDerRule_22(
13723            p_application_id           => p_application_id
13724          , p_ae_header_id             => l_ae_header_id 
13725 , p_source_4 => p_source_4
13726 , p_source_4_meaning => p_source_4_meaning
13727 , p_source_5 => p_source_5
13728 , p_source_7 => p_source_7
13729 , p_source_7_meaning => p_source_7_meaning
13730 , p_source_8 => p_source_8
13731 , p_source_9 => p_source_9
13732 , p_source_10 => p_source_10
13733 , p_source_17 => p_source_17
13734 , p_source_30 => p_source_30
13735 , p_source_30_meaning => p_source_30_meaning
13736          , x_transaction_coa_id       => l_adr_transaction_coa_id
13737          , x_accounting_coa_id        => l_adr_accounting_coa_id
13738          , x_value_type_code          => l_adr_value_type_code
13739          , p_side                     => 'ALL'
13740    );
13741 
13742    xla_ae_lines_pkg.set_ccid(
13743     p_code_combination_id          => l_ccid
13744   , p_value_type_code              => l_adr_value_type_code
13745   , p_transaction_coa_id           => l_adr_transaction_coa_id
13746   , p_accounting_coa_id            => l_adr_accounting_coa_id
13747   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
13748   , p_adr_type_code                => 'S'
13749   , p_component_type               => l_component_type
13750   , p_component_code               => l_component_code
13751   , p_component_type_code          => l_component_type_code
13752   , p_component_appl_id            => l_component_appl_id
13753   , p_amb_context_code             => l_amb_context_code
13754   , p_side                         => 'ALL'
13755   );
13756 
13757 
13758    l_segment := AcctDerRule_5(
13759            p_application_id           => p_application_id
13760          , p_ae_header_id             => l_ae_header_id 
13761 , p_source_4 => p_source_4
13762 , p_source_4_meaning => p_source_4_meaning
13763 , p_source_5 => p_source_5
13764 , p_source_7 => p_source_7
13765 , p_source_7_meaning => p_source_7_meaning
13766          , x_transaction_coa_id       => l_adr_transaction_coa_id
13767          , x_accounting_coa_id        => l_adr_accounting_coa_id
13768          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13769          , x_flex_value_set_id        => l_adr_flex_value_set_id
13770          , x_value_type_code          => l_adr_value_type_code
13771          , x_value_combination_id     => l_adr_value_combination_id
13772          , x_value_segment_code       => l_adr_value_segment_code
13773          , p_side                     => 'CREDIT'
13774          , p_override_seg_flag        => 'Y'
13775    );
13776 
13777    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13778 
13779       xla_ae_lines_pkg.set_segment(
13780           p_to_segment_code         => 'GL_ACCOUNT'
13781         , p_segment_value           => l_segment
13782         , p_from_segment_code       => l_adr_value_segment_code
13783         , p_from_combination_id     => l_adr_value_combination_id
13784         , p_value_type_code         => l_adr_value_type_code
13785         , p_transaction_coa_id      => l_adr_transaction_coa_id
13786         , p_accounting_coa_id       => l_adr_accounting_coa_id
13787         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13788         , p_flex_value_set_id       => l_adr_flex_value_set_id
13789         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13790         , p_adr_type_code           => 'S'
13791         , p_component_type          => l_component_type
13792         , p_component_code          => l_component_code
13793         , p_component_type_code     => l_component_type_code
13794         , p_component_appl_id       => l_component_appl_id
13795         , p_amb_context_code        => l_amb_context_code
13796         , p_entity_code             => 'AP_PAYMENTS'
13797         , p_event_class_code        => 'PAYMENTS'
13798         , p_side                    => 'CREDIT'
13799         );
13800 
13801   END IF;
13802 
13803    l_segment := AcctDerRule_6(
13804            p_application_id           => p_application_id
13805          , p_ae_header_id             => l_ae_header_id 
13806 , p_source_4 => p_source_4
13807 , p_source_4_meaning => p_source_4_meaning
13811          , x_transaction_coa_id       => l_adr_transaction_coa_id
13808 , p_source_7 => p_source_7
13809 , p_source_7_meaning => p_source_7_meaning
13810 , p_source_8 => p_source_8
13812          , x_accounting_coa_id        => l_adr_accounting_coa_id
13813          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13814          , x_flex_value_set_id        => l_adr_flex_value_set_id
13815          , x_value_type_code          => l_adr_value_type_code
13816          , x_value_combination_id     => l_adr_value_combination_id
13817          , x_value_segment_code       => l_adr_value_segment_code
13818          , p_side                     => 'DEBIT'
13819          , p_override_seg_flag        => 'Y'
13820    );
13821 
13822    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13823 
13824       xla_ae_lines_pkg.set_segment(
13825           p_to_segment_code         => 'GL_ACCOUNT'
13826         , p_segment_value           => l_segment
13827         , p_from_segment_code       => l_adr_value_segment_code
13828         , p_from_combination_id     => l_adr_value_combination_id
13829         , p_value_type_code         => l_adr_value_type_code
13830         , p_transaction_coa_id      => l_adr_transaction_coa_id
13831         , p_accounting_coa_id       => l_adr_accounting_coa_id
13832         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13833         , p_flex_value_set_id       => l_adr_flex_value_set_id
13834         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13835         , p_adr_type_code           => 'S'
13836         , p_component_type          => l_component_type
13837         , p_component_code          => l_component_code
13838         , p_component_type_code     => l_component_type_code
13839         , p_component_appl_id       => l_component_appl_id
13840         , p_amb_context_code        => l_amb_context_code
13841         , p_entity_code             => 'AP_PAYMENTS'
13842         , p_event_class_code        => 'PAYMENTS'
13843         , p_side                    => 'DEBIT'
13844         );
13845 
13846   END IF;
13847 
13848    l_segment := AcctDerRule_15(
13849            p_application_id           => p_application_id
13850          , p_ae_header_id             => l_ae_header_id 
13851 , p_source_4 => p_source_4
13852 , p_source_4_meaning => p_source_4_meaning
13853 , p_source_7 => p_source_7
13854 , p_source_7_meaning => p_source_7_meaning
13855 , p_source_17 => p_source_17
13856          , x_transaction_coa_id       => l_adr_transaction_coa_id
13857          , x_accounting_coa_id        => l_adr_accounting_coa_id
13858          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13859          , x_flex_value_set_id        => l_adr_flex_value_set_id
13860          , x_value_type_code          => l_adr_value_type_code
13861          , x_value_combination_id     => l_adr_value_combination_id
13862          , x_value_segment_code       => l_adr_value_segment_code
13863          , p_side                     => 'ALL'
13864          , p_override_seg_flag        => 'Y'
13865    );
13866 
13867    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13868 
13869       xla_ae_lines_pkg.set_segment(
13870           p_to_segment_code         => 'GL_BALANCING'
13871         , p_segment_value           => l_segment
13872         , p_from_segment_code       => l_adr_value_segment_code
13873         , p_from_combination_id     => l_adr_value_combination_id
13874         , p_value_type_code         => l_adr_value_type_code
13875         , p_transaction_coa_id      => l_adr_transaction_coa_id
13876         , p_accounting_coa_id       => l_adr_accounting_coa_id
13877         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13878         , p_flex_value_set_id       => l_adr_flex_value_set_id
13879         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13880         , p_adr_type_code           => 'S'
13881         , p_component_type          => l_component_type
13882         , p_component_code          => l_component_code
13883         , p_component_type_code     => l_component_type_code
13884         , p_component_appl_id       => l_component_appl_id
13885         , p_amb_context_code        => l_amb_context_code
13886         , p_entity_code             => 'AP_PAYMENTS'
13887         , p_event_class_code        => 'PAYMENTS'
13888         , p_side                    => 'ALL'
13889         );
13890 
13891   END IF;
13892 
13893    --
13894    --
13895    END IF;
13896    --
13897    -- Bug 4922099
13898    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13899           (NVL(l_enc_upg_option, 'N') = 'O')
13900         ) AND
13901         (l_bflow_method_code = 'PRIOR_ENTRY')
13902       )
13903    THEN
13904       IF
13905       --
13906       1 = 2
13907       --
13908       THEN
13909       xla_accounting_err_pkg.build_message
13910                                     (p_appli_s_name            => 'XLA'
13911                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13912                                     ,p_token_1                 => 'LINE_NUMBER'
13913                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
13914                                     ,p_token_2                 => 'LINE_TYPE_NAME'
13915                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
13916                                                                              l_component_type
13920                                                                             ,l_amb_context_code
13917                                                                             ,l_component_code
13918                                                                             ,l_component_type_code
13919                                                                             ,l_component_appl_id
13921                                                                             ,l_entity_code
13922                                                                             ,l_event_class_code
13923                                                                            )
13924                                     ,p_token_3                 => 'OWNER'
13925                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
13926                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
13927                                                                           ,p_lookup_code    => l_component_type_code
13928                                                                          )
13929                                     ,p_token_4                 => 'PRODUCT_NAME'
13930                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13931                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13932                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13933                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13934                                     ,p_ae_header_id            =>  NULL
13935                                        );
13936 
13937         IF (C_LEVEL_ERROR>= g_log_level) THEN
13938                  trace
13939                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13940                       ,p_level    => C_LEVEL_ERROR
13941                       ,p_module   => l_log_module);
13942         END IF;
13943       END IF;
13944    END IF;
13945    --
13946    --
13947    ------------------------------------------------------------------------------------------------
13948    -- 4219869 Business Flow
13949    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13950    -- Prior Entry.  Currently, the following code is always generated.
13951    ------------------------------------------------------------------------------------------------
13952    XLA_AE_LINES_PKG.ValidateCurrentLine;
13953 
13954    ------------------------------------------------------------------------------------
13955    -- 4219869 Business Flow
13956    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13957    ------------------------------------------------------------------------------------
13958    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13959 
13960    ----------------------------------------------------------------------------------
13961    -- 4219869 Business Flow
13962    -- Update journal entry status -- Need to generate this within IF <condition>
13963    ----------------------------------------------------------------------------------
13964    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13965          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13966          ,p_balance_type_code => l_balance_type_code
13967          );
13968 
13969    -------------------------------------------------------------------------------------------
13970    -- 4262811 - Generate the Accrual Reversal lines
13971    -------------------------------------------------------------------------------------------
13972    BEGIN
13973       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13974                               (g_array_event(p_event_id).array_value_num('header_index'));
13975       IF l_acc_rev_flag IS NULL THEN
13976          l_acc_rev_flag := 'N';
13977       END IF;
13978    EXCEPTION
13979       WHEN OTHERS THEN
13980          l_acc_rev_flag := 'N';
13981    END;
13982    --
13983    IF (l_acc_rev_flag = 'Y') THEN
13984 
13985        -- 4645092  ------------------------------------------------------------------------------
13986        -- To allow MPA report to determine if it should generate report process
13987        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13988        ------------------------------------------------------------------------------------------
13989 
13990        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13991        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13992    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
13993    -- call ADRs
13994    -- Bug 4922099
13995    --
13996    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13997         (NVL(l_actual_upg_option, 'N') = 'O') OR
13998         (NVL(l_enc_upg_option, 'N') = 'O')
13999       )
14000    THEN
14001    NULL;
14002    --
14003    --
14004    
14005   l_ccid := AcctDerRule_22(
14006            p_application_id           => p_application_id
14007          , p_ae_header_id             => l_ae_header_id 
14008 , p_source_4 => p_source_4
14009 , p_source_4_meaning => p_source_4_meaning
14010 , p_source_5 => p_source_5
14011 , p_source_7 => p_source_7
14012 , p_source_7_meaning => p_source_7_meaning
14013 , p_source_8 => p_source_8
14014 , p_source_9 => p_source_9
14015 , p_source_10 => p_source_10
14016 , p_source_17 => p_source_17
14017 , p_source_30 => p_source_30
14018 , p_source_30_meaning => p_source_30_meaning
14019          , x_transaction_coa_id       => l_adr_transaction_coa_id
14023    );
14020          , x_accounting_coa_id        => l_adr_accounting_coa_id
14021          , x_value_type_code          => l_adr_value_type_code
14022          , p_side                     => 'ALL'
14024 
14025    xla_ae_lines_pkg.set_ccid(
14026     p_code_combination_id          => l_ccid
14027   , p_value_type_code              => l_adr_value_type_code
14028   , p_transaction_coa_id           => l_adr_transaction_coa_id
14029   , p_accounting_coa_id            => l_adr_accounting_coa_id
14030   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
14031   , p_adr_type_code                => 'S'
14032   , p_component_type               => l_component_type
14033   , p_component_code               => l_component_code
14034   , p_component_type_code          => l_component_type_code
14035   , p_component_appl_id            => l_component_appl_id
14036   , p_amb_context_code             => l_amb_context_code
14037   , p_side                         => 'ALL'
14038   );
14039 
14040 
14041    l_segment := AcctDerRule_5(
14042            p_application_id           => p_application_id
14043          , p_ae_header_id             => l_ae_header_id 
14044 , p_source_4 => p_source_4
14045 , p_source_4_meaning => p_source_4_meaning
14046 , p_source_5 => p_source_5
14047 , p_source_7 => p_source_7
14048 , p_source_7_meaning => p_source_7_meaning
14049          , x_transaction_coa_id       => l_adr_transaction_coa_id
14050          , x_accounting_coa_id        => l_adr_accounting_coa_id
14051          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14052          , x_flex_value_set_id        => l_adr_flex_value_set_id
14053          , x_value_type_code          => l_adr_value_type_code
14054          , x_value_combination_id     => l_adr_value_combination_id
14055          , x_value_segment_code       => l_adr_value_segment_code
14056          , p_side                     => 'CREDIT'
14057          , p_override_seg_flag        => 'Y'
14058    );
14059 
14060    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14061 
14062       xla_ae_lines_pkg.set_segment(
14063           p_to_segment_code         => 'GL_ACCOUNT'
14064         , p_segment_value           => l_segment
14065         , p_from_segment_code       => l_adr_value_segment_code
14066         , p_from_combination_id     => l_adr_value_combination_id
14067         , p_value_type_code         => l_adr_value_type_code
14068         , p_transaction_coa_id      => l_adr_transaction_coa_id
14069         , p_accounting_coa_id       => l_adr_accounting_coa_id
14070         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14071         , p_flex_value_set_id       => l_adr_flex_value_set_id
14072         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14073         , p_adr_type_code           => 'S'
14074         , p_component_type          => l_component_type
14075         , p_component_code          => l_component_code
14076         , p_component_type_code     => l_component_type_code
14077         , p_component_appl_id       => l_component_appl_id
14078         , p_amb_context_code        => l_amb_context_code
14079         , p_entity_code             => 'AP_PAYMENTS'
14080         , p_event_class_code        => 'PAYMENTS'
14081         , p_side                    => 'CREDIT'
14082         );
14083 
14084   END IF;
14085 
14086    l_segment := AcctDerRule_6(
14087            p_application_id           => p_application_id
14088          , p_ae_header_id             => l_ae_header_id 
14089 , p_source_4 => p_source_4
14090 , p_source_4_meaning => p_source_4_meaning
14091 , p_source_7 => p_source_7
14092 , p_source_7_meaning => p_source_7_meaning
14093 , p_source_8 => p_source_8
14094          , x_transaction_coa_id       => l_adr_transaction_coa_id
14095          , x_accounting_coa_id        => l_adr_accounting_coa_id
14096          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14097          , x_flex_value_set_id        => l_adr_flex_value_set_id
14098          , x_value_type_code          => l_adr_value_type_code
14099          , x_value_combination_id     => l_adr_value_combination_id
14100          , x_value_segment_code       => l_adr_value_segment_code
14101          , p_side                     => 'DEBIT'
14102          , p_override_seg_flag        => 'Y'
14103    );
14104 
14105    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14106 
14107       xla_ae_lines_pkg.set_segment(
14108           p_to_segment_code         => 'GL_ACCOUNT'
14109         , p_segment_value           => l_segment
14110         , p_from_segment_code       => l_adr_value_segment_code
14111         , p_from_combination_id     => l_adr_value_combination_id
14112         , p_value_type_code         => l_adr_value_type_code
14113         , p_transaction_coa_id      => l_adr_transaction_coa_id
14114         , p_accounting_coa_id       => l_adr_accounting_coa_id
14115         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14116         , p_flex_value_set_id       => l_adr_flex_value_set_id
14117         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14118         , p_adr_type_code           => 'S'
14119         , p_component_type          => l_component_type
14120         , p_component_code          => l_component_code
14121         , p_component_type_code     => l_component_type_code
14122         , p_component_appl_id       => l_component_appl_id
14123         , p_amb_context_code        => l_amb_context_code
14124         , p_entity_code             => 'AP_PAYMENTS'
14125         , p_event_class_code        => 'PAYMENTS'
14126         , p_side                    => 'DEBIT'
14127         );
14128 
14129   END IF;
14130 
14131    l_segment := AcctDerRule_15(
14135 , p_source_4_meaning => p_source_4_meaning
14132            p_application_id           => p_application_id
14133          , p_ae_header_id             => l_ae_header_id 
14134 , p_source_4 => p_source_4
14136 , p_source_7 => p_source_7
14137 , p_source_7_meaning => p_source_7_meaning
14138 , p_source_17 => p_source_17
14139          , x_transaction_coa_id       => l_adr_transaction_coa_id
14140          , x_accounting_coa_id        => l_adr_accounting_coa_id
14141          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14142          , x_flex_value_set_id        => l_adr_flex_value_set_id
14143          , x_value_type_code          => l_adr_value_type_code
14144          , x_value_combination_id     => l_adr_value_combination_id
14145          , x_value_segment_code       => l_adr_value_segment_code
14146          , p_side                     => 'ALL'
14147          , p_override_seg_flag        => 'Y'
14148    );
14149 
14150    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14151 
14152       xla_ae_lines_pkg.set_segment(
14153           p_to_segment_code         => 'GL_BALANCING'
14154         , p_segment_value           => l_segment
14155         , p_from_segment_code       => l_adr_value_segment_code
14156         , p_from_combination_id     => l_adr_value_combination_id
14157         , p_value_type_code         => l_adr_value_type_code
14158         , p_transaction_coa_id      => l_adr_transaction_coa_id
14159         , p_accounting_coa_id       => l_adr_accounting_coa_id
14160         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14161         , p_flex_value_set_id       => l_adr_flex_value_set_id
14162         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14163         , p_adr_type_code           => 'S'
14164         , p_component_type          => l_component_type
14165         , p_component_code          => l_component_code
14166         , p_component_type_code     => l_component_type_code
14167         , p_component_appl_id       => l_component_appl_id
14168         , p_amb_context_code        => l_amb_context_code
14169         , p_entity_code             => 'AP_PAYMENTS'
14170         , p_event_class_code        => 'PAYMENTS'
14171         , p_side                    => 'ALL'
14172         );
14173 
14174   END IF;
14175 
14176    --
14177    --
14178    END IF;
14179 
14180        --
14181        -- Update the line information that should be overwritten
14182        --
14183        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14184                                          p_header_num   => 1);
14185        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
14186 
14187        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14188 
14189        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
14190           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14191        END IF;
14192 
14193       --
14194       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14195       --
14196       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14197           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
14198       ELSE
14199           ---------------------------------------------------------------------------------------------------
14200           -- 4262811a Switch Sign
14201           ---------------------------------------------------------------------------------------------------
14202           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
14203           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14204                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14205           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14206                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14207           -- 5132302
14208           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14209                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14210 
14211       END IF;
14212 
14213       -- 4955764
14214       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14215       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14216 
14217 
14218       XLA_AE_LINES_PKG.ValidateCurrentLine;
14219       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14220 
14221       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14222                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14223                ,p_balance_type_code => l_balance_type_code);
14224 
14225    END IF;
14226 
14227    -----------------------------------------------------------------------------------------
14228    -- 4262811 Multiperiod Accounting
14229    -----------------------------------------------------------------------------------------
14230      -- No MPA option is assigned.
14231 
14232 
14233 END IF;
14234 END IF;
14235 --
14236 
14237 --
14238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14239    trace
14240       (p_msg      => 'END of AcctLineType_48'
14244 --
14241       ,p_level    => C_LEVEL_PROCEDURE
14242       ,p_module   => l_log_module);
14243 END IF;
14245 EXCEPTION
14246   WHEN xla_exceptions_pkg.application_exception THEN
14247       RAISE;
14248   WHEN OTHERS THEN
14249        xla_exceptions_pkg.raise_message
14250            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_48');
14251 END AcctLineType_48;
14252 --
14253 
14254 ---------------------------------------
14255 --
14256 -- PRIVATE FUNCTION
14257 --         AcctLineType_49
14258 --
14259 ---------------------------------------
14260 PROCEDURE AcctLineType_49 (
14261   p_application_id        IN NUMBER
14262  ,p_event_id              IN NUMBER
14263  ,p_calculate_acctd_flag  IN VARCHAR2
14264  ,p_calculate_g_l_flag    IN VARCHAR2
14265  ,p_actual_flag           IN OUT VARCHAR2
14266  ,p_balance_type_code     OUT VARCHAR2
14267  ,p_gain_or_loss_ref      OUT VARCHAR2
14268  
14269 --Automatic Offsets Value
14270  , p_source_4            IN VARCHAR2
14271  , p_source_4_meaning    IN VARCHAR2
14272 --Purchase Order Rate Variance Gain Account
14273  , p_source_5            IN NUMBER
14274 --Destination Type of the PO Distribution
14275  , p_source_7            IN VARCHAR2
14276  , p_source_7_meaning    IN VARCHAR2
14277 --Purchase Order Rate Variance Loss Account
14278  , p_source_8            IN NUMBER
14279 --Payment Distribution (Payment Rate) Ledger Amount
14280  , p_source_9            IN NUMBER
14281 --Payment Distribution (Cleared Rate) Ledger Amount
14282  , p_source_10            IN NUMBER
14283 --Invoice Distribution Account
14284  , p_source_17            IN NUMBER
14285 --Invoice Distribution Type
14286  , p_source_20            IN VARCHAR2
14287  , p_source_20_meaning    IN VARCHAR2
14288 --Automatic Offsets Flag
14289  , p_source_30            IN VARCHAR2
14290  , p_source_30_meaning    IN VARCHAR2
14291 --When to Account for Payment Option
14292  , p_source_38            IN VARCHAR2
14293 --Payment Distribution Type
14294  , p_source_39            IN VARCHAR2
14295  , p_source_39_meaning    IN VARCHAR2
14296 --Accounting Reversal Indicator
14297  , p_source_40            IN VARCHAR2
14298 --Business Flow Accounts Payable Application Identifier
14299  , p_source_42            IN NUMBER
14300 --Payment Distribution Identifier
14301  , p_source_47            IN NUMBER
14302 --Distribution Link Type
14303  , p_source_48            IN VARCHAR2
14304 --Override Accounted Amount Indicator
14305  , p_source_53            IN VARCHAR2
14306  , p_source_53_meaning    IN VARCHAR2
14307 --Payment Supplier Identifier
14308  , p_source_54            IN NUMBER
14309 --Payment Supplier Site Identifier
14310  , p_source_55            IN NUMBER
14311 --Third Party Type
14312  , p_source_56            IN VARCHAR2
14313 --Payment Distribution Reversed Identifier
14314  , p_source_57            IN NUMBER
14315 --Invoice Distribution Tax Line Identifier
14316  , p_source_58            IN NUMBER
14317 --Invoice Distribution Summary Tax Line Identifier
14318  , p_source_59            IN NUMBER
14319 --Payment Type
14320  , p_source_60            IN VARCHAR2
14321  , p_source_60_meaning    IN VARCHAR2
14322 --Business Flow Invoice Distribution Type
14323  , p_source_62            IN VARCHAR2
14324 --Business Flow Invoice Entity Code
14325  , p_source_63            IN VARCHAR2
14326 --Business Flow Invoice Distribution Identifier
14327  , p_source_64            IN NUMBER
14328 --Business Flow Invoice Identifier
14329  , p_source_65            IN NUMBER
14330 --Invoice Distribution Tax Distribution Identifier from Tax
14331  , p_source_66            IN NUMBER
14332 --Accrue on Receipt Option
14333  , p_source_100            IN VARCHAR2
14334  , p_source_100_meaning    IN VARCHAR2
14335 )
14336 IS
14337 
14338 l_component_type              VARCHAR2(80);
14339 l_component_code              VARCHAR2(30);
14340 l_component_type_code         VARCHAR2(1);
14341 l_component_appl_id           INTEGER;
14342 l_amb_context_code            VARCHAR2(30);
14343 l_entity_code                 VARCHAR2(30);
14344 l_event_class_code            VARCHAR2(30);
14345 l_ae_header_id                NUMBER;
14346 l_event_type_code             VARCHAR2(30);
14347 l_line_definition_code        VARCHAR2(30);
14348 l_line_definition_owner_code  VARCHAR2(1);
14349 --
14350 -- adr variables
14351 l_segment                     VARCHAR2(30);
14352 l_ccid                        NUMBER;
14353 l_adr_transaction_coa_id      NUMBER;
14354 l_adr_accounting_coa_id       NUMBER;
14355 l_adr_flexfield_segment_code  VARCHAR2(30);
14356 l_adr_flex_value_set_id       NUMBER;
14357 l_adr_value_type_code         VARCHAR2(30);
14358 l_adr_value_combination_id    NUMBER;
14359 l_adr_value_segment_code      VARCHAR2(30);
14360 
14361 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
14362 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
14363 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
14364 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
14365 
14366 -- 4262811 Variables ------------------------------------------------------------------------------------------
14367 l_entered_amt_idx             NUMBER;
14368 l_accted_amt_idx              NUMBER;
14369 l_acc_rev_flag                VARCHAR2(1);
14370 l_accrual_line_num            NUMBER;
14371 l_tmp_amt                     NUMBER;
14372 l_acc_rev_natural_side_code   VARCHAR2(1);
14373 
14374 l_num_entries                 NUMBER;
14378 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
14375 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
14376 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
14377 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
14379 l_recog_line_1                NUMBER;
14380 l_recog_line_2                NUMBER;
14381 
14382 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
14383 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
14384 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
14385 
14386 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14387 
14388 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
14389 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
14390 
14391 ---------------------------------------------------------------------------------------------------------------
14392 
14393 
14394 --
14395 -- bulk performance
14396 --
14397 l_balance_type_code           VARCHAR2(1);
14398 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
14399 l_log_module                  VARCHAR2(240);
14400 
14401 --
14402 -- Upgrade strategy
14403 --
14404 l_actual_upg_option           VARCHAR2(1);
14405 l_enc_upg_option           VARCHAR2(1);
14406 
14407 --
14408 BEGIN
14409 --
14410 IF g_log_enabled THEN
14411       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
14412 END IF;
14413 --
14414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14415 
14416       trace
14417          (p_msg      => 'BEGIN of AcctLineType_49'
14418          ,p_level    => C_LEVEL_PROCEDURE
14419          ,p_module   => l_log_module);
14420 
14421 END IF;
14422 --
14423 l_component_type             := 'AMB_JLT';
14424 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_REF';
14425 l_component_type_code        := 'S';
14426 l_component_appl_id          :=  200;
14427 l_amb_context_code           := 'DEFAULT';
14428 l_entity_code                := 'AP_PAYMENTS';
14429 l_event_class_code           := 'REFUNDS';
14430 l_event_type_code            := 'REFUNDS_ALL';
14431 l_line_definition_owner_code := 'S';
14432 l_line_definition_code       := 'CASH_REFUNDS_ALL';
14433 --
14434 l_balance_type_code          := 'A';
14435 l_segment                     := NULL;
14436 l_ccid                        := NULL;
14437 l_adr_transaction_coa_id      := NULL;
14438 l_adr_accounting_coa_id       := NULL;
14439 l_adr_flexfield_segment_code  := NULL;
14440 l_adr_flex_value_set_id       := NULL;
14441 l_adr_value_type_code         := NULL;
14442 l_adr_value_combination_id    := NULL;
14443 l_adr_value_segment_code      := NULL;
14444 
14445 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
14446 l_bflow_class_code           := '';    -- 4219869 Business Flow
14447 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
14448 l_budgetary_control_flag     := 'N';
14449 
14450 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
14451 l_bflow_applied_to_amt       := NULL; -- 5132302
14452 l_entered_amt_idx            := NULL;          -- 4262811
14453 l_accted_amt_idx             := NULL;          -- 4262811
14454 l_acc_rev_flag               := NULL;          -- 4262811
14455 l_accrual_line_num           := NULL;          -- 4262811
14456 l_tmp_amt                    := NULL;          -- 4262811
14457 --
14458 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14459             (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
14460                return;
14461   END IF;
14462   
14463 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14464     l_balance_type_code <> 'B' THEN
14465 IF NVL(p_source_38,'
14466 ') <>  'CLEAR_CLEAR' AND 
14467 NVL(p_source_20,'
14468 ') =  'NONREC_TAX' AND 
14469 NVL(p_source_100,'
14470 ') =  'Y' AND 
14471 (NVL(p_source_39,'
14472 ') =  'CASH' OR 
14473 NVL(p_source_39,'
14474 ') =  'DISCOUNT') AND 
14475 NVL(p_source_60,'
14476 ') =  'R'
14477  THEN 
14478 
14479    --
14480    XLA_AE_LINES_PKG.SetNewLine;
14481 
14482    p_balance_type_code          := l_balance_type_code;
14483    -- set the flag so later we will know whether the gain loss line needs to be created
14484    
14485    IF(l_balance_type_code = 'A' ) THEN
14486      p_actual_flag :='G';
14487    END IF;
14488 
14489    --
14490    -- bulk performance
14491    --
14492    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14493                                       p_header_num   => 0); -- 4262811
14494    --
14495    -- set accounting line options
14496    --
14497    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14498            p_natural_side_code          => 'G'
14499          , p_gain_or_loss_flag          => 'N'
14500          , p_gl_transfer_mode_code      => 'S'
14501          , p_acct_entry_type_code       => 'A'
14502          , p_switch_side_flag           => ''
14503          , p_merge_duplicate_code       => 'A'
14504          );
14505    --
14506    l_acc_rev_natural_side_code := 'C';  -- 4262811
14507    -- 
14508    --
14512       (p_component_type             => l_component_type
14509    -- set accounting line type info
14510    --
14511    xla_ae_lines_pkg.SetAcctLineType
14513       ,p_event_type_code            => l_event_type_code
14514       ,p_line_definition_owner_code => l_line_definition_owner_code
14515       ,p_line_definition_code       => l_line_definition_code
14516       ,p_accounting_line_code       => l_component_code
14517       ,p_accounting_line_type_code  => l_component_type_code
14518       ,p_accounting_line_appl_id    => l_component_appl_id
14519       ,p_amb_context_code           => l_amb_context_code
14520       ,p_entity_code                => l_entity_code
14521       ,p_event_class_code           => l_event_class_code);
14522    --
14523    -- set accounting class
14524    --
14525    xla_ae_lines_pkg.SetAcctClass(
14526            p_accounting_class_code  => 'TERV'
14527          , p_ae_header_id           => l_ae_header_id
14528          );
14529 
14530    --
14531    -- set rounding class
14532    --
14533    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14534                       'TERV';
14535 
14536    --
14537    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14538    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14539    --
14540    -- bulk performance
14541    --
14542    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14543 
14544    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14545       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14546 
14547    -- 4955764
14548    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14549       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14550 
14551    -- 4458381 Public Sector Enh
14552    
14553    --
14554    -- set accounting attributes for the line type
14555    --
14556    l_entered_amt_idx := NULL;
14557    l_accted_amt_idx  := 9;
14558    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
14559    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14560    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
14561    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
14562    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
14563    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14564    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
14565    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
14566    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
14567    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
14568    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
14569    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14570    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
14571    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
14572    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
14573    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
14574    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
14575    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
14576    l_rec_acct_attrs.array_num_value(9)  := p_source_9;
14577    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
14578    l_rec_acct_attrs.array_char_value(10)  := p_source_53;
14579    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
14580    l_rec_acct_attrs.array_num_value(11)  := p_source_54;
14581    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
14582    l_rec_acct_attrs.array_num_value(12)  := p_source_55;
14583    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
14584    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
14585    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
14586    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
14587    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
14588    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
14589    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
14590    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
14591    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
14592    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
14593    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
14594    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
14595 
14596    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14597    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14598 
14599    ---------------------------------------------------------------------------------------------------------------
14600    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14601    ---------------------------------------------------------------------------------------------------------------
14602    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14603 
14604    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14605    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14606 
14610    AND l_bflow_method_code = 'PRIOR_ENTRY'
14607    IF xla_accounting_cache_pkg.GetValueChar
14608          (p_source_code         => 'LEDGER_CATEGORY_CODE'
14609          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14611 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14612    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14613          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14614        )
14615    THEN
14616          xla_ae_lines_pkg.BflowUpgEntry
14617            (p_business_method_code    => l_bflow_method_code
14618            ,p_business_class_code     => l_bflow_class_code
14619            ,p_balance_type            => l_balance_type_code);
14620    ELSE
14621       NULL;
14622 -- No business flow processing for business flow method of NONE.
14623    END IF;
14624 
14625    --
14626    -- call analytical criteria
14627    --
14628    
14629    --
14630    -- call description
14631    --
14632    -- No description or it is inherited.
14633    --
14634    -- call ADRs
14635    -- Bug 4922099
14636    --
14637    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14638         (NVL(l_actual_upg_option, 'N') = 'O') OR
14639         (NVL(l_enc_upg_option, 'N') = 'O')
14640       )
14641    THEN
14642    NULL;
14643    --
14644    --
14645    
14646   l_ccid := AcctDerRule_22(
14647            p_application_id           => p_application_id
14648          , p_ae_header_id             => l_ae_header_id 
14649 , p_source_4 => p_source_4
14650 , p_source_4_meaning => p_source_4_meaning
14651 , p_source_5 => p_source_5
14652 , p_source_7 => p_source_7
14653 , p_source_7_meaning => p_source_7_meaning
14654 , p_source_8 => p_source_8
14655 , p_source_9 => p_source_9
14656 , p_source_10 => p_source_10
14657 , p_source_17 => p_source_17
14658 , p_source_30 => p_source_30
14659 , p_source_30_meaning => p_source_30_meaning
14660          , x_transaction_coa_id       => l_adr_transaction_coa_id
14661          , x_accounting_coa_id        => l_adr_accounting_coa_id
14662          , x_value_type_code          => l_adr_value_type_code
14663          , p_side                     => 'ALL'
14664    );
14665 
14666    xla_ae_lines_pkg.set_ccid(
14667     p_code_combination_id          => l_ccid
14668   , p_value_type_code              => l_adr_value_type_code
14669   , p_transaction_coa_id           => l_adr_transaction_coa_id
14670   , p_accounting_coa_id            => l_adr_accounting_coa_id
14671   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
14672   , p_adr_type_code                => 'S'
14673   , p_component_type               => l_component_type
14674   , p_component_code               => l_component_code
14675   , p_component_type_code          => l_component_type_code
14676   , p_component_appl_id            => l_component_appl_id
14677   , p_amb_context_code             => l_amb_context_code
14678   , p_side                         => 'ALL'
14679   );
14680 
14681 
14682    l_segment := AcctDerRule_5(
14683            p_application_id           => p_application_id
14684          , p_ae_header_id             => l_ae_header_id 
14685 , p_source_4 => p_source_4
14686 , p_source_4_meaning => p_source_4_meaning
14687 , p_source_5 => p_source_5
14688 , p_source_7 => p_source_7
14689 , p_source_7_meaning => p_source_7_meaning
14690          , x_transaction_coa_id       => l_adr_transaction_coa_id
14691          , x_accounting_coa_id        => l_adr_accounting_coa_id
14692          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14693          , x_flex_value_set_id        => l_adr_flex_value_set_id
14694          , x_value_type_code          => l_adr_value_type_code
14695          , x_value_combination_id     => l_adr_value_combination_id
14696          , x_value_segment_code       => l_adr_value_segment_code
14697          , p_side                     => 'CREDIT'
14698          , p_override_seg_flag        => 'Y'
14699    );
14700 
14701    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14702 
14703       xla_ae_lines_pkg.set_segment(
14704           p_to_segment_code         => 'GL_ACCOUNT'
14705         , p_segment_value           => l_segment
14706         , p_from_segment_code       => l_adr_value_segment_code
14707         , p_from_combination_id     => l_adr_value_combination_id
14708         , p_value_type_code         => l_adr_value_type_code
14709         , p_transaction_coa_id      => l_adr_transaction_coa_id
14710         , p_accounting_coa_id       => l_adr_accounting_coa_id
14711         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14712         , p_flex_value_set_id       => l_adr_flex_value_set_id
14713         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14714         , p_adr_type_code           => 'S'
14715         , p_component_type          => l_component_type
14716         , p_component_code          => l_component_code
14717         , p_component_type_code     => l_component_type_code
14718         , p_component_appl_id       => l_component_appl_id
14719         , p_amb_context_code        => l_amb_context_code
14720         , p_entity_code             => 'AP_PAYMENTS'
14721         , p_event_class_code        => 'REFUNDS'
14722         , p_side                    => 'CREDIT'
14723         );
14724 
14725   END IF;
14726 
14727    l_segment := AcctDerRule_6(
14728            p_application_id           => p_application_id
14732 , p_source_7 => p_source_7
14729          , p_ae_header_id             => l_ae_header_id 
14730 , p_source_4 => p_source_4
14731 , p_source_4_meaning => p_source_4_meaning
14733 , p_source_7_meaning => p_source_7_meaning
14734 , p_source_8 => p_source_8
14735          , x_transaction_coa_id       => l_adr_transaction_coa_id
14736          , x_accounting_coa_id        => l_adr_accounting_coa_id
14737          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14738          , x_flex_value_set_id        => l_adr_flex_value_set_id
14739          , x_value_type_code          => l_adr_value_type_code
14740          , x_value_combination_id     => l_adr_value_combination_id
14741          , x_value_segment_code       => l_adr_value_segment_code
14742          , p_side                     => 'DEBIT'
14743          , p_override_seg_flag        => 'Y'
14744    );
14745 
14746    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14747 
14748       xla_ae_lines_pkg.set_segment(
14749           p_to_segment_code         => 'GL_ACCOUNT'
14750         , p_segment_value           => l_segment
14751         , p_from_segment_code       => l_adr_value_segment_code
14752         , p_from_combination_id     => l_adr_value_combination_id
14753         , p_value_type_code         => l_adr_value_type_code
14754         , p_transaction_coa_id      => l_adr_transaction_coa_id
14755         , p_accounting_coa_id       => l_adr_accounting_coa_id
14756         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14757         , p_flex_value_set_id       => l_adr_flex_value_set_id
14758         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14759         , p_adr_type_code           => 'S'
14760         , p_component_type          => l_component_type
14761         , p_component_code          => l_component_code
14762         , p_component_type_code     => l_component_type_code
14763         , p_component_appl_id       => l_component_appl_id
14764         , p_amb_context_code        => l_amb_context_code
14765         , p_entity_code             => 'AP_PAYMENTS'
14766         , p_event_class_code        => 'REFUNDS'
14767         , p_side                    => 'DEBIT'
14768         );
14769 
14770   END IF;
14771 
14772    l_segment := AcctDerRule_15(
14773            p_application_id           => p_application_id
14774          , p_ae_header_id             => l_ae_header_id 
14775 , p_source_4 => p_source_4
14776 , p_source_4_meaning => p_source_4_meaning
14777 , p_source_7 => p_source_7
14778 , p_source_7_meaning => p_source_7_meaning
14779 , p_source_17 => p_source_17
14780          , x_transaction_coa_id       => l_adr_transaction_coa_id
14781          , x_accounting_coa_id        => l_adr_accounting_coa_id
14782          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14783          , x_flex_value_set_id        => l_adr_flex_value_set_id
14784          , x_value_type_code          => l_adr_value_type_code
14785          , x_value_combination_id     => l_adr_value_combination_id
14786          , x_value_segment_code       => l_adr_value_segment_code
14787          , p_side                     => 'ALL'
14788          , p_override_seg_flag        => 'Y'
14789    );
14790 
14791    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14792 
14793       xla_ae_lines_pkg.set_segment(
14794           p_to_segment_code         => 'GL_BALANCING'
14795         , p_segment_value           => l_segment
14796         , p_from_segment_code       => l_adr_value_segment_code
14797         , p_from_combination_id     => l_adr_value_combination_id
14798         , p_value_type_code         => l_adr_value_type_code
14799         , p_transaction_coa_id      => l_adr_transaction_coa_id
14800         , p_accounting_coa_id       => l_adr_accounting_coa_id
14801         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14802         , p_flex_value_set_id       => l_adr_flex_value_set_id
14803         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14804         , p_adr_type_code           => 'S'
14805         , p_component_type          => l_component_type
14806         , p_component_code          => l_component_code
14807         , p_component_type_code     => l_component_type_code
14808         , p_component_appl_id       => l_component_appl_id
14809         , p_amb_context_code        => l_amb_context_code
14810         , p_entity_code             => 'AP_PAYMENTS'
14811         , p_event_class_code        => 'REFUNDS'
14812         , p_side                    => 'ALL'
14813         );
14814 
14815   END IF;
14816 
14817    --
14818    --
14819    END IF;
14820    --
14821    -- Bug 4922099
14822    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14823           (NVL(l_enc_upg_option, 'N') = 'O')
14824         ) AND
14825         (l_bflow_method_code = 'PRIOR_ENTRY')
14826       )
14827    THEN
14828       IF
14829       --
14830       1 = 2
14831       --
14832       THEN
14833       xla_accounting_err_pkg.build_message
14834                                     (p_appli_s_name            => 'XLA'
14835                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14836                                     ,p_token_1                 => 'LINE_NUMBER'
14837                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
14838                                     ,p_token_2                 => 'LINE_TYPE_NAME'
14839                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
14843                                                                             ,l_component_appl_id
14840                                                                              l_component_type
14841                                                                             ,l_component_code
14842                                                                             ,l_component_type_code
14844                                                                             ,l_amb_context_code
14845                                                                             ,l_entity_code
14846                                                                             ,l_event_class_code
14847                                                                            )
14848                                     ,p_token_3                 => 'OWNER'
14849                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
14850                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
14851                                                                           ,p_lookup_code    => l_component_type_code
14852                                                                          )
14853                                     ,p_token_4                 => 'PRODUCT_NAME'
14854                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14855                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14856                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14857                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14858                                     ,p_ae_header_id            =>  NULL
14859                                        );
14860 
14861         IF (C_LEVEL_ERROR>= g_log_level) THEN
14862                  trace
14863                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14864                       ,p_level    => C_LEVEL_ERROR
14865                       ,p_module   => l_log_module);
14866         END IF;
14867       END IF;
14868    END IF;
14869    --
14870    --
14871    ------------------------------------------------------------------------------------------------
14872    -- 4219869 Business Flow
14873    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14874    -- Prior Entry.  Currently, the following code is always generated.
14875    ------------------------------------------------------------------------------------------------
14876    XLA_AE_LINES_PKG.ValidateCurrentLine;
14877 
14878    ------------------------------------------------------------------------------------
14879    -- 4219869 Business Flow
14880    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14881    ------------------------------------------------------------------------------------
14882    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14883 
14884    ----------------------------------------------------------------------------------
14885    -- 4219869 Business Flow
14886    -- Update journal entry status -- Need to generate this within IF <condition>
14887    ----------------------------------------------------------------------------------
14888    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14889          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14890          ,p_balance_type_code => l_balance_type_code
14891          );
14892 
14893    -------------------------------------------------------------------------------------------
14894    -- 4262811 - Generate the Accrual Reversal lines
14895    -------------------------------------------------------------------------------------------
14896    BEGIN
14897       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14898                               (g_array_event(p_event_id).array_value_num('header_index'));
14899       IF l_acc_rev_flag IS NULL THEN
14900          l_acc_rev_flag := 'N';
14901       END IF;
14902    EXCEPTION
14903       WHEN OTHERS THEN
14904          l_acc_rev_flag := 'N';
14905    END;
14906    --
14907    IF (l_acc_rev_flag = 'Y') THEN
14908 
14909        -- 4645092  ------------------------------------------------------------------------------
14910        -- To allow MPA report to determine if it should generate report process
14911        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14912        ------------------------------------------------------------------------------------------
14913 
14914        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14915        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14916    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
14917    -- call ADRs
14918    -- Bug 4922099
14919    --
14920    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14921         (NVL(l_actual_upg_option, 'N') = 'O') OR
14922         (NVL(l_enc_upg_option, 'N') = 'O')
14923       )
14924    THEN
14925    NULL;
14926    --
14927    --
14928    
14929   l_ccid := AcctDerRule_22(
14930            p_application_id           => p_application_id
14931          , p_ae_header_id             => l_ae_header_id 
14932 , p_source_4 => p_source_4
14933 , p_source_4_meaning => p_source_4_meaning
14934 , p_source_5 => p_source_5
14935 , p_source_7 => p_source_7
14939 , p_source_10 => p_source_10
14936 , p_source_7_meaning => p_source_7_meaning
14937 , p_source_8 => p_source_8
14938 , p_source_9 => p_source_9
14940 , p_source_17 => p_source_17
14941 , p_source_30 => p_source_30
14942 , p_source_30_meaning => p_source_30_meaning
14943          , x_transaction_coa_id       => l_adr_transaction_coa_id
14944          , x_accounting_coa_id        => l_adr_accounting_coa_id
14945          , x_value_type_code          => l_adr_value_type_code
14946          , p_side                     => 'ALL'
14947    );
14948 
14949    xla_ae_lines_pkg.set_ccid(
14950     p_code_combination_id          => l_ccid
14951   , p_value_type_code              => l_adr_value_type_code
14952   , p_transaction_coa_id           => l_adr_transaction_coa_id
14953   , p_accounting_coa_id            => l_adr_accounting_coa_id
14954   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
14955   , p_adr_type_code                => 'S'
14956   , p_component_type               => l_component_type
14957   , p_component_code               => l_component_code
14958   , p_component_type_code          => l_component_type_code
14959   , p_component_appl_id            => l_component_appl_id
14960   , p_amb_context_code             => l_amb_context_code
14961   , p_side                         => 'ALL'
14962   );
14963 
14964 
14965    l_segment := AcctDerRule_5(
14966            p_application_id           => p_application_id
14967          , p_ae_header_id             => l_ae_header_id 
14968 , p_source_4 => p_source_4
14969 , p_source_4_meaning => p_source_4_meaning
14970 , p_source_5 => p_source_5
14971 , p_source_7 => p_source_7
14972 , p_source_7_meaning => p_source_7_meaning
14973          , x_transaction_coa_id       => l_adr_transaction_coa_id
14974          , x_accounting_coa_id        => l_adr_accounting_coa_id
14975          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14976          , x_flex_value_set_id        => l_adr_flex_value_set_id
14977          , x_value_type_code          => l_adr_value_type_code
14978          , x_value_combination_id     => l_adr_value_combination_id
14979          , x_value_segment_code       => l_adr_value_segment_code
14980          , p_side                     => 'CREDIT'
14981          , p_override_seg_flag        => 'Y'
14982    );
14983 
14984    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14985 
14986       xla_ae_lines_pkg.set_segment(
14987           p_to_segment_code         => 'GL_ACCOUNT'
14988         , p_segment_value           => l_segment
14989         , p_from_segment_code       => l_adr_value_segment_code
14990         , p_from_combination_id     => l_adr_value_combination_id
14991         , p_value_type_code         => l_adr_value_type_code
14992         , p_transaction_coa_id      => l_adr_transaction_coa_id
14993         , p_accounting_coa_id       => l_adr_accounting_coa_id
14994         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14995         , p_flex_value_set_id       => l_adr_flex_value_set_id
14996         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14997         , p_adr_type_code           => 'S'
14998         , p_component_type          => l_component_type
14999         , p_component_code          => l_component_code
15000         , p_component_type_code     => l_component_type_code
15001         , p_component_appl_id       => l_component_appl_id
15002         , p_amb_context_code        => l_amb_context_code
15003         , p_entity_code             => 'AP_PAYMENTS'
15004         , p_event_class_code        => 'REFUNDS'
15005         , p_side                    => 'CREDIT'
15006         );
15007 
15008   END IF;
15009 
15010    l_segment := AcctDerRule_6(
15011            p_application_id           => p_application_id
15012          , p_ae_header_id             => l_ae_header_id 
15013 , p_source_4 => p_source_4
15014 , p_source_4_meaning => p_source_4_meaning
15015 , p_source_7 => p_source_7
15016 , p_source_7_meaning => p_source_7_meaning
15017 , p_source_8 => p_source_8
15018          , x_transaction_coa_id       => l_adr_transaction_coa_id
15019          , x_accounting_coa_id        => l_adr_accounting_coa_id
15020          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15021          , x_flex_value_set_id        => l_adr_flex_value_set_id
15022          , x_value_type_code          => l_adr_value_type_code
15023          , x_value_combination_id     => l_adr_value_combination_id
15024          , x_value_segment_code       => l_adr_value_segment_code
15025          , p_side                     => 'DEBIT'
15026          , p_override_seg_flag        => 'Y'
15027    );
15028 
15029    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15030 
15031       xla_ae_lines_pkg.set_segment(
15032           p_to_segment_code         => 'GL_ACCOUNT'
15033         , p_segment_value           => l_segment
15034         , p_from_segment_code       => l_adr_value_segment_code
15035         , p_from_combination_id     => l_adr_value_combination_id
15036         , p_value_type_code         => l_adr_value_type_code
15037         , p_transaction_coa_id      => l_adr_transaction_coa_id
15038         , p_accounting_coa_id       => l_adr_accounting_coa_id
15039         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15040         , p_flex_value_set_id       => l_adr_flex_value_set_id
15041         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15042         , p_adr_type_code           => 'S'
15043         , p_component_type          => l_component_type
15047         , p_amb_context_code        => l_amb_context_code
15044         , p_component_code          => l_component_code
15045         , p_component_type_code     => l_component_type_code
15046         , p_component_appl_id       => l_component_appl_id
15048         , p_entity_code             => 'AP_PAYMENTS'
15049         , p_event_class_code        => 'REFUNDS'
15050         , p_side                    => 'DEBIT'
15051         );
15052 
15053   END IF;
15054 
15055    l_segment := AcctDerRule_15(
15056            p_application_id           => p_application_id
15057          , p_ae_header_id             => l_ae_header_id 
15058 , p_source_4 => p_source_4
15059 , p_source_4_meaning => p_source_4_meaning
15060 , p_source_7 => p_source_7
15061 , p_source_7_meaning => p_source_7_meaning
15062 , p_source_17 => p_source_17
15063          , x_transaction_coa_id       => l_adr_transaction_coa_id
15064          , x_accounting_coa_id        => l_adr_accounting_coa_id
15065          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15066          , x_flex_value_set_id        => l_adr_flex_value_set_id
15067          , x_value_type_code          => l_adr_value_type_code
15068          , x_value_combination_id     => l_adr_value_combination_id
15069          , x_value_segment_code       => l_adr_value_segment_code
15070          , p_side                     => 'ALL'
15071          , p_override_seg_flag        => 'Y'
15072    );
15073 
15074    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15075 
15076       xla_ae_lines_pkg.set_segment(
15077           p_to_segment_code         => 'GL_BALANCING'
15078         , p_segment_value           => l_segment
15079         , p_from_segment_code       => l_adr_value_segment_code
15080         , p_from_combination_id     => l_adr_value_combination_id
15081         , p_value_type_code         => l_adr_value_type_code
15082         , p_transaction_coa_id      => l_adr_transaction_coa_id
15083         , p_accounting_coa_id       => l_adr_accounting_coa_id
15084         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15085         , p_flex_value_set_id       => l_adr_flex_value_set_id
15086         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15087         , p_adr_type_code           => 'S'
15088         , p_component_type          => l_component_type
15089         , p_component_code          => l_component_code
15090         , p_component_type_code     => l_component_type_code
15091         , p_component_appl_id       => l_component_appl_id
15092         , p_amb_context_code        => l_amb_context_code
15093         , p_entity_code             => 'AP_PAYMENTS'
15094         , p_event_class_code        => 'REFUNDS'
15095         , p_side                    => 'ALL'
15096         );
15097 
15098   END IF;
15099 
15100    --
15101    --
15102    END IF;
15103 
15104        --
15105        -- Update the line information that should be overwritten
15106        --
15107        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15108                                          p_header_num   => 1);
15109        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
15110 
15111        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15112 
15113        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
15114           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15115        END IF;
15116 
15117       --
15118       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15119       --
15120       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15121           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
15122       ELSE
15123           ---------------------------------------------------------------------------------------------------
15124           -- 4262811a Switch Sign
15125           ---------------------------------------------------------------------------------------------------
15126           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
15127           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15128                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15129           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15130                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15131           -- 5132302
15132           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15133                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15134 
15135       END IF;
15136 
15137       -- 4955764
15138       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15139       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15140 
15141 
15142       XLA_AE_LINES_PKG.ValidateCurrentLine;
15143       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15144 
15145       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15146                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15147                ,p_balance_type_code => l_balance_type_code);
15148 
15152    -- 4262811 Multiperiod Accounting
15149    END IF;
15150 
15151    -----------------------------------------------------------------------------------------
15153    -----------------------------------------------------------------------------------------
15154      -- No MPA option is assigned.
15155 
15156 
15157 END IF;
15158 END IF;
15159 --
15160 
15161 --
15162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15163    trace
15164       (p_msg      => 'END of AcctLineType_49'
15165       ,p_level    => C_LEVEL_PROCEDURE
15166       ,p_module   => l_log_module);
15167 END IF;
15168 --
15169 EXCEPTION
15170   WHEN xla_exceptions_pkg.application_exception THEN
15171       RAISE;
15172   WHEN OTHERS THEN
15173        xla_exceptions_pkg.raise_message
15174            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_49');
15175 END AcctLineType_49;
15176 --
15177 
15178 ---------------------------------------
15179 --
15180 -- PRIVATE FUNCTION
15181 --         AcctLineType_50
15182 --
15183 ---------------------------------------
15184 PROCEDURE AcctLineType_50 (
15185   p_application_id        IN NUMBER
15186  ,p_event_id              IN NUMBER
15187  ,p_calculate_acctd_flag  IN VARCHAR2
15188  ,p_calculate_g_l_flag    IN VARCHAR2
15189  ,p_actual_flag           IN OUT VARCHAR2
15190  ,p_balance_type_code     OUT VARCHAR2
15191  ,p_gain_or_loss_ref      OUT VARCHAR2
15192  
15193 --Automatic Offsets Value
15194  , p_source_4            IN VARCHAR2
15195  , p_source_4_meaning    IN VARCHAR2
15196 --Purchase Order Rate Variance Gain Account
15197  , p_source_5            IN NUMBER
15198 --Invoice Distribution Ledger Amount
15199  , p_source_6            IN NUMBER
15200 --Destination Type of the PO Distribution
15201  , p_source_7            IN VARCHAR2
15202  , p_source_7_meaning    IN VARCHAR2
15203 --Purchase Order Rate Variance Loss Account
15204  , p_source_8            IN NUMBER
15205 --Invoice Distribution Account
15206  , p_source_17            IN NUMBER
15207 --Automatic Offsets Flag
15208  , p_source_30            IN VARCHAR2
15209  , p_source_30_meaning    IN VARCHAR2
15210 --Accounting Reversal Indicator
15211  , p_source_40            IN VARCHAR2
15212 --Business Flow Accounts Payable Application Identifier
15213  , p_source_42            IN NUMBER
15214 --Distribution Link Type
15215  , p_source_48            IN VARCHAR2
15216 --Override Accounted Amount Indicator
15217  , p_source_53            IN VARCHAR2
15218  , p_source_53_meaning    IN VARCHAR2
15219 --Third Party Type
15220  , p_source_56            IN VARCHAR2
15221 --Invoice Distribution Tax Line Identifier
15222  , p_source_58            IN NUMBER
15223 --Invoice Distribution Summary Tax Line Identifier
15224  , p_source_59            IN NUMBER
15225 --Invoice Distribution Tax Distribution Identifier from Tax
15226  , p_source_66            IN NUMBER
15227 --Prepayment Distribution Type
15228  , p_source_67            IN VARCHAR2
15229 --Recipient Invoice Distribution Type
15230  , p_source_68            IN VARCHAR2
15231  , p_source_68_meaning    IN VARCHAR2
15232 --Prepayment Application Distribution Identifier
15233  , p_source_71            IN NUMBER
15234 --Invoice Identifier
15235  , p_source_72            IN NUMBER
15236 --Business Flow Prepayment Invoice Distribution Type
15237  , p_source_73            IN VARCHAR2
15238 --Business Flow Prepayment Invoice Entity Code
15239  , p_source_74            IN VARCHAR2
15240 --Business Flow Prepayment Invoice Distribution Identifier
15241  , p_source_75            IN NUMBER
15242 --Business Flow Prepayment Invoice Identifier
15243  , p_source_76            IN NUMBER
15244 --Upgrade Encumbrance Credit Account Class
15245  , p_source_77            IN VARCHAR2
15246 --Payables Encumbrance Upgrade Credit Account
15247  , p_source_78            IN NUMBER
15248 --Payables Encumbrance Upgrade Credit Amount
15249  , p_source_79            IN NUMBER
15250 --Invoice Currency Code
15251  , p_source_80            IN VARCHAR2
15252 --Payables Encumbrance Upgrade Credit Base Amount
15253  , p_source_81            IN NUMBER
15254 --Upgrade Encumbrance Debit Account Class
15255  , p_source_82            IN VARCHAR2
15256 --Payables Encumbrance Upgrade Debit Account
15257  , p_source_83            IN NUMBER
15258 --Payables Encumbrance Upgrade Debit Amount
15259  , p_source_84            IN NUMBER
15260 --Payables Encumbrance Upgrade Debit Base Amount
15261  , p_source_85            IN NUMBER
15262 --Payables Encumbrance Upgrade Option
15263  , p_source_86            IN VARCHAR2
15264 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
15265  , p_source_89            IN NUMBER
15266 --Deferred Accounting End Date
15267  , p_source_90            IN DATE
15268 --Deferred Accounting Option
15269  , p_source_91            IN VARCHAR2
15270 --Deferred Accounting Start Date
15271  , p_source_92            IN DATE
15272 --Invoice Supplier Identifier
15273  , p_source_93            IN NUMBER
15274 --Invoice Supplier Site Identifier
15275  , p_source_94            IN NUMBER
15276 --Identifier of the Prepayment Application Reversed
15277  , p_source_95            IN NUMBER
15278 --Payables Upgrade Credit Encumbrance Type Identifier
15279  , p_source_96            IN NUMBER
15280 --Payables Upgrade Debit Encumbrance Type Identifier
15281  , p_source_97            IN NUMBER
15282 --Accrue on Receipt Option
15283  , p_source_100            IN VARCHAR2
15287 
15284  , p_source_100_meaning    IN VARCHAR2
15285 )
15286 IS
15288 l_component_type              VARCHAR2(80);
15289 l_component_code              VARCHAR2(30);
15290 l_component_type_code         VARCHAR2(1);
15291 l_component_appl_id           INTEGER;
15292 l_amb_context_code            VARCHAR2(30);
15293 l_entity_code                 VARCHAR2(30);
15294 l_event_class_code            VARCHAR2(30);
15295 l_ae_header_id                NUMBER;
15296 l_event_type_code             VARCHAR2(30);
15297 l_line_definition_code        VARCHAR2(30);
15298 l_line_definition_owner_code  VARCHAR2(1);
15299 --
15300 -- adr variables
15301 l_segment                     VARCHAR2(30);
15302 l_ccid                        NUMBER;
15303 l_adr_transaction_coa_id      NUMBER;
15304 l_adr_accounting_coa_id       NUMBER;
15305 l_adr_flexfield_segment_code  VARCHAR2(30);
15306 l_adr_flex_value_set_id       NUMBER;
15307 l_adr_value_type_code         VARCHAR2(30);
15308 l_adr_value_combination_id    NUMBER;
15309 l_adr_value_segment_code      VARCHAR2(30);
15310 
15311 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
15312 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
15313 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
15314 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
15315 
15316 -- 4262811 Variables ------------------------------------------------------------------------------------------
15317 l_entered_amt_idx             NUMBER;
15318 l_accted_amt_idx              NUMBER;
15319 l_acc_rev_flag                VARCHAR2(1);
15320 l_accrual_line_num            NUMBER;
15321 l_tmp_amt                     NUMBER;
15322 l_acc_rev_natural_side_code   VARCHAR2(1);
15323 
15324 l_num_entries                 NUMBER;
15325 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
15326 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
15327 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
15328 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
15329 l_recog_line_1                NUMBER;
15330 l_recog_line_2                NUMBER;
15331 
15332 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
15333 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
15334 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
15335 
15336 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15337 
15338 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
15339 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
15340 
15341 ---------------------------------------------------------------------------------------------------------------
15342 
15343 
15344 --
15345 -- bulk performance
15346 --
15347 l_balance_type_code           VARCHAR2(1);
15348 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
15349 l_log_module                  VARCHAR2(240);
15350 
15351 --
15352 -- Upgrade strategy
15353 --
15354 l_actual_upg_option           VARCHAR2(1);
15355 l_enc_upg_option           VARCHAR2(1);
15356 
15357 --
15358 BEGIN
15359 --
15360 IF g_log_enabled THEN
15361       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
15362 END IF;
15363 --
15364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15365 
15366       trace
15367          (p_msg      => 'BEGIN of AcctLineType_50'
15368          ,p_level    => C_LEVEL_PROCEDURE
15369          ,p_module   => l_log_module);
15370 
15371 END IF;
15372 --
15373 l_component_type             := 'AMB_JLT';
15374 l_component_code             := 'AP_ALC_TERV_PREPAY_APP';
15375 l_component_type_code        := 'S';
15376 l_component_appl_id          :=  200;
15377 l_amb_context_code           := 'DEFAULT';
15378 l_entity_code                := 'AP_INVOICES';
15379 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
15380 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
15381 l_line_definition_owner_code := 'S';
15382 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
15383 --
15384 l_balance_type_code          := 'A';
15385 l_segment                     := NULL;
15386 l_ccid                        := NULL;
15387 l_adr_transaction_coa_id      := NULL;
15388 l_adr_accounting_coa_id       := NULL;
15389 l_adr_flexfield_segment_code  := NULL;
15390 l_adr_flex_value_set_id       := NULL;
15391 l_adr_value_type_code         := NULL;
15392 l_adr_value_combination_id    := NULL;
15393 l_adr_value_segment_code      := NULL;
15394 
15395 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
15396 l_bflow_class_code           := '';    -- 4219869 Business Flow
15397 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
15398 l_budgetary_control_flag     := 'N';
15399 
15400 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
15401 l_bflow_applied_to_amt       := NULL; -- 5132302
15402 l_entered_amt_idx            := NULL;          -- 4262811
15403 l_accted_amt_idx             := NULL;          -- 4262811
15404 l_acc_rev_flag               := NULL;          -- 4262811
15405 l_accrual_line_num           := NULL;          -- 4262811
15406 l_tmp_amt                    := NULL;          -- 4262811
15407 --
15408 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
15412   
15409             (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
15410                return;
15411   END IF;
15413 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15414     l_balance_type_code <> 'B' THEN
15415 IF (NVL(p_source_67,'
15416 ') =  'PREPAY APPL' OR 
15417 NVL(p_source_67,'
15418 ') =  'PREPAY APPL NONREC TAX' OR 
15419 NVL(p_source_67,'
15420 ') =  'PREPAY APPL REC TAX') AND 
15421 NVL(p_source_68,'
15422 ') =  'NONREC_TAX' AND 
15423 NVL(p_source_100,'
15424 ') =  'Y'
15425  THEN 
15426 
15427    --
15428    XLA_AE_LINES_PKG.SetNewLine;
15429 
15430    p_balance_type_code          := l_balance_type_code;
15431    -- set the flag so later we will know whether the gain loss line needs to be created
15432    
15433    IF(l_balance_type_code = 'A' ) THEN
15434      p_actual_flag :='G';
15435    END IF;
15436 
15437    --
15438    -- bulk performance
15439    --
15440    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15441                                       p_header_num   => 0); -- 4262811
15442    --
15443    -- set accounting line options
15444    --
15445    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15446            p_natural_side_code          => 'G'
15447          , p_gain_or_loss_flag          => 'N'
15448          , p_gl_transfer_mode_code      => 'S'
15449          , p_acct_entry_type_code       => 'A'
15450          , p_switch_side_flag           => ''
15451          , p_merge_duplicate_code       => 'A'
15452          );
15453    --
15454    l_acc_rev_natural_side_code := 'C';  -- 4262811
15455    -- 
15456    --
15457    -- set accounting line type info
15458    --
15459    xla_ae_lines_pkg.SetAcctLineType
15460       (p_component_type             => l_component_type
15461       ,p_event_type_code            => l_event_type_code
15462       ,p_line_definition_owner_code => l_line_definition_owner_code
15463       ,p_line_definition_code       => l_line_definition_code
15464       ,p_accounting_line_code       => l_component_code
15465       ,p_accounting_line_type_code  => l_component_type_code
15466       ,p_accounting_line_appl_id    => l_component_appl_id
15467       ,p_amb_context_code           => l_amb_context_code
15468       ,p_entity_code                => l_entity_code
15469       ,p_event_class_code           => l_event_class_code);
15470    --
15471    -- set accounting class
15472    --
15473    xla_ae_lines_pkg.SetAcctClass(
15474            p_accounting_class_code  => 'TERV'
15475          , p_ae_header_id           => l_ae_header_id
15476          );
15477 
15478    --
15479    -- set rounding class
15480    --
15481    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15482                       'TERV';
15483 
15484    --
15485    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15486    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15487    --
15488    -- bulk performance
15489    --
15490    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15491 
15492    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15493       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15494 
15495    -- 4955764
15496    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15497       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15498 
15499    -- 4458381 Public Sector Enh
15500    
15501    --
15502    -- set accounting attributes for the line type
15503    --
15504    l_entered_amt_idx := NULL;
15505    l_accted_amt_idx  := 25;
15506    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
15507    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15508    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
15509    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15510    l_rec_acct_attrs.array_num_value(2)  := 
15511 xla_ae_sources_pkg.GetSystemSourceNum(
15512    p_source_code           => 'XLA_EVENT_APPL_ID'
15513  , p_source_type_code      => 'Y'
15514  , p_source_application_id =>  602
15515 );
15516    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15517    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
15518    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15519    l_rec_acct_attrs.array_char_value(4)  := 
15520 xla_ae_sources_pkg.GetSystemSourceChar(
15521    p_source_code           => 'XLA_ENTITY_CODE'
15522  , p_source_type_code      => 'Y'
15523  , p_source_application_id =>  602
15524 );
15525    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15526    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
15527    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15528    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
15529    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
15530    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
15534    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
15531    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15532    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
15533    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
15535    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
15536    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
15537    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15538    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
15539    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
15540    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
15541    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
15542    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
15543    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
15544    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
15545    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
15546    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
15547    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
15548    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
15549    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
15550    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
15551    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
15552    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
15553    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
15554    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
15555    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
15556    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
15557    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
15558    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
15559    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
15560    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
15561    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
15562    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
15563    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
15564    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
15565    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
15566    l_rec_acct_attrs.array_num_value(25)  := p_source_89;
15567    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
15568    l_rec_acct_attrs.array_date_value(26)  := p_source_90;
15569    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
15570    l_rec_acct_attrs.array_char_value(27)  := p_source_91;
15571    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
15572    l_rec_acct_attrs.array_date_value(28)  := p_source_92;
15573    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
15574    l_rec_acct_attrs.array_char_value(29)  := p_source_53;
15575    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
15576    l_rec_acct_attrs.array_num_value(30)  := p_source_93;
15577    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
15578    l_rec_acct_attrs.array_num_value(31)  := p_source_94;
15579    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
15580    l_rec_acct_attrs.array_char_value(32)  := p_source_56;
15581    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
15582    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_95);
15583    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
15584    l_rec_acct_attrs.array_char_value(34)  := p_source_48;
15585    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
15586    l_rec_acct_attrs.array_num_value(35)  := p_source_58;
15587    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
15588    l_rec_acct_attrs.array_num_value(36)  := p_source_66;
15589    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
15590    l_rec_acct_attrs.array_num_value(37)  := p_source_59;
15591    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
15592    l_rec_acct_attrs.array_num_value(38)  := p_source_96;
15593    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
15594    l_rec_acct_attrs.array_num_value(39)  := p_source_97;
15595 
15596    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15597    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15598 
15599    ---------------------------------------------------------------------------------------------------------------
15600    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15601    ---------------------------------------------------------------------------------------------------------------
15602    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15603 
15604    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15605    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15606 
15607    IF xla_accounting_cache_pkg.GetValueChar
15608          (p_source_code         => 'LEDGER_CATEGORY_CODE'
15609          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15610    AND l_bflow_method_code = 'PRIOR_ENTRY'
15611 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15612    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15616          xla_ae_lines_pkg.BflowUpgEntry
15613          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15614        )
15615    THEN
15617            (p_business_method_code    => l_bflow_method_code
15618            ,p_business_class_code     => l_bflow_class_code
15619            ,p_balance_type            => l_balance_type_code);
15620    ELSE
15621       NULL;
15622 -- No business flow processing for business flow method of NONE.
15623    END IF;
15624 
15625    --
15626    -- call analytical criteria
15627    --
15628    
15629    --
15630    -- call description
15631    --
15632    -- No description or it is inherited.
15633    --
15634    -- call ADRs
15635    -- Bug 4922099
15636    --
15637    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15638         (NVL(l_actual_upg_option, 'N') = 'O') OR
15639         (NVL(l_enc_upg_option, 'N') = 'O')
15640       )
15641    THEN
15642    NULL;
15643    --
15644    --
15645    
15646   l_ccid := AcctDerRule_23(
15647            p_application_id           => p_application_id
15648          , p_ae_header_id             => l_ae_header_id 
15649 , p_source_4 => p_source_4
15650 , p_source_4_meaning => p_source_4_meaning
15651 , p_source_5 => p_source_5
15652 , p_source_6 => p_source_6
15653 , p_source_7 => p_source_7
15654 , p_source_7_meaning => p_source_7_meaning
15655 , p_source_8 => p_source_8
15656 , p_source_17 => p_source_17
15657 , p_source_30 => p_source_30
15658 , p_source_30_meaning => p_source_30_meaning
15659          , x_transaction_coa_id       => l_adr_transaction_coa_id
15660          , x_accounting_coa_id        => l_adr_accounting_coa_id
15661          , x_value_type_code          => l_adr_value_type_code
15662          , p_side                     => 'ALL'
15663    );
15664 
15665    xla_ae_lines_pkg.set_ccid(
15666     p_code_combination_id          => l_ccid
15667   , p_value_type_code              => l_adr_value_type_code
15668   , p_transaction_coa_id           => l_adr_transaction_coa_id
15669   , p_accounting_coa_id            => l_adr_accounting_coa_id
15670   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15671   , p_adr_type_code                => 'S'
15672   , p_component_type               => l_component_type
15673   , p_component_code               => l_component_code
15674   , p_component_type_code          => l_component_type_code
15675   , p_component_appl_id            => l_component_appl_id
15676   , p_amb_context_code             => l_amb_context_code
15677   , p_side                         => 'ALL'
15678   );
15679 
15680 
15681    l_segment := AcctDerRule_5(
15682            p_application_id           => p_application_id
15683          , p_ae_header_id             => l_ae_header_id 
15684 , p_source_4 => p_source_4
15685 , p_source_4_meaning => p_source_4_meaning
15686 , p_source_5 => p_source_5
15687 , p_source_7 => p_source_7
15688 , p_source_7_meaning => p_source_7_meaning
15689          , x_transaction_coa_id       => l_adr_transaction_coa_id
15690          , x_accounting_coa_id        => l_adr_accounting_coa_id
15691          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15692          , x_flex_value_set_id        => l_adr_flex_value_set_id
15693          , x_value_type_code          => l_adr_value_type_code
15694          , x_value_combination_id     => l_adr_value_combination_id
15695          , x_value_segment_code       => l_adr_value_segment_code
15696          , p_side                     => 'CREDIT'
15697          , p_override_seg_flag        => 'Y'
15698    );
15699 
15700    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15701 
15702       xla_ae_lines_pkg.set_segment(
15703           p_to_segment_code         => 'GL_ACCOUNT'
15704         , p_segment_value           => l_segment
15705         , p_from_segment_code       => l_adr_value_segment_code
15706         , p_from_combination_id     => l_adr_value_combination_id
15707         , p_value_type_code         => l_adr_value_type_code
15708         , p_transaction_coa_id      => l_adr_transaction_coa_id
15709         , p_accounting_coa_id       => l_adr_accounting_coa_id
15710         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15711         , p_flex_value_set_id       => l_adr_flex_value_set_id
15712         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15713         , p_adr_type_code           => 'S'
15714         , p_component_type          => l_component_type
15715         , p_component_code          => l_component_code
15716         , p_component_type_code     => l_component_type_code
15717         , p_component_appl_id       => l_component_appl_id
15718         , p_amb_context_code        => l_amb_context_code
15719         , p_entity_code             => 'AP_INVOICES'
15720         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
15721         , p_side                    => 'CREDIT'
15722         );
15723 
15724   END IF;
15725 
15726    l_segment := AcctDerRule_6(
15727            p_application_id           => p_application_id
15728          , p_ae_header_id             => l_ae_header_id 
15729 , p_source_4 => p_source_4
15730 , p_source_4_meaning => p_source_4_meaning
15731 , p_source_7 => p_source_7
15732 , p_source_7_meaning => p_source_7_meaning
15733 , p_source_8 => p_source_8
15734          , x_transaction_coa_id       => l_adr_transaction_coa_id
15735          , x_accounting_coa_id        => l_adr_accounting_coa_id
15736          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15740          , x_value_segment_code       => l_adr_value_segment_code
15737          , x_flex_value_set_id        => l_adr_flex_value_set_id
15738          , x_value_type_code          => l_adr_value_type_code
15739          , x_value_combination_id     => l_adr_value_combination_id
15741          , p_side                     => 'DEBIT'
15742          , p_override_seg_flag        => 'Y'
15743    );
15744 
15745    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15746 
15747       xla_ae_lines_pkg.set_segment(
15748           p_to_segment_code         => 'GL_ACCOUNT'
15749         , p_segment_value           => l_segment
15750         , p_from_segment_code       => l_adr_value_segment_code
15751         , p_from_combination_id     => l_adr_value_combination_id
15752         , p_value_type_code         => l_adr_value_type_code
15753         , p_transaction_coa_id      => l_adr_transaction_coa_id
15754         , p_accounting_coa_id       => l_adr_accounting_coa_id
15755         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15756         , p_flex_value_set_id       => l_adr_flex_value_set_id
15757         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15758         , p_adr_type_code           => 'S'
15759         , p_component_type          => l_component_type
15760         , p_component_code          => l_component_code
15761         , p_component_type_code     => l_component_type_code
15762         , p_component_appl_id       => l_component_appl_id
15763         , p_amb_context_code        => l_amb_context_code
15764         , p_entity_code             => 'AP_INVOICES'
15765         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
15766         , p_side                    => 'DEBIT'
15767         );
15768 
15769   END IF;
15770 
15771    l_segment := AcctDerRule_15(
15772            p_application_id           => p_application_id
15773          , p_ae_header_id             => l_ae_header_id 
15774 , p_source_4 => p_source_4
15775 , p_source_4_meaning => p_source_4_meaning
15776 , p_source_7 => p_source_7
15777 , p_source_7_meaning => p_source_7_meaning
15778 , p_source_17 => p_source_17
15779          , x_transaction_coa_id       => l_adr_transaction_coa_id
15780          , x_accounting_coa_id        => l_adr_accounting_coa_id
15781          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15782          , x_flex_value_set_id        => l_adr_flex_value_set_id
15783          , x_value_type_code          => l_adr_value_type_code
15784          , x_value_combination_id     => l_adr_value_combination_id
15785          , x_value_segment_code       => l_adr_value_segment_code
15786          , p_side                     => 'ALL'
15787          , p_override_seg_flag        => 'Y'
15788    );
15789 
15790    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15791 
15792       xla_ae_lines_pkg.set_segment(
15793           p_to_segment_code         => 'GL_BALANCING'
15794         , p_segment_value           => l_segment
15795         , p_from_segment_code       => l_adr_value_segment_code
15796         , p_from_combination_id     => l_adr_value_combination_id
15797         , p_value_type_code         => l_adr_value_type_code
15798         , p_transaction_coa_id      => l_adr_transaction_coa_id
15799         , p_accounting_coa_id       => l_adr_accounting_coa_id
15800         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15801         , p_flex_value_set_id       => l_adr_flex_value_set_id
15802         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15803         , p_adr_type_code           => 'S'
15804         , p_component_type          => l_component_type
15805         , p_component_code          => l_component_code
15806         , p_component_type_code     => l_component_type_code
15807         , p_component_appl_id       => l_component_appl_id
15808         , p_amb_context_code        => l_amb_context_code
15809         , p_entity_code             => 'AP_INVOICES'
15810         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
15811         , p_side                    => 'ALL'
15812         );
15813 
15814   END IF;
15815 
15816    --
15817    --
15818    END IF;
15819    --
15820    -- Bug 4922099
15821    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15822           (NVL(l_enc_upg_option, 'N') = 'O')
15823         ) AND
15824         (l_bflow_method_code = 'PRIOR_ENTRY')
15825       )
15826    THEN
15827       IF
15828       --
15829       1 = 2
15830       --
15831       THEN
15832       xla_accounting_err_pkg.build_message
15833                                     (p_appli_s_name            => 'XLA'
15834                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15835                                     ,p_token_1                 => 'LINE_NUMBER'
15836                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
15837                                     ,p_token_2                 => 'LINE_TYPE_NAME'
15838                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
15839                                                                              l_component_type
15840                                                                             ,l_component_code
15841                                                                             ,l_component_type_code
15842                                                                             ,l_component_appl_id
15843                                                                             ,l_amb_context_code
15847                                     ,p_token_3                 => 'OWNER'
15844                                                                             ,l_entity_code
15845                                                                             ,l_event_class_code
15846                                                                            )
15848                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
15849                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
15850                                                                           ,p_lookup_code    => l_component_type_code
15851                                                                          )
15852                                     ,p_token_4                 => 'PRODUCT_NAME'
15853                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15854                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15855                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15856                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15857                                     ,p_ae_header_id            =>  NULL
15858                                        );
15859 
15860         IF (C_LEVEL_ERROR>= g_log_level) THEN
15861                  trace
15862                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15863                       ,p_level    => C_LEVEL_ERROR
15864                       ,p_module   => l_log_module);
15865         END IF;
15866       END IF;
15867    END IF;
15868    --
15869    --
15870    ------------------------------------------------------------------------------------------------
15871    -- 4219869 Business Flow
15872    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15873    -- Prior Entry.  Currently, the following code is always generated.
15874    ------------------------------------------------------------------------------------------------
15875    XLA_AE_LINES_PKG.ValidateCurrentLine;
15876 
15877    ------------------------------------------------------------------------------------
15878    -- 4219869 Business Flow
15879    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15880    ------------------------------------------------------------------------------------
15881    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15882 
15883    ----------------------------------------------------------------------------------
15884    -- 4219869 Business Flow
15885    -- Update journal entry status -- Need to generate this within IF <condition>
15886    ----------------------------------------------------------------------------------
15887    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15888          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15889          ,p_balance_type_code => l_balance_type_code
15890          );
15891 
15892    -------------------------------------------------------------------------------------------
15893    -- 4262811 - Generate the Accrual Reversal lines
15894    -------------------------------------------------------------------------------------------
15895    BEGIN
15896       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15897                               (g_array_event(p_event_id).array_value_num('header_index'));
15898       IF l_acc_rev_flag IS NULL THEN
15899          l_acc_rev_flag := 'N';
15900       END IF;
15901    EXCEPTION
15902       WHEN OTHERS THEN
15903          l_acc_rev_flag := 'N';
15904    END;
15905    --
15906    IF (l_acc_rev_flag = 'Y') THEN
15907 
15908        -- 4645092  ------------------------------------------------------------------------------
15909        -- To allow MPA report to determine if it should generate report process
15910        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15911        ------------------------------------------------------------------------------------------
15912 
15913        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15914        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15915    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
15916    -- call ADRs
15917    -- Bug 4922099
15918    --
15919    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15920         (NVL(l_actual_upg_option, 'N') = 'O') OR
15921         (NVL(l_enc_upg_option, 'N') = 'O')
15922       )
15923    THEN
15924    NULL;
15925    --
15926    --
15927    
15928   l_ccid := AcctDerRule_23(
15929            p_application_id           => p_application_id
15930          , p_ae_header_id             => l_ae_header_id 
15931 , p_source_4 => p_source_4
15932 , p_source_4_meaning => p_source_4_meaning
15933 , p_source_5 => p_source_5
15934 , p_source_6 => p_source_6
15935 , p_source_7 => p_source_7
15936 , p_source_7_meaning => p_source_7_meaning
15937 , p_source_8 => p_source_8
15938 , p_source_17 => p_source_17
15939 , p_source_30 => p_source_30
15940 , p_source_30_meaning => p_source_30_meaning
15941          , x_transaction_coa_id       => l_adr_transaction_coa_id
15942          , x_accounting_coa_id        => l_adr_accounting_coa_id
15943          , x_value_type_code          => l_adr_value_type_code
15944          , p_side                     => 'ALL'
15948     p_code_combination_id          => l_ccid
15945    );
15946 
15947    xla_ae_lines_pkg.set_ccid(
15949   , p_value_type_code              => l_adr_value_type_code
15950   , p_transaction_coa_id           => l_adr_transaction_coa_id
15951   , p_accounting_coa_id            => l_adr_accounting_coa_id
15952   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15953   , p_adr_type_code                => 'S'
15954   , p_component_type               => l_component_type
15955   , p_component_code               => l_component_code
15956   , p_component_type_code          => l_component_type_code
15957   , p_component_appl_id            => l_component_appl_id
15958   , p_amb_context_code             => l_amb_context_code
15959   , p_side                         => 'ALL'
15960   );
15961 
15962 
15963    l_segment := AcctDerRule_5(
15964            p_application_id           => p_application_id
15965          , p_ae_header_id             => l_ae_header_id 
15966 , p_source_4 => p_source_4
15967 , p_source_4_meaning => p_source_4_meaning
15968 , p_source_5 => p_source_5
15969 , p_source_7 => p_source_7
15970 , p_source_7_meaning => p_source_7_meaning
15971          , x_transaction_coa_id       => l_adr_transaction_coa_id
15972          , x_accounting_coa_id        => l_adr_accounting_coa_id
15973          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15974          , x_flex_value_set_id        => l_adr_flex_value_set_id
15975          , x_value_type_code          => l_adr_value_type_code
15976          , x_value_combination_id     => l_adr_value_combination_id
15977          , x_value_segment_code       => l_adr_value_segment_code
15978          , p_side                     => 'CREDIT'
15979          , p_override_seg_flag        => 'Y'
15980    );
15981 
15982    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15983 
15984       xla_ae_lines_pkg.set_segment(
15985           p_to_segment_code         => 'GL_ACCOUNT'
15986         , p_segment_value           => l_segment
15987         , p_from_segment_code       => l_adr_value_segment_code
15988         , p_from_combination_id     => l_adr_value_combination_id
15989         , p_value_type_code         => l_adr_value_type_code
15990         , p_transaction_coa_id      => l_adr_transaction_coa_id
15991         , p_accounting_coa_id       => l_adr_accounting_coa_id
15992         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15993         , p_flex_value_set_id       => l_adr_flex_value_set_id
15994         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15995         , p_adr_type_code           => 'S'
15996         , p_component_type          => l_component_type
15997         , p_component_code          => l_component_code
15998         , p_component_type_code     => l_component_type_code
15999         , p_component_appl_id       => l_component_appl_id
16000         , p_amb_context_code        => l_amb_context_code
16001         , p_entity_code             => 'AP_INVOICES'
16002         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
16003         , p_side                    => 'CREDIT'
16004         );
16005 
16006   END IF;
16007 
16008    l_segment := AcctDerRule_6(
16009            p_application_id           => p_application_id
16010          , p_ae_header_id             => l_ae_header_id 
16011 , p_source_4 => p_source_4
16012 , p_source_4_meaning => p_source_4_meaning
16013 , p_source_7 => p_source_7
16014 , p_source_7_meaning => p_source_7_meaning
16015 , p_source_8 => p_source_8
16016          , x_transaction_coa_id       => l_adr_transaction_coa_id
16017          , x_accounting_coa_id        => l_adr_accounting_coa_id
16018          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16019          , x_flex_value_set_id        => l_adr_flex_value_set_id
16020          , x_value_type_code          => l_adr_value_type_code
16021          , x_value_combination_id     => l_adr_value_combination_id
16022          , x_value_segment_code       => l_adr_value_segment_code
16023          , p_side                     => 'DEBIT'
16024          , p_override_seg_flag        => 'Y'
16025    );
16026 
16027    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16028 
16029       xla_ae_lines_pkg.set_segment(
16030           p_to_segment_code         => 'GL_ACCOUNT'
16031         , p_segment_value           => l_segment
16032         , p_from_segment_code       => l_adr_value_segment_code
16033         , p_from_combination_id     => l_adr_value_combination_id
16034         , p_value_type_code         => l_adr_value_type_code
16035         , p_transaction_coa_id      => l_adr_transaction_coa_id
16036         , p_accounting_coa_id       => l_adr_accounting_coa_id
16037         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16038         , p_flex_value_set_id       => l_adr_flex_value_set_id
16039         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16040         , p_adr_type_code           => 'S'
16041         , p_component_type          => l_component_type
16042         , p_component_code          => l_component_code
16043         , p_component_type_code     => l_component_type_code
16044         , p_component_appl_id       => l_component_appl_id
16045         , p_amb_context_code        => l_amb_context_code
16046         , p_entity_code             => 'AP_INVOICES'
16047         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
16048         , p_side                    => 'DEBIT'
16049         );
16050 
16051   END IF;
16052 
16053    l_segment := AcctDerRule_15(
16057 , p_source_4_meaning => p_source_4_meaning
16054            p_application_id           => p_application_id
16055          , p_ae_header_id             => l_ae_header_id 
16056 , p_source_4 => p_source_4
16058 , p_source_7 => p_source_7
16059 , p_source_7_meaning => p_source_7_meaning
16060 , p_source_17 => p_source_17
16061          , x_transaction_coa_id       => l_adr_transaction_coa_id
16062          , x_accounting_coa_id        => l_adr_accounting_coa_id
16063          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16064          , x_flex_value_set_id        => l_adr_flex_value_set_id
16065          , x_value_type_code          => l_adr_value_type_code
16066          , x_value_combination_id     => l_adr_value_combination_id
16067          , x_value_segment_code       => l_adr_value_segment_code
16068          , p_side                     => 'ALL'
16069          , p_override_seg_flag        => 'Y'
16070    );
16071 
16072    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16073 
16074       xla_ae_lines_pkg.set_segment(
16075           p_to_segment_code         => 'GL_BALANCING'
16076         , p_segment_value           => l_segment
16077         , p_from_segment_code       => l_adr_value_segment_code
16078         , p_from_combination_id     => l_adr_value_combination_id
16079         , p_value_type_code         => l_adr_value_type_code
16080         , p_transaction_coa_id      => l_adr_transaction_coa_id
16081         , p_accounting_coa_id       => l_adr_accounting_coa_id
16082         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16083         , p_flex_value_set_id       => l_adr_flex_value_set_id
16084         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16085         , p_adr_type_code           => 'S'
16086         , p_component_type          => l_component_type
16087         , p_component_code          => l_component_code
16088         , p_component_type_code     => l_component_type_code
16089         , p_component_appl_id       => l_component_appl_id
16090         , p_amb_context_code        => l_amb_context_code
16091         , p_entity_code             => 'AP_INVOICES'
16092         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
16093         , p_side                    => 'ALL'
16094         );
16095 
16096   END IF;
16097 
16098    --
16099    --
16100    END IF;
16101 
16102        --
16103        -- Update the line information that should be overwritten
16104        --
16105        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16106                                          p_header_num   => 1);
16107        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
16108 
16109        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16110 
16111        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
16112           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16113        END IF;
16114 
16115       --
16116       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16117       --
16118       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16119           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
16120       ELSE
16121           ---------------------------------------------------------------------------------------------------
16122           -- 4262811a Switch Sign
16123           ---------------------------------------------------------------------------------------------------
16124           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
16125           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16126                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16127           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16128                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16129           -- 5132302
16130           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16131                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16132 
16133       END IF;
16134 
16135       -- 4955764
16136       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16137       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16138 
16139 
16140       XLA_AE_LINES_PKG.ValidateCurrentLine;
16141       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16142 
16143       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16144                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16145                ,p_balance_type_code => l_balance_type_code);
16146 
16147    END IF;
16148 
16149    -----------------------------------------------------------------------------------------
16150    -- 4262811 Multiperiod Accounting
16151    -----------------------------------------------------------------------------------------
16152      -- No MPA option is assigned.
16153 
16154 
16155 END IF;
16156 END IF;
16157 --
16158 
16159 --
16160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16161    trace
16162       (p_msg      => 'END of AcctLineType_50'
16166 --
16163       ,p_level    => C_LEVEL_PROCEDURE
16164       ,p_module   => l_log_module);
16165 END IF;
16167 EXCEPTION
16168   WHEN xla_exceptions_pkg.application_exception THEN
16169       RAISE;
16170   WHEN OTHERS THEN
16171        xla_exceptions_pkg.raise_message
16172            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_50');
16173 END AcctLineType_50;
16174 --
16175 
16176 ---------------------------------------
16177 --
16178 -- PRIVATE FUNCTION
16179 --         AcctLineType_51
16180 --
16181 ---------------------------------------
16182 PROCEDURE AcctLineType_51 (
16183   p_application_id        IN NUMBER
16184  ,p_event_id              IN NUMBER
16185  ,p_calculate_acctd_flag  IN VARCHAR2
16186  ,p_calculate_g_l_flag    IN VARCHAR2
16187  ,p_actual_flag           IN OUT VARCHAR2
16188  ,p_balance_type_code     OUT VARCHAR2
16189  ,p_gain_or_loss_ref      OUT VARCHAR2
16190  
16191 --When to Account for Payment Option
16192  , p_source_38            IN VARCHAR2
16193 --Payment Distribution Type
16194  , p_source_39            IN VARCHAR2
16195  , p_source_39_meaning    IN VARCHAR2
16196 --Accounting Reversal Indicator
16197  , p_source_40            IN VARCHAR2
16198 --Payment Distribution Amount
16199  , p_source_41            IN NUMBER
16200 --Business Flow Accounts Payable Application Identifier
16201  , p_source_42            IN NUMBER
16202 --Payment Distribution Identifier
16203  , p_source_47            IN NUMBER
16204 --Distribution Link Type
16205  , p_source_48            IN VARCHAR2
16206 --Payment Currency Code
16207  , p_source_49            IN VARCHAR2
16208 --Override Accounted Amount Indicator
16209  , p_source_53            IN VARCHAR2
16210  , p_source_53_meaning    IN VARCHAR2
16211 --Third Party Type
16212  , p_source_56            IN VARCHAR2
16213 --Payment Distribution Reversed Identifier
16214  , p_source_57            IN NUMBER
16215 --Invoice Distribution Tax Line Identifier
16216  , p_source_58            IN NUMBER
16217 --Invoice Distribution Summary Tax Line Identifier
16218  , p_source_59            IN NUMBER
16219 --Business Flow Invoice Distribution Type
16220  , p_source_62            IN VARCHAR2
16221 --Business Flow Invoice Entity Code
16222  , p_source_63            IN VARCHAR2
16223 --Business Flow Invoice Distribution Identifier
16224  , p_source_64            IN NUMBER
16225 --Business Flow Invoice Identifier
16226  , p_source_65            IN NUMBER
16227 --Accrue on Receipt Option
16228  , p_source_100            IN VARCHAR2
16229  , p_source_100_meaning    IN VARCHAR2
16230 --Purchasing Encumbrance Option
16231  , p_source_102            IN VARCHAR2
16232  , p_source_102_meaning    IN VARCHAR2
16233 --Prorated Amount of Variance Amount in Ledger Currency for Cash Basis
16234  , p_source_103            IN NUMBER
16235 --Invoice Encumbered Option
16236  , p_source_104            IN VARCHAR2
16237  , p_source_104_meaning    IN VARCHAR2
16238 --Prorated Amount of Variance Amount for Cash Basis
16239  , p_source_105            IN NUMBER
16240 )
16241 IS
16242 
16243 l_component_type              VARCHAR2(80);
16244 l_component_code              VARCHAR2(30);
16245 l_component_type_code         VARCHAR2(1);
16246 l_component_appl_id           INTEGER;
16247 l_amb_context_code            VARCHAR2(30);
16248 l_entity_code                 VARCHAR2(30);
16249 l_event_class_code            VARCHAR2(30);
16250 l_ae_header_id                NUMBER;
16251 l_event_type_code             VARCHAR2(30);
16252 l_line_definition_code        VARCHAR2(30);
16253 l_line_definition_owner_code  VARCHAR2(1);
16254 --
16255 -- adr variables
16256 l_segment                     VARCHAR2(30);
16257 l_ccid                        NUMBER;
16258 l_adr_transaction_coa_id      NUMBER;
16259 l_adr_accounting_coa_id       NUMBER;
16260 l_adr_flexfield_segment_code  VARCHAR2(30);
16261 l_adr_flex_value_set_id       NUMBER;
16262 l_adr_value_type_code         VARCHAR2(30);
16263 l_adr_value_combination_id    NUMBER;
16264 l_adr_value_segment_code      VARCHAR2(30);
16265 
16266 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
16267 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
16268 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
16269 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
16270 
16271 -- 4262811 Variables ------------------------------------------------------------------------------------------
16272 l_entered_amt_idx             NUMBER;
16273 l_accted_amt_idx              NUMBER;
16274 l_acc_rev_flag                VARCHAR2(1);
16275 l_accrual_line_num            NUMBER;
16276 l_tmp_amt                     NUMBER;
16277 l_acc_rev_natural_side_code   VARCHAR2(1);
16278 
16279 l_num_entries                 NUMBER;
16280 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
16281 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
16282 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
16283 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
16284 l_recog_line_1                NUMBER;
16285 l_recog_line_2                NUMBER;
16286 
16287 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
16288 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
16289 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
16290 
16294 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
16291 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16292 
16293 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
16295 
16296 ---------------------------------------------------------------------------------------------------------------
16297 
16298 
16299 --
16300 -- bulk performance
16301 --
16302 l_balance_type_code           VARCHAR2(1);
16303 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
16304 l_log_module                  VARCHAR2(240);
16305 
16306 --
16307 -- Upgrade strategy
16308 --
16309 l_actual_upg_option           VARCHAR2(1);
16310 l_enc_upg_option           VARCHAR2(1);
16311 
16312 --
16313 BEGIN
16314 --
16315 IF g_log_enabled THEN
16316       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
16317 END IF;
16318 --
16319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16320 
16321       trace
16322          (p_msg      => 'BEGIN of AcctLineType_51'
16323          ,p_level    => C_LEVEL_PROCEDURE
16324          ,p_module   => l_log_module);
16325 
16326 END IF;
16327 --
16328 l_component_type             := 'AMB_JLT';
16329 l_component_code             := 'AP_AMOUNT_VARIANCE_CLR_ENC';
16330 l_component_type_code        := 'S';
16331 l_component_appl_id          :=  200;
16332 l_amb_context_code           := 'DEFAULT';
16333 l_entity_code                := 'AP_PAYMENTS';
16334 l_event_class_code           := 'RECONCILED PAYMENTS';
16335 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
16336 l_line_definition_owner_code := 'S';
16337 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
16338 --
16339 l_balance_type_code          := 'E';
16340 l_segment                     := NULL;
16341 l_ccid                        := NULL;
16342 l_adr_transaction_coa_id      := NULL;
16343 l_adr_accounting_coa_id       := NULL;
16344 l_adr_flexfield_segment_code  := NULL;
16345 l_adr_flex_value_set_id       := NULL;
16346 l_adr_value_type_code         := NULL;
16347 l_adr_value_combination_id    := NULL;
16348 l_adr_value_segment_code      := NULL;
16349 
16350 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
16351 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
16352 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
16353 l_budgetary_control_flag     := 'N';
16354 
16355 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
16356 l_bflow_applied_to_amt       := NULL; -- 5132302
16357 l_entered_amt_idx            := NULL;          -- 4262811
16358 l_accted_amt_idx             := NULL;          -- 4262811
16359 l_acc_rev_flag               := NULL;          -- 4262811
16360 l_accrual_line_num           := NULL;          -- 4262811
16361 l_tmp_amt                    := NULL;          -- 4262811
16362 --
16363  
16364 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16365     l_balance_type_code <> 'B' THEN
16366 IF NVL(p_source_38,'
16367 ') =  'CLEAR_CLEAR' AND 
16368 NVL(p_source_100,'
16369 ') <>  'Y' AND 
16370 (NVL(p_source_39,'
16371 ') =  'CASH' OR 
16372 NVL(p_source_39,'
16373 ') =  'DISCOUNT') AND 
16374 NVL(p_source_102,'
16375 ') =  'Y' AND 
16376 p_source_103 IS NOT NULL AND 
16377 NVL(p_source_104,'
16378 ') =  'Y'
16379  THEN 
16380 
16381    --
16382    XLA_AE_LINES_PKG.SetNewLine;
16383 
16384    p_balance_type_code          := l_balance_type_code;
16385    -- set the flag so later we will know whether the gain loss line needs to be created
16386    
16387    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16388      p_actual_flag :='A';
16389    END IF;
16390 
16391    --
16392    -- bulk performance
16393    --
16394    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16395                                       p_header_num   => 0); -- 4262811
16396    --
16397    -- set accounting line options
16398    --
16399    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16400            p_natural_side_code          => 'C'
16401          , p_gain_or_loss_flag          => 'N'
16402          , p_gl_transfer_mode_code      => 'S'
16403          , p_acct_entry_type_code       => 'E'
16404          , p_switch_side_flag           => 'Y'
16405          , p_merge_duplicate_code       => 'A'
16406          );
16407    --
16408    l_acc_rev_natural_side_code := 'D';  -- 4262811
16409    -- 
16410    --
16411    -- set accounting line type info
16412    --
16413    xla_ae_lines_pkg.SetAcctLineType
16414       (p_component_type             => l_component_type
16415       ,p_event_type_code            => l_event_type_code
16416       ,p_line_definition_owner_code => l_line_definition_owner_code
16417       ,p_line_definition_code       => l_line_definition_code
16418       ,p_accounting_line_code       => l_component_code
16419       ,p_accounting_line_type_code  => l_component_type_code
16420       ,p_accounting_line_appl_id    => l_component_appl_id
16421       ,p_amb_context_code           => l_amb_context_code
16422       ,p_entity_code                => l_entity_code
16423       ,p_event_class_code           => l_event_class_code);
16424    --
16425    -- set accounting class
16426    --
16427    xla_ae_lines_pkg.SetAcctClass(
16431 
16428            p_accounting_class_code  => 'AMT_VARIANCE'
16429          , p_ae_header_id           => l_ae_header_id
16430          );
16432    --
16433    -- set rounding class
16434    --
16435    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16436                       'AMT_VARIANCE';
16437 
16438    --
16439    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16440    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16441    --
16442    -- bulk performance
16443    --
16444    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16445 
16446    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16447       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16448 
16449    -- 4955764
16450    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16451       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16452 
16453    -- 4458381 Public Sector Enh
16454    
16455    --
16456    -- set accounting attributes for the line type
16457    --
16458    l_entered_amt_idx := 10;
16459    l_accted_amt_idx  := 12;
16460    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
16461    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16462    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
16463    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
16464    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
16465    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
16466    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
16467    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16468    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
16469    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
16470    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
16471    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
16472    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
16473    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16474    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
16475    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
16476    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
16477    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
16478    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
16479    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
16480    l_rec_acct_attrs.array_num_value(10)  := p_source_105;
16481    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
16482    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
16483    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
16484    l_rec_acct_attrs.array_num_value(12)  := p_source_103;
16485    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
16486    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
16487    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
16488    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
16489    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
16490    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
16491    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
16492    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
16493    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
16494    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
16495    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
16496    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
16497    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
16498    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
16499 
16500    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16501    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16502 
16503    ---------------------------------------------------------------------------------------------------------------
16504    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16505    ---------------------------------------------------------------------------------------------------------------
16506    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16507 
16508    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16509    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16510 
16511    IF xla_accounting_cache_pkg.GetValueChar
16512          (p_source_code         => 'LEDGER_CATEGORY_CODE'
16513          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16514    AND l_bflow_method_code = 'PRIOR_ENTRY'
16515 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16516    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16517          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16518        )
16519    THEN
16520          xla_ae_lines_pkg.BflowUpgEntry
16521            (p_business_method_code    => l_bflow_method_code
16522            ,p_business_class_code     => l_bflow_class_code
16526 XLA_AE_LINES_PKG.business_flow_validation(
16523            ,p_balance_type            => l_balance_type_code);
16524    ELSE
16525       NULL;
16527                                 p_business_method_code     => l_bflow_method_code
16528                                ,p_business_class_code      => l_bflow_class_code
16529                                ,p_inherit_description_flag => l_inherit_desc_flag);
16530    END IF;
16531 
16532    --
16533    -- call analytical criteria
16534    --
16535    -- Inherited Analytical Criteria for business flow method of Prior Entry.
16536    --
16537    -- call description
16538    --
16539    -- No description or it is inherited.
16540    --
16541    -- call ADRs
16542    -- Bug 4922099
16543    --
16544    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16545         (NVL(l_actual_upg_option, 'N') = 'O') OR
16546         (NVL(l_enc_upg_option, 'N') = 'O')
16547       )
16548    THEN
16549    NULL;
16550    --
16551    --
16552    
16553    --
16554    --
16555    END IF;
16556    --
16557    -- Bug 4922099
16558    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16559           (NVL(l_enc_upg_option, 'N') = 'O')
16560         ) AND
16561         (l_bflow_method_code = 'PRIOR_ENTRY')
16562       )
16563    THEN
16564       IF
16565       --
16566       1 = 1
16567       --
16568       THEN
16569       xla_accounting_err_pkg.build_message
16570                                     (p_appli_s_name            => 'XLA'
16571                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16572                                     ,p_token_1                 => 'LINE_NUMBER'
16573                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
16574                                     ,p_token_2                 => 'LINE_TYPE_NAME'
16575                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
16576                                                                              l_component_type
16577                                                                             ,l_component_code
16578                                                                             ,l_component_type_code
16579                                                                             ,l_component_appl_id
16580                                                                             ,l_amb_context_code
16581                                                                             ,l_entity_code
16582                                                                             ,l_event_class_code
16583                                                                            )
16584                                     ,p_token_3                 => 'OWNER'
16585                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
16586                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
16587                                                                           ,p_lookup_code    => l_component_type_code
16588                                                                          )
16589                                     ,p_token_4                 => 'PRODUCT_NAME'
16590                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16591                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16592                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16593                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16594                                     ,p_ae_header_id            =>  NULL
16595                                        );
16596 
16597         IF (C_LEVEL_ERROR>= g_log_level) THEN
16598                  trace
16599                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16600                       ,p_level    => C_LEVEL_ERROR
16601                       ,p_module   => l_log_module);
16602         END IF;
16603       END IF;
16604    END IF;
16605    --
16606    --
16607    ------------------------------------------------------------------------------------------------
16608    -- 4219869 Business Flow
16609    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16610    -- Prior Entry.  Currently, the following code is always generated.
16611    ------------------------------------------------------------------------------------------------
16612    -- No ValidateCurrentLine for business flow method of Prior Entry
16613 
16614    ------------------------------------------------------------------------------------
16615    -- 4219869 Business Flow
16616    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16617    ------------------------------------------------------------------------------------
16618    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16619 
16620    ----------------------------------------------------------------------------------
16621    -- 4219869 Business Flow
16622    -- Update journal entry status -- Need to generate this within IF <condition>
16623    ----------------------------------------------------------------------------------
16624    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16625          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16629    -------------------------------------------------------------------------------------------
16626          ,p_balance_type_code => l_balance_type_code
16627          );
16628 
16630    -- 4262811 - Generate the Accrual Reversal lines
16631    -------------------------------------------------------------------------------------------
16632    BEGIN
16633       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16634                               (g_array_event(p_event_id).array_value_num('header_index'));
16635       IF l_acc_rev_flag IS NULL THEN
16636          l_acc_rev_flag := 'N';
16637       END IF;
16638    EXCEPTION
16639       WHEN OTHERS THEN
16640          l_acc_rev_flag := 'N';
16641    END;
16642    --
16643    IF (l_acc_rev_flag = 'Y') THEN
16644 
16645        -- 4645092  ------------------------------------------------------------------------------
16646        -- To allow MPA report to determine if it should generate report process
16647        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16648        ------------------------------------------------------------------------------------------
16649 
16650        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16651        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16652    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
16653    -- call ADRs
16654    -- Bug 4922099
16655    --
16656    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16657         (NVL(l_actual_upg_option, 'N') = 'O') OR
16658         (NVL(l_enc_upg_option, 'N') = 'O')
16659       )
16660    THEN
16661    NULL;
16662    --
16663    --
16664    
16665    --
16666    --
16667    END IF;
16668 
16669        --
16670        -- Update the line information that should be overwritten
16671        --
16672        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16673                                          p_header_num   => 1);
16674        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
16675 
16676        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16677 
16678        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
16679           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16680        END IF;
16681 
16682       --
16683       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16684       --
16685       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16686           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
16687       ELSE
16688           ---------------------------------------------------------------------------------------------------
16689           -- 4262811a Switch Sign
16690           ---------------------------------------------------------------------------------------------------
16691           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
16692           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16693                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16694           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16695                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16696           -- 5132302
16697           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16698                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16699 
16700       END IF;
16701 
16702       -- 4955764
16703       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16704       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16705 
16706 
16707       XLA_AE_LINES_PKG.ValidateCurrentLine;
16708       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16709 
16710       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16711                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16712                ,p_balance_type_code => l_balance_type_code);
16713 
16714    END IF;
16715 
16716    -----------------------------------------------------------------------------------------
16717    -- 4262811 Multiperiod Accounting
16718    -----------------------------------------------------------------------------------------
16719      -- No MPA option is assigned.
16720 
16721 
16722 END IF;
16723 END IF;
16724 --
16725 
16726 --
16727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16728    trace
16729       (p_msg      => 'END of AcctLineType_51'
16730       ,p_level    => C_LEVEL_PROCEDURE
16731       ,p_module   => l_log_module);
16732 END IF;
16733 --
16734 EXCEPTION
16735   WHEN xla_exceptions_pkg.application_exception THEN
16736       RAISE;
16737   WHEN OTHERS THEN
16738        xla_exceptions_pkg.raise_message
16739            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_51');
16740 END AcctLineType_51;
16741 --
16742 
16743 ---------------------------------------
16744 --
16745 -- PRIVATE FUNCTION
16746 --         AcctLineType_52
16747 --
16751  ,p_event_id              IN NUMBER
16748 ---------------------------------------
16749 PROCEDURE AcctLineType_52 (
16750   p_application_id        IN NUMBER
16752  ,p_calculate_acctd_flag  IN VARCHAR2
16753  ,p_calculate_g_l_flag    IN VARCHAR2
16754  ,p_actual_flag           IN OUT VARCHAR2
16755  ,p_balance_type_code     OUT VARCHAR2
16756  ,p_gain_or_loss_ref      OUT VARCHAR2
16757  
16758 --When to Account for Payment Option
16759  , p_source_38            IN VARCHAR2
16760 --Payment Distribution Type
16761  , p_source_39            IN VARCHAR2
16762  , p_source_39_meaning    IN VARCHAR2
16763 --Accounting Reversal Indicator
16764  , p_source_40            IN VARCHAR2
16765 --Business Flow Accounts Payable Application Identifier
16766  , p_source_42            IN NUMBER
16767 --Payment Distribution Identifier
16768  , p_source_47            IN NUMBER
16769 --Distribution Link Type
16770  , p_source_48            IN VARCHAR2
16771 --Payment Currency Code
16772  , p_source_49            IN VARCHAR2
16773 --Override Accounted Amount Indicator
16774  , p_source_53            IN VARCHAR2
16775  , p_source_53_meaning    IN VARCHAR2
16776 --Third Party Type
16777  , p_source_56            IN VARCHAR2
16778 --Payment Distribution Reversed Identifier
16779  , p_source_57            IN NUMBER
16780 --Invoice Distribution Tax Line Identifier
16781  , p_source_58            IN NUMBER
16782 --Invoice Distribution Summary Tax Line Identifier
16783  , p_source_59            IN NUMBER
16784 --Payment Type
16785  , p_source_60            IN VARCHAR2
16786  , p_source_60_meaning    IN VARCHAR2
16787 --Invoice Distribution Amount of the Payment Distribution
16788  , p_source_61            IN NUMBER
16789 --Business Flow Invoice Distribution Type
16790  , p_source_62            IN VARCHAR2
16791 --Business Flow Invoice Entity Code
16792  , p_source_63            IN VARCHAR2
16793 --Business Flow Invoice Distribution Identifier
16794  , p_source_64            IN NUMBER
16795 --Business Flow Invoice Identifier
16796  , p_source_65            IN NUMBER
16797 --Invoice Distribution Tax Distribution Identifier from Tax
16798  , p_source_66            IN NUMBER
16799 --Accrue on Receipt Option
16800  , p_source_100            IN VARCHAR2
16801  , p_source_100_meaning    IN VARCHAR2
16802 --Purchasing Encumbrance Option
16803  , p_source_102            IN VARCHAR2
16804  , p_source_102_meaning    IN VARCHAR2
16805 --Prorated Amount of Variance Amount in Ledger Currency for Cash Basis
16806  , p_source_103            IN NUMBER
16807 --Invoice Encumbered Option
16808  , p_source_104            IN VARCHAR2
16809  , p_source_104_meaning    IN VARCHAR2
16810 --Prorated Amount of Variance Amount for Cash Basis
16811  , p_source_105            IN NUMBER
16812 )
16813 IS
16814 
16815 l_component_type              VARCHAR2(80);
16816 l_component_code              VARCHAR2(30);
16817 l_component_type_code         VARCHAR2(1);
16818 l_component_appl_id           INTEGER;
16819 l_amb_context_code            VARCHAR2(30);
16820 l_entity_code                 VARCHAR2(30);
16821 l_event_class_code            VARCHAR2(30);
16822 l_ae_header_id                NUMBER;
16823 l_event_type_code             VARCHAR2(30);
16824 l_line_definition_code        VARCHAR2(30);
16825 l_line_definition_owner_code  VARCHAR2(1);
16826 --
16827 -- adr variables
16828 l_segment                     VARCHAR2(30);
16829 l_ccid                        NUMBER;
16830 l_adr_transaction_coa_id      NUMBER;
16831 l_adr_accounting_coa_id       NUMBER;
16832 l_adr_flexfield_segment_code  VARCHAR2(30);
16833 l_adr_flex_value_set_id       NUMBER;
16834 l_adr_value_type_code         VARCHAR2(30);
16835 l_adr_value_combination_id    NUMBER;
16836 l_adr_value_segment_code      VARCHAR2(30);
16837 
16838 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
16839 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
16840 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
16841 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
16842 
16843 -- 4262811 Variables ------------------------------------------------------------------------------------------
16844 l_entered_amt_idx             NUMBER;
16845 l_accted_amt_idx              NUMBER;
16846 l_acc_rev_flag                VARCHAR2(1);
16847 l_accrual_line_num            NUMBER;
16848 l_tmp_amt                     NUMBER;
16849 l_acc_rev_natural_side_code   VARCHAR2(1);
16850 
16851 l_num_entries                 NUMBER;
16852 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
16853 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
16854 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
16855 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
16856 l_recog_line_1                NUMBER;
16857 l_recog_line_2                NUMBER;
16858 
16859 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
16860 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
16861 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
16862 
16863 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16864 
16865 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
16866 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
16867 
16871 --
16868 ---------------------------------------------------------------------------------------------------------------
16869 
16870 
16872 -- bulk performance
16873 --
16874 l_balance_type_code           VARCHAR2(1);
16875 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
16876 l_log_module                  VARCHAR2(240);
16877 
16878 --
16879 -- Upgrade strategy
16880 --
16881 l_actual_upg_option           VARCHAR2(1);
16882 l_enc_upg_option           VARCHAR2(1);
16883 
16884 --
16885 BEGIN
16886 --
16887 IF g_log_enabled THEN
16888       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
16889 END IF;
16890 --
16891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16892 
16893       trace
16894          (p_msg      => 'BEGIN of AcctLineType_52'
16895          ,p_level    => C_LEVEL_PROCEDURE
16896          ,p_module   => l_log_module);
16897 
16898 END IF;
16899 --
16900 l_component_type             := 'AMB_JLT';
16901 l_component_code             := 'AP_AMOUNT_VARIANCE_PMT_ENC';
16902 l_component_type_code        := 'S';
16903 l_component_appl_id          :=  200;
16904 l_amb_context_code           := 'DEFAULT';
16905 l_entity_code                := 'AP_PAYMENTS';
16906 l_event_class_code           := 'PAYMENTS';
16907 l_event_type_code            := 'PAYMENTS_ALL';
16908 l_line_definition_owner_code := 'S';
16909 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
16910 --
16911 l_balance_type_code          := 'E';
16912 l_segment                     := NULL;
16913 l_ccid                        := NULL;
16914 l_adr_transaction_coa_id      := NULL;
16915 l_adr_accounting_coa_id       := NULL;
16916 l_adr_flexfield_segment_code  := NULL;
16917 l_adr_flex_value_set_id       := NULL;
16918 l_adr_value_type_code         := NULL;
16919 l_adr_value_combination_id    := NULL;
16920 l_adr_value_segment_code      := NULL;
16921 
16922 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
16923 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
16924 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
16925 l_budgetary_control_flag     := 'N';
16926 
16927 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
16928 l_bflow_applied_to_amt       := NULL; -- 5132302
16929 l_entered_amt_idx            := NULL;          -- 4262811
16930 l_accted_amt_idx             := NULL;          -- 4262811
16931 l_acc_rev_flag               := NULL;          -- 4262811
16932 l_accrual_line_num           := NULL;          -- 4262811
16933 l_tmp_amt                    := NULL;          -- 4262811
16934 --
16935  
16936 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16937     l_balance_type_code <> 'B' THEN
16938 IF NVL(p_source_38,'
16939 ') <>  'CLEAR_CLEAR' AND 
16940 NVL(p_source_100,'
16941 ') <>  'Y' AND 
16942 (NVL(p_source_39,'
16943 ') =  'CASH' OR 
16944 NVL(p_source_39,'
16945 ') =  'DISCOUNT') AND 
16946 NVL(p_source_60,'
16947 ') <>  'R' AND 
16948 NVL(p_source_102,'
16949 ') =  'Y' AND 
16950 p_source_103 IS NOT NULL AND 
16951 NVL(p_source_104,'
16952 ') =  'Y'
16953  THEN 
16954 
16955    --
16956    XLA_AE_LINES_PKG.SetNewLine;
16957 
16958    p_balance_type_code          := l_balance_type_code;
16959    -- set the flag so later we will know whether the gain loss line needs to be created
16960    
16961    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16962      p_actual_flag :='A';
16963    END IF;
16964 
16965    --
16966    -- bulk performance
16967    --
16968    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16969                                       p_header_num   => 0); -- 4262811
16970    --
16971    -- set accounting line options
16972    --
16973    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16974            p_natural_side_code          => 'C'
16975          , p_gain_or_loss_flag          => 'N'
16976          , p_gl_transfer_mode_code      => 'S'
16977          , p_acct_entry_type_code       => 'E'
16978          , p_switch_side_flag           => 'Y'
16979          , p_merge_duplicate_code       => 'A'
16980          );
16981    --
16982    l_acc_rev_natural_side_code := 'D';  -- 4262811
16983    -- 
16984    --
16985    -- set accounting line type info
16986    --
16987    xla_ae_lines_pkg.SetAcctLineType
16988       (p_component_type             => l_component_type
16989       ,p_event_type_code            => l_event_type_code
16990       ,p_line_definition_owner_code => l_line_definition_owner_code
16991       ,p_line_definition_code       => l_line_definition_code
16992       ,p_accounting_line_code       => l_component_code
16993       ,p_accounting_line_type_code  => l_component_type_code
16994       ,p_accounting_line_appl_id    => l_component_appl_id
16995       ,p_amb_context_code           => l_amb_context_code
16996       ,p_entity_code                => l_entity_code
16997       ,p_event_class_code           => l_event_class_code);
16998    --
16999    -- set accounting class
17000    --
17001    xla_ae_lines_pkg.SetAcctClass(
17002            p_accounting_class_code  => 'AMT_VARIANCE'
17003          , p_ae_header_id           => l_ae_header_id
17004          );
17005 
17006    --
17007    -- set rounding class
17008    --
17009    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17013    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17010                       'AMT_VARIANCE';
17011 
17012    --
17014    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17015    --
17016    -- bulk performance
17017    --
17018    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17019 
17020    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17021       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17022 
17023    -- 4955764
17024    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17025       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17026 
17027    -- 4458381 Public Sector Enh
17028    
17029    --
17030    -- set accounting attributes for the line type
17031    --
17032    l_entered_amt_idx := 10;
17033    l_accted_amt_idx  := 12;
17034    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
17035    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17036    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
17037    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
17038    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
17039    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
17040    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
17041    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17042    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
17043    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
17044    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
17045    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
17046    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
17047    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17048    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
17049    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
17050    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
17051    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
17052    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
17053    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
17054    l_rec_acct_attrs.array_num_value(10)  := p_source_105;
17055    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
17056    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
17057    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
17058    l_rec_acct_attrs.array_num_value(12)  := p_source_103;
17059    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
17060    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
17061    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
17062    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
17063    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
17064    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
17065    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
17066    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
17067    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
17068    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
17069    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
17070    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
17071    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
17072    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
17073 
17074    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17075    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17076 
17077    ---------------------------------------------------------------------------------------------------------------
17078    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17079    ---------------------------------------------------------------------------------------------------------------
17080    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17081 
17082    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17083    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17084 
17085    IF xla_accounting_cache_pkg.GetValueChar
17086          (p_source_code         => 'LEDGER_CATEGORY_CODE'
17087          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17088    AND l_bflow_method_code = 'PRIOR_ENTRY'
17089 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17090    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17091          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17092        )
17093    THEN
17094          xla_ae_lines_pkg.BflowUpgEntry
17095            (p_business_method_code    => l_bflow_method_code
17096            ,p_business_class_code     => l_bflow_class_code
17097            ,p_balance_type            => l_balance_type_code);
17098    ELSE
17099       NULL;
17100 XLA_AE_LINES_PKG.business_flow_validation(
17101                                 p_business_method_code     => l_bflow_method_code
17102                                ,p_business_class_code      => l_bflow_class_code
17106    --
17103                                ,p_inherit_description_flag => l_inherit_desc_flag);
17104    END IF;
17105 
17107    -- call analytical criteria
17108    --
17109    -- Inherited Analytical Criteria for business flow method of Prior Entry.
17110    --
17111    -- call description
17112    --
17113    -- No description or it is inherited.
17114    --
17115    -- call ADRs
17116    -- Bug 4922099
17117    --
17118    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17119         (NVL(l_actual_upg_option, 'N') = 'O') OR
17120         (NVL(l_enc_upg_option, 'N') = 'O')
17121       )
17122    THEN
17123    NULL;
17124    --
17125    --
17126    
17127    --
17128    --
17129    END IF;
17130    --
17131    -- Bug 4922099
17132    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17133           (NVL(l_enc_upg_option, 'N') = 'O')
17134         ) AND
17135         (l_bflow_method_code = 'PRIOR_ENTRY')
17136       )
17137    THEN
17138       IF
17139       --
17140       1 = 1
17141       --
17142       THEN
17143       xla_accounting_err_pkg.build_message
17144                                     (p_appli_s_name            => 'XLA'
17145                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17146                                     ,p_token_1                 => 'LINE_NUMBER'
17147                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17148                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17149                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17150                                                                              l_component_type
17151                                                                             ,l_component_code
17152                                                                             ,l_component_type_code
17153                                                                             ,l_component_appl_id
17154                                                                             ,l_amb_context_code
17155                                                                             ,l_entity_code
17156                                                                             ,l_event_class_code
17157                                                                            )
17158                                     ,p_token_3                 => 'OWNER'
17159                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17160                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17161                                                                           ,p_lookup_code    => l_component_type_code
17162                                                                          )
17163                                     ,p_token_4                 => 'PRODUCT_NAME'
17164                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17165                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17166                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17167                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17168                                     ,p_ae_header_id            =>  NULL
17169                                        );
17170 
17171         IF (C_LEVEL_ERROR>= g_log_level) THEN
17172                  trace
17173                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17174                       ,p_level    => C_LEVEL_ERROR
17175                       ,p_module   => l_log_module);
17176         END IF;
17177       END IF;
17178    END IF;
17179    --
17180    --
17181    ------------------------------------------------------------------------------------------------
17182    -- 4219869 Business Flow
17183    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17184    -- Prior Entry.  Currently, the following code is always generated.
17185    ------------------------------------------------------------------------------------------------
17186    -- No ValidateCurrentLine for business flow method of Prior Entry
17187 
17188    ------------------------------------------------------------------------------------
17189    -- 4219869 Business Flow
17190    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17191    ------------------------------------------------------------------------------------
17192    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17193 
17194    ----------------------------------------------------------------------------------
17195    -- 4219869 Business Flow
17196    -- Update journal entry status -- Need to generate this within IF <condition>
17197    ----------------------------------------------------------------------------------
17198    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17199          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17200          ,p_balance_type_code => l_balance_type_code
17201          );
17202 
17203    -------------------------------------------------------------------------------------------
17204    -- 4262811 - Generate the Accrual Reversal lines
17205    -------------------------------------------------------------------------------------------
17206    BEGIN
17210          l_acc_rev_flag := 'N';
17207       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17208                               (g_array_event(p_event_id).array_value_num('header_index'));
17209       IF l_acc_rev_flag IS NULL THEN
17211       END IF;
17212    EXCEPTION
17213       WHEN OTHERS THEN
17214          l_acc_rev_flag := 'N';
17215    END;
17216    --
17217    IF (l_acc_rev_flag = 'Y') THEN
17218 
17219        -- 4645092  ------------------------------------------------------------------------------
17220        -- To allow MPA report to determine if it should generate report process
17221        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17222        ------------------------------------------------------------------------------------------
17223 
17224        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17225        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17226    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17227    -- call ADRs
17228    -- Bug 4922099
17229    --
17230    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17231         (NVL(l_actual_upg_option, 'N') = 'O') OR
17232         (NVL(l_enc_upg_option, 'N') = 'O')
17233       )
17234    THEN
17235    NULL;
17236    --
17237    --
17238    
17239    --
17240    --
17241    END IF;
17242 
17243        --
17244        -- Update the line information that should be overwritten
17245        --
17246        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17247                                          p_header_num   => 1);
17248        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17249 
17250        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17251 
17252        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17253           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17254        END IF;
17255 
17256       --
17257       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17258       --
17259       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17260           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17261       ELSE
17262           ---------------------------------------------------------------------------------------------------
17263           -- 4262811a Switch Sign
17264           ---------------------------------------------------------------------------------------------------
17265           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17266           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17267                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17268           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17269                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17270           -- 5132302
17271           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17272                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17273 
17274       END IF;
17275 
17276       -- 4955764
17277       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17278       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17279 
17280 
17281       XLA_AE_LINES_PKG.ValidateCurrentLine;
17282       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17283 
17284       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17285                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17286                ,p_balance_type_code => l_balance_type_code);
17287 
17288    END IF;
17289 
17290    -----------------------------------------------------------------------------------------
17291    -- 4262811 Multiperiod Accounting
17292    -----------------------------------------------------------------------------------------
17293      -- No MPA option is assigned.
17294 
17295 
17296 END IF;
17297 END IF;
17298 --
17299 
17300 --
17301 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17302    trace
17303       (p_msg      => 'END of AcctLineType_52'
17304       ,p_level    => C_LEVEL_PROCEDURE
17305       ,p_module   => l_log_module);
17306 END IF;
17307 --
17308 EXCEPTION
17309   WHEN xla_exceptions_pkg.application_exception THEN
17310       RAISE;
17311   WHEN OTHERS THEN
17312        xla_exceptions_pkg.raise_message
17313            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_52');
17314 END AcctLineType_52;
17315 --
17316 
17317 ---------------------------------------
17318 --
17319 -- PRIVATE FUNCTION
17320 --         AcctLineType_53
17321 --
17322 ---------------------------------------
17323 PROCEDURE AcctLineType_53 (
17324   p_application_id        IN NUMBER
17325  ,p_event_id              IN NUMBER
17326  ,p_calculate_acctd_flag  IN VARCHAR2
17330  ,p_gain_or_loss_ref      OUT VARCHAR2
17327  ,p_calculate_g_l_flag    IN VARCHAR2
17328  ,p_actual_flag           IN OUT VARCHAR2
17329  ,p_balance_type_code     OUT VARCHAR2
17331  
17332 --Automatic Offsets Value
17333  , p_source_4            IN VARCHAR2
17334  , p_source_4_meaning    IN VARCHAR2
17335 --Payment Distribution (Cleared Rate) Ledger Amount
17336  , p_source_10            IN NUMBER
17337 --Invoice Distribution Account
17338  , p_source_17            IN NUMBER
17339 --Bank Charges Account
17340  , p_source_25            IN NUMBER
17341 --When to Account for Payment Option
17342  , p_source_38            IN VARCHAR2
17343 --Payment Distribution Type
17344  , p_source_39            IN VARCHAR2
17345  , p_source_39_meaning    IN VARCHAR2
17346 --Accounting Reversal Indicator
17347  , p_source_40            IN VARCHAR2
17348 --Payment Distribution Amount
17349  , p_source_41            IN NUMBER
17350 --Business Flow Accounts Payable Application Identifier
17351  , p_source_42            IN NUMBER
17352 --Business Flow Payment Distribution Type
17353  , p_source_43            IN VARCHAR2
17354 --Business Flow Payment Entity Code
17355  , p_source_44            IN VARCHAR2
17356 --Business Flow Payment Distribution Identifier
17357  , p_source_45            IN NUMBER
17358 --Business Flow Payment Identifier
17359  , p_source_46            IN NUMBER
17360 --Payment Distribution Identifier
17361  , p_source_47            IN NUMBER
17362 --Distribution Link Type
17363  , p_source_48            IN VARCHAR2
17364 --Override Accounted Amount Indicator
17365  , p_source_53            IN VARCHAR2
17366  , p_source_53_meaning    IN VARCHAR2
17367 --Payment Supplier Identifier
17368  , p_source_54            IN NUMBER
17369 --Payment Supplier Site Identifier
17370  , p_source_55            IN NUMBER
17371 --Third Party Type
17372  , p_source_56            IN VARCHAR2
17373 --Payment Distribution Reversed Identifier
17374  , p_source_57            IN NUMBER
17375 --Invoice Distribution Tax Line Identifier
17376  , p_source_58            IN NUMBER
17377 --Invoice Distribution Summary Tax Line Identifier
17378  , p_source_59            IN NUMBER
17379 --Cleared Currency Code
17380  , p_source_106            IN VARCHAR2
17381 --Cleared Exchange Date
17382  , p_source_107            IN DATE
17383 --Cleared Exchange Rate
17384  , p_source_108            IN NUMBER
17385 --Cleared Exchange Rate Type
17386  , p_source_109            IN VARCHAR2
17387 )
17388 IS
17389 
17390 l_component_type              VARCHAR2(80);
17391 l_component_code              VARCHAR2(30);
17392 l_component_type_code         VARCHAR2(1);
17393 l_component_appl_id           INTEGER;
17394 l_amb_context_code            VARCHAR2(30);
17395 l_entity_code                 VARCHAR2(30);
17396 l_event_class_code            VARCHAR2(30);
17397 l_ae_header_id                NUMBER;
17398 l_event_type_code             VARCHAR2(30);
17399 l_line_definition_code        VARCHAR2(30);
17400 l_line_definition_owner_code  VARCHAR2(1);
17401 --
17402 -- adr variables
17403 l_segment                     VARCHAR2(30);
17404 l_ccid                        NUMBER;
17405 l_adr_transaction_coa_id      NUMBER;
17406 l_adr_accounting_coa_id       NUMBER;
17407 l_adr_flexfield_segment_code  VARCHAR2(30);
17408 l_adr_flex_value_set_id       NUMBER;
17409 l_adr_value_type_code         VARCHAR2(30);
17410 l_adr_value_combination_id    NUMBER;
17411 l_adr_value_segment_code      VARCHAR2(30);
17412 
17413 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
17414 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
17415 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
17416 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
17417 
17418 -- 4262811 Variables ------------------------------------------------------------------------------------------
17419 l_entered_amt_idx             NUMBER;
17420 l_accted_amt_idx              NUMBER;
17421 l_acc_rev_flag                VARCHAR2(1);
17422 l_accrual_line_num            NUMBER;
17423 l_tmp_amt                     NUMBER;
17424 l_acc_rev_natural_side_code   VARCHAR2(1);
17425 
17426 l_num_entries                 NUMBER;
17427 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
17428 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
17429 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
17430 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
17431 l_recog_line_1                NUMBER;
17432 l_recog_line_2                NUMBER;
17433 
17434 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
17435 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
17436 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
17437 
17438 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17439 
17440 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
17441 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
17442 
17443 ---------------------------------------------------------------------------------------------------------------
17444 
17445 
17446 --
17447 -- bulk performance
17448 --
17449 l_balance_type_code           VARCHAR2(1);
17450 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
17451 l_log_module                  VARCHAR2(240);
17452 
17453 --
17454 -- Upgrade strategy
17458 
17455 --
17456 l_actual_upg_option           VARCHAR2(1);
17457 l_enc_upg_option           VARCHAR2(1);
17459 --
17460 BEGIN
17461 --
17462 IF g_log_enabled THEN
17463       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
17464 END IF;
17465 --
17466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17467 
17468       trace
17469          (p_msg      => 'BEGIN of AcctLineType_53'
17470          ,p_level    => C_LEVEL_PROCEDURE
17471          ,p_module   => l_log_module);
17472 
17473 END IF;
17474 --
17475 l_component_type             := 'AMB_JLT';
17476 l_component_code             := 'AP_BANK_CHARGES_CLEAR';
17477 l_component_type_code        := 'S';
17478 l_component_appl_id          :=  200;
17479 l_amb_context_code           := 'DEFAULT';
17480 l_entity_code                := 'AP_PAYMENTS';
17481 l_event_class_code           := 'RECONCILED PAYMENTS';
17482 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
17483 l_line_definition_owner_code := 'S';
17484 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
17485 --
17486 l_balance_type_code          := 'A';
17487 l_segment                     := NULL;
17488 l_ccid                        := NULL;
17489 l_adr_transaction_coa_id      := NULL;
17490 l_adr_accounting_coa_id       := NULL;
17491 l_adr_flexfield_segment_code  := NULL;
17492 l_adr_flex_value_set_id       := NULL;
17493 l_adr_value_type_code         := NULL;
17494 l_adr_value_combination_id    := NULL;
17495 l_adr_value_segment_code      := NULL;
17496 
17497 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
17498 l_bflow_class_code           := '';    -- 4219869 Business Flow
17499 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
17500 l_budgetary_control_flag     := 'N';
17501 
17502 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
17503 l_bflow_applied_to_amt       := NULL; -- 5132302
17504 l_entered_amt_idx            := NULL;          -- 4262811
17505 l_accted_amt_idx             := NULL;          -- 4262811
17506 l_acc_rev_flag               := NULL;          -- 4262811
17507 l_accrual_line_num           := NULL;          -- 4262811
17508 l_tmp_amt                    := NULL;          -- 4262811
17509 --
17510  
17511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17512     l_balance_type_code <> 'B' THEN
17513 IF NVL(p_source_38,'
17514 ') <>  'ISSUE_ISSUE' AND 
17515 NVL(p_source_39,'
17516 ') =  'BANK CHARGE'
17517  THEN 
17518 
17519    --
17520    XLA_AE_LINES_PKG.SetNewLine;
17521 
17522    p_balance_type_code          := l_balance_type_code;
17523    -- set the flag so later we will know whether the gain loss line needs to be created
17524    
17525    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17526      p_actual_flag :='A';
17527    END IF;
17528 
17529    --
17530    -- bulk performance
17531    --
17532    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17533                                       p_header_num   => 0); -- 4262811
17534    --
17535    -- set accounting line options
17536    --
17537    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17538            p_natural_side_code          => 'D'
17539          , p_gain_or_loss_flag          => 'N'
17540          , p_gl_transfer_mode_code      => 'S'
17541          , p_acct_entry_type_code       => 'A'
17542          , p_switch_side_flag           => 'Y'
17543          , p_merge_duplicate_code       => 'A'
17544          );
17545    --
17546    l_acc_rev_natural_side_code := 'C';  -- 4262811
17547    -- 
17548    --
17549    -- set accounting line type info
17550    --
17551    xla_ae_lines_pkg.SetAcctLineType
17552       (p_component_type             => l_component_type
17553       ,p_event_type_code            => l_event_type_code
17554       ,p_line_definition_owner_code => l_line_definition_owner_code
17555       ,p_line_definition_code       => l_line_definition_code
17556       ,p_accounting_line_code       => l_component_code
17557       ,p_accounting_line_type_code  => l_component_type_code
17558       ,p_accounting_line_appl_id    => l_component_appl_id
17559       ,p_amb_context_code           => l_amb_context_code
17560       ,p_entity_code                => l_entity_code
17561       ,p_event_class_code           => l_event_class_code);
17562    --
17563    -- set accounting class
17564    --
17565    xla_ae_lines_pkg.SetAcctClass(
17566            p_accounting_class_code  => 'BANK_CHG'
17567          , p_ae_header_id           => l_ae_header_id
17568          );
17569 
17570    --
17571    -- set rounding class
17572    --
17573    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17574                       'BANK_CHG';
17575 
17576    --
17577    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17578    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17579    --
17580    -- bulk performance
17581    --
17582    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17583 
17584    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17585       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17586 
17587    -- 4955764
17588    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17592    
17589       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17590 
17591    -- 4458381 Public Sector Enh
17593    --
17594    -- set accounting attributes for the line type
17595    --
17596    l_entered_amt_idx := 10;
17597    l_accted_amt_idx  := 15;
17598    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
17599    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17600    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
17601    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
17602    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
17603    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
17604    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
17605    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17606    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
17607    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
17608    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
17609    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
17610    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
17611    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17612    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
17613    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
17614    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
17615    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
17616    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
17617    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
17618    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
17619    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
17620    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
17621    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
17622    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
17623    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
17624    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
17625    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
17626    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
17627    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
17628    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
17629    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
17630    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
17631    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
17632    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
17633    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
17634    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
17635    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
17636    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
17637    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
17638    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
17639    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
17640    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
17641    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
17642    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
17643    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
17644    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
17645    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
17646    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
17647 
17648    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17649    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17650 
17651    ---------------------------------------------------------------------------------------------------------------
17652    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17653    ---------------------------------------------------------------------------------------------------------------
17654    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17655 
17656    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17657    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17658 
17659    IF xla_accounting_cache_pkg.GetValueChar
17660          (p_source_code         => 'LEDGER_CATEGORY_CODE'
17661          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17662    AND l_bflow_method_code = 'PRIOR_ENTRY'
17663 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17664    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17665          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17666        )
17667    THEN
17668          xla_ae_lines_pkg.BflowUpgEntry
17669            (p_business_method_code    => l_bflow_method_code
17670            ,p_business_class_code     => l_bflow_class_code
17671            ,p_balance_type            => l_balance_type_code);
17672    ELSE
17673       NULL;
17674 -- No business flow processing for business flow method of NONE.
17675    END IF;
17676 
17677    --
17678    -- call analytical criteria
17679    --
17680    
17681    --
17682    -- call description
17683    --
17687    -- Bug 4922099
17684    -- No description or it is inherited.
17685    --
17686    -- call ADRs
17688    --
17689    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17690         (NVL(l_actual_upg_option, 'N') = 'O') OR
17691         (NVL(l_enc_upg_option, 'N') = 'O')
17692       )
17693    THEN
17694    NULL;
17695    --
17696    --
17697    
17698   l_ccid := AcctDerRule_18(
17699            p_application_id           => p_application_id
17700          , p_ae_header_id             => l_ae_header_id 
17701 , p_source_4 => p_source_4
17702 , p_source_4_meaning => p_source_4_meaning
17703 , p_source_17 => p_source_17
17704 , p_source_25 => p_source_25
17705          , x_transaction_coa_id       => l_adr_transaction_coa_id
17706          , x_accounting_coa_id        => l_adr_accounting_coa_id
17707          , x_value_type_code          => l_adr_value_type_code
17708          , p_side                     => 'NA'
17709    );
17710 
17711    xla_ae_lines_pkg.set_ccid(
17712     p_code_combination_id          => l_ccid
17713   , p_value_type_code              => l_adr_value_type_code
17714   , p_transaction_coa_id           => l_adr_transaction_coa_id
17715   , p_accounting_coa_id            => l_adr_accounting_coa_id
17716   , p_adr_code                     => 'AP_BANK_CHARGES'
17717   , p_adr_type_code                => 'S'
17718   , p_component_type               => l_component_type
17719   , p_component_code               => l_component_code
17720   , p_component_type_code          => l_component_type_code
17721   , p_component_appl_id            => l_component_appl_id
17722   , p_amb_context_code             => l_amb_context_code
17723   , p_side                         => 'NA'
17724   );
17725 
17726 
17727    --
17728    --
17729    END IF;
17730    --
17731    -- Bug 4922099
17732    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17733           (NVL(l_enc_upg_option, 'N') = 'O')
17734         ) AND
17735         (l_bflow_method_code = 'PRIOR_ENTRY')
17736       )
17737    THEN
17738       IF
17739       --
17740       1 = 2
17741       --
17742       THEN
17743       xla_accounting_err_pkg.build_message
17744                                     (p_appli_s_name            => 'XLA'
17745                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17746                                     ,p_token_1                 => 'LINE_NUMBER'
17747                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17748                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17749                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17750                                                                              l_component_type
17751                                                                             ,l_component_code
17752                                                                             ,l_component_type_code
17753                                                                             ,l_component_appl_id
17754                                                                             ,l_amb_context_code
17755                                                                             ,l_entity_code
17756                                                                             ,l_event_class_code
17757                                                                            )
17758                                     ,p_token_3                 => 'OWNER'
17759                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17760                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17761                                                                           ,p_lookup_code    => l_component_type_code
17762                                                                          )
17763                                     ,p_token_4                 => 'PRODUCT_NAME'
17764                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17765                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17766                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17767                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17768                                     ,p_ae_header_id            =>  NULL
17769                                        );
17770 
17771         IF (C_LEVEL_ERROR>= g_log_level) THEN
17772                  trace
17773                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17774                       ,p_level    => C_LEVEL_ERROR
17775                       ,p_module   => l_log_module);
17776         END IF;
17777       END IF;
17778    END IF;
17779    --
17780    --
17781    ------------------------------------------------------------------------------------------------
17782    -- 4219869 Business Flow
17783    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17784    -- Prior Entry.  Currently, the following code is always generated.
17785    ------------------------------------------------------------------------------------------------
17786    XLA_AE_LINES_PKG.ValidateCurrentLine;
17787 
17788    ------------------------------------------------------------------------------------
17792    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17789    -- 4219869 Business Flow
17790    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17791    ------------------------------------------------------------------------------------
17793 
17794    ----------------------------------------------------------------------------------
17795    -- 4219869 Business Flow
17796    -- Update journal entry status -- Need to generate this within IF <condition>
17797    ----------------------------------------------------------------------------------
17798    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17799          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17800          ,p_balance_type_code => l_balance_type_code
17801          );
17802 
17803    -------------------------------------------------------------------------------------------
17804    -- 4262811 - Generate the Accrual Reversal lines
17805    -------------------------------------------------------------------------------------------
17806    BEGIN
17807       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17808                               (g_array_event(p_event_id).array_value_num('header_index'));
17809       IF l_acc_rev_flag IS NULL THEN
17810          l_acc_rev_flag := 'N';
17811       END IF;
17812    EXCEPTION
17813       WHEN OTHERS THEN
17814          l_acc_rev_flag := 'N';
17815    END;
17816    --
17817    IF (l_acc_rev_flag = 'Y') THEN
17818 
17819        -- 4645092  ------------------------------------------------------------------------------
17820        -- To allow MPA report to determine if it should generate report process
17821        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17822        ------------------------------------------------------------------------------------------
17823 
17824        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17825        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17826    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17827    -- call ADRs
17828    -- Bug 4922099
17829    --
17830    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17831         (NVL(l_actual_upg_option, 'N') = 'O') OR
17832         (NVL(l_enc_upg_option, 'N') = 'O')
17833       )
17834    THEN
17835    NULL;
17836    --
17837    --
17838    
17839   l_ccid := AcctDerRule_18(
17840            p_application_id           => p_application_id
17841          , p_ae_header_id             => l_ae_header_id 
17842 , p_source_4 => p_source_4
17843 , p_source_4_meaning => p_source_4_meaning
17844 , p_source_17 => p_source_17
17845 , p_source_25 => p_source_25
17846          , x_transaction_coa_id       => l_adr_transaction_coa_id
17847          , x_accounting_coa_id        => l_adr_accounting_coa_id
17848          , x_value_type_code          => l_adr_value_type_code
17849          , p_side                     => 'NA'
17850    );
17851 
17852    xla_ae_lines_pkg.set_ccid(
17853     p_code_combination_id          => l_ccid
17854   , p_value_type_code              => l_adr_value_type_code
17855   , p_transaction_coa_id           => l_adr_transaction_coa_id
17856   , p_accounting_coa_id            => l_adr_accounting_coa_id
17857   , p_adr_code                     => 'AP_BANK_CHARGES'
17858   , p_adr_type_code                => 'S'
17859   , p_component_type               => l_component_type
17860   , p_component_code               => l_component_code
17861   , p_component_type_code          => l_component_type_code
17862   , p_component_appl_id            => l_component_appl_id
17863   , p_amb_context_code             => l_amb_context_code
17864   , p_side                         => 'NA'
17865   );
17866 
17867 
17868    --
17869    --
17870    END IF;
17871 
17872        --
17873        -- Update the line information that should be overwritten
17874        --
17875        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17876                                          p_header_num   => 1);
17877        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17878 
17879        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17880 
17881        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17882           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17883        END IF;
17884 
17885       --
17886       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17887       --
17888       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17889           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17890       ELSE
17891           ---------------------------------------------------------------------------------------------------
17892           -- 4262811a Switch Sign
17893           ---------------------------------------------------------------------------------------------------
17894           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17895           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17896                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17900           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17897           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17898                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17899           -- 5132302
17901                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17902 
17903       END IF;
17904 
17905       -- 4955764
17906       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17907       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17908 
17909 
17910       XLA_AE_LINES_PKG.ValidateCurrentLine;
17911       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17912 
17913       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17914                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17915                ,p_balance_type_code => l_balance_type_code);
17916 
17917    END IF;
17918 
17919    -----------------------------------------------------------------------------------------
17920    -- 4262811 Multiperiod Accounting
17921    -----------------------------------------------------------------------------------------
17922      -- No MPA option is assigned.
17923 
17924 
17925 END IF;
17926 END IF;
17927 --
17928 
17929 --
17930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17931    trace
17932       (p_msg      => 'END of AcctLineType_53'
17933       ,p_level    => C_LEVEL_PROCEDURE
17934       ,p_module   => l_log_module);
17935 END IF;
17936 --
17937 EXCEPTION
17938   WHEN xla_exceptions_pkg.application_exception THEN
17939       RAISE;
17940   WHEN OTHERS THEN
17941        xla_exceptions_pkg.raise_message
17942            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_53');
17943 END AcctLineType_53;
17944 --
17945 
17946 ---------------------------------------
17947 --
17948 -- PRIVATE FUNCTION
17949 --         AcctLineType_54
17950 --
17951 ---------------------------------------
17952 PROCEDURE AcctLineType_54 (
17953   p_application_id        IN NUMBER
17954  ,p_event_id              IN NUMBER
17955  ,p_calculate_acctd_flag  IN VARCHAR2
17956  ,p_calculate_g_l_flag    IN VARCHAR2
17957  ,p_actual_flag           IN OUT VARCHAR2
17958  ,p_balance_type_code     OUT VARCHAR2
17959  ,p_gain_or_loss_ref      OUT VARCHAR2
17960  
17961 --Automatic Offsets Value
17962  , p_source_4            IN VARCHAR2
17963  , p_source_4_meaning    IN VARCHAR2
17964 --Payment Distribution (Cleared Rate) Ledger Amount
17965  , p_source_10            IN NUMBER
17966 --Invoice Distribution Account
17967  , p_source_17            IN NUMBER
17968 --Bank Errors Account
17969  , p_source_26            IN NUMBER
17970 --When to Account for Payment Option
17971  , p_source_38            IN VARCHAR2
17972 --Payment Distribution Type
17973  , p_source_39            IN VARCHAR2
17974  , p_source_39_meaning    IN VARCHAR2
17975 --Accounting Reversal Indicator
17976  , p_source_40            IN VARCHAR2
17977 --Payment Distribution Amount
17978  , p_source_41            IN NUMBER
17979 --Business Flow Accounts Payable Application Identifier
17980  , p_source_42            IN NUMBER
17981 --Business Flow Payment Distribution Type
17982  , p_source_43            IN VARCHAR2
17983 --Business Flow Payment Entity Code
17984  , p_source_44            IN VARCHAR2
17985 --Business Flow Payment Distribution Identifier
17986  , p_source_45            IN NUMBER
17987 --Business Flow Payment Identifier
17988  , p_source_46            IN NUMBER
17989 --Payment Distribution Identifier
17990  , p_source_47            IN NUMBER
17991 --Distribution Link Type
17992  , p_source_48            IN VARCHAR2
17993 --Override Accounted Amount Indicator
17994  , p_source_53            IN VARCHAR2
17995  , p_source_53_meaning    IN VARCHAR2
17996 --Payment Supplier Identifier
17997  , p_source_54            IN NUMBER
17998 --Payment Supplier Site Identifier
17999  , p_source_55            IN NUMBER
18000 --Third Party Type
18001  , p_source_56            IN VARCHAR2
18002 --Payment Distribution Reversed Identifier
18003  , p_source_57            IN NUMBER
18004 --Invoice Distribution Tax Line Identifier
18005  , p_source_58            IN NUMBER
18006 --Invoice Distribution Summary Tax Line Identifier
18007  , p_source_59            IN NUMBER
18008 --Cleared Currency Code
18009  , p_source_106            IN VARCHAR2
18010 --Cleared Exchange Date
18011  , p_source_107            IN DATE
18012 --Cleared Exchange Rate
18013  , p_source_108            IN NUMBER
18014 --Cleared Exchange Rate Type
18015  , p_source_109            IN VARCHAR2
18016 )
18017 IS
18018 
18019 l_component_type              VARCHAR2(80);
18020 l_component_code              VARCHAR2(30);
18021 l_component_type_code         VARCHAR2(1);
18022 l_component_appl_id           INTEGER;
18023 l_amb_context_code            VARCHAR2(30);
18024 l_entity_code                 VARCHAR2(30);
18025 l_event_class_code            VARCHAR2(30);
18026 l_ae_header_id                NUMBER;
18027 l_event_type_code             VARCHAR2(30);
18028 l_line_definition_code        VARCHAR2(30);
18029 l_line_definition_owner_code  VARCHAR2(1);
18030 --
18031 -- adr variables
18032 l_segment                     VARCHAR2(30);
18033 l_ccid                        NUMBER;
18034 l_adr_transaction_coa_id      NUMBER;
18038 l_adr_value_type_code         VARCHAR2(30);
18035 l_adr_accounting_coa_id       NUMBER;
18036 l_adr_flexfield_segment_code  VARCHAR2(30);
18037 l_adr_flex_value_set_id       NUMBER;
18039 l_adr_value_combination_id    NUMBER;
18040 l_adr_value_segment_code      VARCHAR2(30);
18041 
18042 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
18043 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
18044 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
18045 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
18046 
18047 -- 4262811 Variables ------------------------------------------------------------------------------------------
18048 l_entered_amt_idx             NUMBER;
18049 l_accted_amt_idx              NUMBER;
18050 l_acc_rev_flag                VARCHAR2(1);
18051 l_accrual_line_num            NUMBER;
18052 l_tmp_amt                     NUMBER;
18053 l_acc_rev_natural_side_code   VARCHAR2(1);
18054 
18055 l_num_entries                 NUMBER;
18056 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
18057 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
18058 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
18059 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
18060 l_recog_line_1                NUMBER;
18061 l_recog_line_2                NUMBER;
18062 
18063 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
18064 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
18065 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18066 
18067 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18068 
18069 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18070 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18071 
18072 ---------------------------------------------------------------------------------------------------------------
18073 
18074 
18075 --
18076 -- bulk performance
18077 --
18078 l_balance_type_code           VARCHAR2(1);
18079 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18080 l_log_module                  VARCHAR2(240);
18081 
18082 --
18083 -- Upgrade strategy
18084 --
18085 l_actual_upg_option           VARCHAR2(1);
18086 l_enc_upg_option           VARCHAR2(1);
18087 
18088 --
18089 BEGIN
18090 --
18091 IF g_log_enabled THEN
18092       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
18093 END IF;
18094 --
18095 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18096 
18097       trace
18098          (p_msg      => 'BEGIN of AcctLineType_54'
18099          ,p_level    => C_LEVEL_PROCEDURE
18100          ,p_module   => l_log_module);
18101 
18102 END IF;
18103 --
18104 l_component_type             := 'AMB_JLT';
18105 l_component_code             := 'AP_BANK_ERROR_CLEAR';
18106 l_component_type_code        := 'S';
18107 l_component_appl_id          :=  200;
18108 l_amb_context_code           := 'DEFAULT';
18109 l_entity_code                := 'AP_PAYMENTS';
18110 l_event_class_code           := 'RECONCILED PAYMENTS';
18111 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
18112 l_line_definition_owner_code := 'S';
18113 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
18114 --
18115 l_balance_type_code          := 'A';
18116 l_segment                     := NULL;
18117 l_ccid                        := NULL;
18118 l_adr_transaction_coa_id      := NULL;
18119 l_adr_accounting_coa_id       := NULL;
18120 l_adr_flexfield_segment_code  := NULL;
18121 l_adr_flex_value_set_id       := NULL;
18122 l_adr_value_type_code         := NULL;
18123 l_adr_value_combination_id    := NULL;
18124 l_adr_value_segment_code      := NULL;
18125 
18126 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
18127 l_bflow_class_code           := '';    -- 4219869 Business Flow
18128 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18129 l_budgetary_control_flag     := 'N';
18130 
18131 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18132 l_bflow_applied_to_amt       := NULL; -- 5132302
18133 l_entered_amt_idx            := NULL;          -- 4262811
18134 l_accted_amt_idx             := NULL;          -- 4262811
18135 l_acc_rev_flag               := NULL;          -- 4262811
18136 l_accrual_line_num           := NULL;          -- 4262811
18137 l_tmp_amt                    := NULL;          -- 4262811
18138 --
18139  
18140 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18141     l_balance_type_code <> 'B' THEN
18142 IF NVL(p_source_38,'
18143 ') <>  'ISSUE_ISSUE' AND 
18144 NVL(p_source_39,'
18145 ') =  'BANK ERROR'
18146  THEN 
18147 
18148    --
18149    XLA_AE_LINES_PKG.SetNewLine;
18150 
18151    p_balance_type_code          := l_balance_type_code;
18152    -- set the flag so later we will know whether the gain loss line needs to be created
18153    
18154    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18155      p_actual_flag :='A';
18156    END IF;
18157 
18158    --
18159    -- bulk performance
18160    --
18161    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18162                                       p_header_num   => 0); -- 4262811
18163    --
18164    -- set accounting line options
18165    --
18166    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18167            p_natural_side_code          => 'D'
18168          , p_gain_or_loss_flag          => 'N'
18172          , p_merge_duplicate_code       => 'A'
18169          , p_gl_transfer_mode_code      => 'S'
18170          , p_acct_entry_type_code       => 'A'
18171          , p_switch_side_flag           => 'Y'
18173          );
18174    --
18175    l_acc_rev_natural_side_code := 'C';  -- 4262811
18176    -- 
18177    --
18178    -- set accounting line type info
18179    --
18180    xla_ae_lines_pkg.SetAcctLineType
18181       (p_component_type             => l_component_type
18182       ,p_event_type_code            => l_event_type_code
18183       ,p_line_definition_owner_code => l_line_definition_owner_code
18184       ,p_line_definition_code       => l_line_definition_code
18185       ,p_accounting_line_code       => l_component_code
18186       ,p_accounting_line_type_code  => l_component_type_code
18187       ,p_accounting_line_appl_id    => l_component_appl_id
18188       ,p_amb_context_code           => l_amb_context_code
18189       ,p_entity_code                => l_entity_code
18190       ,p_event_class_code           => l_event_class_code);
18191    --
18192    -- set accounting class
18193    --
18194    xla_ae_lines_pkg.SetAcctClass(
18195            p_accounting_class_code  => 'BANK_ERROR'
18196          , p_ae_header_id           => l_ae_header_id
18197          );
18198 
18199    --
18200    -- set rounding class
18201    --
18202    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18203                       'BANK_ERROR';
18204 
18205    --
18206    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18207    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18208    --
18209    -- bulk performance
18210    --
18211    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18212 
18213    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18214       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18215 
18216    -- 4955764
18217    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18218       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18219 
18220    -- 4458381 Public Sector Enh
18221    
18222    --
18223    -- set accounting attributes for the line type
18224    --
18225    l_entered_amt_idx := 10;
18226    l_accted_amt_idx  := 15;
18227    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
18228    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18229    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
18230    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18231    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
18232    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18233    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
18234    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18235    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
18236    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18237    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
18238    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18239    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
18240    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18241    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
18242    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18243    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
18244    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18245    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
18246    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18247    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
18248    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18249    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
18250    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18251    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
18252    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18253    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
18254    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18255    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
18256    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18257    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
18258    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18259    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
18260    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18261    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
18262    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18263    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
18264    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18265    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
18266    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18267    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
18268    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18269    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
18270    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18271    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
18275    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
18272    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18273    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
18274    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18276 
18277    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18278    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18279 
18280    ---------------------------------------------------------------------------------------------------------------
18281    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18282    ---------------------------------------------------------------------------------------------------------------
18283    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18284 
18285    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18286    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18287 
18288    IF xla_accounting_cache_pkg.GetValueChar
18289          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18290          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18291    AND l_bflow_method_code = 'PRIOR_ENTRY'
18292 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18293    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18294          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18295        )
18296    THEN
18297          xla_ae_lines_pkg.BflowUpgEntry
18298            (p_business_method_code    => l_bflow_method_code
18299            ,p_business_class_code     => l_bflow_class_code
18300            ,p_balance_type            => l_balance_type_code);
18301    ELSE
18302       NULL;
18303 -- No business flow processing for business flow method of NONE.
18304    END IF;
18305 
18306    --
18307    -- call analytical criteria
18308    --
18309    
18310    --
18311    -- call description
18312    --
18313    -- No description or it is inherited.
18314    --
18315    -- call ADRs
18316    -- Bug 4922099
18317    --
18318    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18319         (NVL(l_actual_upg_option, 'N') = 'O') OR
18320         (NVL(l_enc_upg_option, 'N') = 'O')
18321       )
18322    THEN
18323    NULL;
18324    --
18325    --
18326    
18327   l_ccid := AcctDerRule_19(
18328            p_application_id           => p_application_id
18329          , p_ae_header_id             => l_ae_header_id 
18330 , p_source_4 => p_source_4
18331 , p_source_4_meaning => p_source_4_meaning
18332 , p_source_17 => p_source_17
18333 , p_source_26 => p_source_26
18334          , x_transaction_coa_id       => l_adr_transaction_coa_id
18335          , x_accounting_coa_id        => l_adr_accounting_coa_id
18336          , x_value_type_code          => l_adr_value_type_code
18337          , p_side                     => 'NA'
18338    );
18339 
18340    xla_ae_lines_pkg.set_ccid(
18341     p_code_combination_id          => l_ccid
18342   , p_value_type_code              => l_adr_value_type_code
18343   , p_transaction_coa_id           => l_adr_transaction_coa_id
18344   , p_accounting_coa_id            => l_adr_accounting_coa_id
18345   , p_adr_code                     => 'AP_BANK_ERRORS'
18346   , p_adr_type_code                => 'S'
18347   , p_component_type               => l_component_type
18348   , p_component_code               => l_component_code
18349   , p_component_type_code          => l_component_type_code
18350   , p_component_appl_id            => l_component_appl_id
18351   , p_amb_context_code             => l_amb_context_code
18352   , p_side                         => 'NA'
18353   );
18354 
18355 
18356    --
18357    --
18358    END IF;
18359    --
18360    -- Bug 4922099
18361    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18362           (NVL(l_enc_upg_option, 'N') = 'O')
18363         ) AND
18364         (l_bflow_method_code = 'PRIOR_ENTRY')
18365       )
18366    THEN
18367       IF
18368       --
18369       1 = 2
18370       --
18371       THEN
18372       xla_accounting_err_pkg.build_message
18373                                     (p_appli_s_name            => 'XLA'
18374                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18375                                     ,p_token_1                 => 'LINE_NUMBER'
18376                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
18377                                     ,p_token_2                 => 'LINE_TYPE_NAME'
18378                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
18379                                                                              l_component_type
18380                                                                             ,l_component_code
18381                                                                             ,l_component_type_code
18382                                                                             ,l_component_appl_id
18383                                                                             ,l_amb_context_code
18384                                                                             ,l_entity_code
18385                                                                             ,l_event_class_code
18389                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
18386                                                                            )
18387                                     ,p_token_3                 => 'OWNER'
18388                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
18390                                                                           ,p_lookup_code    => l_component_type_code
18391                                                                          )
18392                                     ,p_token_4                 => 'PRODUCT_NAME'
18393                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18394                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18395                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18396                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18397                                     ,p_ae_header_id            =>  NULL
18398                                        );
18399 
18400         IF (C_LEVEL_ERROR>= g_log_level) THEN
18401                  trace
18402                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18403                       ,p_level    => C_LEVEL_ERROR
18404                       ,p_module   => l_log_module);
18405         END IF;
18406       END IF;
18407    END IF;
18408    --
18409    --
18410    ------------------------------------------------------------------------------------------------
18411    -- 4219869 Business Flow
18412    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18413    -- Prior Entry.  Currently, the following code is always generated.
18414    ------------------------------------------------------------------------------------------------
18415    XLA_AE_LINES_PKG.ValidateCurrentLine;
18416 
18417    ------------------------------------------------------------------------------------
18418    -- 4219869 Business Flow
18419    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18420    ------------------------------------------------------------------------------------
18421    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18422 
18423    ----------------------------------------------------------------------------------
18424    -- 4219869 Business Flow
18425    -- Update journal entry status -- Need to generate this within IF <condition>
18426    ----------------------------------------------------------------------------------
18427    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18428          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18429          ,p_balance_type_code => l_balance_type_code
18430          );
18431 
18432    -------------------------------------------------------------------------------------------
18433    -- 4262811 - Generate the Accrual Reversal lines
18434    -------------------------------------------------------------------------------------------
18435    BEGIN
18436       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18437                               (g_array_event(p_event_id).array_value_num('header_index'));
18438       IF l_acc_rev_flag IS NULL THEN
18439          l_acc_rev_flag := 'N';
18440       END IF;
18441    EXCEPTION
18442       WHEN OTHERS THEN
18443          l_acc_rev_flag := 'N';
18444    END;
18445    --
18446    IF (l_acc_rev_flag = 'Y') THEN
18447 
18448        -- 4645092  ------------------------------------------------------------------------------
18449        -- To allow MPA report to determine if it should generate report process
18450        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18451        ------------------------------------------------------------------------------------------
18452 
18453        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18454        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18455    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
18456    -- call ADRs
18457    -- Bug 4922099
18458    --
18459    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18460         (NVL(l_actual_upg_option, 'N') = 'O') OR
18461         (NVL(l_enc_upg_option, 'N') = 'O')
18462       )
18463    THEN
18464    NULL;
18465    --
18466    --
18467    
18468   l_ccid := AcctDerRule_19(
18469            p_application_id           => p_application_id
18470          , p_ae_header_id             => l_ae_header_id 
18471 , p_source_4 => p_source_4
18472 , p_source_4_meaning => p_source_4_meaning
18473 , p_source_17 => p_source_17
18474 , p_source_26 => p_source_26
18475          , x_transaction_coa_id       => l_adr_transaction_coa_id
18476          , x_accounting_coa_id        => l_adr_accounting_coa_id
18477          , x_value_type_code          => l_adr_value_type_code
18478          , p_side                     => 'NA'
18479    );
18480 
18481    xla_ae_lines_pkg.set_ccid(
18482     p_code_combination_id          => l_ccid
18483   , p_value_type_code              => l_adr_value_type_code
18484   , p_transaction_coa_id           => l_adr_transaction_coa_id
18485   , p_accounting_coa_id            => l_adr_accounting_coa_id
18486   , p_adr_code                     => 'AP_BANK_ERRORS'
18487   , p_adr_type_code                => 'S'
18491   , p_component_appl_id            => l_component_appl_id
18488   , p_component_type               => l_component_type
18489   , p_component_code               => l_component_code
18490   , p_component_type_code          => l_component_type_code
18492   , p_amb_context_code             => l_amb_context_code
18493   , p_side                         => 'NA'
18494   );
18495 
18496 
18497    --
18498    --
18499    END IF;
18500 
18501        --
18502        -- Update the line information that should be overwritten
18503        --
18504        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18505                                          p_header_num   => 1);
18506        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
18507 
18508        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18509 
18510        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
18511           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18512        END IF;
18513 
18514       --
18515       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18516       --
18517       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18518           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
18519       ELSE
18520           ---------------------------------------------------------------------------------------------------
18521           -- 4262811a Switch Sign
18522           ---------------------------------------------------------------------------------------------------
18523           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
18524           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18525                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18526           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18527                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18528           -- 5132302
18529           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18530                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18531 
18532       END IF;
18533 
18534       -- 4955764
18535       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18536       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18537 
18538 
18539       XLA_AE_LINES_PKG.ValidateCurrentLine;
18540       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18541 
18542       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18543                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18544                ,p_balance_type_code => l_balance_type_code);
18545 
18546    END IF;
18547 
18548    -----------------------------------------------------------------------------------------
18549    -- 4262811 Multiperiod Accounting
18550    -----------------------------------------------------------------------------------------
18551      -- No MPA option is assigned.
18552 
18553 
18554 END IF;
18555 END IF;
18556 --
18557 
18558 --
18559 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18560    trace
18561       (p_msg      => 'END of AcctLineType_54'
18562       ,p_level    => C_LEVEL_PROCEDURE
18563       ,p_module   => l_log_module);
18564 END IF;
18565 --
18566 EXCEPTION
18567   WHEN xla_exceptions_pkg.application_exception THEN
18568       RAISE;
18569   WHEN OTHERS THEN
18570        xla_exceptions_pkg.raise_message
18571            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_54');
18572 END AcctLineType_54;
18573 --
18574 
18575 ---------------------------------------
18576 --
18577 -- PRIVATE FUNCTION
18578 --         AcctLineType_55
18579 --
18580 ---------------------------------------
18581 PROCEDURE AcctLineType_55 (
18582   p_application_id        IN NUMBER
18583  ,p_event_id              IN NUMBER
18584  ,p_calculate_acctd_flag  IN VARCHAR2
18585  ,p_calculate_g_l_flag    IN VARCHAR2
18586  ,p_actual_flag           IN OUT VARCHAR2
18587  ,p_balance_type_code     OUT VARCHAR2
18588  ,p_gain_or_loss_ref      OUT VARCHAR2
18589  
18590 --Bank Cash Account
18591  , p_source_1            IN NUMBER
18592 --Automatic Offsets Value
18593  , p_source_4            IN VARCHAR2
18594  , p_source_4_meaning    IN VARCHAR2
18595 --Payment Distribution (Cleared Rate) Ledger Amount
18596  , p_source_10            IN NUMBER
18597 --When to Account for Payment Option
18598  , p_source_38            IN VARCHAR2
18599 --Payment Distribution Type
18600  , p_source_39            IN VARCHAR2
18601  , p_source_39_meaning    IN VARCHAR2
18602 --Accounting Reversal Indicator
18603  , p_source_40            IN VARCHAR2
18604 --Payment Distribution Amount
18605  , p_source_41            IN NUMBER
18606 --Business Flow Accounts Payable Application Identifier
18607  , p_source_42            IN NUMBER
18608 --Business Flow Payment Distribution Type
18609  , p_source_43            IN VARCHAR2
18613  , p_source_45            IN NUMBER
18610 --Business Flow Payment Entity Code
18611  , p_source_44            IN VARCHAR2
18612 --Business Flow Payment Distribution Identifier
18614 --Business Flow Payment Identifier
18615  , p_source_46            IN NUMBER
18616 --Payment Distribution Identifier
18617  , p_source_47            IN NUMBER
18618 --Distribution Link Type
18619  , p_source_48            IN VARCHAR2
18620 --Payment Currency Code
18621  , p_source_49            IN VARCHAR2
18622 --Override Accounted Amount Indicator
18623  , p_source_53            IN VARCHAR2
18624  , p_source_53_meaning    IN VARCHAR2
18625 --Payment Supplier Identifier
18626  , p_source_54            IN NUMBER
18627 --Payment Supplier Site Identifier
18628  , p_source_55            IN NUMBER
18629 --Third Party Type
18630  , p_source_56            IN VARCHAR2
18631 --Payment Distribution Reversed Identifier
18632  , p_source_57            IN NUMBER
18633 --Invoice Distribution Tax Line Identifier
18634  , p_source_58            IN NUMBER
18635 --Invoice Distribution Summary Tax Line Identifier
18636  , p_source_59            IN NUMBER
18637 --Cleared Exchange Date
18638  , p_source_107            IN DATE
18639 --Cleared Exchange Rate
18640  , p_source_108            IN NUMBER
18641 --Cleared Exchange Rate Type
18642  , p_source_109            IN VARCHAR2
18643 --Pooled Bank Account Option
18644  , p_source_110            IN VARCHAR2
18645  , p_source_110_meaning    IN VARCHAR2
18646 )
18647 IS
18648 
18649 l_component_type              VARCHAR2(80);
18650 l_component_code              VARCHAR2(30);
18651 l_component_type_code         VARCHAR2(1);
18652 l_component_appl_id           INTEGER;
18653 l_amb_context_code            VARCHAR2(30);
18654 l_entity_code                 VARCHAR2(30);
18655 l_event_class_code            VARCHAR2(30);
18656 l_ae_header_id                NUMBER;
18657 l_event_type_code             VARCHAR2(30);
18658 l_line_definition_code        VARCHAR2(30);
18659 l_line_definition_owner_code  VARCHAR2(1);
18660 --
18661 -- adr variables
18662 l_segment                     VARCHAR2(30);
18663 l_ccid                        NUMBER;
18664 l_adr_transaction_coa_id      NUMBER;
18665 l_adr_accounting_coa_id       NUMBER;
18666 l_adr_flexfield_segment_code  VARCHAR2(30);
18667 l_adr_flex_value_set_id       NUMBER;
18668 l_adr_value_type_code         VARCHAR2(30);
18669 l_adr_value_combination_id    NUMBER;
18670 l_adr_value_segment_code      VARCHAR2(30);
18671 
18672 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
18673 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
18674 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
18675 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
18676 
18677 -- 4262811 Variables ------------------------------------------------------------------------------------------
18678 l_entered_amt_idx             NUMBER;
18679 l_accted_amt_idx              NUMBER;
18680 l_acc_rev_flag                VARCHAR2(1);
18681 l_accrual_line_num            NUMBER;
18682 l_tmp_amt                     NUMBER;
18683 l_acc_rev_natural_side_code   VARCHAR2(1);
18684 
18685 l_num_entries                 NUMBER;
18686 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
18687 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
18688 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
18689 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
18690 l_recog_line_1                NUMBER;
18691 l_recog_line_2                NUMBER;
18692 
18693 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
18694 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
18695 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18696 
18697 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18698 
18699 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18700 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18701 
18702 ---------------------------------------------------------------------------------------------------------------
18703 
18704 
18705 --
18706 -- bulk performance
18707 --
18708 l_balance_type_code           VARCHAR2(1);
18709 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18710 l_log_module                  VARCHAR2(240);
18711 
18712 --
18713 -- Upgrade strategy
18714 --
18715 l_actual_upg_option           VARCHAR2(1);
18716 l_enc_upg_option           VARCHAR2(1);
18717 
18718 --
18719 BEGIN
18720 --
18721 IF g_log_enabled THEN
18722       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
18723 END IF;
18724 --
18725 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18726 
18727       trace
18728          (p_msg      => 'BEGIN of AcctLineType_55'
18729          ,p_level    => C_LEVEL_PROCEDURE
18730          ,p_module   => l_log_module);
18731 
18732 END IF;
18733 --
18734 l_component_type             := 'AMB_JLT';
18735 l_component_code             := 'AP_CASH_CLEARONLY_AOS_AS';
18736 l_component_type_code        := 'S';
18737 l_component_appl_id          :=  200;
18738 l_amb_context_code           := 'DEFAULT';
18739 l_entity_code                := 'AP_PAYMENTS';
18740 l_event_class_code           := 'RECONCILED PAYMENTS';
18741 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
18745 l_balance_type_code          := 'A';
18742 l_line_definition_owner_code := 'S';
18743 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
18744 --
18746 l_segment                     := NULL;
18747 l_ccid                        := NULL;
18748 l_adr_transaction_coa_id      := NULL;
18749 l_adr_accounting_coa_id       := NULL;
18750 l_adr_flexfield_segment_code  := NULL;
18751 l_adr_flex_value_set_id       := NULL;
18752 l_adr_value_type_code         := NULL;
18753 l_adr_value_combination_id    := NULL;
18754 l_adr_value_segment_code      := NULL;
18755 
18756 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
18757 l_bflow_class_code           := '';    -- 4219869 Business Flow
18758 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18759 l_budgetary_control_flag     := 'N';
18760 
18761 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18762 l_bflow_applied_to_amt       := NULL; -- 5132302
18763 l_entered_amt_idx            := NULL;          -- 4262811
18764 l_accted_amt_idx             := NULL;          -- 4262811
18765 l_acc_rev_flag               := NULL;          -- 4262811
18766 l_accrual_line_num           := NULL;          -- 4262811
18767 l_tmp_amt                    := NULL;          -- 4262811
18768 --
18769  
18770 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18771     l_balance_type_code <> 'B' THEN
18772 IF NVL(p_source_38,'
18773 ') <>  'ISSUE_ISSUE' AND 
18774 (NVL(p_source_110,'
18775 ') =  'Y' AND 
18776 NVL(p_source_4,'
18777 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
18778 (NVL(p_source_39,'
18779 ') =  'CASH' OR 
18780 NVL(p_source_39,'
18781 ') =  'BANK CHARGE' OR 
18782 NVL(p_source_39,'
18783 ') =  'BANK ERROR')
18784  THEN 
18785 
18786    --
18787    XLA_AE_LINES_PKG.SetNewLine;
18788 
18789    p_balance_type_code          := l_balance_type_code;
18790    -- set the flag so later we will know whether the gain loss line needs to be created
18791    
18792    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18793      p_actual_flag :='A';
18794    END IF;
18795 
18796    --
18797    -- bulk performance
18798    --
18799    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18800                                       p_header_num   => 0); -- 4262811
18801    --
18802    -- set accounting line options
18803    --
18804    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18805            p_natural_side_code          => 'C'
18806          , p_gain_or_loss_flag          => 'N'
18807          , p_gl_transfer_mode_code      => 'S'
18808          , p_acct_entry_type_code       => 'A'
18809          , p_switch_side_flag           => 'Y'
18810          , p_merge_duplicate_code       => 'A'
18811          );
18812    --
18813    l_acc_rev_natural_side_code := 'D';  -- 4262811
18814    -- 
18815    --
18816    -- set accounting line type info
18817    --
18818    xla_ae_lines_pkg.SetAcctLineType
18819       (p_component_type             => l_component_type
18820       ,p_event_type_code            => l_event_type_code
18821       ,p_line_definition_owner_code => l_line_definition_owner_code
18822       ,p_line_definition_code       => l_line_definition_code
18823       ,p_accounting_line_code       => l_component_code
18824       ,p_accounting_line_type_code  => l_component_type_code
18825       ,p_accounting_line_appl_id    => l_component_appl_id
18826       ,p_amb_context_code           => l_amb_context_code
18827       ,p_entity_code                => l_entity_code
18828       ,p_event_class_code           => l_event_class_code);
18829    --
18830    -- set accounting class
18831    --
18832    xla_ae_lines_pkg.SetAcctClass(
18833            p_accounting_class_code  => 'CASH'
18834          , p_ae_header_id           => l_ae_header_id
18835          );
18836 
18837    --
18838    -- set rounding class
18839    --
18840    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18841                       'CASH';
18842 
18843    --
18844    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18845    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18846    --
18847    -- bulk performance
18848    --
18849    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18850 
18851    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18852       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18853 
18854    -- 4955764
18855    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18856       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18857 
18858    -- 4458381 Public Sector Enh
18859    
18860    --
18861    -- set accounting attributes for the line type
18862    --
18863    l_entered_amt_idx := 10;
18864    l_accted_amt_idx  := 15;
18865    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
18866    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18867    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
18868    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18869    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
18870    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18874    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18871    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
18872    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18873    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
18875    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
18876    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18877    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
18878    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18879    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
18880    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18881    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
18882    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18883    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
18884    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18885    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
18886    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18887    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
18888    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18889    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
18890    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18891    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
18892    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18893    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
18894    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18895    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
18896    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18897    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
18898    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18899    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
18900    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18901    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
18902    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18903    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
18904    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18905    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
18906    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18907    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
18908    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18909    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
18910    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18911    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
18912    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18913    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
18914 
18915    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18916    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18917 
18918    ---------------------------------------------------------------------------------------------------------------
18919    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18920    ---------------------------------------------------------------------------------------------------------------
18921    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18922 
18923    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18924    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18925 
18926    IF xla_accounting_cache_pkg.GetValueChar
18927          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18928          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18929    AND l_bflow_method_code = 'PRIOR_ENTRY'
18930 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18931    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18932          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18933        )
18934    THEN
18935          xla_ae_lines_pkg.BflowUpgEntry
18936            (p_business_method_code    => l_bflow_method_code
18937            ,p_business_class_code     => l_bflow_class_code
18938            ,p_balance_type            => l_balance_type_code);
18939    ELSE
18940       NULL;
18941 XLA_AE_LINES_PKG.business_flow_validation(
18942                                 p_business_method_code     => l_bflow_method_code
18943                                ,p_business_class_code      => l_bflow_class_code
18944                                ,p_inherit_description_flag => l_inherit_desc_flag);
18945    END IF;
18946 
18947    --
18948    -- call analytical criteria
18949    --
18950    
18951    --
18952    -- call description
18953    --
18954    -- No description or it is inherited.
18955    --
18956    -- call ADRs
18957    -- Bug 4922099
18958    --
18959    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18960         (NVL(l_actual_upg_option, 'N') = 'O') OR
18961         (NVL(l_enc_upg_option, 'N') = 'O')
18962       )
18963    THEN
18964    NULL;
18965    --
18966    --
18967    
18968    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
18969      p_code_combination_id      => TO_NUMBER(C_NUM)
18973    , p_adr_code                 => NULL
18970    , p_value_type_code          => NULL
18971    , p_transaction_coa_id       => null
18972    , p_accounting_coa_id        => null
18974    , p_adr_type_code            => NULL
18975    , p_component_type           => l_component_type
18976    , p_component_code           => l_component_code
18977    , p_component_type_code      => l_component_type_code
18978    , p_component_appl_id        => l_component_appl_id
18979    , p_amb_context_code         => l_amb_context_code
18980    , p_side                     => NULL
18981    );
18982 
18983    
18984   -- initialise segments
18985   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18986   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18987   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18988   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18989   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18990   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18991   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18992   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18993   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
18994   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18995   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18996   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18997   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18998   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
18999   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19000   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19001   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19002   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19003   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19004   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19005   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19006   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19007   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19008   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19009   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19010   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19011   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19012   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19013   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19014   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19015   --
19016 
19017    --
19018 
19019 
19020    l_segment := AcctDerRule_1(
19021            p_application_id           => p_application_id
19022          , p_ae_header_id             => l_ae_header_id 
19023 , p_source_1 => p_source_1
19024          , x_transaction_coa_id       => l_adr_transaction_coa_id
19025          , x_accounting_coa_id        => l_adr_accounting_coa_id
19026          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19027          , x_flex_value_set_id        => l_adr_flex_value_set_id
19028          , x_value_type_code          => l_adr_value_type_code
19029          , x_value_combination_id     => l_adr_value_combination_id
19030          , x_value_segment_code       => l_adr_value_segment_code
19031          , p_side                     => 'NA'
19032          , p_override_seg_flag        => 'Y'
19033    );
19034 
19035    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19036 
19037       xla_ae_lines_pkg.set_segment(
19038           p_to_segment_code         => 'GL_ACCOUNT'
19039         , p_segment_value           => l_segment
19040         , p_from_segment_code       => l_adr_value_segment_code
19041         , p_from_combination_id     => l_adr_value_combination_id
19042         , p_value_type_code         => l_adr_value_type_code
19043         , p_transaction_coa_id      => l_adr_transaction_coa_id
19044         , p_accounting_coa_id       => l_adr_accounting_coa_id
19045         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19046         , p_flex_value_set_id       => l_adr_flex_value_set_id
19047         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
19048         , p_adr_type_code           => 'S'
19049         , p_component_type          => l_component_type
19050         , p_component_code          => l_component_code
19051         , p_component_type_code     => l_component_type_code
19052         , p_component_appl_id       => l_component_appl_id
19053         , p_amb_context_code        => l_amb_context_code
19054         , p_entity_code             => 'AP_PAYMENTS'
19055         , p_event_class_code        => 'RECONCILED PAYMENTS'
19056         , p_side                    => 'NA'
19057         );
19058 
19059   END IF;
19060 
19064    --
19061    --
19062    --
19063    END IF;
19065    -- Bug 4922099
19066    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19067           (NVL(l_enc_upg_option, 'N') = 'O')
19068         ) AND
19069         (l_bflow_method_code = 'PRIOR_ENTRY')
19070       )
19071    THEN
19072       IF
19073       --
19074       1 = 2
19075       --
19076       THEN
19077       xla_accounting_err_pkg.build_message
19078                                     (p_appli_s_name            => 'XLA'
19079                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19080                                     ,p_token_1                 => 'LINE_NUMBER'
19081                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19082                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19083                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19084                                                                              l_component_type
19085                                                                             ,l_component_code
19086                                                                             ,l_component_type_code
19087                                                                             ,l_component_appl_id
19088                                                                             ,l_amb_context_code
19089                                                                             ,l_entity_code
19090                                                                             ,l_event_class_code
19091                                                                            )
19092                                     ,p_token_3                 => 'OWNER'
19093                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19094                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19095                                                                           ,p_lookup_code    => l_component_type_code
19096                                                                          )
19097                                     ,p_token_4                 => 'PRODUCT_NAME'
19098                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19099                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19100                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19101                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19102                                     ,p_ae_header_id            =>  NULL
19103                                        );
19104 
19105         IF (C_LEVEL_ERROR>= g_log_level) THEN
19106                  trace
19107                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19108                       ,p_level    => C_LEVEL_ERROR
19109                       ,p_module   => l_log_module);
19110         END IF;
19111       END IF;
19112    END IF;
19113    --
19114    --
19115    ------------------------------------------------------------------------------------------------
19116    -- 4219869 Business Flow
19117    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19118    -- Prior Entry.  Currently, the following code is always generated.
19119    ------------------------------------------------------------------------------------------------
19120    XLA_AE_LINES_PKG.ValidateCurrentLine;
19121 
19122    ------------------------------------------------------------------------------------
19123    -- 4219869 Business Flow
19124    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19125    ------------------------------------------------------------------------------------
19126    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19127 
19128    ----------------------------------------------------------------------------------
19129    -- 4219869 Business Flow
19130    -- Update journal entry status -- Need to generate this within IF <condition>
19131    ----------------------------------------------------------------------------------
19132    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19133          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19134          ,p_balance_type_code => l_balance_type_code
19135          );
19136 
19137    -------------------------------------------------------------------------------------------
19138    -- 4262811 - Generate the Accrual Reversal lines
19139    -------------------------------------------------------------------------------------------
19140    BEGIN
19141       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19142                               (g_array_event(p_event_id).array_value_num('header_index'));
19143       IF l_acc_rev_flag IS NULL THEN
19144          l_acc_rev_flag := 'N';
19145       END IF;
19146    EXCEPTION
19147       WHEN OTHERS THEN
19148          l_acc_rev_flag := 'N';
19149    END;
19150    --
19151    IF (l_acc_rev_flag = 'Y') THEN
19152 
19153        -- 4645092  ------------------------------------------------------------------------------
19154        -- To allow MPA report to determine if it should generate report process
19155        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19156        ------------------------------------------------------------------------------------------
19157 
19158        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19162    -- Bug 4922099
19159        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19160    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
19161    -- call ADRs
19163    --
19164    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19165         (NVL(l_actual_upg_option, 'N') = 'O') OR
19166         (NVL(l_enc_upg_option, 'N') = 'O')
19167       )
19168    THEN
19169    NULL;
19170    --
19171    --
19172    
19173    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
19174      p_code_combination_id      => TO_NUMBER(C_NUM)
19175    , p_value_type_code          => NULL
19176    , p_transaction_coa_id       => null
19177    , p_accounting_coa_id        => null
19178    , p_adr_code                 => NULL
19179    , p_adr_type_code            => NULL
19180    , p_component_type           => l_component_type
19181    , p_component_code           => l_component_code
19182    , p_component_type_code      => l_component_type_code
19183    , p_component_appl_id        => l_component_appl_id
19184    , p_amb_context_code         => l_amb_context_code
19185    , p_side                     => NULL
19186    );
19187 
19188    
19189   -- initialise segments
19190   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19191   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19192   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19193   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19194   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19195   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19196   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19197   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19198   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19199   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19200   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19201   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19202   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19203   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19204   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19205   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19206   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19207   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19208   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19209   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19210   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19211   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19212   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19213   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19214   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19215   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19216   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19217   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19218   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19219   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19220   --
19221 
19222    --
19223 
19224 
19225    l_segment := AcctDerRule_1(
19226            p_application_id           => p_application_id
19227          , p_ae_header_id             => l_ae_header_id 
19228 , p_source_1 => p_source_1
19229          , x_transaction_coa_id       => l_adr_transaction_coa_id
19230          , x_accounting_coa_id        => l_adr_accounting_coa_id
19231          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19232          , x_flex_value_set_id        => l_adr_flex_value_set_id
19233          , x_value_type_code          => l_adr_value_type_code
19234          , x_value_combination_id     => l_adr_value_combination_id
19235          , x_value_segment_code       => l_adr_value_segment_code
19236          , p_side                     => 'NA'
19237          , p_override_seg_flag        => 'Y'
19238    );
19239 
19240    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19241 
19242       xla_ae_lines_pkg.set_segment(
19243           p_to_segment_code         => 'GL_ACCOUNT'
19244         , p_segment_value           => l_segment
19245         , p_from_segment_code       => l_adr_value_segment_code
19246         , p_from_combination_id     => l_adr_value_combination_id
19247         , p_value_type_code         => l_adr_value_type_code
19248         , p_transaction_coa_id      => l_adr_transaction_coa_id
19249         , p_accounting_coa_id       => l_adr_accounting_coa_id
19250         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19251         , p_flex_value_set_id       => l_adr_flex_value_set_id
19255         , p_component_code          => l_component_code
19252         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
19253         , p_adr_type_code           => 'S'
19254         , p_component_type          => l_component_type
19256         , p_component_type_code     => l_component_type_code
19257         , p_component_appl_id       => l_component_appl_id
19258         , p_amb_context_code        => l_amb_context_code
19259         , p_entity_code             => 'AP_PAYMENTS'
19260         , p_event_class_code        => 'RECONCILED PAYMENTS'
19261         , p_side                    => 'NA'
19262         );
19263 
19264   END IF;
19265 
19266    --
19267    --
19268    END IF;
19269 
19270        --
19271        -- Update the line information that should be overwritten
19272        --
19273        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19274                                          p_header_num   => 1);
19275        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19276 
19277        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19278 
19279        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19280           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19281        END IF;
19282 
19283       --
19284       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19285       --
19286       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19287           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19288       ELSE
19289           ---------------------------------------------------------------------------------------------------
19290           -- 4262811a Switch Sign
19291           ---------------------------------------------------------------------------------------------------
19292           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19293           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19294                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19295           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19296                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19297           -- 5132302
19298           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19299                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19300 
19301       END IF;
19302 
19303       -- 4955764
19304       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19305       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19306 
19307 
19308       XLA_AE_LINES_PKG.ValidateCurrentLine;
19309       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19310 
19311       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19312                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19313                ,p_balance_type_code => l_balance_type_code);
19314 
19315    END IF;
19316 
19317    -----------------------------------------------------------------------------------------
19318    -- 4262811 Multiperiod Accounting
19319    -----------------------------------------------------------------------------------------
19320      -- No MPA option is assigned.
19321 
19322 
19323 END IF;
19324 END IF;
19325 --
19326 
19327 --
19328 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19329    trace
19330       (p_msg      => 'END of AcctLineType_55'
19331       ,p_level    => C_LEVEL_PROCEDURE
19332       ,p_module   => l_log_module);
19333 END IF;
19334 --
19335 EXCEPTION
19336   WHEN xla_exceptions_pkg.application_exception THEN
19337       RAISE;
19338   WHEN OTHERS THEN
19339        xla_exceptions_pkg.raise_message
19340            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_55');
19341 END AcctLineType_55;
19342 --
19343 
19344 ---------------------------------------
19345 --
19346 -- PRIVATE FUNCTION
19347 --         AcctLineType_56
19348 --
19349 ---------------------------------------
19350 PROCEDURE AcctLineType_56 (
19351   p_application_id        IN NUMBER
19352  ,p_event_id              IN NUMBER
19353  ,p_calculate_acctd_flag  IN VARCHAR2
19354  ,p_calculate_g_l_flag    IN VARCHAR2
19355  ,p_actual_flag           IN OUT VARCHAR2
19356  ,p_balance_type_code     OUT VARCHAR2
19357  ,p_gain_or_loss_ref      OUT VARCHAR2
19358  
19359 --Bank Cash Account
19360  , p_source_1            IN NUMBER
19361 --Automatic Offsets Value
19362  , p_source_4            IN VARCHAR2
19363  , p_source_4_meaning    IN VARCHAR2
19364 --Payment Distribution (Cleared Rate) Ledger Amount
19365  , p_source_10            IN NUMBER
19366 --When to Account for Payment Option
19367  , p_source_38            IN VARCHAR2
19368 --Payment Distribution Type
19369  , p_source_39            IN VARCHAR2
19370  , p_source_39_meaning    IN VARCHAR2
19371 --Accounting Reversal Indicator
19372  , p_source_40            IN VARCHAR2
19373 --Payment Distribution Amount
19374  , p_source_41            IN NUMBER
19378  , p_source_43            IN VARCHAR2
19375 --Business Flow Accounts Payable Application Identifier
19376  , p_source_42            IN NUMBER
19377 --Business Flow Payment Distribution Type
19379 --Business Flow Payment Entity Code
19380  , p_source_44            IN VARCHAR2
19381 --Business Flow Payment Distribution Identifier
19382  , p_source_45            IN NUMBER
19383 --Business Flow Payment Identifier
19384  , p_source_46            IN NUMBER
19385 --Payment Distribution Identifier
19386  , p_source_47            IN NUMBER
19387 --Distribution Link Type
19388  , p_source_48            IN VARCHAR2
19389 --Payment Currency Code
19390  , p_source_49            IN VARCHAR2
19391 --Override Accounted Amount Indicator
19392  , p_source_53            IN VARCHAR2
19393  , p_source_53_meaning    IN VARCHAR2
19394 --Payment Supplier Identifier
19395  , p_source_54            IN NUMBER
19396 --Payment Supplier Site Identifier
19397  , p_source_55            IN NUMBER
19398 --Third Party Type
19399  , p_source_56            IN VARCHAR2
19400 --Payment Distribution Reversed Identifier
19401  , p_source_57            IN NUMBER
19402 --Invoice Distribution Tax Line Identifier
19403  , p_source_58            IN NUMBER
19404 --Invoice Distribution Summary Tax Line Identifier
19405  , p_source_59            IN NUMBER
19406 --Cleared Exchange Date
19407  , p_source_107            IN DATE
19408 --Cleared Exchange Rate
19409  , p_source_108            IN NUMBER
19410 --Cleared Exchange Rate Type
19411  , p_source_109            IN VARCHAR2
19412 --Pooled Bank Account Option
19413  , p_source_110            IN VARCHAR2
19414  , p_source_110_meaning    IN VARCHAR2
19415 )
19416 IS
19417 
19418 l_component_type              VARCHAR2(80);
19419 l_component_code              VARCHAR2(30);
19420 l_component_type_code         VARCHAR2(1);
19421 l_component_appl_id           INTEGER;
19422 l_amb_context_code            VARCHAR2(30);
19423 l_entity_code                 VARCHAR2(30);
19424 l_event_class_code            VARCHAR2(30);
19425 l_ae_header_id                NUMBER;
19426 l_event_type_code             VARCHAR2(30);
19427 l_line_definition_code        VARCHAR2(30);
19428 l_line_definition_owner_code  VARCHAR2(1);
19429 --
19430 -- adr variables
19431 l_segment                     VARCHAR2(30);
19432 l_ccid                        NUMBER;
19433 l_adr_transaction_coa_id      NUMBER;
19434 l_adr_accounting_coa_id       NUMBER;
19435 l_adr_flexfield_segment_code  VARCHAR2(30);
19436 l_adr_flex_value_set_id       NUMBER;
19437 l_adr_value_type_code         VARCHAR2(30);
19438 l_adr_value_combination_id    NUMBER;
19439 l_adr_value_segment_code      VARCHAR2(30);
19440 
19441 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19442 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19443 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19444 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19445 
19446 -- 4262811 Variables ------------------------------------------------------------------------------------------
19447 l_entered_amt_idx             NUMBER;
19448 l_accted_amt_idx              NUMBER;
19449 l_acc_rev_flag                VARCHAR2(1);
19450 l_accrual_line_num            NUMBER;
19451 l_tmp_amt                     NUMBER;
19452 l_acc_rev_natural_side_code   VARCHAR2(1);
19453 
19454 l_num_entries                 NUMBER;
19455 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19456 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19457 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19458 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19459 l_recog_line_1                NUMBER;
19460 l_recog_line_2                NUMBER;
19461 
19462 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19463 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19464 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19465 
19466 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19467 
19468 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19469 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19470 
19471 ---------------------------------------------------------------------------------------------------------------
19472 
19473 
19474 --
19475 -- bulk performance
19476 --
19477 l_balance_type_code           VARCHAR2(1);
19478 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19479 l_log_module                  VARCHAR2(240);
19480 
19481 --
19482 -- Upgrade strategy
19483 --
19484 l_actual_upg_option           VARCHAR2(1);
19485 l_enc_upg_option           VARCHAR2(1);
19486 
19487 --
19488 BEGIN
19489 --
19490 IF g_log_enabled THEN
19491       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
19492 END IF;
19493 --
19494 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19495 
19496       trace
19497          (p_msg      => 'BEGIN of AcctLineType_56'
19498          ,p_level    => C_LEVEL_PROCEDURE
19499          ,p_module   => l_log_module);
19500 
19501 END IF;
19502 --
19503 l_component_type             := 'AMB_JLT';
19507 l_amb_context_code           := 'DEFAULT';
19504 l_component_code             := 'AP_CASH_CLEARONLY_AOS_BS';
19505 l_component_type_code        := 'S';
19506 l_component_appl_id          :=  200;
19508 l_entity_code                := 'AP_PAYMENTS';
19509 l_event_class_code           := 'RECONCILED PAYMENTS';
19510 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
19511 l_line_definition_owner_code := 'S';
19512 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
19513 --
19514 l_balance_type_code          := 'A';
19515 l_segment                     := NULL;
19516 l_ccid                        := NULL;
19517 l_adr_transaction_coa_id      := NULL;
19518 l_adr_accounting_coa_id       := NULL;
19519 l_adr_flexfield_segment_code  := NULL;
19520 l_adr_flex_value_set_id       := NULL;
19521 l_adr_value_type_code         := NULL;
19522 l_adr_value_combination_id    := NULL;
19523 l_adr_value_segment_code      := NULL;
19524 
19525 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
19526 l_bflow_class_code           := '';    -- 4219869 Business Flow
19527 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
19528 l_budgetary_control_flag     := 'N';
19529 
19530 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
19531 l_bflow_applied_to_amt       := NULL; -- 5132302
19532 l_entered_amt_idx            := NULL;          -- 4262811
19533 l_accted_amt_idx             := NULL;          -- 4262811
19534 l_acc_rev_flag               := NULL;          -- 4262811
19535 l_accrual_line_num           := NULL;          -- 4262811
19536 l_tmp_amt                    := NULL;          -- 4262811
19537 --
19538  
19539 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19540     l_balance_type_code <> 'B' THEN
19541 IF NVL(p_source_38,'
19542 ') <>  'ISSUE_ISSUE' AND 
19543 (NVL(p_source_110,'
19544 ') =  'Y' AND 
19545 NVL(p_source_4,'
19546 ') =  'BALANCING_SEGMENT') AND 
19547 (NVL(p_source_39,'
19548 ') =  'CASH' OR 
19549 NVL(p_source_39,'
19550 ') =  'BANK CHARGE' OR 
19551 NVL(p_source_39,'
19552 ') =  'BANK ERROR')
19553  THEN 
19554 
19555    --
19556    XLA_AE_LINES_PKG.SetNewLine;
19557 
19558    p_balance_type_code          := l_balance_type_code;
19559    -- set the flag so later we will know whether the gain loss line needs to be created
19560    
19561    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19562      p_actual_flag :='A';
19563    END IF;
19564 
19565    --
19566    -- bulk performance
19567    --
19568    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19569                                       p_header_num   => 0); -- 4262811
19570    --
19571    -- set accounting line options
19572    --
19573    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19574            p_natural_side_code          => 'C'
19575          , p_gain_or_loss_flag          => 'N'
19576          , p_gl_transfer_mode_code      => 'S'
19577          , p_acct_entry_type_code       => 'A'
19578          , p_switch_side_flag           => 'Y'
19579          , p_merge_duplicate_code       => 'A'
19580          );
19581    --
19582    l_acc_rev_natural_side_code := 'D';  -- 4262811
19583    -- 
19584    --
19585    -- set accounting line type info
19586    --
19587    xla_ae_lines_pkg.SetAcctLineType
19588       (p_component_type             => l_component_type
19589       ,p_event_type_code            => l_event_type_code
19590       ,p_line_definition_owner_code => l_line_definition_owner_code
19591       ,p_line_definition_code       => l_line_definition_code
19592       ,p_accounting_line_code       => l_component_code
19593       ,p_accounting_line_type_code  => l_component_type_code
19594       ,p_accounting_line_appl_id    => l_component_appl_id
19595       ,p_amb_context_code           => l_amb_context_code
19596       ,p_entity_code                => l_entity_code
19597       ,p_event_class_code           => l_event_class_code);
19598    --
19599    -- set accounting class
19600    --
19601    xla_ae_lines_pkg.SetAcctClass(
19602            p_accounting_class_code  => 'CASH'
19603          , p_ae_header_id           => l_ae_header_id
19604          );
19605 
19606    --
19607    -- set rounding class
19608    --
19609    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19610                       'CASH';
19611 
19612    --
19613    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19614    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19615    --
19616    -- bulk performance
19617    --
19618    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19619 
19620    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19621       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19622 
19623    -- 4955764
19624    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19625       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19626 
19627    -- 4458381 Public Sector Enh
19628    
19629    --
19630    -- set accounting attributes for the line type
19631    --
19632    l_entered_amt_idx := 10;
19633    l_accted_amt_idx  := 15;
19637    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
19634    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
19635    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19636    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
19638    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
19639    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
19640    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
19641    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19642    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
19643    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
19644    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
19645    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
19646    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
19647    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19648    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
19649    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
19650    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
19651    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
19652    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
19653    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
19654    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
19655    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
19656    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
19657    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
19658    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
19659    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
19660    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
19661    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
19662    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
19663    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
19664    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
19665    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
19666    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
19667    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
19668    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
19669    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
19670    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
19671    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
19672    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
19673    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
19674    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
19675    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
19676    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
19677    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
19678    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
19679    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
19680    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
19681    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
19682    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
19683 
19684    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19685    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19686 
19687    ---------------------------------------------------------------------------------------------------------------
19688    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19689    ---------------------------------------------------------------------------------------------------------------
19690    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19691 
19692    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19693    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19694 
19695    IF xla_accounting_cache_pkg.GetValueChar
19696          (p_source_code         => 'LEDGER_CATEGORY_CODE'
19697          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19698    AND l_bflow_method_code = 'PRIOR_ENTRY'
19699 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19700    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19701          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19702        )
19703    THEN
19704          xla_ae_lines_pkg.BflowUpgEntry
19705            (p_business_method_code    => l_bflow_method_code
19706            ,p_business_class_code     => l_bflow_class_code
19707            ,p_balance_type            => l_balance_type_code);
19708    ELSE
19709       NULL;
19710 XLA_AE_LINES_PKG.business_flow_validation(
19711                                 p_business_method_code     => l_bflow_method_code
19712                                ,p_business_class_code      => l_bflow_class_code
19713                                ,p_inherit_description_flag => l_inherit_desc_flag);
19714    END IF;
19715 
19716    --
19717    -- call analytical criteria
19718    --
19719    
19720    --
19721    -- call description
19722    --
19723    -- No description or it is inherited.
19724    --
19725    -- call ADRs
19726    -- Bug 4922099
19727    --
19728    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19732    THEN
19729         (NVL(l_actual_upg_option, 'N') = 'O') OR
19730         (NVL(l_enc_upg_option, 'N') = 'O')
19731       )
19733    NULL;
19734    --
19735    --
19736    
19737   l_ccid := AcctDerRule_20(
19738            p_application_id           => p_application_id
19739          , p_ae_header_id             => l_ae_header_id 
19740 , p_source_1 => p_source_1
19741          , x_transaction_coa_id       => l_adr_transaction_coa_id
19742          , x_accounting_coa_id        => l_adr_accounting_coa_id
19743          , x_value_type_code          => l_adr_value_type_code
19744          , p_side                     => 'NA'
19745    );
19746 
19747    xla_ae_lines_pkg.set_ccid(
19748     p_code_combination_id          => l_ccid
19749   , p_value_type_code              => l_adr_value_type_code
19750   , p_transaction_coa_id           => l_adr_transaction_coa_id
19751   , p_accounting_coa_id            => l_adr_accounting_coa_id
19752   , p_adr_code                     => 'AP_CASH'
19753   , p_adr_type_code                => 'S'
19754   , p_component_type               => l_component_type
19755   , p_component_code               => l_component_code
19756   , p_component_type_code          => l_component_type_code
19757   , p_component_appl_id            => l_component_appl_id
19758   , p_amb_context_code             => l_amb_context_code
19759   , p_side                         => 'NA'
19760   );
19761 
19762 
19763    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
19764      p_to_segment_code         => 'GL_BALANCING'
19765    , p_segment_value           => C_CHAR
19766    , p_from_segment_code       => NULL
19767    , p_from_combination_id     => NULL
19768    , p_value_type_code         => NULL
19769    , p_transaction_coa_id      => null
19770    , p_accounting_coa_id       => null
19771    , p_flexfield_segment_code  => NULL
19772    , p_flex_value_set_id       => NULL
19773    , p_adr_code                => NULL
19774    , p_adr_type_code           => NULL
19775    , p_component_type          => l_component_type
19776    , p_component_code          => l_component_code
19777    , p_component_type_code     => l_component_type_code
19778    , p_component_appl_id       => l_component_appl_id
19779    , p_amb_context_code        => l_amb_context_code
19780    , p_entity_code             => 'AP_PAYMENTS'
19781    , p_event_class_code        => 'RECONCILED PAYMENTS'
19782    , p_side                    => 'NA'
19783    );
19784    --
19785 
19786 
19787    --
19788    --
19789    END IF;
19790    --
19791    -- Bug 4922099
19792    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19793           (NVL(l_enc_upg_option, 'N') = 'O')
19794         ) AND
19795         (l_bflow_method_code = 'PRIOR_ENTRY')
19796       )
19797    THEN
19798       IF
19799       --
19800       1 = 2
19801       --
19802       THEN
19803       xla_accounting_err_pkg.build_message
19804                                     (p_appli_s_name            => 'XLA'
19805                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19806                                     ,p_token_1                 => 'LINE_NUMBER'
19807                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19808                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19809                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19810                                                                              l_component_type
19811                                                                             ,l_component_code
19812                                                                             ,l_component_type_code
19813                                                                             ,l_component_appl_id
19814                                                                             ,l_amb_context_code
19815                                                                             ,l_entity_code
19816                                                                             ,l_event_class_code
19817                                                                            )
19818                                     ,p_token_3                 => 'OWNER'
19819                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19820                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19821                                                                           ,p_lookup_code    => l_component_type_code
19822                                                                          )
19823                                     ,p_token_4                 => 'PRODUCT_NAME'
19824                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19825                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19826                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19827                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19828                                     ,p_ae_header_id            =>  NULL
19829                                        );
19830 
19831         IF (C_LEVEL_ERROR>= g_log_level) THEN
19832                  trace
19833                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19834                       ,p_level    => C_LEVEL_ERROR
19838    END IF;
19835                       ,p_module   => l_log_module);
19836         END IF;
19837       END IF;
19839    --
19840    --
19841    ------------------------------------------------------------------------------------------------
19842    -- 4219869 Business Flow
19843    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19844    -- Prior Entry.  Currently, the following code is always generated.
19845    ------------------------------------------------------------------------------------------------
19846    XLA_AE_LINES_PKG.ValidateCurrentLine;
19847 
19848    ------------------------------------------------------------------------------------
19849    -- 4219869 Business Flow
19850    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19851    ------------------------------------------------------------------------------------
19852    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19853 
19854    ----------------------------------------------------------------------------------
19855    -- 4219869 Business Flow
19856    -- Update journal entry status -- Need to generate this within IF <condition>
19857    ----------------------------------------------------------------------------------
19858    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19859          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19860          ,p_balance_type_code => l_balance_type_code
19861          );
19862 
19863    -------------------------------------------------------------------------------------------
19864    -- 4262811 - Generate the Accrual Reversal lines
19865    -------------------------------------------------------------------------------------------
19866    BEGIN
19867       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19868                               (g_array_event(p_event_id).array_value_num('header_index'));
19869       IF l_acc_rev_flag IS NULL THEN
19870          l_acc_rev_flag := 'N';
19871       END IF;
19872    EXCEPTION
19873       WHEN OTHERS THEN
19874          l_acc_rev_flag := 'N';
19875    END;
19876    --
19877    IF (l_acc_rev_flag = 'Y') THEN
19878 
19879        -- 4645092  ------------------------------------------------------------------------------
19880        -- To allow MPA report to determine if it should generate report process
19881        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19882        ------------------------------------------------------------------------------------------
19883 
19884        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19885        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19886    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
19887    -- call ADRs
19888    -- Bug 4922099
19889    --
19890    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19891         (NVL(l_actual_upg_option, 'N') = 'O') OR
19892         (NVL(l_enc_upg_option, 'N') = 'O')
19893       )
19894    THEN
19895    NULL;
19896    --
19897    --
19898    
19899   l_ccid := AcctDerRule_20(
19900            p_application_id           => p_application_id
19901          , p_ae_header_id             => l_ae_header_id 
19902 , p_source_1 => p_source_1
19903          , x_transaction_coa_id       => l_adr_transaction_coa_id
19904          , x_accounting_coa_id        => l_adr_accounting_coa_id
19905          , x_value_type_code          => l_adr_value_type_code
19906          , p_side                     => 'NA'
19907    );
19908 
19909    xla_ae_lines_pkg.set_ccid(
19910     p_code_combination_id          => l_ccid
19911   , p_value_type_code              => l_adr_value_type_code
19912   , p_transaction_coa_id           => l_adr_transaction_coa_id
19913   , p_accounting_coa_id            => l_adr_accounting_coa_id
19914   , p_adr_code                     => 'AP_CASH'
19915   , p_adr_type_code                => 'S'
19916   , p_component_type               => l_component_type
19917   , p_component_code               => l_component_code
19918   , p_component_type_code          => l_component_type_code
19919   , p_component_appl_id            => l_component_appl_id
19920   , p_amb_context_code             => l_amb_context_code
19921   , p_side                         => 'NA'
19922   );
19923 
19924 
19925    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
19926      p_to_segment_code         => 'GL_BALANCING'
19927    , p_segment_value           => C_CHAR
19928    , p_from_segment_code       => NULL
19929    , p_from_combination_id     => NULL
19930    , p_value_type_code         => NULL
19931    , p_transaction_coa_id      => null
19932    , p_accounting_coa_id       => null
19933    , p_flexfield_segment_code  => NULL
19934    , p_flex_value_set_id       => NULL
19935    , p_adr_code                => NULL
19936    , p_adr_type_code           => NULL
19937    , p_component_type          => l_component_type
19938    , p_component_code          => l_component_code
19939    , p_component_type_code     => l_component_type_code
19940    , p_component_appl_id       => l_component_appl_id
19941    , p_amb_context_code        => l_amb_context_code
19942    , p_entity_code             => 'AP_PAYMENTS'
19943    , p_event_class_code        => 'RECONCILED PAYMENTS'
19944    , p_side                    => 'NA'
19945    );
19946    --
19947 
19951    END IF;
19948 
19949    --
19950    --
19952 
19953        --
19954        -- Update the line information that should be overwritten
19955        --
19956        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19957                                          p_header_num   => 1);
19958        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19959 
19960        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19961 
19962        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19963           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19964        END IF;
19965 
19966       --
19967       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19968       --
19969       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19970           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19971       ELSE
19972           ---------------------------------------------------------------------------------------------------
19973           -- 4262811a Switch Sign
19974           ---------------------------------------------------------------------------------------------------
19975           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19976           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19977                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19978           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19979                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19980           -- 5132302
19981           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19982                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19983 
19984       END IF;
19985 
19986       -- 4955764
19987       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19988       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19989 
19990 
19991       XLA_AE_LINES_PKG.ValidateCurrentLine;
19992       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19993 
19994       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19995                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19996                ,p_balance_type_code => l_balance_type_code);
19997 
19998    END IF;
19999 
20000    -----------------------------------------------------------------------------------------
20001    -- 4262811 Multiperiod Accounting
20002    -----------------------------------------------------------------------------------------
20003      -- No MPA option is assigned.
20004 
20005 
20006 END IF;
20007 END IF;
20008 --
20009 
20010 --
20011 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20012    trace
20013       (p_msg      => 'END of AcctLineType_56'
20014       ,p_level    => C_LEVEL_PROCEDURE
20015       ,p_module   => l_log_module);
20016 END IF;
20017 --
20018 EXCEPTION
20019   WHEN xla_exceptions_pkg.application_exception THEN
20020       RAISE;
20021   WHEN OTHERS THEN
20022        xla_exceptions_pkg.raise_message
20023            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_56');
20024 END AcctLineType_56;
20025 --
20026 
20027 ---------------------------------------
20028 --
20029 -- PRIVATE FUNCTION
20030 --         AcctLineType_57
20031 --
20032 ---------------------------------------
20033 PROCEDURE AcctLineType_57 (
20034   p_application_id        IN NUMBER
20035  ,p_event_id              IN NUMBER
20036  ,p_calculate_acctd_flag  IN VARCHAR2
20037  ,p_calculate_g_l_flag    IN VARCHAR2
20038  ,p_actual_flag           IN OUT VARCHAR2
20039  ,p_balance_type_code     OUT VARCHAR2
20040  ,p_gain_or_loss_ref      OUT VARCHAR2
20041  
20042 --Bank Cash Account
20043  , p_source_1            IN NUMBER
20044 --Payment Distribution (Cleared Rate) Ledger Amount
20045  , p_source_10            IN NUMBER
20046 --Automatic Offsets Flag
20047  , p_source_30            IN VARCHAR2
20048  , p_source_30_meaning    IN VARCHAR2
20049 --When to Account for Payment Option
20050  , p_source_38            IN VARCHAR2
20051 --Payment Distribution Type
20052  , p_source_39            IN VARCHAR2
20053  , p_source_39_meaning    IN VARCHAR2
20054 --Accounting Reversal Indicator
20055  , p_source_40            IN VARCHAR2
20056 --Payment Distribution Amount
20057  , p_source_41            IN NUMBER
20058 --Business Flow Accounts Payable Application Identifier
20059  , p_source_42            IN NUMBER
20060 --Business Flow Payment Distribution Type
20061  , p_source_43            IN VARCHAR2
20062 --Business Flow Payment Entity Code
20063  , p_source_44            IN VARCHAR2
20064 --Business Flow Payment Distribution Identifier
20065  , p_source_45            IN NUMBER
20066 --Business Flow Payment Identifier
20067  , p_source_46            IN NUMBER
20068 --Payment Distribution Identifier
20069  , p_source_47            IN NUMBER
20070 --Distribution Link Type
20071  , p_source_48            IN VARCHAR2
20072 --Payment Currency Code
20073  , p_source_49            IN VARCHAR2
20077 --Payment Supplier Identifier
20074 --Override Accounted Amount Indicator
20075  , p_source_53            IN VARCHAR2
20076  , p_source_53_meaning    IN VARCHAR2
20078  , p_source_54            IN NUMBER
20079 --Payment Supplier Site Identifier
20080  , p_source_55            IN NUMBER
20081 --Third Party Type
20082  , p_source_56            IN VARCHAR2
20083 --Payment Distribution Reversed Identifier
20084  , p_source_57            IN NUMBER
20085 --Invoice Distribution Tax Line Identifier
20086  , p_source_58            IN NUMBER
20087 --Invoice Distribution Summary Tax Line Identifier
20088  , p_source_59            IN NUMBER
20089 --Cleared Exchange Date
20090  , p_source_107            IN DATE
20091 --Cleared Exchange Rate
20092  , p_source_108            IN NUMBER
20093 --Cleared Exchange Rate Type
20094  , p_source_109            IN VARCHAR2
20095 --Pooled Bank Account Option
20096  , p_source_110            IN VARCHAR2
20097  , p_source_110_meaning    IN VARCHAR2
20098 )
20099 IS
20100 
20101 l_component_type              VARCHAR2(80);
20102 l_component_code              VARCHAR2(30);
20103 l_component_type_code         VARCHAR2(1);
20104 l_component_appl_id           INTEGER;
20105 l_amb_context_code            VARCHAR2(30);
20106 l_entity_code                 VARCHAR2(30);
20107 l_event_class_code            VARCHAR2(30);
20108 l_ae_header_id                NUMBER;
20109 l_event_type_code             VARCHAR2(30);
20110 l_line_definition_code        VARCHAR2(30);
20111 l_line_definition_owner_code  VARCHAR2(1);
20112 --
20113 -- adr variables
20114 l_segment                     VARCHAR2(30);
20115 l_ccid                        NUMBER;
20116 l_adr_transaction_coa_id      NUMBER;
20117 l_adr_accounting_coa_id       NUMBER;
20118 l_adr_flexfield_segment_code  VARCHAR2(30);
20119 l_adr_flex_value_set_id       NUMBER;
20120 l_adr_value_type_code         VARCHAR2(30);
20121 l_adr_value_combination_id    NUMBER;
20122 l_adr_value_segment_code      VARCHAR2(30);
20123 
20124 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20125 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20126 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20127 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20128 
20129 -- 4262811 Variables ------------------------------------------------------------------------------------------
20130 l_entered_amt_idx             NUMBER;
20131 l_accted_amt_idx              NUMBER;
20132 l_acc_rev_flag                VARCHAR2(1);
20133 l_accrual_line_num            NUMBER;
20134 l_tmp_amt                     NUMBER;
20135 l_acc_rev_natural_side_code   VARCHAR2(1);
20136 
20137 l_num_entries                 NUMBER;
20138 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20139 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20140 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20141 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20142 l_recog_line_1                NUMBER;
20143 l_recog_line_2                NUMBER;
20144 
20145 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20146 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20147 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
20148 
20149 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20150 
20151 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
20152 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
20153 
20154 ---------------------------------------------------------------------------------------------------------------
20155 
20156 
20157 --
20158 -- bulk performance
20159 --
20160 l_balance_type_code           VARCHAR2(1);
20161 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
20162 l_log_module                  VARCHAR2(240);
20163 
20164 --
20165 -- Upgrade strategy
20166 --
20167 l_actual_upg_option           VARCHAR2(1);
20168 l_enc_upg_option           VARCHAR2(1);
20169 
20170 --
20171 BEGIN
20172 --
20173 IF g_log_enabled THEN
20174       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
20175 END IF;
20176 --
20177 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20178 
20179       trace
20180          (p_msg      => 'BEGIN of AcctLineType_57'
20181          ,p_level    => C_LEVEL_PROCEDURE
20182          ,p_module   => l_log_module);
20183 
20184 END IF;
20185 --
20186 l_component_type             := 'AMB_JLT';
20187 l_component_code             := 'AP_CASH_CLEARONLY_NP';
20188 l_component_type_code        := 'S';
20189 l_component_appl_id          :=  200;
20190 l_amb_context_code           := 'DEFAULT';
20191 l_entity_code                := 'AP_PAYMENTS';
20192 l_event_class_code           := 'RECONCILED PAYMENTS';
20193 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
20194 l_line_definition_owner_code := 'S';
20195 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
20196 --
20197 l_balance_type_code          := 'A';
20198 l_segment                     := NULL;
20199 l_ccid                        := NULL;
20200 l_adr_transaction_coa_id      := NULL;
20201 l_adr_accounting_coa_id       := NULL;
20202 l_adr_flexfield_segment_code  := NULL;
20203 l_adr_flex_value_set_id       := NULL;
20207 
20204 l_adr_value_type_code         := NULL;
20205 l_adr_value_combination_id    := NULL;
20206 l_adr_value_segment_code      := NULL;
20208 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
20209 l_bflow_class_code           := '';    -- 4219869 Business Flow
20210 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20211 l_budgetary_control_flag     := 'N';
20212 
20213 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20214 l_bflow_applied_to_amt       := NULL; -- 5132302
20215 l_entered_amt_idx            := NULL;          -- 4262811
20216 l_accted_amt_idx             := NULL;          -- 4262811
20217 l_acc_rev_flag               := NULL;          -- 4262811
20218 l_accrual_line_num           := NULL;          -- 4262811
20219 l_tmp_amt                    := NULL;          -- 4262811
20220 --
20221  
20222 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20223     l_balance_type_code <> 'B' THEN
20224 IF NVL(p_source_38,'
20225 ') <>  'ISSUE_ISSUE' AND 
20226 (NVL(p_source_30,'
20227 ') <>  'Y' OR 
20228 NVL(p_source_30,'
20229 ') =  'Y' AND 
20230 NVL(p_source_110,'
20231 ') <>  'Y') AND 
20232 (NVL(p_source_39,'
20233 ') =  'CASH' OR 
20234 NVL(p_source_39,'
20235 ') =  'BANK CHARGE' OR 
20236 NVL(p_source_39,'
20237 ') =  'BANK ERROR')
20238  THEN 
20239 
20240    --
20241    XLA_AE_LINES_PKG.SetNewLine;
20242 
20243    p_balance_type_code          := l_balance_type_code;
20244    -- set the flag so later we will know whether the gain loss line needs to be created
20245    
20246    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20247      p_actual_flag :='A';
20248    END IF;
20249 
20250    --
20251    -- bulk performance
20252    --
20253    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20254                                       p_header_num   => 0); -- 4262811
20255    --
20256    -- set accounting line options
20257    --
20258    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20259            p_natural_side_code          => 'C'
20260          , p_gain_or_loss_flag          => 'N'
20261          , p_gl_transfer_mode_code      => 'S'
20262          , p_acct_entry_type_code       => 'A'
20263          , p_switch_side_flag           => 'Y'
20264          , p_merge_duplicate_code       => 'A'
20265          );
20266    --
20267    l_acc_rev_natural_side_code := 'D';  -- 4262811
20268    -- 
20269    --
20270    -- set accounting line type info
20271    --
20272    xla_ae_lines_pkg.SetAcctLineType
20273       (p_component_type             => l_component_type
20274       ,p_event_type_code            => l_event_type_code
20275       ,p_line_definition_owner_code => l_line_definition_owner_code
20276       ,p_line_definition_code       => l_line_definition_code
20277       ,p_accounting_line_code       => l_component_code
20278       ,p_accounting_line_type_code  => l_component_type_code
20279       ,p_accounting_line_appl_id    => l_component_appl_id
20280       ,p_amb_context_code           => l_amb_context_code
20281       ,p_entity_code                => l_entity_code
20282       ,p_event_class_code           => l_event_class_code);
20283    --
20284    -- set accounting class
20285    --
20286    xla_ae_lines_pkg.SetAcctClass(
20287            p_accounting_class_code  => 'CASH'
20288          , p_ae_header_id           => l_ae_header_id
20289          );
20290 
20291    --
20292    -- set rounding class
20293    --
20294    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20295                       'CASH';
20296 
20297    --
20298    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20299    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20300    --
20301    -- bulk performance
20302    --
20303    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20304 
20305    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20306       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20307 
20308    -- 4955764
20309    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20310       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20311 
20312    -- 4458381 Public Sector Enh
20313    
20314    --
20315    -- set accounting attributes for the line type
20316    --
20317    l_entered_amt_idx := 10;
20318    l_accted_amt_idx  := 15;
20319    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20320    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20321    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
20322    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20323    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
20324    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20325    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
20326    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20327    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
20328    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20329    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
20333    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
20330    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20331    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
20332    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20334    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20335    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
20336    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20337    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
20338    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20339    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
20340    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20341    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
20342    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
20343    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
20344    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
20345    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
20346    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
20347    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
20348    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
20349    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
20350    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
20351    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
20352    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
20353    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
20354    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
20355    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
20356    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
20357    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
20358    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
20359    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
20360    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
20361    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
20362    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
20363    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
20364    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
20365    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
20366    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
20367    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
20368 
20369    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20370    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20371 
20372    ---------------------------------------------------------------------------------------------------------------
20373    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20374    ---------------------------------------------------------------------------------------------------------------
20375    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20376 
20377    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20378    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20379 
20380    IF xla_accounting_cache_pkg.GetValueChar
20381          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20382          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20383    AND l_bflow_method_code = 'PRIOR_ENTRY'
20384 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20385    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20386          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20387        )
20388    THEN
20389          xla_ae_lines_pkg.BflowUpgEntry
20390            (p_business_method_code    => l_bflow_method_code
20391            ,p_business_class_code     => l_bflow_class_code
20392            ,p_balance_type            => l_balance_type_code);
20393    ELSE
20394       NULL;
20395 -- No business flow processing for business flow method of NONE.
20396    END IF;
20397 
20398    --
20399    -- call analytical criteria
20400    --
20401    
20402    --
20403    -- call description
20404    --
20405    -- No description or it is inherited.
20406    --
20407    -- call ADRs
20408    -- Bug 4922099
20409    --
20410    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20411         (NVL(l_actual_upg_option, 'N') = 'O') OR
20412         (NVL(l_enc_upg_option, 'N') = 'O')
20413       )
20414    THEN
20415    NULL;
20416    --
20417    --
20418    
20419   l_ccid := AcctDerRule_20(
20420            p_application_id           => p_application_id
20421          , p_ae_header_id             => l_ae_header_id 
20422 , p_source_1 => p_source_1
20423          , x_transaction_coa_id       => l_adr_transaction_coa_id
20424          , x_accounting_coa_id        => l_adr_accounting_coa_id
20425          , x_value_type_code          => l_adr_value_type_code
20426          , p_side                     => 'NA'
20427    );
20428 
20429    xla_ae_lines_pkg.set_ccid(
20430     p_code_combination_id          => l_ccid
20431   , p_value_type_code              => l_adr_value_type_code
20432   , p_transaction_coa_id           => l_adr_transaction_coa_id
20433   , p_accounting_coa_id            => l_adr_accounting_coa_id
20437   , p_component_code               => l_component_code
20434   , p_adr_code                     => 'AP_CASH'
20435   , p_adr_type_code                => 'S'
20436   , p_component_type               => l_component_type
20438   , p_component_type_code          => l_component_type_code
20439   , p_component_appl_id            => l_component_appl_id
20440   , p_amb_context_code             => l_amb_context_code
20441   , p_side                         => 'NA'
20442   );
20443 
20444 
20445    --
20446    --
20447    END IF;
20448    --
20449    -- Bug 4922099
20450    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20451           (NVL(l_enc_upg_option, 'N') = 'O')
20452         ) AND
20453         (l_bflow_method_code = 'PRIOR_ENTRY')
20454       )
20455    THEN
20456       IF
20457       --
20458       1 = 2
20459       --
20460       THEN
20461       xla_accounting_err_pkg.build_message
20462                                     (p_appli_s_name            => 'XLA'
20463                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20464                                     ,p_token_1                 => 'LINE_NUMBER'
20465                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20466                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20467                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20468                                                                              l_component_type
20469                                                                             ,l_component_code
20470                                                                             ,l_component_type_code
20471                                                                             ,l_component_appl_id
20472                                                                             ,l_amb_context_code
20473                                                                             ,l_entity_code
20474                                                                             ,l_event_class_code
20475                                                                            )
20476                                     ,p_token_3                 => 'OWNER'
20477                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20478                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20479                                                                           ,p_lookup_code    => l_component_type_code
20480                                                                          )
20481                                     ,p_token_4                 => 'PRODUCT_NAME'
20482                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20483                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20484                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20485                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20486                                     ,p_ae_header_id            =>  NULL
20487                                        );
20488 
20489         IF (C_LEVEL_ERROR>= g_log_level) THEN
20490                  trace
20491                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20492                       ,p_level    => C_LEVEL_ERROR
20493                       ,p_module   => l_log_module);
20494         END IF;
20495       END IF;
20496    END IF;
20497    --
20498    --
20499    ------------------------------------------------------------------------------------------------
20500    -- 4219869 Business Flow
20501    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20502    -- Prior Entry.  Currently, the following code is always generated.
20503    ------------------------------------------------------------------------------------------------
20504    XLA_AE_LINES_PKG.ValidateCurrentLine;
20505 
20506    ------------------------------------------------------------------------------------
20507    -- 4219869 Business Flow
20508    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20509    ------------------------------------------------------------------------------------
20510    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20511 
20512    ----------------------------------------------------------------------------------
20513    -- 4219869 Business Flow
20514    -- Update journal entry status -- Need to generate this within IF <condition>
20515    ----------------------------------------------------------------------------------
20516    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20517          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20518          ,p_balance_type_code => l_balance_type_code
20519          );
20520 
20521    -------------------------------------------------------------------------------------------
20522    -- 4262811 - Generate the Accrual Reversal lines
20523    -------------------------------------------------------------------------------------------
20524    BEGIN
20525       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20526                               (g_array_event(p_event_id).array_value_num('header_index'));
20530    EXCEPTION
20527       IF l_acc_rev_flag IS NULL THEN
20528          l_acc_rev_flag := 'N';
20529       END IF;
20531       WHEN OTHERS THEN
20532          l_acc_rev_flag := 'N';
20533    END;
20534    --
20535    IF (l_acc_rev_flag = 'Y') THEN
20536 
20537        -- 4645092  ------------------------------------------------------------------------------
20538        -- To allow MPA report to determine if it should generate report process
20539        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20540        ------------------------------------------------------------------------------------------
20541 
20542        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20543        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20544    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20545    -- call ADRs
20546    -- Bug 4922099
20547    --
20548    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20549         (NVL(l_actual_upg_option, 'N') = 'O') OR
20550         (NVL(l_enc_upg_option, 'N') = 'O')
20551       )
20552    THEN
20553    NULL;
20554    --
20555    --
20556    
20557   l_ccid := AcctDerRule_20(
20558            p_application_id           => p_application_id
20559          , p_ae_header_id             => l_ae_header_id 
20560 , p_source_1 => p_source_1
20561          , x_transaction_coa_id       => l_adr_transaction_coa_id
20562          , x_accounting_coa_id        => l_adr_accounting_coa_id
20563          , x_value_type_code          => l_adr_value_type_code
20564          , p_side                     => 'NA'
20565    );
20566 
20567    xla_ae_lines_pkg.set_ccid(
20568     p_code_combination_id          => l_ccid
20569   , p_value_type_code              => l_adr_value_type_code
20570   , p_transaction_coa_id           => l_adr_transaction_coa_id
20571   , p_accounting_coa_id            => l_adr_accounting_coa_id
20572   , p_adr_code                     => 'AP_CASH'
20573   , p_adr_type_code                => 'S'
20574   , p_component_type               => l_component_type
20575   , p_component_code               => l_component_code
20576   , p_component_type_code          => l_component_type_code
20577   , p_component_appl_id            => l_component_appl_id
20578   , p_amb_context_code             => l_amb_context_code
20579   , p_side                         => 'NA'
20580   );
20581 
20582 
20583    --
20584    --
20585    END IF;
20586 
20587        --
20588        -- Update the line information that should be overwritten
20589        --
20590        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20591                                          p_header_num   => 1);
20592        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20593 
20594        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20595 
20596        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
20597           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20598        END IF;
20599 
20600       --
20601       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20602       --
20603       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20604           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
20605       ELSE
20606           ---------------------------------------------------------------------------------------------------
20607           -- 4262811a Switch Sign
20608           ---------------------------------------------------------------------------------------------------
20609           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
20610           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20611                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20612           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20613                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20614           -- 5132302
20615           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20616                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20617 
20618       END IF;
20619 
20620       -- 4955764
20621       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20622       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20623 
20624 
20625       XLA_AE_LINES_PKG.ValidateCurrentLine;
20626       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20627 
20628       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20629                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20630                ,p_balance_type_code => l_balance_type_code);
20631 
20632    END IF;
20633 
20634    -----------------------------------------------------------------------------------------
20635    -- 4262811 Multiperiod Accounting
20636    -----------------------------------------------------------------------------------------
20637      -- No MPA option is assigned.
20638 
20639 
20640 END IF;
20641 END IF;
20642 --
20643 
20644 --
20648       ,p_level    => C_LEVEL_PROCEDURE
20645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20646    trace
20647       (p_msg      => 'END of AcctLineType_57'
20649       ,p_module   => l_log_module);
20650 END IF;
20651 --
20652 EXCEPTION
20653   WHEN xla_exceptions_pkg.application_exception THEN
20654       RAISE;
20655   WHEN OTHERS THEN
20656        xla_exceptions_pkg.raise_message
20657            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_57');
20658 END AcctLineType_57;
20659 --
20660 
20661 ---------------------------------------
20662 --
20663 -- PRIVATE FUNCTION
20664 --         AcctLineType_58
20665 --
20666 ---------------------------------------
20667 PROCEDURE AcctLineType_58 (
20668   p_application_id        IN NUMBER
20669  ,p_event_id              IN NUMBER
20670  ,p_calculate_acctd_flag  IN VARCHAR2
20671  ,p_calculate_g_l_flag    IN VARCHAR2
20672  ,p_actual_flag           IN OUT VARCHAR2
20673  ,p_balance_type_code     OUT VARCHAR2
20674  ,p_gain_or_loss_ref      OUT VARCHAR2
20675  
20676 --Payment Distribution (Payment Rate) Ledger Amount
20677  , p_source_9            IN NUMBER
20678 --When to Account for Payment Option
20679  , p_source_38            IN VARCHAR2
20680 --Payment Distribution Type
20681  , p_source_39            IN VARCHAR2
20682  , p_source_39_meaning    IN VARCHAR2
20683 --Accounting Reversal Indicator
20684  , p_source_40            IN VARCHAR2
20685 --Payment Distribution Amount
20686  , p_source_41            IN NUMBER
20687 --Business Flow Accounts Payable Application Identifier
20688  , p_source_42            IN NUMBER
20689 --Business Flow Payment Distribution Type
20690  , p_source_43            IN VARCHAR2
20691 --Business Flow Payment Entity Code
20692  , p_source_44            IN VARCHAR2
20693 --Business Flow Payment Distribution Identifier
20694  , p_source_45            IN NUMBER
20695 --Business Flow Payment Identifier
20696  , p_source_46            IN NUMBER
20697 --Payment Distribution Identifier
20698  , p_source_47            IN NUMBER
20699 --Distribution Link Type
20700  , p_source_48            IN VARCHAR2
20701 --Payment Currency Code
20702  , p_source_49            IN VARCHAR2
20703 --Override Accounted Amount Indicator
20704  , p_source_53            IN VARCHAR2
20705  , p_source_53_meaning    IN VARCHAR2
20706 --Third Party Type
20707  , p_source_56            IN VARCHAR2
20708 --Payment Distribution Reversed Identifier
20709  , p_source_57            IN NUMBER
20710 --Invoice Distribution Tax Line Identifier
20711  , p_source_58            IN NUMBER
20712 --Invoice Distribution Summary Tax Line Identifier
20713  , p_source_59            IN NUMBER
20714 --Payment Maturity Date
20715  , p_source_111            IN DATE
20716 )
20717 IS
20718 
20719 l_component_type              VARCHAR2(80);
20720 l_component_code              VARCHAR2(30);
20721 l_component_type_code         VARCHAR2(1);
20722 l_component_appl_id           INTEGER;
20723 l_amb_context_code            VARCHAR2(30);
20724 l_entity_code                 VARCHAR2(30);
20725 l_event_class_code            VARCHAR2(30);
20726 l_ae_header_id                NUMBER;
20727 l_event_type_code             VARCHAR2(30);
20728 l_line_definition_code        VARCHAR2(30);
20729 l_line_definition_owner_code  VARCHAR2(1);
20730 --
20731 -- adr variables
20732 l_segment                     VARCHAR2(30);
20733 l_ccid                        NUMBER;
20734 l_adr_transaction_coa_id      NUMBER;
20735 l_adr_accounting_coa_id       NUMBER;
20736 l_adr_flexfield_segment_code  VARCHAR2(30);
20737 l_adr_flex_value_set_id       NUMBER;
20738 l_adr_value_type_code         VARCHAR2(30);
20739 l_adr_value_combination_id    NUMBER;
20740 l_adr_value_segment_code      VARCHAR2(30);
20741 
20742 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20743 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20744 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20745 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20746 
20747 -- 4262811 Variables ------------------------------------------------------------------------------------------
20748 l_entered_amt_idx             NUMBER;
20749 l_accted_amt_idx              NUMBER;
20750 l_acc_rev_flag                VARCHAR2(1);
20751 l_accrual_line_num            NUMBER;
20752 l_tmp_amt                     NUMBER;
20753 l_acc_rev_natural_side_code   VARCHAR2(1);
20754 
20755 l_num_entries                 NUMBER;
20756 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20757 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20758 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20759 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20760 l_recog_line_1                NUMBER;
20761 l_recog_line_2                NUMBER;
20762 
20763 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20764 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20765 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
20766 
20767 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20768 
20769 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
20770 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
20771 
20775 --
20772 ---------------------------------------------------------------------------------------------------------------
20773 
20774 
20776 -- bulk performance
20777 --
20778 l_balance_type_code           VARCHAR2(1);
20779 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
20780 l_log_module                  VARCHAR2(240);
20781 
20782 --
20783 -- Upgrade strategy
20784 --
20785 l_actual_upg_option           VARCHAR2(1);
20786 l_enc_upg_option           VARCHAR2(1);
20787 
20788 --
20789 BEGIN
20790 --
20791 IF g_log_enabled THEN
20792       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
20793 END IF;
20794 --
20795 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20796 
20797       trace
20798          (p_msg      => 'BEGIN of AcctLineType_58'
20799          ,p_level    => C_LEVEL_PROCEDURE
20800          ,p_module   => l_log_module);
20801 
20802 END IF;
20803 --
20804 l_component_type             := 'AMB_JLT';
20805 l_component_code             := 'AP_CASH_CLEAR_CLEAR';
20806 l_component_type_code        := 'S';
20807 l_component_appl_id          :=  200;
20808 l_amb_context_code           := 'DEFAULT';
20809 l_entity_code                := 'AP_PAYMENTS';
20810 l_event_class_code           := 'RECONCILED PAYMENTS';
20811 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
20812 l_line_definition_owner_code := 'S';
20813 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
20814 --
20815 l_balance_type_code          := 'A';
20816 l_segment                     := NULL;
20817 l_ccid                        := NULL;
20818 l_adr_transaction_coa_id      := NULL;
20819 l_adr_accounting_coa_id       := NULL;
20820 l_adr_flexfield_segment_code  := NULL;
20821 l_adr_flex_value_set_id       := NULL;
20822 l_adr_value_type_code         := NULL;
20823 l_adr_value_combination_id    := NULL;
20824 l_adr_value_segment_code      := NULL;
20825 
20826 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
20827 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
20828 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20829 l_budgetary_control_flag     := 'N';
20830 
20831 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20832 l_bflow_applied_to_amt       := NULL; -- 5132302
20833 l_entered_amt_idx            := NULL;          -- 4262811
20834 l_accted_amt_idx             := NULL;          -- 4262811
20835 l_acc_rev_flag               := NULL;          -- 4262811
20836 l_accrual_line_num           := NULL;          -- 4262811
20837 l_tmp_amt                    := NULL;          -- 4262811
20838 --
20839  
20840 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20841     l_balance_type_code <> 'B' THEN
20842 IF (NVL(p_source_38,'
20843 ') =  'ALWAYS_ALWAYS' OR 
20844 NVL(p_source_38,'
20845 ') =  'ALWAYS_ISSUE') AND 
20846 NVL(p_source_39,'
20847 ') =  'CASH' AND 
20848 p_source_111 IS NULL 
20849  THEN 
20850 
20851    --
20852    XLA_AE_LINES_PKG.SetNewLine;
20853 
20854    p_balance_type_code          := l_balance_type_code;
20855    -- set the flag so later we will know whether the gain loss line needs to be created
20856    
20857    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20858      p_actual_flag :='A';
20859    END IF;
20860 
20861    --
20862    -- bulk performance
20863    --
20864    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20865                                       p_header_num   => 0); -- 4262811
20866    --
20867    -- set accounting line options
20868    --
20869    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20870            p_natural_side_code          => 'D'
20871          , p_gain_or_loss_flag          => 'N'
20872          , p_gl_transfer_mode_code      => 'S'
20873          , p_acct_entry_type_code       => 'A'
20874          , p_switch_side_flag           => 'Y'
20875          , p_merge_duplicate_code       => 'A'
20876          );
20877    --
20878    l_acc_rev_natural_side_code := 'C';  -- 4262811
20879    -- 
20880    --
20881    -- set accounting line type info
20882    --
20883    xla_ae_lines_pkg.SetAcctLineType
20884       (p_component_type             => l_component_type
20885       ,p_event_type_code            => l_event_type_code
20886       ,p_line_definition_owner_code => l_line_definition_owner_code
20887       ,p_line_definition_code       => l_line_definition_code
20888       ,p_accounting_line_code       => l_component_code
20889       ,p_accounting_line_type_code  => l_component_type_code
20890       ,p_accounting_line_appl_id    => l_component_appl_id
20891       ,p_amb_context_code           => l_amb_context_code
20892       ,p_entity_code                => l_entity_code
20893       ,p_event_class_code           => l_event_class_code);
20894    --
20895    -- set accounting class
20896    --
20897    xla_ae_lines_pkg.SetAcctClass(
20898            p_accounting_class_code  => 'CASH_CLEARING'
20899          , p_ae_header_id           => l_ae_header_id
20900          );
20901 
20902    --
20903    -- set rounding class
20904    --
20905    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20906                       'CASH_CLEARING';
20907 
20908    --
20909    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20913    --
20910    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20911    --
20912    -- bulk performance
20914    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20915 
20916    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20917       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20918 
20919    -- 4955764
20920    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20921       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20922 
20923    -- 4458381 Public Sector Enh
20924    
20925    --
20926    -- set accounting attributes for the line type
20927    --
20928    l_entered_amt_idx := 10;
20929    l_accted_amt_idx  := 12;
20930    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20931    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20932    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
20933    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20934    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
20935    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20936    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
20937    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20938    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
20939    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20940    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
20941    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20942    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
20943    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20944    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
20945    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20946    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
20947    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20948    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
20949    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20950    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
20951    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20952    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
20953    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
20954    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
20955    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
20956    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
20957    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
20958    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
20959    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
20960    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
20961    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
20962    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
20963    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
20964    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
20965    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
20966    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
20967    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
20968    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
20969 
20970    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20971    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20972 
20973    ---------------------------------------------------------------------------------------------------------------
20974    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20975    ---------------------------------------------------------------------------------------------------------------
20976    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20977 
20978    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20979    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20980 
20981    IF xla_accounting_cache_pkg.GetValueChar
20982          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20983          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20984    AND l_bflow_method_code = 'PRIOR_ENTRY'
20985 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20986    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20987          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20988        )
20989    THEN
20990          xla_ae_lines_pkg.BflowUpgEntry
20991            (p_business_method_code    => l_bflow_method_code
20992            ,p_business_class_code     => l_bflow_class_code
20993            ,p_balance_type            => l_balance_type_code);
20994    ELSE
20995       NULL;
20996 XLA_AE_LINES_PKG.business_flow_validation(
20997                                 p_business_method_code     => l_bflow_method_code
20998                                ,p_business_class_code      => l_bflow_class_code
20999                                ,p_inherit_description_flag => l_inherit_desc_flag);
21000    END IF;
21001 
21005    -- Inherited Analytical Criteria for business flow method of Prior Entry.
21002    --
21003    -- call analytical criteria
21004    --
21006    --
21007    -- call description
21008    --
21009    -- No description or it is inherited.
21010    --
21011    -- call ADRs
21012    -- Bug 4922099
21013    --
21014    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21015         (NVL(l_actual_upg_option, 'N') = 'O') OR
21016         (NVL(l_enc_upg_option, 'N') = 'O')
21017       )
21018    THEN
21019    NULL;
21020    --
21021    --
21022    
21023    --
21024    --
21025    END IF;
21026    --
21027    -- Bug 4922099
21028    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21029           (NVL(l_enc_upg_option, 'N') = 'O')
21030         ) AND
21031         (l_bflow_method_code = 'PRIOR_ENTRY')
21032       )
21033    THEN
21034       IF
21035       --
21036       1 = 1
21037       --
21038       THEN
21039       xla_accounting_err_pkg.build_message
21040                                     (p_appli_s_name            => 'XLA'
21041                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21042                                     ,p_token_1                 => 'LINE_NUMBER'
21043                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
21044                                     ,p_token_2                 => 'LINE_TYPE_NAME'
21045                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
21046                                                                              l_component_type
21047                                                                             ,l_component_code
21048                                                                             ,l_component_type_code
21049                                                                             ,l_component_appl_id
21050                                                                             ,l_amb_context_code
21051                                                                             ,l_entity_code
21052                                                                             ,l_event_class_code
21053                                                                            )
21054                                     ,p_token_3                 => 'OWNER'
21055                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
21056                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
21057                                                                           ,p_lookup_code    => l_component_type_code
21058                                                                          )
21059                                     ,p_token_4                 => 'PRODUCT_NAME'
21060                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21061                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21062                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21063                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21064                                     ,p_ae_header_id            =>  NULL
21065                                        );
21066 
21067         IF (C_LEVEL_ERROR>= g_log_level) THEN
21068                  trace
21069                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21070                       ,p_level    => C_LEVEL_ERROR
21071                       ,p_module   => l_log_module);
21072         END IF;
21073       END IF;
21074    END IF;
21075    --
21076    --
21077    ------------------------------------------------------------------------------------------------
21078    -- 4219869 Business Flow
21079    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21080    -- Prior Entry.  Currently, the following code is always generated.
21081    ------------------------------------------------------------------------------------------------
21082    -- No ValidateCurrentLine for business flow method of Prior Entry
21083 
21084    ------------------------------------------------------------------------------------
21085    -- 4219869 Business Flow
21086    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21087    ------------------------------------------------------------------------------------
21088    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21089 
21090    ----------------------------------------------------------------------------------
21091    -- 4219869 Business Flow
21092    -- Update journal entry status -- Need to generate this within IF <condition>
21093    ----------------------------------------------------------------------------------
21094    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21095          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21096          ,p_balance_type_code => l_balance_type_code
21097          );
21098 
21099    -------------------------------------------------------------------------------------------
21100    -- 4262811 - Generate the Accrual Reversal lines
21101    -------------------------------------------------------------------------------------------
21105       IF l_acc_rev_flag IS NULL THEN
21102    BEGIN
21103       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21104                               (g_array_event(p_event_id).array_value_num('header_index'));
21106          l_acc_rev_flag := 'N';
21107       END IF;
21108    EXCEPTION
21109       WHEN OTHERS THEN
21110          l_acc_rev_flag := 'N';
21111    END;
21112    --
21113    IF (l_acc_rev_flag = 'Y') THEN
21114 
21115        -- 4645092  ------------------------------------------------------------------------------
21116        -- To allow MPA report to determine if it should generate report process
21117        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21118        ------------------------------------------------------------------------------------------
21119 
21120        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21121        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21122    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21123    -- call ADRs
21124    -- Bug 4922099
21125    --
21126    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21127         (NVL(l_actual_upg_option, 'N') = 'O') OR
21128         (NVL(l_enc_upg_option, 'N') = 'O')
21129       )
21130    THEN
21131    NULL;
21132    --
21133    --
21134    
21135    --
21136    --
21137    END IF;
21138 
21139        --
21140        -- Update the line information that should be overwritten
21141        --
21142        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21143                                          p_header_num   => 1);
21144        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21145 
21146        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21147 
21148        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21149           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21150        END IF;
21151 
21152       --
21153       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21154       --
21155       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21156           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21157       ELSE
21158           ---------------------------------------------------------------------------------------------------
21159           -- 4262811a Switch Sign
21160           ---------------------------------------------------------------------------------------------------
21161           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21162           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21163                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21164           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21165                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21166           -- 5132302
21167           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21168                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21169 
21170       END IF;
21171 
21172       -- 4955764
21173       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21174       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21175 
21176 
21177       XLA_AE_LINES_PKG.ValidateCurrentLine;
21178       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21179 
21180       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21181                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21182                ,p_balance_type_code => l_balance_type_code);
21183 
21184    END IF;
21185 
21186    -----------------------------------------------------------------------------------------
21187    -- 4262811 Multiperiod Accounting
21188    -----------------------------------------------------------------------------------------
21189      -- No MPA option is assigned.
21190 
21191 
21192 END IF;
21193 END IF;
21194 --
21195 
21196 --
21197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21198    trace
21199       (p_msg      => 'END of AcctLineType_58'
21200       ,p_level    => C_LEVEL_PROCEDURE
21201       ,p_module   => l_log_module);
21202 END IF;
21203 --
21204 EXCEPTION
21205   WHEN xla_exceptions_pkg.application_exception THEN
21206       RAISE;
21207   WHEN OTHERS THEN
21208        xla_exceptions_pkg.raise_message
21209            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_58');
21210 END AcctLineType_58;
21211 --
21212 
21213 ---------------------------------------
21214 --
21215 -- PRIVATE FUNCTION
21216 --         AcctLineType_59
21217 --
21218 ---------------------------------------
21219 PROCEDURE AcctLineType_59 (
21220   p_application_id        IN NUMBER
21221  ,p_event_id              IN NUMBER
21222  ,p_calculate_acctd_flag  IN VARCHAR2
21223  ,p_calculate_g_l_flag    IN VARCHAR2
21224  ,p_actual_flag           IN OUT VARCHAR2
21225  ,p_balance_type_code     OUT VARCHAR2
21229  , p_source_38            IN VARCHAR2
21226  ,p_gain_or_loss_ref      OUT VARCHAR2
21227  
21228 --When to Account for Payment Option
21230 --Payment Distribution Type
21231  , p_source_39            IN VARCHAR2
21232  , p_source_39_meaning    IN VARCHAR2
21233 --Accounting Reversal Indicator
21234  , p_source_40            IN VARCHAR2
21235 --Payment Distribution Amount
21236  , p_source_41            IN NUMBER
21237 --Business Flow Accounts Payable Application Identifier
21238  , p_source_42            IN NUMBER
21239 --Business Flow Payment Distribution Type
21240  , p_source_43            IN VARCHAR2
21241 --Business Flow Payment Entity Code
21242  , p_source_44            IN VARCHAR2
21243 --Business Flow Payment Distribution Identifier
21244  , p_source_45            IN NUMBER
21245 --Business Flow Payment Identifier
21246  , p_source_46            IN NUMBER
21247 --Payment Distribution Identifier
21248  , p_source_47            IN NUMBER
21249 --Distribution Link Type
21250  , p_source_48            IN VARCHAR2
21251 --Payment Currency Code
21252  , p_source_49            IN VARCHAR2
21253 --Override Accounted Amount Indicator
21254  , p_source_53            IN VARCHAR2
21255  , p_source_53_meaning    IN VARCHAR2
21256 --Third Party Type
21257  , p_source_56            IN VARCHAR2
21258 --Payment Distribution Reversed Identifier
21259  , p_source_57            IN NUMBER
21260 --Invoice Distribution Tax Line Identifier
21261  , p_source_58            IN NUMBER
21262 --Invoice Distribution Summary Tax Line Identifier
21263  , p_source_59            IN NUMBER
21264 --Payment Maturity Date
21265  , p_source_111            IN DATE
21266 --Payment Distribution (Invoice Rate) Ledger Amount
21267  , p_source_112            IN NUMBER
21268 )
21269 IS
21270 
21271 l_component_type              VARCHAR2(80);
21272 l_component_code              VARCHAR2(30);
21273 l_component_type_code         VARCHAR2(1);
21274 l_component_appl_id           INTEGER;
21275 l_amb_context_code            VARCHAR2(30);
21276 l_entity_code                 VARCHAR2(30);
21277 l_event_class_code            VARCHAR2(30);
21278 l_ae_header_id                NUMBER;
21279 l_event_type_code             VARCHAR2(30);
21280 l_line_definition_code        VARCHAR2(30);
21281 l_line_definition_owner_code  VARCHAR2(1);
21282 --
21283 -- adr variables
21284 l_segment                     VARCHAR2(30);
21285 l_ccid                        NUMBER;
21286 l_adr_transaction_coa_id      NUMBER;
21287 l_adr_accounting_coa_id       NUMBER;
21288 l_adr_flexfield_segment_code  VARCHAR2(30);
21289 l_adr_flex_value_set_id       NUMBER;
21290 l_adr_value_type_code         VARCHAR2(30);
21291 l_adr_value_combination_id    NUMBER;
21292 l_adr_value_segment_code      VARCHAR2(30);
21293 
21294 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21295 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21296 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21297 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21298 
21299 -- 4262811 Variables ------------------------------------------------------------------------------------------
21300 l_entered_amt_idx             NUMBER;
21301 l_accted_amt_idx              NUMBER;
21302 l_acc_rev_flag                VARCHAR2(1);
21303 l_accrual_line_num            NUMBER;
21304 l_tmp_amt                     NUMBER;
21305 l_acc_rev_natural_side_code   VARCHAR2(1);
21306 
21307 l_num_entries                 NUMBER;
21308 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21309 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21310 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21311 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21312 l_recog_line_1                NUMBER;
21313 l_recog_line_2                NUMBER;
21314 
21315 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21316 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21317 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21318 
21319 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21320 
21321 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21322 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21323 
21324 ---------------------------------------------------------------------------------------------------------------
21325 
21326 
21327 --
21328 -- bulk performance
21329 --
21330 l_balance_type_code           VARCHAR2(1);
21331 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21332 l_log_module                  VARCHAR2(240);
21333 
21334 --
21335 -- Upgrade strategy
21336 --
21337 l_actual_upg_option           VARCHAR2(1);
21338 l_enc_upg_option           VARCHAR2(1);
21339 
21340 --
21341 BEGIN
21342 --
21343 IF g_log_enabled THEN
21344       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
21345 END IF;
21346 --
21347 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21348 
21349       trace
21350          (p_msg      => 'BEGIN of AcctLineType_59'
21351          ,p_level    => C_LEVEL_PROCEDURE
21352          ,p_module   => l_log_module);
21353 
21354 END IF;
21355 --
21356 l_component_type             := 'AMB_JLT';
21360 l_amb_context_code           := 'DEFAULT';
21357 l_component_code             := 'AP_CASH_CLEAR_CLEAR_INVXRATE';
21358 l_component_type_code        := 'S';
21359 l_component_appl_id          :=  200;
21361 l_entity_code                := 'AP_PAYMENTS';
21362 l_event_class_code           := 'RECONCILED PAYMENTS';
21363 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
21364 l_line_definition_owner_code := 'S';
21365 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
21366 --
21367 l_balance_type_code          := 'A';
21368 l_segment                     := NULL;
21369 l_ccid                        := NULL;
21370 l_adr_transaction_coa_id      := NULL;
21371 l_adr_accounting_coa_id       := NULL;
21372 l_adr_flexfield_segment_code  := NULL;
21373 l_adr_flex_value_set_id       := NULL;
21374 l_adr_value_type_code         := NULL;
21375 l_adr_value_combination_id    := NULL;
21376 l_adr_value_segment_code      := NULL;
21377 
21378 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
21379 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
21380 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21381 l_budgetary_control_flag     := 'N';
21382 
21383 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21384 l_bflow_applied_to_amt       := NULL; -- 5132302
21385 l_entered_amt_idx            := NULL;          -- 4262811
21386 l_accted_amt_idx             := NULL;          -- 4262811
21387 l_acc_rev_flag               := NULL;          -- 4262811
21388 l_accrual_line_num           := NULL;          -- 4262811
21389 l_tmp_amt                    := NULL;          -- 4262811
21390 --
21391  
21392 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21393     l_balance_type_code <> 'B' THEN
21394 IF NVL(p_source_38,'
21395 ') =  'ALWAYS_CLEAR' AND 
21396 NVL(p_source_39,'
21397 ') =  'CASH' AND 
21398 p_source_111 IS NULL 
21399  THEN 
21400 
21401    --
21402    XLA_AE_LINES_PKG.SetNewLine;
21403 
21404    p_balance_type_code          := l_balance_type_code;
21405    -- set the flag so later we will know whether the gain loss line needs to be created
21406    
21407    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21408      p_actual_flag :='A';
21409    END IF;
21410 
21411    --
21412    -- bulk performance
21413    --
21414    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21415                                       p_header_num   => 0); -- 4262811
21416    --
21417    -- set accounting line options
21418    --
21419    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21420            p_natural_side_code          => 'D'
21421          , p_gain_or_loss_flag          => 'N'
21422          , p_gl_transfer_mode_code      => 'S'
21423          , p_acct_entry_type_code       => 'A'
21424          , p_switch_side_flag           => 'Y'
21425          , p_merge_duplicate_code       => 'A'
21426          );
21427    --
21428    l_acc_rev_natural_side_code := 'C';  -- 4262811
21429    -- 
21430    --
21431    -- set accounting line type info
21432    --
21433    xla_ae_lines_pkg.SetAcctLineType
21434       (p_component_type             => l_component_type
21435       ,p_event_type_code            => l_event_type_code
21436       ,p_line_definition_owner_code => l_line_definition_owner_code
21437       ,p_line_definition_code       => l_line_definition_code
21438       ,p_accounting_line_code       => l_component_code
21439       ,p_accounting_line_type_code  => l_component_type_code
21440       ,p_accounting_line_appl_id    => l_component_appl_id
21441       ,p_amb_context_code           => l_amb_context_code
21442       ,p_entity_code                => l_entity_code
21443       ,p_event_class_code           => l_event_class_code);
21444    --
21445    -- set accounting class
21446    --
21447    xla_ae_lines_pkg.SetAcctClass(
21448            p_accounting_class_code  => 'CASH_CLEARING'
21449          , p_ae_header_id           => l_ae_header_id
21450          );
21451 
21452    --
21453    -- set rounding class
21454    --
21455    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21456                       'CASH_CLEARING';
21457 
21458    --
21459    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21460    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21461    --
21462    -- bulk performance
21463    --
21464    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21465 
21466    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21467       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21468 
21469    -- 4955764
21470    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21471       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21472 
21473    -- 4458381 Public Sector Enh
21474    
21475    --
21476    -- set accounting attributes for the line type
21477    --
21478    l_entered_amt_idx := 10;
21479    l_accted_amt_idx  := 12;
21480    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
21481    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21482    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
21486    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
21483    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21484    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
21485    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21487    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21488    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
21489    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21490    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
21491    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21492    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
21493    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21494    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
21495    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21496    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
21497    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21498    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
21499    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21500    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
21501    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21502    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
21503    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
21504    l_rec_acct_attrs.array_num_value(12)  := p_source_112;
21505    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
21506    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
21507    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
21508    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
21509    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
21510    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
21511    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
21512    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
21513    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
21514    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
21515    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
21516    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
21517    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
21518    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
21519 
21520    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21521    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21522 
21523    ---------------------------------------------------------------------------------------------------------------
21524    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21525    ---------------------------------------------------------------------------------------------------------------
21526    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21527 
21528    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21529    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21530 
21531    IF xla_accounting_cache_pkg.GetValueChar
21532          (p_source_code         => 'LEDGER_CATEGORY_CODE'
21533          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21534    AND l_bflow_method_code = 'PRIOR_ENTRY'
21535 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21536    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21537          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21538        )
21539    THEN
21540          xla_ae_lines_pkg.BflowUpgEntry
21541            (p_business_method_code    => l_bflow_method_code
21542            ,p_business_class_code     => l_bflow_class_code
21543            ,p_balance_type            => l_balance_type_code);
21544    ELSE
21545       NULL;
21546 XLA_AE_LINES_PKG.business_flow_validation(
21547                                 p_business_method_code     => l_bflow_method_code
21548                                ,p_business_class_code      => l_bflow_class_code
21549                                ,p_inherit_description_flag => l_inherit_desc_flag);
21550    END IF;
21551 
21552    --
21553    -- call analytical criteria
21554    --
21555    -- Inherited Analytical Criteria for business flow method of Prior Entry.
21556    --
21557    -- call description
21558    --
21559    -- No description or it is inherited.
21560    --
21561    -- call ADRs
21562    -- Bug 4922099
21563    --
21564    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21565         (NVL(l_actual_upg_option, 'N') = 'O') OR
21566         (NVL(l_enc_upg_option, 'N') = 'O')
21567       )
21568    THEN
21569    NULL;
21570    --
21571    --
21572    
21573    --
21574    --
21575    END IF;
21576    --
21577    -- Bug 4922099
21578    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21579           (NVL(l_enc_upg_option, 'N') = 'O')
21580         ) AND
21581         (l_bflow_method_code = 'PRIOR_ENTRY')
21582       )
21583    THEN
21584       IF
21585       --
21586       1 = 1
21587       --
21588       THEN
21589       xla_accounting_err_pkg.build_message
21590                                     (p_appli_s_name            => 'XLA'
21594                                     ,p_token_2                 => 'LINE_TYPE_NAME'
21591                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21592                                     ,p_token_1                 => 'LINE_NUMBER'
21593                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
21595                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
21596                                                                              l_component_type
21597                                                                             ,l_component_code
21598                                                                             ,l_component_type_code
21599                                                                             ,l_component_appl_id
21600                                                                             ,l_amb_context_code
21601                                                                             ,l_entity_code
21602                                                                             ,l_event_class_code
21603                                                                            )
21604                                     ,p_token_3                 => 'OWNER'
21605                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
21606                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
21607                                                                           ,p_lookup_code    => l_component_type_code
21608                                                                          )
21609                                     ,p_token_4                 => 'PRODUCT_NAME'
21610                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21611                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21612                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21613                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21614                                     ,p_ae_header_id            =>  NULL
21615                                        );
21616 
21617         IF (C_LEVEL_ERROR>= g_log_level) THEN
21618                  trace
21619                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21620                       ,p_level    => C_LEVEL_ERROR
21621                       ,p_module   => l_log_module);
21622         END IF;
21623       END IF;
21624    END IF;
21625    --
21626    --
21627    ------------------------------------------------------------------------------------------------
21628    -- 4219869 Business Flow
21629    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21630    -- Prior Entry.  Currently, the following code is always generated.
21631    ------------------------------------------------------------------------------------------------
21632    -- No ValidateCurrentLine for business flow method of Prior Entry
21633 
21634    ------------------------------------------------------------------------------------
21635    -- 4219869 Business Flow
21636    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21637    ------------------------------------------------------------------------------------
21638    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21639 
21640    ----------------------------------------------------------------------------------
21641    -- 4219869 Business Flow
21642    -- Update journal entry status -- Need to generate this within IF <condition>
21643    ----------------------------------------------------------------------------------
21644    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21645          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21646          ,p_balance_type_code => l_balance_type_code
21647          );
21648 
21649    -------------------------------------------------------------------------------------------
21650    -- 4262811 - Generate the Accrual Reversal lines
21651    -------------------------------------------------------------------------------------------
21652    BEGIN
21653       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21654                               (g_array_event(p_event_id).array_value_num('header_index'));
21655       IF l_acc_rev_flag IS NULL THEN
21656          l_acc_rev_flag := 'N';
21657       END IF;
21658    EXCEPTION
21659       WHEN OTHERS THEN
21660          l_acc_rev_flag := 'N';
21661    END;
21662    --
21663    IF (l_acc_rev_flag = 'Y') THEN
21664 
21665        -- 4645092  ------------------------------------------------------------------------------
21666        -- To allow MPA report to determine if it should generate report process
21667        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21668        ------------------------------------------------------------------------------------------
21669 
21670        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21671        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21672    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21673    -- call ADRs
21674    -- Bug 4922099
21675    --
21676    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21677         (NVL(l_actual_upg_option, 'N') = 'O') OR
21678         (NVL(l_enc_upg_option, 'N') = 'O')
21679       )
21680    THEN
21681    NULL;
21682    --
21686    --
21683    --
21684    
21685    --
21687    END IF;
21688 
21689        --
21690        -- Update the line information that should be overwritten
21691        --
21692        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21693                                          p_header_num   => 1);
21694        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21695 
21696        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21697 
21698        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21699           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21700        END IF;
21701 
21702       --
21703       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21704       --
21705       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21706           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21707       ELSE
21708           ---------------------------------------------------------------------------------------------------
21709           -- 4262811a Switch Sign
21710           ---------------------------------------------------------------------------------------------------
21711           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21712           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21713                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21714           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21715                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21716           -- 5132302
21717           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21718                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21719 
21720       END IF;
21721 
21722       -- 4955764
21723       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21724       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21725 
21726 
21727       XLA_AE_LINES_PKG.ValidateCurrentLine;
21728       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21729 
21730       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21731                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21732                ,p_balance_type_code => l_balance_type_code);
21733 
21734    END IF;
21735 
21736    -----------------------------------------------------------------------------------------
21737    -- 4262811 Multiperiod Accounting
21738    -----------------------------------------------------------------------------------------
21739      -- No MPA option is assigned.
21740 
21741 
21742 END IF;
21743 END IF;
21744 --
21745 
21746 --
21747 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21748    trace
21749       (p_msg      => 'END of AcctLineType_59'
21750       ,p_level    => C_LEVEL_PROCEDURE
21751       ,p_module   => l_log_module);
21752 END IF;
21753 --
21754 EXCEPTION
21755   WHEN xla_exceptions_pkg.application_exception THEN
21756       RAISE;
21757   WHEN OTHERS THEN
21758        xla_exceptions_pkg.raise_message
21759            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_59');
21760 END AcctLineType_59;
21761 --
21762 
21763 ---------------------------------------
21764 --
21765 -- PRIVATE FUNCTION
21766 --         AcctLineType_60
21767 --
21768 ---------------------------------------
21769 PROCEDURE AcctLineType_60 (
21770   p_application_id        IN NUMBER
21771  ,p_event_id              IN NUMBER
21772  ,p_calculate_acctd_flag  IN VARCHAR2
21773  ,p_calculate_g_l_flag    IN VARCHAR2
21774  ,p_actual_flag           IN OUT VARCHAR2
21775  ,p_balance_type_code     OUT VARCHAR2
21776  ,p_gain_or_loss_ref      OUT VARCHAR2
21777  
21778 --Payment Distribution (Payment Rate) Ledger Amount
21779  , p_source_9            IN NUMBER
21780 --Bank Cash Clearing Account
21781  , p_source_21            IN NUMBER
21782 --Automatic Offsets Flag
21783  , p_source_30            IN VARCHAR2
21784  , p_source_30_meaning    IN VARCHAR2
21785 --When to Account for Payment Option
21786  , p_source_38            IN VARCHAR2
21787 --Payment Distribution Type
21788  , p_source_39            IN VARCHAR2
21789  , p_source_39_meaning    IN VARCHAR2
21790 --Accounting Reversal Indicator
21791  , p_source_40            IN VARCHAR2
21792 --Payment Distribution Amount
21793  , p_source_41            IN NUMBER
21794 --Business Flow Accounts Payable Application Identifier
21795  , p_source_42            IN NUMBER
21796 --Payment Distribution Identifier
21797  , p_source_47            IN NUMBER
21798 --Distribution Link Type
21799  , p_source_48            IN VARCHAR2
21800 --Payment Currency Code
21801  , p_source_49            IN VARCHAR2
21802 --Override Accounted Amount Indicator
21803  , p_source_53            IN VARCHAR2
21804  , p_source_53_meaning    IN VARCHAR2
21805 --Payment Supplier Identifier
21806  , p_source_54            IN NUMBER
21807 --Payment Supplier Site Identifier
21811 --Payment Distribution Reversed Identifier
21808  , p_source_55            IN NUMBER
21809 --Third Party Type
21810  , p_source_56            IN VARCHAR2
21812  , p_source_57            IN NUMBER
21813 --Invoice Distribution Tax Line Identifier
21814  , p_source_58            IN NUMBER
21815 --Invoice Distribution Summary Tax Line Identifier
21816  , p_source_59            IN NUMBER
21817 --Payment Type
21818  , p_source_60            IN VARCHAR2
21819  , p_source_60_meaning    IN VARCHAR2
21820 --Invoice Distribution Amount of the Payment Distribution
21821  , p_source_61            IN NUMBER
21822 --Business Flow Invoice Distribution Type
21823  , p_source_62            IN VARCHAR2
21824 --Business Flow Invoice Entity Code
21825  , p_source_63            IN VARCHAR2
21826 --Business Flow Invoice Distribution Identifier
21827  , p_source_64            IN NUMBER
21828 --Business Flow Invoice Identifier
21829  , p_source_65            IN NUMBER
21830 --Invoice Distribution Tax Distribution Identifier from Tax
21831  , p_source_66            IN NUMBER
21832 --Pooled Bank Account Option
21833  , p_source_110            IN VARCHAR2
21834  , p_source_110_meaning    IN VARCHAR2
21835 --Payment Maturity Date
21836  , p_source_111            IN DATE
21837 --Payment Processing Type
21838  , p_source_113            IN VARCHAR2
21839 --Payment Exchange Date
21840  , p_source_114            IN DATE
21841 --Payment Exchange Rate
21842  , p_source_115            IN NUMBER
21843 --Payment Exchange Rate Type
21844  , p_source_116            IN VARCHAR2
21845 )
21846 IS
21847 
21848 l_component_type              VARCHAR2(80);
21849 l_component_code              VARCHAR2(30);
21850 l_component_type_code         VARCHAR2(1);
21851 l_component_appl_id           INTEGER;
21852 l_amb_context_code            VARCHAR2(30);
21853 l_entity_code                 VARCHAR2(30);
21854 l_event_class_code            VARCHAR2(30);
21855 l_ae_header_id                NUMBER;
21856 l_event_type_code             VARCHAR2(30);
21857 l_line_definition_code        VARCHAR2(30);
21858 l_line_definition_owner_code  VARCHAR2(1);
21859 --
21860 -- adr variables
21861 l_segment                     VARCHAR2(30);
21862 l_ccid                        NUMBER;
21863 l_adr_transaction_coa_id      NUMBER;
21864 l_adr_accounting_coa_id       NUMBER;
21865 l_adr_flexfield_segment_code  VARCHAR2(30);
21866 l_adr_flex_value_set_id       NUMBER;
21867 l_adr_value_type_code         VARCHAR2(30);
21868 l_adr_value_combination_id    NUMBER;
21869 l_adr_value_segment_code      VARCHAR2(30);
21870 
21871 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21872 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21873 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21874 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21875 
21876 -- 4262811 Variables ------------------------------------------------------------------------------------------
21877 l_entered_amt_idx             NUMBER;
21878 l_accted_amt_idx              NUMBER;
21879 l_acc_rev_flag                VARCHAR2(1);
21880 l_accrual_line_num            NUMBER;
21881 l_tmp_amt                     NUMBER;
21882 l_acc_rev_natural_side_code   VARCHAR2(1);
21883 
21884 l_num_entries                 NUMBER;
21885 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21886 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21887 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21888 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21889 l_recog_line_1                NUMBER;
21890 l_recog_line_2                NUMBER;
21891 
21892 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21893 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21894 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21895 
21896 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21897 
21898 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21899 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21900 
21901 ---------------------------------------------------------------------------------------------------------------
21902 
21903 
21904 --
21905 -- bulk performance
21906 --
21907 l_balance_type_code           VARCHAR2(1);
21908 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21909 l_log_module                  VARCHAR2(240);
21910 
21911 --
21912 -- Upgrade strategy
21913 --
21914 l_actual_upg_option           VARCHAR2(1);
21915 l_enc_upg_option           VARCHAR2(1);
21916 
21917 --
21918 BEGIN
21919 --
21920 IF g_log_enabled THEN
21921       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
21922 END IF;
21923 --
21924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21925 
21926       trace
21927          (p_msg      => 'BEGIN of AcctLineType_60'
21928          ,p_level    => C_LEVEL_PROCEDURE
21929          ,p_module   => l_log_module);
21930 
21931 END IF;
21932 --
21933 l_component_type             := 'AMB_JLT';
21934 l_component_code             := 'AP_CASH_CLEAR_PMT';
21935 l_component_type_code        := 'S';
21936 l_component_appl_id          :=  200;
21940 l_event_type_code            := 'PAYMENTS_ALL';
21937 l_amb_context_code           := 'DEFAULT';
21938 l_entity_code                := 'AP_PAYMENTS';
21939 l_event_class_code           := 'PAYMENTS';
21941 l_line_definition_owner_code := 'S';
21942 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
21943 --
21944 l_balance_type_code          := 'A';
21945 l_segment                     := NULL;
21946 l_ccid                        := NULL;
21947 l_adr_transaction_coa_id      := NULL;
21948 l_adr_accounting_coa_id       := NULL;
21949 l_adr_flexfield_segment_code  := NULL;
21950 l_adr_flex_value_set_id       := NULL;
21951 l_adr_value_type_code         := NULL;
21952 l_adr_value_combination_id    := NULL;
21953 l_adr_value_segment_code      := NULL;
21954 
21955 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
21956 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
21957 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21958 l_budgetary_control_flag     := 'N';
21959 
21960 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21961 l_bflow_applied_to_amt       := NULL; -- 5132302
21962 l_entered_amt_idx            := NULL;          -- 4262811
21963 l_accted_amt_idx             := NULL;          -- 4262811
21964 l_acc_rev_flag               := NULL;          -- 4262811
21965 l_accrual_line_num           := NULL;          -- 4262811
21966 l_tmp_amt                    := NULL;          -- 4262811
21967 --
21968  
21969 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21970     l_balance_type_code <> 'B' THEN
21971 IF NVL(p_source_38,'
21972 ') =  'ALWAYS_ALWAYS' AND 
21973 (NVL(p_source_30,'
21974 ') <>  'Y' OR 
21975 NVL(p_source_30,'
21976 ') =  'Y' AND 
21977 NVL(p_source_110,'
21978 ') <>  'Y') AND 
21979 p_source_111 IS NULL AND 
21980 NVL(p_source_39,'
21981 ') =  'CASH' AND 
21982 NVL(p_source_60,'
21983 ') <>  'R' AND 
21984 NVL(p_source_113,'
21985 ') <>  'PAYMENTCARD'
21986  THEN 
21987 
21988    --
21989    XLA_AE_LINES_PKG.SetNewLine;
21990 
21991    p_balance_type_code          := l_balance_type_code;
21992    -- set the flag so later we will know whether the gain loss line needs to be created
21993    
21994    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21995      p_actual_flag :='A';
21996    END IF;
21997 
21998    --
21999    -- bulk performance
22000    --
22001    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22002                                       p_header_num   => 0); -- 4262811
22003    --
22004    -- set accounting line options
22005    --
22006    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22007            p_natural_side_code          => 'C'
22008          , p_gain_or_loss_flag          => 'N'
22009          , p_gl_transfer_mode_code      => 'S'
22010          , p_acct_entry_type_code       => 'A'
22011          , p_switch_side_flag           => 'Y'
22012          , p_merge_duplicate_code       => 'A'
22013          );
22014    --
22015    l_acc_rev_natural_side_code := 'D';  -- 4262811
22016    -- 
22017    --
22018    -- set accounting line type info
22019    --
22020    xla_ae_lines_pkg.SetAcctLineType
22021       (p_component_type             => l_component_type
22022       ,p_event_type_code            => l_event_type_code
22023       ,p_line_definition_owner_code => l_line_definition_owner_code
22024       ,p_line_definition_code       => l_line_definition_code
22025       ,p_accounting_line_code       => l_component_code
22026       ,p_accounting_line_type_code  => l_component_type_code
22027       ,p_accounting_line_appl_id    => l_component_appl_id
22028       ,p_amb_context_code           => l_amb_context_code
22029       ,p_entity_code                => l_entity_code
22030       ,p_event_class_code           => l_event_class_code);
22031    --
22032    -- set accounting class
22033    --
22034    xla_ae_lines_pkg.SetAcctClass(
22035            p_accounting_class_code  => 'CASH_CLEARING'
22036          , p_ae_header_id           => l_ae_header_id
22037          );
22038 
22039    --
22040    -- set rounding class
22041    --
22042    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22043                       'CASH_CLEARING';
22044 
22045    --
22046    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22047    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22048    --
22049    -- bulk performance
22050    --
22051    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22052 
22053    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22054       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22055 
22056    -- 4955764
22057    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22058       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22059 
22060    -- 4458381 Public Sector Enh
22061    
22062    --
22063    -- set accounting attributes for the line type
22064    --
22065    l_entered_amt_idx := 10;
22066    l_accted_amt_idx  := 15;
22067    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
22068    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22069    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
22073    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
22070    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22071    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
22072    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22074    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22075    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
22076    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22077    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
22078    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22079    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
22080    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22081    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
22082    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22083    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
22084    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22085    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
22086    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22087    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
22088    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22089    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
22090    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22091    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
22092    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22093    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
22094    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22095    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
22096    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22097    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
22098    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
22099    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
22100    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
22101    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
22102    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
22103    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
22104    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
22105    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
22106    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22107    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
22108    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22109    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
22110    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
22111    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
22112    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
22113    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
22114    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
22115    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
22116 
22117    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22118    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22119 
22120    ---------------------------------------------------------------------------------------------------------------
22121    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22122    ---------------------------------------------------------------------------------------------------------------
22123    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22124 
22125    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22126    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22127 
22128    IF xla_accounting_cache_pkg.GetValueChar
22129          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22130          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22131    AND l_bflow_method_code = 'PRIOR_ENTRY'
22132 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22133    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22134          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22135        )
22136    THEN
22137          xla_ae_lines_pkg.BflowUpgEntry
22138            (p_business_method_code    => l_bflow_method_code
22139            ,p_business_class_code     => l_bflow_class_code
22140            ,p_balance_type            => l_balance_type_code);
22141    ELSE
22142       NULL;
22143 -- No business flow processing for business flow method of NONE.
22144    END IF;
22145 
22146    --
22147    -- call analytical criteria
22148    --
22149    
22150    --
22151    -- call description
22152    --
22153    -- No description or it is inherited.
22154    --
22155    -- call ADRs
22156    -- Bug 4922099
22157    --
22158    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22159         (NVL(l_actual_upg_option, 'N') = 'O') OR
22160         (NVL(l_enc_upg_option, 'N') = 'O')
22161       )
22162    THEN
22163    NULL;
22164    --
22165    --
22166    
22167   l_ccid := AcctDerRule_28(
22168            p_application_id           => p_application_id
22172          , x_accounting_coa_id        => l_adr_accounting_coa_id
22169          , p_ae_header_id             => l_ae_header_id 
22170 , p_source_21 => p_source_21
22171          , x_transaction_coa_id       => l_adr_transaction_coa_id
22173          , x_value_type_code          => l_adr_value_type_code
22174          , p_side                     => 'NA'
22175    );
22176 
22177    xla_ae_lines_pkg.set_ccid(
22178     p_code_combination_id          => l_ccid
22179   , p_value_type_code              => l_adr_value_type_code
22180   , p_transaction_coa_id           => l_adr_transaction_coa_id
22181   , p_accounting_coa_id            => l_adr_accounting_coa_id
22182   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
22183   , p_adr_type_code                => 'S'
22184   , p_component_type               => l_component_type
22185   , p_component_code               => l_component_code
22186   , p_component_type_code          => l_component_type_code
22187   , p_component_appl_id            => l_component_appl_id
22188   , p_amb_context_code             => l_amb_context_code
22189   , p_side                         => 'NA'
22190   );
22191 
22192 
22193    --
22194    --
22195    END IF;
22196    --
22197    -- Bug 4922099
22198    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22199           (NVL(l_enc_upg_option, 'N') = 'O')
22200         ) AND
22201         (l_bflow_method_code = 'PRIOR_ENTRY')
22202       )
22203    THEN
22204       IF
22205       --
22206       1 = 2
22207       --
22208       THEN
22209       xla_accounting_err_pkg.build_message
22210                                     (p_appli_s_name            => 'XLA'
22211                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22212                                     ,p_token_1                 => 'LINE_NUMBER'
22213                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22214                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22215                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22216                                                                              l_component_type
22217                                                                             ,l_component_code
22218                                                                             ,l_component_type_code
22219                                                                             ,l_component_appl_id
22220                                                                             ,l_amb_context_code
22221                                                                             ,l_entity_code
22222                                                                             ,l_event_class_code
22223                                                                            )
22224                                     ,p_token_3                 => 'OWNER'
22225                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22226                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22227                                                                           ,p_lookup_code    => l_component_type_code
22228                                                                          )
22229                                     ,p_token_4                 => 'PRODUCT_NAME'
22230                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22231                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22232                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22233                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22234                                     ,p_ae_header_id            =>  NULL
22235                                        );
22236 
22237         IF (C_LEVEL_ERROR>= g_log_level) THEN
22238                  trace
22239                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22240                       ,p_level    => C_LEVEL_ERROR
22241                       ,p_module   => l_log_module);
22242         END IF;
22243       END IF;
22244    END IF;
22245    --
22246    --
22247    ------------------------------------------------------------------------------------------------
22248    -- 4219869 Business Flow
22249    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22250    -- Prior Entry.  Currently, the following code is always generated.
22251    ------------------------------------------------------------------------------------------------
22252    XLA_AE_LINES_PKG.ValidateCurrentLine;
22253 
22254    ------------------------------------------------------------------------------------
22255    -- 4219869 Business Flow
22256    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22257    ------------------------------------------------------------------------------------
22258    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22259 
22260    ----------------------------------------------------------------------------------
22261    -- 4219869 Business Flow
22262    -- Update journal entry status -- Need to generate this within IF <condition>
22263    ----------------------------------------------------------------------------------
22267          );
22264    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22265          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22266          ,p_balance_type_code => l_balance_type_code
22268 
22269    -------------------------------------------------------------------------------------------
22270    -- 4262811 - Generate the Accrual Reversal lines
22271    -------------------------------------------------------------------------------------------
22272    BEGIN
22273       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22274                               (g_array_event(p_event_id).array_value_num('header_index'));
22275       IF l_acc_rev_flag IS NULL THEN
22276          l_acc_rev_flag := 'N';
22277       END IF;
22278    EXCEPTION
22279       WHEN OTHERS THEN
22280          l_acc_rev_flag := 'N';
22281    END;
22282    --
22283    IF (l_acc_rev_flag = 'Y') THEN
22284 
22285        -- 4645092  ------------------------------------------------------------------------------
22286        -- To allow MPA report to determine if it should generate report process
22287        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22288        ------------------------------------------------------------------------------------------
22289 
22290        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22291        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22292    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22293    -- call ADRs
22294    -- Bug 4922099
22295    --
22296    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22297         (NVL(l_actual_upg_option, 'N') = 'O') OR
22298         (NVL(l_enc_upg_option, 'N') = 'O')
22299       )
22300    THEN
22301    NULL;
22302    --
22303    --
22304    
22305   l_ccid := AcctDerRule_28(
22306            p_application_id           => p_application_id
22307          , p_ae_header_id             => l_ae_header_id 
22308 , p_source_21 => p_source_21
22309          , x_transaction_coa_id       => l_adr_transaction_coa_id
22310          , x_accounting_coa_id        => l_adr_accounting_coa_id
22311          , x_value_type_code          => l_adr_value_type_code
22312          , p_side                     => 'NA'
22313    );
22314 
22315    xla_ae_lines_pkg.set_ccid(
22316     p_code_combination_id          => l_ccid
22317   , p_value_type_code              => l_adr_value_type_code
22318   , p_transaction_coa_id           => l_adr_transaction_coa_id
22319   , p_accounting_coa_id            => l_adr_accounting_coa_id
22320   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
22321   , p_adr_type_code                => 'S'
22322   , p_component_type               => l_component_type
22323   , p_component_code               => l_component_code
22324   , p_component_type_code          => l_component_type_code
22325   , p_component_appl_id            => l_component_appl_id
22326   , p_amb_context_code             => l_amb_context_code
22327   , p_side                         => 'NA'
22328   );
22329 
22330 
22331    --
22332    --
22333    END IF;
22334 
22335        --
22336        -- Update the line information that should be overwritten
22337        --
22338        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22339                                          p_header_num   => 1);
22340        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22341 
22342        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22343 
22344        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22345           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22346        END IF;
22347 
22348       --
22349       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22350       --
22351       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22352           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22353       ELSE
22354           ---------------------------------------------------------------------------------------------------
22355           -- 4262811a Switch Sign
22356           ---------------------------------------------------------------------------------------------------
22357           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22358           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22359                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22360           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22361                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22362           -- 5132302
22363           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22364                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22365 
22366       END IF;
22367 
22368       -- 4955764
22369       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22370       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22371 
22372 
22373       XLA_AE_LINES_PKG.ValidateCurrentLine;
22374       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22375 
22376       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22380    END IF;
22377                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22378                ,p_balance_type_code => l_balance_type_code);
22379 
22381 
22382    -----------------------------------------------------------------------------------------
22383    -- 4262811 Multiperiod Accounting
22384    -----------------------------------------------------------------------------------------
22385      -- No MPA option is assigned.
22386 
22387 
22388 END IF;
22389 END IF;
22390 --
22391 
22392 --
22393 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22394    trace
22395       (p_msg      => 'END of AcctLineType_60'
22396       ,p_level    => C_LEVEL_PROCEDURE
22397       ,p_module   => l_log_module);
22398 END IF;
22399 --
22400 EXCEPTION
22401   WHEN xla_exceptions_pkg.application_exception THEN
22402       RAISE;
22403   WHEN OTHERS THEN
22404        xla_exceptions_pkg.raise_message
22405            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_60');
22406 END AcctLineType_60;
22407 --
22408 
22409 ---------------------------------------
22410 --
22411 -- PRIVATE FUNCTION
22412 --         AcctLineType_61
22413 --
22414 ---------------------------------------
22415 PROCEDURE AcctLineType_61 (
22416   p_application_id        IN NUMBER
22417  ,p_event_id              IN NUMBER
22418  ,p_calculate_acctd_flag  IN VARCHAR2
22419  ,p_calculate_g_l_flag    IN VARCHAR2
22420  ,p_actual_flag           IN OUT VARCHAR2
22421  ,p_balance_type_code     OUT VARCHAR2
22422  ,p_gain_or_loss_ref      OUT VARCHAR2
22423  
22424 --Automatic Offsets Value
22425  , p_source_4            IN VARCHAR2
22426  , p_source_4_meaning    IN VARCHAR2
22427 --Payment Distribution (Payment Rate) Ledger Amount
22428  , p_source_9            IN NUMBER
22429 --Bank Cash Clearing Account
22430  , p_source_21            IN NUMBER
22431 --When to Account for Payment Option
22432  , p_source_38            IN VARCHAR2
22433 --Payment Distribution Type
22434  , p_source_39            IN VARCHAR2
22435  , p_source_39_meaning    IN VARCHAR2
22436 --Accounting Reversal Indicator
22437  , p_source_40            IN VARCHAR2
22438 --Payment Distribution Amount
22439  , p_source_41            IN NUMBER
22440 --Business Flow Accounts Payable Application Identifier
22441  , p_source_42            IN NUMBER
22442 --Payment Distribution Identifier
22443  , p_source_47            IN NUMBER
22444 --Distribution Link Type
22445  , p_source_48            IN VARCHAR2
22446 --Payment Currency Code
22447  , p_source_49            IN VARCHAR2
22448 --Override Accounted Amount Indicator
22449  , p_source_53            IN VARCHAR2
22450  , p_source_53_meaning    IN VARCHAR2
22451 --Payment Supplier Identifier
22452  , p_source_54            IN NUMBER
22453 --Payment Supplier Site Identifier
22454  , p_source_55            IN NUMBER
22455 --Third Party Type
22456  , p_source_56            IN VARCHAR2
22457 --Payment Distribution Reversed Identifier
22458  , p_source_57            IN NUMBER
22459 --Invoice Distribution Tax Line Identifier
22460  , p_source_58            IN NUMBER
22461 --Invoice Distribution Summary Tax Line Identifier
22462  , p_source_59            IN NUMBER
22463 --Payment Type
22464  , p_source_60            IN VARCHAR2
22465  , p_source_60_meaning    IN VARCHAR2
22466 --Invoice Distribution Amount of the Payment Distribution
22467  , p_source_61            IN NUMBER
22468 --Business Flow Invoice Distribution Type
22469  , p_source_62            IN VARCHAR2
22470 --Business Flow Invoice Entity Code
22471  , p_source_63            IN VARCHAR2
22472 --Business Flow Invoice Distribution Identifier
22473  , p_source_64            IN NUMBER
22474 --Business Flow Invoice Identifier
22475  , p_source_65            IN NUMBER
22476 --Invoice Distribution Tax Distribution Identifier from Tax
22477  , p_source_66            IN NUMBER
22478 --Pooled Bank Account Option
22479  , p_source_110            IN VARCHAR2
22480  , p_source_110_meaning    IN VARCHAR2
22481 --Payment Maturity Date
22482  , p_source_111            IN DATE
22483 --Payment Processing Type
22484  , p_source_113            IN VARCHAR2
22485 --Payment Exchange Date
22486  , p_source_114            IN DATE
22487 --Payment Exchange Rate
22488  , p_source_115            IN NUMBER
22489 --Payment Exchange Rate Type
22490  , p_source_116            IN VARCHAR2
22491 )
22492 IS
22493 
22494 l_component_type              VARCHAR2(80);
22495 l_component_code              VARCHAR2(30);
22496 l_component_type_code         VARCHAR2(1);
22497 l_component_appl_id           INTEGER;
22498 l_amb_context_code            VARCHAR2(30);
22499 l_entity_code                 VARCHAR2(30);
22500 l_event_class_code            VARCHAR2(30);
22501 l_ae_header_id                NUMBER;
22502 l_event_type_code             VARCHAR2(30);
22503 l_line_definition_code        VARCHAR2(30);
22504 l_line_definition_owner_code  VARCHAR2(1);
22505 --
22506 -- adr variables
22507 l_segment                     VARCHAR2(30);
22508 l_ccid                        NUMBER;
22509 l_adr_transaction_coa_id      NUMBER;
22510 l_adr_accounting_coa_id       NUMBER;
22511 l_adr_flexfield_segment_code  VARCHAR2(30);
22512 l_adr_flex_value_set_id       NUMBER;
22513 l_adr_value_type_code         VARCHAR2(30);
22514 l_adr_value_combination_id    NUMBER;
22515 l_adr_value_segment_code      VARCHAR2(30);
22516 
22520 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
22517 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
22518 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
22519 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
22521 
22522 -- 4262811 Variables ------------------------------------------------------------------------------------------
22523 l_entered_amt_idx             NUMBER;
22524 l_accted_amt_idx              NUMBER;
22525 l_acc_rev_flag                VARCHAR2(1);
22526 l_accrual_line_num            NUMBER;
22527 l_tmp_amt                     NUMBER;
22528 l_acc_rev_natural_side_code   VARCHAR2(1);
22529 
22530 l_num_entries                 NUMBER;
22531 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
22532 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
22533 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
22534 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
22535 l_recog_line_1                NUMBER;
22536 l_recog_line_2                NUMBER;
22537 
22538 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
22539 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
22540 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
22541 
22542 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22543 
22544 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
22545 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
22546 
22547 ---------------------------------------------------------------------------------------------------------------
22548 
22549 
22550 --
22551 -- bulk performance
22552 --
22553 l_balance_type_code           VARCHAR2(1);
22554 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
22555 l_log_module                  VARCHAR2(240);
22556 
22557 --
22558 -- Upgrade strategy
22559 --
22560 l_actual_upg_option           VARCHAR2(1);
22561 l_enc_upg_option           VARCHAR2(1);
22562 
22563 --
22564 BEGIN
22565 --
22566 IF g_log_enabled THEN
22567       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
22568 END IF;
22569 --
22570 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22571 
22572       trace
22573          (p_msg      => 'BEGIN of AcctLineType_61'
22574          ,p_level    => C_LEVEL_PROCEDURE
22575          ,p_module   => l_log_module);
22576 
22577 END IF;
22578 --
22579 l_component_type             := 'AMB_JLT';
22580 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_AS';
22581 l_component_type_code        := 'S';
22582 l_component_appl_id          :=  200;
22583 l_amb_context_code           := 'DEFAULT';
22584 l_entity_code                := 'AP_PAYMENTS';
22585 l_event_class_code           := 'PAYMENTS';
22586 l_event_type_code            := 'PAYMENTS_ALL';
22587 l_line_definition_owner_code := 'S';
22588 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
22589 --
22590 l_balance_type_code          := 'A';
22591 l_segment                     := NULL;
22592 l_ccid                        := NULL;
22593 l_adr_transaction_coa_id      := NULL;
22594 l_adr_accounting_coa_id       := NULL;
22595 l_adr_flexfield_segment_code  := NULL;
22596 l_adr_flex_value_set_id       := NULL;
22597 l_adr_value_type_code         := NULL;
22598 l_adr_value_combination_id    := NULL;
22599 l_adr_value_segment_code      := NULL;
22600 
22601 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
22602 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
22603 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
22604 l_budgetary_control_flag     := 'N';
22605 
22606 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
22607 l_bflow_applied_to_amt       := NULL; -- 5132302
22608 l_entered_amt_idx            := NULL;          -- 4262811
22609 l_accted_amt_idx             := NULL;          -- 4262811
22610 l_acc_rev_flag               := NULL;          -- 4262811
22611 l_accrual_line_num           := NULL;          -- 4262811
22612 l_tmp_amt                    := NULL;          -- 4262811
22613 --
22614  
22615 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22616     l_balance_type_code <> 'B' THEN
22617 IF NVL(p_source_38,'
22618 ') =  'ALWAYS_ALWAYS' AND 
22619 (NVL(p_source_110,'
22620 ') =  'Y' AND 
22621 NVL(p_source_4,'
22622 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
22623 p_source_111 IS NULL AND 
22624 NVL(p_source_39,'
22625 ') =  'CASH' AND 
22626 NVL(p_source_60,'
22627 ') <>  'R' AND 
22628 NVL(p_source_113,'
22629 ') <>  'PAYMENTCARD'
22630  THEN 
22631 
22632    --
22633    XLA_AE_LINES_PKG.SetNewLine;
22634 
22635    p_balance_type_code          := l_balance_type_code;
22636    -- set the flag so later we will know whether the gain loss line needs to be created
22637    
22638    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22639      p_actual_flag :='A';
22640    END IF;
22641 
22642    --
22643    -- bulk performance
22644    --
22645    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22646                                       p_header_num   => 0); -- 4262811
22647    --
22648    -- set accounting line options
22649    --
22653          , p_gl_transfer_mode_code      => 'S'
22650    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22651            p_natural_side_code          => 'C'
22652          , p_gain_or_loss_flag          => 'N'
22654          , p_acct_entry_type_code       => 'A'
22655          , p_switch_side_flag           => 'Y'
22656          , p_merge_duplicate_code       => 'A'
22657          );
22658    --
22659    l_acc_rev_natural_side_code := 'D';  -- 4262811
22660    -- 
22661    --
22662    -- set accounting line type info
22663    --
22664    xla_ae_lines_pkg.SetAcctLineType
22665       (p_component_type             => l_component_type
22666       ,p_event_type_code            => l_event_type_code
22667       ,p_line_definition_owner_code => l_line_definition_owner_code
22668       ,p_line_definition_code       => l_line_definition_code
22669       ,p_accounting_line_code       => l_component_code
22670       ,p_accounting_line_type_code  => l_component_type_code
22671       ,p_accounting_line_appl_id    => l_component_appl_id
22672       ,p_amb_context_code           => l_amb_context_code
22673       ,p_entity_code                => l_entity_code
22674       ,p_event_class_code           => l_event_class_code);
22675    --
22676    -- set accounting class
22677    --
22678    xla_ae_lines_pkg.SetAcctClass(
22679            p_accounting_class_code  => 'CASH_CLEARING'
22680          , p_ae_header_id           => l_ae_header_id
22681          );
22682 
22683    --
22684    -- set rounding class
22685    --
22686    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22687                       'CASH_CLEARING';
22688 
22689    --
22690    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22691    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22692    --
22693    -- bulk performance
22694    --
22695    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22696 
22697    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22698       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22699 
22700    -- 4955764
22701    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22702       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22703 
22704    -- 4458381 Public Sector Enh
22705    
22706    --
22707    -- set accounting attributes for the line type
22708    --
22709    l_entered_amt_idx := 10;
22710    l_accted_amt_idx  := 15;
22711    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
22712    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22713    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
22714    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22715    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
22716    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22717    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
22718    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22719    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
22720    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22721    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
22722    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22723    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
22724    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22725    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
22726    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22727    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
22728    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22729    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
22730    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22731    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
22732    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22733    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
22734    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22735    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
22736    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22737    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
22738    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22739    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
22740    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22741    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
22742    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
22743    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
22744    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
22745    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
22746    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
22747    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
22748    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
22749    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
22750    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22751    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
22755    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
22752    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22753    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
22754    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
22756    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
22757    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
22758    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
22759    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
22760 
22761    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22762    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22763 
22764    ---------------------------------------------------------------------------------------------------------------
22765    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22766    ---------------------------------------------------------------------------------------------------------------
22767    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22768 
22769    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22770    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22771 
22772    IF xla_accounting_cache_pkg.GetValueChar
22773          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22774          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22775    AND l_bflow_method_code = 'PRIOR_ENTRY'
22776 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22777    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22778          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22779        )
22780    THEN
22781          xla_ae_lines_pkg.BflowUpgEntry
22782            (p_business_method_code    => l_bflow_method_code
22783            ,p_business_class_code     => l_bflow_class_code
22784            ,p_balance_type            => l_balance_type_code);
22785    ELSE
22786       NULL;
22787 XLA_AE_LINES_PKG.business_flow_validation(
22788                                 p_business_method_code     => l_bflow_method_code
22789                                ,p_business_class_code      => l_bflow_class_code
22790                                ,p_inherit_description_flag => l_inherit_desc_flag);
22791    END IF;
22792 
22793    --
22794    -- call analytical criteria
22795    --
22796    
22797    --
22798    -- call description
22799    --
22800    -- No description or it is inherited.
22801    --
22802    -- call ADRs
22803    -- Bug 4922099
22804    --
22805    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22806         (NVL(l_actual_upg_option, 'N') = 'O') OR
22807         (NVL(l_enc_upg_option, 'N') = 'O')
22808       )
22809    THEN
22810    NULL;
22811    --
22812    --
22813    
22814    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
22815      p_code_combination_id      => TO_NUMBER(C_NUM)
22816    , p_value_type_code          => NULL
22817    , p_transaction_coa_id       => null
22818    , p_accounting_coa_id        => null
22819    , p_adr_code                 => NULL
22820    , p_adr_type_code            => NULL
22821    , p_component_type           => l_component_type
22822    , p_component_code           => l_component_code
22823    , p_component_type_code      => l_component_type_code
22824    , p_component_appl_id        => l_component_appl_id
22825    , p_amb_context_code         => l_amb_context_code
22826    , p_side                     => NULL
22827    );
22828 
22829    
22830   -- initialise segments
22831   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22832   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22833   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22834   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22835   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22836   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22837   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22838   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22839   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22840   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22841   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22842   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22843   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22844   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22845   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22846   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22847   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22848   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22849   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22850   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22854   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22851   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22852   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22853   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22855   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22856   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22857   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22858   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22859   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22860   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22861   --
22862 
22863    --
22864 
22865 
22866    l_segment := AcctDerRule_11(
22867            p_application_id           => p_application_id
22868          , p_ae_header_id             => l_ae_header_id 
22869 , p_source_21 => p_source_21
22870          , x_transaction_coa_id       => l_adr_transaction_coa_id
22871          , x_accounting_coa_id        => l_adr_accounting_coa_id
22872          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
22873          , x_flex_value_set_id        => l_adr_flex_value_set_id
22874          , x_value_type_code          => l_adr_value_type_code
22875          , x_value_combination_id     => l_adr_value_combination_id
22876          , x_value_segment_code       => l_adr_value_segment_code
22877          , p_side                     => 'NA'
22878          , p_override_seg_flag        => 'Y'
22879    );
22880 
22881    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
22882 
22883       xla_ae_lines_pkg.set_segment(
22884           p_to_segment_code         => 'GL_ACCOUNT'
22885         , p_segment_value           => l_segment
22886         , p_from_segment_code       => l_adr_value_segment_code
22887         , p_from_combination_id     => l_adr_value_combination_id
22888         , p_value_type_code         => l_adr_value_type_code
22889         , p_transaction_coa_id      => l_adr_transaction_coa_id
22890         , p_accounting_coa_id       => l_adr_accounting_coa_id
22891         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
22892         , p_flex_value_set_id       => l_adr_flex_value_set_id
22893         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22894         , p_adr_type_code           => 'S'
22895         , p_component_type          => l_component_type
22896         , p_component_code          => l_component_code
22897         , p_component_type_code     => l_component_type_code
22898         , p_component_appl_id       => l_component_appl_id
22899         , p_amb_context_code        => l_amb_context_code
22900         , p_entity_code             => 'AP_PAYMENTS'
22901         , p_event_class_code        => 'PAYMENTS'
22902         , p_side                    => 'NA'
22903         );
22904 
22905   END IF;
22906 
22907    --
22908    --
22909    END IF;
22910    --
22911    -- Bug 4922099
22912    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22913           (NVL(l_enc_upg_option, 'N') = 'O')
22914         ) AND
22915         (l_bflow_method_code = 'PRIOR_ENTRY')
22916       )
22917    THEN
22918       IF
22919       --
22920       1 = 2
22921       --
22922       THEN
22923       xla_accounting_err_pkg.build_message
22924                                     (p_appli_s_name            => 'XLA'
22925                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22926                                     ,p_token_1                 => 'LINE_NUMBER'
22927                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22928                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22929                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22930                                                                              l_component_type
22931                                                                             ,l_component_code
22932                                                                             ,l_component_type_code
22933                                                                             ,l_component_appl_id
22934                                                                             ,l_amb_context_code
22935                                                                             ,l_entity_code
22936                                                                             ,l_event_class_code
22937                                                                            )
22938                                     ,p_token_3                 => 'OWNER'
22939                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22940                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22941                                                                           ,p_lookup_code    => l_component_type_code
22942                                                                          )
22943                                     ,p_token_4                 => 'PRODUCT_NAME'
22944                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22948                                     ,p_ae_header_id            =>  NULL
22945                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22946                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22947                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22949                                        );
22950 
22951         IF (C_LEVEL_ERROR>= g_log_level) THEN
22952                  trace
22953                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22954                       ,p_level    => C_LEVEL_ERROR
22955                       ,p_module   => l_log_module);
22956         END IF;
22957       END IF;
22958    END IF;
22959    --
22960    --
22961    ------------------------------------------------------------------------------------------------
22962    -- 4219869 Business Flow
22963    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22964    -- Prior Entry.  Currently, the following code is always generated.
22965    ------------------------------------------------------------------------------------------------
22966    XLA_AE_LINES_PKG.ValidateCurrentLine;
22967 
22968    ------------------------------------------------------------------------------------
22969    -- 4219869 Business Flow
22970    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22971    ------------------------------------------------------------------------------------
22972    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22973 
22974    ----------------------------------------------------------------------------------
22975    -- 4219869 Business Flow
22976    -- Update journal entry status -- Need to generate this within IF <condition>
22977    ----------------------------------------------------------------------------------
22978    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22979          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22980          ,p_balance_type_code => l_balance_type_code
22981          );
22982 
22983    -------------------------------------------------------------------------------------------
22984    -- 4262811 - Generate the Accrual Reversal lines
22985    -------------------------------------------------------------------------------------------
22986    BEGIN
22987       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22988                               (g_array_event(p_event_id).array_value_num('header_index'));
22989       IF l_acc_rev_flag IS NULL THEN
22990          l_acc_rev_flag := 'N';
22991       END IF;
22992    EXCEPTION
22993       WHEN OTHERS THEN
22994          l_acc_rev_flag := 'N';
22995    END;
22996    --
22997    IF (l_acc_rev_flag = 'Y') THEN
22998 
22999        -- 4645092  ------------------------------------------------------------------------------
23000        -- To allow MPA report to determine if it should generate report process
23001        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23002        ------------------------------------------------------------------------------------------
23003 
23004        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23005        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23006    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23007    -- call ADRs
23008    -- Bug 4922099
23009    --
23010    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23011         (NVL(l_actual_upg_option, 'N') = 'O') OR
23012         (NVL(l_enc_upg_option, 'N') = 'O')
23013       )
23014    THEN
23015    NULL;
23016    --
23017    --
23018    
23019    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
23020      p_code_combination_id      => TO_NUMBER(C_NUM)
23021    , p_value_type_code          => NULL
23022    , p_transaction_coa_id       => null
23023    , p_accounting_coa_id        => null
23024    , p_adr_code                 => NULL
23025    , p_adr_type_code            => NULL
23026    , p_component_type           => l_component_type
23027    , p_component_code           => l_component_code
23028    , p_component_type_code      => l_component_type_code
23029    , p_component_appl_id        => l_component_appl_id
23030    , p_amb_context_code         => l_amb_context_code
23031    , p_side                     => NULL
23032    );
23033 
23034    
23035   -- initialise segments
23036   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23037   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23038   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23039   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23040   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23041   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23042   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23043   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23044   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23045   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23046   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23047   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23051   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23048   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23049   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23050   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23052   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23053   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23054   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23055   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23056   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23057   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23058   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23059   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23060   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23061   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23062   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23063   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23064   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23065   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23066   --
23067 
23068    --
23069 
23070 
23071    l_segment := AcctDerRule_11(
23072            p_application_id           => p_application_id
23073          , p_ae_header_id             => l_ae_header_id 
23074 , p_source_21 => p_source_21
23075          , x_transaction_coa_id       => l_adr_transaction_coa_id
23076          , x_accounting_coa_id        => l_adr_accounting_coa_id
23077          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
23078          , x_flex_value_set_id        => l_adr_flex_value_set_id
23079          , x_value_type_code          => l_adr_value_type_code
23080          , x_value_combination_id     => l_adr_value_combination_id
23081          , x_value_segment_code       => l_adr_value_segment_code
23082          , p_side                     => 'NA'
23083          , p_override_seg_flag        => 'Y'
23084    );
23085 
23086    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
23087 
23088       xla_ae_lines_pkg.set_segment(
23089           p_to_segment_code         => 'GL_ACCOUNT'
23090         , p_segment_value           => l_segment
23091         , p_from_segment_code       => l_adr_value_segment_code
23092         , p_from_combination_id     => l_adr_value_combination_id
23093         , p_value_type_code         => l_adr_value_type_code
23094         , p_transaction_coa_id      => l_adr_transaction_coa_id
23095         , p_accounting_coa_id       => l_adr_accounting_coa_id
23096         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
23097         , p_flex_value_set_id       => l_adr_flex_value_set_id
23098         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
23099         , p_adr_type_code           => 'S'
23100         , p_component_type          => l_component_type
23101         , p_component_code          => l_component_code
23102         , p_component_type_code     => l_component_type_code
23103         , p_component_appl_id       => l_component_appl_id
23104         , p_amb_context_code        => l_amb_context_code
23105         , p_entity_code             => 'AP_PAYMENTS'
23106         , p_event_class_code        => 'PAYMENTS'
23107         , p_side                    => 'NA'
23108         );
23109 
23110   END IF;
23111 
23112    --
23113    --
23114    END IF;
23115 
23116        --
23117        -- Update the line information that should be overwritten
23118        --
23119        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23120                                          p_header_num   => 1);
23121        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23122 
23123        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23124 
23125        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23126           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23127        END IF;
23128 
23129       --
23130       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23131       --
23132       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23133           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23134       ELSE
23135           ---------------------------------------------------------------------------------------------------
23136           -- 4262811a Switch Sign
23137           ---------------------------------------------------------------------------------------------------
23138           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23139           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23140                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23141           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23145                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23142                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23143           -- 5132302
23144           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23146 
23147       END IF;
23148 
23149       -- 4955764
23150       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23151       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23152 
23153 
23154       XLA_AE_LINES_PKG.ValidateCurrentLine;
23155       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23156 
23157       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23158                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23159                ,p_balance_type_code => l_balance_type_code);
23160 
23161    END IF;
23162 
23163    -----------------------------------------------------------------------------------------
23164    -- 4262811 Multiperiod Accounting
23165    -----------------------------------------------------------------------------------------
23166      -- No MPA option is assigned.
23167 
23168 
23169 END IF;
23170 END IF;
23171 --
23172 
23173 --
23174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23175    trace
23176       (p_msg      => 'END of AcctLineType_61'
23177       ,p_level    => C_LEVEL_PROCEDURE
23178       ,p_module   => l_log_module);
23179 END IF;
23180 --
23181 EXCEPTION
23182   WHEN xla_exceptions_pkg.application_exception THEN
23183       RAISE;
23184   WHEN OTHERS THEN
23185        xla_exceptions_pkg.raise_message
23186            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_61');
23187 END AcctLineType_61;
23188 --
23189 
23190 ---------------------------------------
23191 --
23192 -- PRIVATE FUNCTION
23193 --         AcctLineType_62
23194 --
23195 ---------------------------------------
23196 PROCEDURE AcctLineType_62 (
23197   p_application_id        IN NUMBER
23198  ,p_event_id              IN NUMBER
23199  ,p_calculate_acctd_flag  IN VARCHAR2
23200  ,p_calculate_g_l_flag    IN VARCHAR2
23201  ,p_actual_flag           IN OUT VARCHAR2
23202  ,p_balance_type_code     OUT VARCHAR2
23203  ,p_gain_or_loss_ref      OUT VARCHAR2
23204  
23205 --Automatic Offsets Value
23206  , p_source_4            IN VARCHAR2
23207  , p_source_4_meaning    IN VARCHAR2
23208 --Payment Distribution (Payment Rate) Ledger Amount
23209  , p_source_9            IN NUMBER
23210 --Bank Cash Clearing Account
23211  , p_source_21            IN NUMBER
23212 --When to Account for Payment Option
23213  , p_source_38            IN VARCHAR2
23214 --Payment Distribution Type
23215  , p_source_39            IN VARCHAR2
23216  , p_source_39_meaning    IN VARCHAR2
23217 --Accounting Reversal Indicator
23218  , p_source_40            IN VARCHAR2
23219 --Payment Distribution Amount
23220  , p_source_41            IN NUMBER
23221 --Business Flow Accounts Payable Application Identifier
23222  , p_source_42            IN NUMBER
23223 --Payment Distribution Identifier
23224  , p_source_47            IN NUMBER
23225 --Distribution Link Type
23226  , p_source_48            IN VARCHAR2
23227 --Payment Currency Code
23228  , p_source_49            IN VARCHAR2
23229 --Override Accounted Amount Indicator
23230  , p_source_53            IN VARCHAR2
23231  , p_source_53_meaning    IN VARCHAR2
23232 --Payment Supplier Identifier
23233  , p_source_54            IN NUMBER
23234 --Payment Supplier Site Identifier
23235  , p_source_55            IN NUMBER
23236 --Third Party Type
23237  , p_source_56            IN VARCHAR2
23238 --Payment Distribution Reversed Identifier
23239  , p_source_57            IN NUMBER
23240 --Invoice Distribution Tax Line Identifier
23241  , p_source_58            IN NUMBER
23242 --Invoice Distribution Summary Tax Line Identifier
23243  , p_source_59            IN NUMBER
23244 --Payment Type
23245  , p_source_60            IN VARCHAR2
23246  , p_source_60_meaning    IN VARCHAR2
23247 --Invoice Distribution Amount of the Payment Distribution
23248  , p_source_61            IN NUMBER
23249 --Business Flow Invoice Distribution Type
23250  , p_source_62            IN VARCHAR2
23251 --Business Flow Invoice Entity Code
23252  , p_source_63            IN VARCHAR2
23253 --Business Flow Invoice Distribution Identifier
23254  , p_source_64            IN NUMBER
23255 --Business Flow Invoice Identifier
23256  , p_source_65            IN NUMBER
23257 --Invoice Distribution Tax Distribution Identifier from Tax
23258  , p_source_66            IN NUMBER
23259 --Pooled Bank Account Option
23260  , p_source_110            IN VARCHAR2
23261  , p_source_110_meaning    IN VARCHAR2
23262 --Payment Maturity Date
23263  , p_source_111            IN DATE
23264 --Payment Processing Type
23265  , p_source_113            IN VARCHAR2
23266 --Payment Exchange Date
23267  , p_source_114            IN DATE
23268 --Payment Exchange Rate
23269  , p_source_115            IN NUMBER
23270 --Payment Exchange Rate Type
23271  , p_source_116            IN VARCHAR2
23272 )
23273 IS
23274 
23275 l_component_type              VARCHAR2(80);
23279 l_amb_context_code            VARCHAR2(30);
23276 l_component_code              VARCHAR2(30);
23277 l_component_type_code         VARCHAR2(1);
23278 l_component_appl_id           INTEGER;
23280 l_entity_code                 VARCHAR2(30);
23281 l_event_class_code            VARCHAR2(30);
23282 l_ae_header_id                NUMBER;
23283 l_event_type_code             VARCHAR2(30);
23284 l_line_definition_code        VARCHAR2(30);
23285 l_line_definition_owner_code  VARCHAR2(1);
23286 --
23287 -- adr variables
23288 l_segment                     VARCHAR2(30);
23289 l_ccid                        NUMBER;
23290 l_adr_transaction_coa_id      NUMBER;
23291 l_adr_accounting_coa_id       NUMBER;
23292 l_adr_flexfield_segment_code  VARCHAR2(30);
23293 l_adr_flex_value_set_id       NUMBER;
23294 l_adr_value_type_code         VARCHAR2(30);
23295 l_adr_value_combination_id    NUMBER;
23296 l_adr_value_segment_code      VARCHAR2(30);
23297 
23298 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23299 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23300 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23301 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23302 
23303 -- 4262811 Variables ------------------------------------------------------------------------------------------
23304 l_entered_amt_idx             NUMBER;
23305 l_accted_amt_idx              NUMBER;
23306 l_acc_rev_flag                VARCHAR2(1);
23307 l_accrual_line_num            NUMBER;
23308 l_tmp_amt                     NUMBER;
23309 l_acc_rev_natural_side_code   VARCHAR2(1);
23310 
23311 l_num_entries                 NUMBER;
23312 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23313 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23314 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23315 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23316 l_recog_line_1                NUMBER;
23317 l_recog_line_2                NUMBER;
23318 
23319 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23320 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23321 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23322 
23323 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23324 
23325 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23326 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23327 
23328 ---------------------------------------------------------------------------------------------------------------
23329 
23330 
23331 --
23332 -- bulk performance
23333 --
23334 l_balance_type_code           VARCHAR2(1);
23335 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23336 l_log_module                  VARCHAR2(240);
23337 
23338 --
23339 -- Upgrade strategy
23340 --
23341 l_actual_upg_option           VARCHAR2(1);
23342 l_enc_upg_option           VARCHAR2(1);
23343 
23344 --
23345 BEGIN
23346 --
23347 IF g_log_enabled THEN
23348       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
23349 END IF;
23350 --
23351 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23352 
23353       trace
23354          (p_msg      => 'BEGIN of AcctLineType_62'
23355          ,p_level    => C_LEVEL_PROCEDURE
23356          ,p_module   => l_log_module);
23357 
23358 END IF;
23359 --
23360 l_component_type             := 'AMB_JLT';
23361 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_BS';
23362 l_component_type_code        := 'S';
23363 l_component_appl_id          :=  200;
23364 l_amb_context_code           := 'DEFAULT';
23365 l_entity_code                := 'AP_PAYMENTS';
23366 l_event_class_code           := 'PAYMENTS';
23367 l_event_type_code            := 'PAYMENTS_ALL';
23368 l_line_definition_owner_code := 'S';
23369 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
23370 --
23371 l_balance_type_code          := 'A';
23372 l_segment                     := NULL;
23373 l_ccid                        := NULL;
23374 l_adr_transaction_coa_id      := NULL;
23375 l_adr_accounting_coa_id       := NULL;
23376 l_adr_flexfield_segment_code  := NULL;
23377 l_adr_flex_value_set_id       := NULL;
23378 l_adr_value_type_code         := NULL;
23379 l_adr_value_combination_id    := NULL;
23380 l_adr_value_segment_code      := NULL;
23381 
23382 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
23383 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23384 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23385 l_budgetary_control_flag     := 'N';
23386 
23387 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23388 l_bflow_applied_to_amt       := NULL; -- 5132302
23389 l_entered_amt_idx            := NULL;          -- 4262811
23390 l_accted_amt_idx             := NULL;          -- 4262811
23391 l_acc_rev_flag               := NULL;          -- 4262811
23392 l_accrual_line_num           := NULL;          -- 4262811
23393 l_tmp_amt                    := NULL;          -- 4262811
23394 --
23395  
23396 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23397     l_balance_type_code <> 'B' THEN
23398 IF NVL(p_source_38,'
23399 ') =  'ALWAYS_ALWAYS' AND 
23400 (NVL(p_source_110,'
23401 ') =  'Y' AND 
23405 NVL(p_source_39,'
23402 NVL(p_source_4,'
23403 ') =  'BALANCING_SEGMENT') AND 
23404 p_source_111 IS NULL AND 
23406 ') =  'CASH' AND 
23407 NVL(p_source_60,'
23408 ') <>  'R' AND 
23409 NVL(p_source_113,'
23410 ') <>  'PAYMENTCARD'
23411  THEN 
23412 
23413    --
23414    XLA_AE_LINES_PKG.SetNewLine;
23415 
23416    p_balance_type_code          := l_balance_type_code;
23417    -- set the flag so later we will know whether the gain loss line needs to be created
23418    
23419    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23420      p_actual_flag :='A';
23421    END IF;
23422 
23423    --
23424    -- bulk performance
23425    --
23426    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23427                                       p_header_num   => 0); -- 4262811
23428    --
23429    -- set accounting line options
23430    --
23431    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23432            p_natural_side_code          => 'C'
23433          , p_gain_or_loss_flag          => 'N'
23434          , p_gl_transfer_mode_code      => 'S'
23435          , p_acct_entry_type_code       => 'A'
23436          , p_switch_side_flag           => 'Y'
23437          , p_merge_duplicate_code       => 'A'
23438          );
23439    --
23440    l_acc_rev_natural_side_code := 'D';  -- 4262811
23441    -- 
23442    --
23443    -- set accounting line type info
23444    --
23445    xla_ae_lines_pkg.SetAcctLineType
23446       (p_component_type             => l_component_type
23447       ,p_event_type_code            => l_event_type_code
23448       ,p_line_definition_owner_code => l_line_definition_owner_code
23449       ,p_line_definition_code       => l_line_definition_code
23450       ,p_accounting_line_code       => l_component_code
23451       ,p_accounting_line_type_code  => l_component_type_code
23452       ,p_accounting_line_appl_id    => l_component_appl_id
23453       ,p_amb_context_code           => l_amb_context_code
23454       ,p_entity_code                => l_entity_code
23455       ,p_event_class_code           => l_event_class_code);
23456    --
23457    -- set accounting class
23458    --
23459    xla_ae_lines_pkg.SetAcctClass(
23460            p_accounting_class_code  => 'CASH_CLEARING'
23461          , p_ae_header_id           => l_ae_header_id
23462          );
23463 
23464    --
23465    -- set rounding class
23466    --
23467    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23468                       'CASH_CLEARING';
23469 
23470    --
23471    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23472    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23473    --
23474    -- bulk performance
23475    --
23476    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23477 
23478    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23479       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23480 
23481    -- 4955764
23482    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23483       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23484 
23485    -- 4458381 Public Sector Enh
23486    
23487    --
23488    -- set accounting attributes for the line type
23489    --
23490    l_entered_amt_idx := 10;
23491    l_accted_amt_idx  := 15;
23492    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
23493    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23494    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
23495    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
23496    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
23497    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
23498    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
23499    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23500    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
23501    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
23502    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
23503    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
23504    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
23505    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23506    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
23507    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
23508    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
23509    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
23510    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
23511    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
23512    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
23513    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
23514    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
23515    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
23516    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
23517    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
23521    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
23518    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
23519    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
23520    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
23522    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
23523    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
23524    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
23525    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
23526    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
23527    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
23528    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
23529    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
23530    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
23531    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
23532    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
23533    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
23534    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
23535    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
23536    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
23537    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
23538    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
23539    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
23540    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
23541 
23542    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23543    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23544 
23545    ---------------------------------------------------------------------------------------------------------------
23546    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23547    ---------------------------------------------------------------------------------------------------------------
23548    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23549 
23550    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23551    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23552 
23553    IF xla_accounting_cache_pkg.GetValueChar
23554          (p_source_code         => 'LEDGER_CATEGORY_CODE'
23555          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23556    AND l_bflow_method_code = 'PRIOR_ENTRY'
23557 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23558    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23559          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23560        )
23561    THEN
23562          xla_ae_lines_pkg.BflowUpgEntry
23563            (p_business_method_code    => l_bflow_method_code
23564            ,p_business_class_code     => l_bflow_class_code
23565            ,p_balance_type            => l_balance_type_code);
23566    ELSE
23567       NULL;
23568 XLA_AE_LINES_PKG.business_flow_validation(
23569                                 p_business_method_code     => l_bflow_method_code
23570                                ,p_business_class_code      => l_bflow_class_code
23571                                ,p_inherit_description_flag => l_inherit_desc_flag);
23572    END IF;
23573 
23574    --
23575    -- call analytical criteria
23576    --
23577    
23578    --
23579    -- call description
23580    --
23581    -- No description or it is inherited.
23582    --
23583    -- call ADRs
23584    -- Bug 4922099
23585    --
23586    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23587         (NVL(l_actual_upg_option, 'N') = 'O') OR
23588         (NVL(l_enc_upg_option, 'N') = 'O')
23589       )
23590    THEN
23591    NULL;
23592    --
23593    --
23594    
23595   l_ccid := AcctDerRule_28(
23596            p_application_id           => p_application_id
23597          , p_ae_header_id             => l_ae_header_id 
23598 , p_source_21 => p_source_21
23599          , x_transaction_coa_id       => l_adr_transaction_coa_id
23600          , x_accounting_coa_id        => l_adr_accounting_coa_id
23601          , x_value_type_code          => l_adr_value_type_code
23602          , p_side                     => 'NA'
23603    );
23604 
23605    xla_ae_lines_pkg.set_ccid(
23606     p_code_combination_id          => l_ccid
23607   , p_value_type_code              => l_adr_value_type_code
23608   , p_transaction_coa_id           => l_adr_transaction_coa_id
23609   , p_accounting_coa_id            => l_adr_accounting_coa_id
23610   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
23611   , p_adr_type_code                => 'S'
23612   , p_component_type               => l_component_type
23613   , p_component_code               => l_component_code
23614   , p_component_type_code          => l_component_type_code
23615   , p_component_appl_id            => l_component_appl_id
23616   , p_amb_context_code             => l_amb_context_code
23617   , p_side                         => 'NA'
23618   );
23619 
23620 
23621    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
23622      p_to_segment_code         => 'GL_BALANCING'
23623    , p_segment_value           => C_CHAR
23624    , p_from_segment_code       => NULL
23625    , p_from_combination_id     => NULL
23626    , p_value_type_code         => NULL
23630    , p_flex_value_set_id       => NULL
23627    , p_transaction_coa_id      => null
23628    , p_accounting_coa_id       => null
23629    , p_flexfield_segment_code  => NULL
23631    , p_adr_code                => NULL
23632    , p_adr_type_code           => NULL
23633    , p_component_type          => l_component_type
23634    , p_component_code          => l_component_code
23635    , p_component_type_code     => l_component_type_code
23636    , p_component_appl_id       => l_component_appl_id
23637    , p_amb_context_code        => l_amb_context_code
23638    , p_entity_code             => 'AP_PAYMENTS'
23639    , p_event_class_code        => 'PAYMENTS'
23640    , p_side                    => 'NA'
23641    );
23642    --
23643 
23644 
23645    --
23646    --
23647    END IF;
23648    --
23649    -- Bug 4922099
23650    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23651           (NVL(l_enc_upg_option, 'N') = 'O')
23652         ) AND
23653         (l_bflow_method_code = 'PRIOR_ENTRY')
23654       )
23655    THEN
23656       IF
23657       --
23658       1 = 2
23659       --
23660       THEN
23661       xla_accounting_err_pkg.build_message
23662                                     (p_appli_s_name            => 'XLA'
23663                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23664                                     ,p_token_1                 => 'LINE_NUMBER'
23665                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
23666                                     ,p_token_2                 => 'LINE_TYPE_NAME'
23667                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
23668                                                                              l_component_type
23669                                                                             ,l_component_code
23670                                                                             ,l_component_type_code
23671                                                                             ,l_component_appl_id
23672                                                                             ,l_amb_context_code
23673                                                                             ,l_entity_code
23674                                                                             ,l_event_class_code
23675                                                                            )
23676                                     ,p_token_3                 => 'OWNER'
23677                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
23678                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
23679                                                                           ,p_lookup_code    => l_component_type_code
23680                                                                          )
23681                                     ,p_token_4                 => 'PRODUCT_NAME'
23682                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23683                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23684                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23685                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23686                                     ,p_ae_header_id            =>  NULL
23687                                        );
23688 
23689         IF (C_LEVEL_ERROR>= g_log_level) THEN
23690                  trace
23691                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23692                       ,p_level    => C_LEVEL_ERROR
23693                       ,p_module   => l_log_module);
23694         END IF;
23695       END IF;
23696    END IF;
23697    --
23698    --
23699    ------------------------------------------------------------------------------------------------
23700    -- 4219869 Business Flow
23701    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23702    -- Prior Entry.  Currently, the following code is always generated.
23703    ------------------------------------------------------------------------------------------------
23704    XLA_AE_LINES_PKG.ValidateCurrentLine;
23705 
23706    ------------------------------------------------------------------------------------
23707    -- 4219869 Business Flow
23708    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23709    ------------------------------------------------------------------------------------
23710    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23711 
23712    ----------------------------------------------------------------------------------
23713    -- 4219869 Business Flow
23714    -- Update journal entry status -- Need to generate this within IF <condition>
23715    ----------------------------------------------------------------------------------
23716    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23717          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23718          ,p_balance_type_code => l_balance_type_code
23719          );
23720 
23721    -------------------------------------------------------------------------------------------
23722    -- 4262811 - Generate the Accrual Reversal lines
23723    -------------------------------------------------------------------------------------------
23724    BEGIN
23728          l_acc_rev_flag := 'N';
23725       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23726                               (g_array_event(p_event_id).array_value_num('header_index'));
23727       IF l_acc_rev_flag IS NULL THEN
23729       END IF;
23730    EXCEPTION
23731       WHEN OTHERS THEN
23732          l_acc_rev_flag := 'N';
23733    END;
23734    --
23735    IF (l_acc_rev_flag = 'Y') THEN
23736 
23737        -- 4645092  ------------------------------------------------------------------------------
23738        -- To allow MPA report to determine if it should generate report process
23739        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23740        ------------------------------------------------------------------------------------------
23741 
23742        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23743        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23744    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23745    -- call ADRs
23746    -- Bug 4922099
23747    --
23748    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23749         (NVL(l_actual_upg_option, 'N') = 'O') OR
23750         (NVL(l_enc_upg_option, 'N') = 'O')
23751       )
23752    THEN
23753    NULL;
23754    --
23755    --
23756    
23757   l_ccid := AcctDerRule_28(
23758            p_application_id           => p_application_id
23759          , p_ae_header_id             => l_ae_header_id 
23760 , p_source_21 => p_source_21
23761          , x_transaction_coa_id       => l_adr_transaction_coa_id
23762          , x_accounting_coa_id        => l_adr_accounting_coa_id
23763          , x_value_type_code          => l_adr_value_type_code
23764          , p_side                     => 'NA'
23765    );
23766 
23767    xla_ae_lines_pkg.set_ccid(
23768     p_code_combination_id          => l_ccid
23769   , p_value_type_code              => l_adr_value_type_code
23770   , p_transaction_coa_id           => l_adr_transaction_coa_id
23771   , p_accounting_coa_id            => l_adr_accounting_coa_id
23772   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
23773   , p_adr_type_code                => 'S'
23774   , p_component_type               => l_component_type
23775   , p_component_code               => l_component_code
23776   , p_component_type_code          => l_component_type_code
23777   , p_component_appl_id            => l_component_appl_id
23778   , p_amb_context_code             => l_amb_context_code
23779   , p_side                         => 'NA'
23780   );
23781 
23782 
23783    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
23784      p_to_segment_code         => 'GL_BALANCING'
23785    , p_segment_value           => C_CHAR
23786    , p_from_segment_code       => NULL
23787    , p_from_combination_id     => NULL
23788    , p_value_type_code         => NULL
23789    , p_transaction_coa_id      => null
23790    , p_accounting_coa_id       => null
23791    , p_flexfield_segment_code  => NULL
23792    , p_flex_value_set_id       => NULL
23793    , p_adr_code                => NULL
23794    , p_adr_type_code           => NULL
23795    , p_component_type          => l_component_type
23796    , p_component_code          => l_component_code
23797    , p_component_type_code     => l_component_type_code
23798    , p_component_appl_id       => l_component_appl_id
23799    , p_amb_context_code        => l_amb_context_code
23800    , p_entity_code             => 'AP_PAYMENTS'
23801    , p_event_class_code        => 'PAYMENTS'
23802    , p_side                    => 'NA'
23803    );
23804    --
23805 
23806 
23807    --
23808    --
23809    END IF;
23810 
23811        --
23812        -- Update the line information that should be overwritten
23813        --
23814        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23815                                          p_header_num   => 1);
23816        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23817 
23818        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23819 
23820        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23821           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23822        END IF;
23823 
23824       --
23825       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23826       --
23827       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23828           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23829       ELSE
23830           ---------------------------------------------------------------------------------------------------
23831           -- 4262811a Switch Sign
23832           ---------------------------------------------------------------------------------------------------
23833           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23834           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23835                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23836           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23837                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23841 
23838           -- 5132302
23839           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23840                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23842       END IF;
23843 
23844       -- 4955764
23845       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23846       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23847 
23848 
23849       XLA_AE_LINES_PKG.ValidateCurrentLine;
23850       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23851 
23852       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23853                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23854                ,p_balance_type_code => l_balance_type_code);
23855 
23856    END IF;
23857 
23858    -----------------------------------------------------------------------------------------
23859    -- 4262811 Multiperiod Accounting
23860    -----------------------------------------------------------------------------------------
23861      -- No MPA option is assigned.
23862 
23863 
23864 END IF;
23865 END IF;
23866 --
23867 
23868 --
23869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23870    trace
23871       (p_msg      => 'END of AcctLineType_62'
23872       ,p_level    => C_LEVEL_PROCEDURE
23873       ,p_module   => l_log_module);
23874 END IF;
23875 --
23876 EXCEPTION
23877   WHEN xla_exceptions_pkg.application_exception THEN
23878       RAISE;
23879   WHEN OTHERS THEN
23880        xla_exceptions_pkg.raise_message
23881            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_62');
23882 END AcctLineType_62;
23883 --
23884 
23885 ---------------------------------------
23886 --
23887 -- PRIVATE FUNCTION
23888 --         AcctLineType_63
23889 --
23890 ---------------------------------------
23891 PROCEDURE AcctLineType_63 (
23892   p_application_id        IN NUMBER
23893  ,p_event_id              IN NUMBER
23894  ,p_calculate_acctd_flag  IN VARCHAR2
23895  ,p_calculate_g_l_flag    IN VARCHAR2
23896  ,p_actual_flag           IN OUT VARCHAR2
23897  ,p_balance_type_code     OUT VARCHAR2
23898  ,p_gain_or_loss_ref      OUT VARCHAR2
23899  
23900 --Bank Cash Clearing Account
23901  , p_source_21            IN NUMBER
23902 --Automatic Offsets Flag
23903  , p_source_30            IN VARCHAR2
23904  , p_source_30_meaning    IN VARCHAR2
23905 --When to Account for Payment Option
23906  , p_source_38            IN VARCHAR2
23907 --Payment Distribution Type
23908  , p_source_39            IN VARCHAR2
23909  , p_source_39_meaning    IN VARCHAR2
23910 --Accounting Reversal Indicator
23911  , p_source_40            IN VARCHAR2
23912 --Payment Distribution Amount
23913  , p_source_41            IN NUMBER
23914 --Business Flow Accounts Payable Application Identifier
23915  , p_source_42            IN NUMBER
23916 --Business Flow Payment Distribution Type
23917  , p_source_43            IN VARCHAR2
23918 --Business Flow Payment Entity Code
23919  , p_source_44            IN VARCHAR2
23920 --Business Flow Payment Distribution Identifier
23921  , p_source_45            IN NUMBER
23922 --Business Flow Payment Identifier
23923  , p_source_46            IN NUMBER
23924 --Payment Distribution Identifier
23925  , p_source_47            IN NUMBER
23926 --Distribution Link Type
23927  , p_source_48            IN VARCHAR2
23928 --Payment Currency Code
23929  , p_source_49            IN VARCHAR2
23930 --Override Accounted Amount Indicator
23931  , p_source_53            IN VARCHAR2
23932  , p_source_53_meaning    IN VARCHAR2
23933 --Payment Supplier Identifier
23934  , p_source_54            IN NUMBER
23935 --Payment Supplier Site Identifier
23936  , p_source_55            IN NUMBER
23937 --Third Party Type
23938  , p_source_56            IN VARCHAR2
23939 --Payment Distribution Reversed Identifier
23940  , p_source_57            IN NUMBER
23941 --Pooled Bank Account Option
23942  , p_source_110            IN VARCHAR2
23943  , p_source_110_meaning    IN VARCHAR2
23944 --Payment Maturity Date
23945  , p_source_111            IN DATE
23946 --Payment Exchange Date
23947  , p_source_114            IN DATE
23948 --Payment Exchange Rate
23949  , p_source_115            IN NUMBER
23950 --Payment Exchange Rate Type
23951  , p_source_116            IN VARCHAR2
23952 --Payment Distribution (Matured Rate) Ledger Amount
23953  , p_source_117            IN NUMBER
23954 )
23955 IS
23956 
23957 l_component_type              VARCHAR2(80);
23958 l_component_code              VARCHAR2(30);
23959 l_component_type_code         VARCHAR2(1);
23960 l_component_appl_id           INTEGER;
23961 l_amb_context_code            VARCHAR2(30);
23962 l_entity_code                 VARCHAR2(30);
23963 l_event_class_code            VARCHAR2(30);
23964 l_ae_header_id                NUMBER;
23965 l_event_type_code             VARCHAR2(30);
23966 l_line_definition_code        VARCHAR2(30);
23967 l_line_definition_owner_code  VARCHAR2(1);
23968 --
23969 -- adr variables
23970 l_segment                     VARCHAR2(30);
23971 l_ccid                        NUMBER;
23972 l_adr_transaction_coa_id      NUMBER;
23973 l_adr_accounting_coa_id       NUMBER;
23974 l_adr_flexfield_segment_code  VARCHAR2(30);
23978 l_adr_value_segment_code      VARCHAR2(30);
23975 l_adr_flex_value_set_id       NUMBER;
23976 l_adr_value_type_code         VARCHAR2(30);
23977 l_adr_value_combination_id    NUMBER;
23979 
23980 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23981 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23982 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23983 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23984 
23985 -- 4262811 Variables ------------------------------------------------------------------------------------------
23986 l_entered_amt_idx             NUMBER;
23987 l_accted_amt_idx              NUMBER;
23988 l_acc_rev_flag                VARCHAR2(1);
23989 l_accrual_line_num            NUMBER;
23990 l_tmp_amt                     NUMBER;
23991 l_acc_rev_natural_side_code   VARCHAR2(1);
23992 
23993 l_num_entries                 NUMBER;
23994 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23995 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23996 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23997 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23998 l_recog_line_1                NUMBER;
23999 l_recog_line_2                NUMBER;
24000 
24001 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24002 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24003 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24004 
24005 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24006 
24007 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24008 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24009 
24010 ---------------------------------------------------------------------------------------------------------------
24011 
24012 
24013 --
24014 -- bulk performance
24015 --
24016 l_balance_type_code           VARCHAR2(1);
24017 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24018 l_log_module                  VARCHAR2(240);
24019 
24020 --
24021 -- Upgrade strategy
24022 --
24023 l_actual_upg_option           VARCHAR2(1);
24024 l_enc_upg_option           VARCHAR2(1);
24025 
24026 --
24027 BEGIN
24028 --
24029 IF g_log_enabled THEN
24030       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
24031 END IF;
24032 --
24033 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24034 
24035       trace
24036          (p_msg      => 'BEGIN of AcctLineType_63'
24037          ,p_level    => C_LEVEL_PROCEDURE
24038          ,p_module   => l_log_module);
24039 
24040 END IF;
24041 --
24042 l_component_type             := 'AMB_JLT';
24043 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT';
24044 l_component_type_code        := 'S';
24045 l_component_appl_id          :=  200;
24046 l_amb_context_code           := 'DEFAULT';
24047 l_entity_code                := 'AP_PAYMENTS';
24048 l_event_class_code           := 'FUTURE DATED PAYMENTS';
24049 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
24050 l_line_definition_owner_code := 'S';
24051 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
24052 --
24053 l_balance_type_code          := 'A';
24054 l_segment                     := NULL;
24055 l_ccid                        := NULL;
24056 l_adr_transaction_coa_id      := NULL;
24057 l_adr_accounting_coa_id       := NULL;
24058 l_adr_flexfield_segment_code  := NULL;
24059 l_adr_flex_value_set_id       := NULL;
24060 l_adr_value_type_code         := NULL;
24061 l_adr_value_combination_id    := NULL;
24062 l_adr_value_segment_code      := NULL;
24063 
24064 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
24065 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
24066 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24067 l_budgetary_control_flag     := 'N';
24068 
24069 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24070 l_bflow_applied_to_amt       := NULL; -- 5132302
24071 l_entered_amt_idx            := NULL;          -- 4262811
24072 l_accted_amt_idx             := NULL;          -- 4262811
24073 l_acc_rev_flag               := NULL;          -- 4262811
24074 l_accrual_line_num           := NULL;          -- 4262811
24075 l_tmp_amt                    := NULL;          -- 4262811
24076 --
24077  
24078 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24079     l_balance_type_code <> 'B' THEN
24080 IF (NVL(p_source_38,'
24081 ') =  'ALWAYS_ALWAYS' OR 
24082 NVL(p_source_38,'
24083 ') =  'ALWAYS_ISSUE') AND 
24084 (NVL(p_source_30,'
24085 ') <>  'Y' OR 
24086 NVL(p_source_30,'
24087 ') =  'Y' AND 
24088 NVL(p_source_110,'
24089 ') <>  'Y') AND 
24090 p_source_111 IS NOT NULL AND 
24091 NVL(p_source_39,'
24092 ') =  'CASH'
24093  THEN 
24094 
24095    --
24096    XLA_AE_LINES_PKG.SetNewLine;
24097 
24098    p_balance_type_code          := l_balance_type_code;
24099    -- set the flag so later we will know whether the gain loss line needs to be created
24100    
24104 
24101    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24102      p_actual_flag :='A';
24103    END IF;
24105    --
24106    -- bulk performance
24107    --
24108    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24109                                       p_header_num   => 0); -- 4262811
24110    --
24111    -- set accounting line options
24112    --
24113    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24114            p_natural_side_code          => 'C'
24115          , p_gain_or_loss_flag          => 'N'
24116          , p_gl_transfer_mode_code      => 'S'
24117          , p_acct_entry_type_code       => 'A'
24118          , p_switch_side_flag           => 'Y'
24119          , p_merge_duplicate_code       => 'A'
24120          );
24121    --
24122    l_acc_rev_natural_side_code := 'D';  -- 4262811
24123    -- 
24124    --
24125    -- set accounting line type info
24126    --
24127    xla_ae_lines_pkg.SetAcctLineType
24128       (p_component_type             => l_component_type
24129       ,p_event_type_code            => l_event_type_code
24130       ,p_line_definition_owner_code => l_line_definition_owner_code
24131       ,p_line_definition_code       => l_line_definition_code
24132       ,p_accounting_line_code       => l_component_code
24133       ,p_accounting_line_type_code  => l_component_type_code
24134       ,p_accounting_line_appl_id    => l_component_appl_id
24135       ,p_amb_context_code           => l_amb_context_code
24136       ,p_entity_code                => l_entity_code
24137       ,p_event_class_code           => l_event_class_code);
24138    --
24139    -- set accounting class
24140    --
24141    xla_ae_lines_pkg.SetAcctClass(
24142            p_accounting_class_code  => 'CASH_CLEARING'
24143          , p_ae_header_id           => l_ae_header_id
24144          );
24145 
24146    --
24147    -- set rounding class
24148    --
24149    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24150                       'CASH_CLEARING';
24151 
24152    --
24153    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24154    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24155    --
24156    -- bulk performance
24157    --
24158    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24159 
24160    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24161       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24162 
24163    -- 4955764
24164    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24165       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24166 
24167    -- 4458381 Public Sector Enh
24168    
24169    --
24170    -- set accounting attributes for the line type
24171    --
24172    l_entered_amt_idx := 9;
24173    l_accted_amt_idx  := 14;
24174    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
24175    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24176    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
24177    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24178    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
24179    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24180    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
24181    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24182    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
24183    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24184    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
24185    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24186    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
24187    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24188    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
24189    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24190    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
24191    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24192    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
24193    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24194    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
24195    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24196    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
24197    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24198    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
24199    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24200    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
24201    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24202    l_rec_acct_attrs.array_num_value(14)  := p_source_117;
24203    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24204    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
24205    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24206    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
24207    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24208    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
24209    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24210    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
24214    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
24211    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24212    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
24213    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24215 
24216    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24217    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24218 
24219    ---------------------------------------------------------------------------------------------------------------
24220    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24221    ---------------------------------------------------------------------------------------------------------------
24222    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24223 
24224    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24225    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24226 
24227    IF xla_accounting_cache_pkg.GetValueChar
24228          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24229          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24230    AND l_bflow_method_code = 'PRIOR_ENTRY'
24231 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24232    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24233          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24234        )
24235    THEN
24236          xla_ae_lines_pkg.BflowUpgEntry
24237            (p_business_method_code    => l_bflow_method_code
24238            ,p_business_class_code     => l_bflow_class_code
24239            ,p_balance_type            => l_balance_type_code);
24240    ELSE
24241       NULL;
24242 -- No business flow processing for business flow method of NONE.
24243    END IF;
24244 
24245    --
24246    -- call analytical criteria
24247    --
24248    
24249    --
24250    -- call description
24251    --
24252    -- No description or it is inherited.
24253    --
24254    -- call ADRs
24255    -- Bug 4922099
24256    --
24257    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24258         (NVL(l_actual_upg_option, 'N') = 'O') OR
24259         (NVL(l_enc_upg_option, 'N') = 'O')
24260       )
24261    THEN
24262    NULL;
24263    --
24264    --
24265    
24266   l_ccid := AcctDerRule_28(
24267            p_application_id           => p_application_id
24268          , p_ae_header_id             => l_ae_header_id 
24269 , p_source_21 => p_source_21
24270          , x_transaction_coa_id       => l_adr_transaction_coa_id
24271          , x_accounting_coa_id        => l_adr_accounting_coa_id
24272          , x_value_type_code          => l_adr_value_type_code
24273          , p_side                     => 'NA'
24274    );
24275 
24276    xla_ae_lines_pkg.set_ccid(
24277     p_code_combination_id          => l_ccid
24278   , p_value_type_code              => l_adr_value_type_code
24279   , p_transaction_coa_id           => l_adr_transaction_coa_id
24280   , p_accounting_coa_id            => l_adr_accounting_coa_id
24281   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
24282   , p_adr_type_code                => 'S'
24283   , p_component_type               => l_component_type
24284   , p_component_code               => l_component_code
24285   , p_component_type_code          => l_component_type_code
24286   , p_component_appl_id            => l_component_appl_id
24287   , p_amb_context_code             => l_amb_context_code
24288   , p_side                         => 'NA'
24289   );
24290 
24291 
24292    --
24293    --
24294    END IF;
24295    --
24296    -- Bug 4922099
24297    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24298           (NVL(l_enc_upg_option, 'N') = 'O')
24299         ) AND
24300         (l_bflow_method_code = 'PRIOR_ENTRY')
24301       )
24302    THEN
24303       IF
24304       --
24305       1 = 2
24306       --
24307       THEN
24308       xla_accounting_err_pkg.build_message
24309                                     (p_appli_s_name            => 'XLA'
24310                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24311                                     ,p_token_1                 => 'LINE_NUMBER'
24312                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24313                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24314                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24315                                                                              l_component_type
24316                                                                             ,l_component_code
24317                                                                             ,l_component_type_code
24318                                                                             ,l_component_appl_id
24319                                                                             ,l_amb_context_code
24320                                                                             ,l_entity_code
24321                                                                             ,l_event_class_code
24322                                                                            )
24326                                                                           ,p_lookup_code    => l_component_type_code
24323                                     ,p_token_3                 => 'OWNER'
24324                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24325                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24327                                                                          )
24328                                     ,p_token_4                 => 'PRODUCT_NAME'
24329                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24330                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24331                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24332                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24333                                     ,p_ae_header_id            =>  NULL
24334                                        );
24335 
24336         IF (C_LEVEL_ERROR>= g_log_level) THEN
24337                  trace
24338                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24339                       ,p_level    => C_LEVEL_ERROR
24340                       ,p_module   => l_log_module);
24341         END IF;
24342       END IF;
24343    END IF;
24344    --
24345    --
24346    ------------------------------------------------------------------------------------------------
24347    -- 4219869 Business Flow
24348    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24349    -- Prior Entry.  Currently, the following code is always generated.
24350    ------------------------------------------------------------------------------------------------
24351    XLA_AE_LINES_PKG.ValidateCurrentLine;
24352 
24353    ------------------------------------------------------------------------------------
24354    -- 4219869 Business Flow
24355    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24356    ------------------------------------------------------------------------------------
24357    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24358 
24359    ----------------------------------------------------------------------------------
24360    -- 4219869 Business Flow
24361    -- Update journal entry status -- Need to generate this within IF <condition>
24362    ----------------------------------------------------------------------------------
24363    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24364          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24365          ,p_balance_type_code => l_balance_type_code
24366          );
24367 
24368    -------------------------------------------------------------------------------------------
24369    -- 4262811 - Generate the Accrual Reversal lines
24370    -------------------------------------------------------------------------------------------
24371    BEGIN
24372       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24373                               (g_array_event(p_event_id).array_value_num('header_index'));
24374       IF l_acc_rev_flag IS NULL THEN
24375          l_acc_rev_flag := 'N';
24376       END IF;
24377    EXCEPTION
24378       WHEN OTHERS THEN
24379          l_acc_rev_flag := 'N';
24380    END;
24381    --
24382    IF (l_acc_rev_flag = 'Y') THEN
24383 
24384        -- 4645092  ------------------------------------------------------------------------------
24385        -- To allow MPA report to determine if it should generate report process
24386        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24387        ------------------------------------------------------------------------------------------
24388 
24389        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24390        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24391    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
24392    -- call ADRs
24393    -- Bug 4922099
24394    --
24395    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24396         (NVL(l_actual_upg_option, 'N') = 'O') OR
24397         (NVL(l_enc_upg_option, 'N') = 'O')
24398       )
24399    THEN
24400    NULL;
24401    --
24402    --
24403    
24404   l_ccid := AcctDerRule_28(
24405            p_application_id           => p_application_id
24406          , p_ae_header_id             => l_ae_header_id 
24407 , p_source_21 => p_source_21
24408          , x_transaction_coa_id       => l_adr_transaction_coa_id
24409          , x_accounting_coa_id        => l_adr_accounting_coa_id
24410          , x_value_type_code          => l_adr_value_type_code
24411          , p_side                     => 'NA'
24412    );
24413 
24414    xla_ae_lines_pkg.set_ccid(
24415     p_code_combination_id          => l_ccid
24416   , p_value_type_code              => l_adr_value_type_code
24417   , p_transaction_coa_id           => l_adr_transaction_coa_id
24418   , p_accounting_coa_id            => l_adr_accounting_coa_id
24419   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
24420   , p_adr_type_code                => 'S'
24421   , p_component_type               => l_component_type
24422   , p_component_code               => l_component_code
24423   , p_component_type_code          => l_component_type_code
24427   );
24424   , p_component_appl_id            => l_component_appl_id
24425   , p_amb_context_code             => l_amb_context_code
24426   , p_side                         => 'NA'
24428 
24429 
24430    --
24431    --
24432    END IF;
24433 
24434        --
24435        -- Update the line information that should be overwritten
24436        --
24437        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24438                                          p_header_num   => 1);
24439        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24440 
24441        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24442 
24443        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24444           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24445        END IF;
24446 
24447       --
24448       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24449       --
24450       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24451           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24452       ELSE
24453           ---------------------------------------------------------------------------------------------------
24454           -- 4262811a Switch Sign
24455           ---------------------------------------------------------------------------------------------------
24456           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24457           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24458                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24459           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24460                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24461           -- 5132302
24462           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24463                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24464 
24465       END IF;
24466 
24467       -- 4955764
24468       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24469       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24470 
24471 
24472       XLA_AE_LINES_PKG.ValidateCurrentLine;
24473       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24474 
24475       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24476                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24477                ,p_balance_type_code => l_balance_type_code);
24478 
24479    END IF;
24480 
24481    -----------------------------------------------------------------------------------------
24482    -- 4262811 Multiperiod Accounting
24483    -----------------------------------------------------------------------------------------
24484      -- No MPA option is assigned.
24485 
24486 
24487 END IF;
24488 END IF;
24489 --
24490 
24491 --
24492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24493    trace
24494       (p_msg      => 'END of AcctLineType_63'
24495       ,p_level    => C_LEVEL_PROCEDURE
24496       ,p_module   => l_log_module);
24497 END IF;
24498 --
24499 EXCEPTION
24500   WHEN xla_exceptions_pkg.application_exception THEN
24501       RAISE;
24502   WHEN OTHERS THEN
24503        xla_exceptions_pkg.raise_message
24504            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_63');
24505 END AcctLineType_63;
24506 --
24507 
24508 ---------------------------------------
24509 --
24510 -- PRIVATE FUNCTION
24511 --         AcctLineType_64
24512 --
24513 ---------------------------------------
24514 PROCEDURE AcctLineType_64 (
24515   p_application_id        IN NUMBER
24516  ,p_event_id              IN NUMBER
24517  ,p_calculate_acctd_flag  IN VARCHAR2
24518  ,p_calculate_g_l_flag    IN VARCHAR2
24519  ,p_actual_flag           IN OUT VARCHAR2
24520  ,p_balance_type_code     OUT VARCHAR2
24521  ,p_gain_or_loss_ref      OUT VARCHAR2
24522  
24523 --Automatic Offsets Value
24524  , p_source_4            IN VARCHAR2
24525  , p_source_4_meaning    IN VARCHAR2
24526 --Bank Cash Clearing Account
24527  , p_source_21            IN NUMBER
24528 --When to Account for Payment Option
24529  , p_source_38            IN VARCHAR2
24530 --Payment Distribution Type
24531  , p_source_39            IN VARCHAR2
24532  , p_source_39_meaning    IN VARCHAR2
24533 --Accounting Reversal Indicator
24534  , p_source_40            IN VARCHAR2
24535 --Payment Distribution Amount
24536  , p_source_41            IN NUMBER
24537 --Business Flow Accounts Payable Application Identifier
24538  , p_source_42            IN NUMBER
24539 --Business Flow Payment Distribution Type
24540  , p_source_43            IN VARCHAR2
24541 --Business Flow Payment Entity Code
24542  , p_source_44            IN VARCHAR2
24543 --Business Flow Payment Distribution Identifier
24544  , p_source_45            IN NUMBER
24545 --Business Flow Payment Identifier
24546  , p_source_46            IN NUMBER
24547 --Payment Distribution Identifier
24548  , p_source_47            IN NUMBER
24552  , p_source_49            IN VARCHAR2
24549 --Distribution Link Type
24550  , p_source_48            IN VARCHAR2
24551 --Payment Currency Code
24553 --Override Accounted Amount Indicator
24554  , p_source_53            IN VARCHAR2
24555  , p_source_53_meaning    IN VARCHAR2
24556 --Payment Supplier Identifier
24557  , p_source_54            IN NUMBER
24558 --Payment Supplier Site Identifier
24559  , p_source_55            IN NUMBER
24560 --Third Party Type
24561  , p_source_56            IN VARCHAR2
24562 --Payment Distribution Reversed Identifier
24563  , p_source_57            IN NUMBER
24564 --Pooled Bank Account Option
24565  , p_source_110            IN VARCHAR2
24566  , p_source_110_meaning    IN VARCHAR2
24567 --Payment Maturity Date
24568  , p_source_111            IN DATE
24569 --Payment Exchange Date
24570  , p_source_114            IN DATE
24571 --Payment Exchange Rate
24572  , p_source_115            IN NUMBER
24573 --Payment Exchange Rate Type
24574  , p_source_116            IN VARCHAR2
24575 --Payment Distribution (Matured Rate) Ledger Amount
24576  , p_source_117            IN NUMBER
24577 )
24578 IS
24579 
24580 l_component_type              VARCHAR2(80);
24581 l_component_code              VARCHAR2(30);
24582 l_component_type_code         VARCHAR2(1);
24583 l_component_appl_id           INTEGER;
24584 l_amb_context_code            VARCHAR2(30);
24585 l_entity_code                 VARCHAR2(30);
24586 l_event_class_code            VARCHAR2(30);
24587 l_ae_header_id                NUMBER;
24588 l_event_type_code             VARCHAR2(30);
24589 l_line_definition_code        VARCHAR2(30);
24590 l_line_definition_owner_code  VARCHAR2(1);
24591 --
24592 -- adr variables
24593 l_segment                     VARCHAR2(30);
24594 l_ccid                        NUMBER;
24595 l_adr_transaction_coa_id      NUMBER;
24596 l_adr_accounting_coa_id       NUMBER;
24597 l_adr_flexfield_segment_code  VARCHAR2(30);
24598 l_adr_flex_value_set_id       NUMBER;
24599 l_adr_value_type_code         VARCHAR2(30);
24600 l_adr_value_combination_id    NUMBER;
24601 l_adr_value_segment_code      VARCHAR2(30);
24602 
24603 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
24604 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
24605 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
24606 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
24607 
24608 -- 4262811 Variables ------------------------------------------------------------------------------------------
24609 l_entered_amt_idx             NUMBER;
24610 l_accted_amt_idx              NUMBER;
24611 l_acc_rev_flag                VARCHAR2(1);
24612 l_accrual_line_num            NUMBER;
24613 l_tmp_amt                     NUMBER;
24614 l_acc_rev_natural_side_code   VARCHAR2(1);
24615 
24616 l_num_entries                 NUMBER;
24617 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
24618 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
24619 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
24620 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
24621 l_recog_line_1                NUMBER;
24622 l_recog_line_2                NUMBER;
24623 
24624 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24625 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24626 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24627 
24628 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24629 
24630 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24631 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24632 
24633 ---------------------------------------------------------------------------------------------------------------
24634 
24635 
24636 --
24637 -- bulk performance
24638 --
24639 l_balance_type_code           VARCHAR2(1);
24640 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24641 l_log_module                  VARCHAR2(240);
24642 
24643 --
24644 -- Upgrade strategy
24645 --
24646 l_actual_upg_option           VARCHAR2(1);
24647 l_enc_upg_option           VARCHAR2(1);
24648 
24649 --
24650 BEGIN
24651 --
24652 IF g_log_enabled THEN
24653       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
24654 END IF;
24655 --
24656 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24657 
24658       trace
24659          (p_msg      => 'BEGIN of AcctLineType_64'
24660          ,p_level    => C_LEVEL_PROCEDURE
24661          ,p_module   => l_log_module);
24662 
24663 END IF;
24664 --
24665 l_component_type             := 'AMB_JLT';
24666 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_AS';
24667 l_component_type_code        := 'S';
24668 l_component_appl_id          :=  200;
24669 l_amb_context_code           := 'DEFAULT';
24670 l_entity_code                := 'AP_PAYMENTS';
24671 l_event_class_code           := 'FUTURE DATED PAYMENTS';
24672 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
24673 l_line_definition_owner_code := 'S';
24674 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
24675 --
24676 l_balance_type_code          := 'A';
24680 l_adr_accounting_coa_id       := NULL;
24677 l_segment                     := NULL;
24678 l_ccid                        := NULL;
24679 l_adr_transaction_coa_id      := NULL;
24681 l_adr_flexfield_segment_code  := NULL;
24682 l_adr_flex_value_set_id       := NULL;
24683 l_adr_value_type_code         := NULL;
24684 l_adr_value_combination_id    := NULL;
24685 l_adr_value_segment_code      := NULL;
24686 
24687 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
24688 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
24689 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24690 l_budgetary_control_flag     := 'N';
24691 
24692 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24693 l_bflow_applied_to_amt       := NULL; -- 5132302
24694 l_entered_amt_idx            := NULL;          -- 4262811
24695 l_accted_amt_idx             := NULL;          -- 4262811
24696 l_acc_rev_flag               := NULL;          -- 4262811
24697 l_accrual_line_num           := NULL;          -- 4262811
24698 l_tmp_amt                    := NULL;          -- 4262811
24699 --
24700  
24701 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24702     l_balance_type_code <> 'B' THEN
24703 IF (NVL(p_source_38,'
24704 ') =  'ALWAYS_ALWAYS' OR 
24705 NVL(p_source_38,'
24706 ') =  'ALWAYS_ISSUE') AND 
24707 (NVL(p_source_110,'
24708 ') =  'Y' AND 
24709 NVL(p_source_4,'
24710 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
24711 p_source_111 IS NOT NULL AND 
24712 NVL(p_source_39,'
24713 ') =  'CASH'
24714  THEN 
24715 
24716    --
24717    XLA_AE_LINES_PKG.SetNewLine;
24718 
24719    p_balance_type_code          := l_balance_type_code;
24720    -- set the flag so later we will know whether the gain loss line needs to be created
24721    
24722    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24723      p_actual_flag :='A';
24724    END IF;
24725 
24726    --
24727    -- bulk performance
24728    --
24729    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24730                                       p_header_num   => 0); -- 4262811
24731    --
24732    -- set accounting line options
24733    --
24734    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24735            p_natural_side_code          => 'C'
24736          , p_gain_or_loss_flag          => 'N'
24737          , p_gl_transfer_mode_code      => 'S'
24738          , p_acct_entry_type_code       => 'A'
24739          , p_switch_side_flag           => 'Y'
24740          , p_merge_duplicate_code       => 'A'
24741          );
24742    --
24743    l_acc_rev_natural_side_code := 'D';  -- 4262811
24744    -- 
24745    --
24746    -- set accounting line type info
24747    --
24748    xla_ae_lines_pkg.SetAcctLineType
24749       (p_component_type             => l_component_type
24750       ,p_event_type_code            => l_event_type_code
24751       ,p_line_definition_owner_code => l_line_definition_owner_code
24752       ,p_line_definition_code       => l_line_definition_code
24753       ,p_accounting_line_code       => l_component_code
24754       ,p_accounting_line_type_code  => l_component_type_code
24755       ,p_accounting_line_appl_id    => l_component_appl_id
24756       ,p_amb_context_code           => l_amb_context_code
24757       ,p_entity_code                => l_entity_code
24758       ,p_event_class_code           => l_event_class_code);
24759    --
24760    -- set accounting class
24761    --
24762    xla_ae_lines_pkg.SetAcctClass(
24763            p_accounting_class_code  => 'CASH_CLEARING'
24764          , p_ae_header_id           => l_ae_header_id
24765          );
24766 
24767    --
24768    -- set rounding class
24769    --
24770    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24771                       'CASH_CLEARING';
24772 
24773    --
24774    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24775    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24776    --
24777    -- bulk performance
24778    --
24779    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24780 
24781    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24782       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24783 
24784    -- 4955764
24785    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24786       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24787 
24788    -- 4458381 Public Sector Enh
24789    
24790    --
24791    -- set accounting attributes for the line type
24792    --
24793    l_entered_amt_idx := 9;
24794    l_accted_amt_idx  := 14;
24795    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
24796    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24797    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
24798    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24799    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
24800    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24801    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
24802    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24806    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24803    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
24804    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24805    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
24807    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
24808    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24809    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
24810    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24811    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
24812    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24813    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
24814    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24815    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
24816    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24817    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
24818    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24819    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
24820    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24821    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
24822    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24823    l_rec_acct_attrs.array_num_value(14)  := p_source_117;
24824    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24825    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
24826    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24827    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
24828    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24829    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
24830    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24831    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
24832    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24833    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
24834    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24835    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
24836 
24837    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24838    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24839 
24840    ---------------------------------------------------------------------------------------------------------------
24841    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24842    ---------------------------------------------------------------------------------------------------------------
24843    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24844 
24845    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24846    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24847 
24848    IF xla_accounting_cache_pkg.GetValueChar
24849          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24850          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24851    AND l_bflow_method_code = 'PRIOR_ENTRY'
24852 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24853    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24854          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24855        )
24856    THEN
24857          xla_ae_lines_pkg.BflowUpgEntry
24858            (p_business_method_code    => l_bflow_method_code
24859            ,p_business_class_code     => l_bflow_class_code
24860            ,p_balance_type            => l_balance_type_code);
24861    ELSE
24862       NULL;
24863 XLA_AE_LINES_PKG.business_flow_validation(
24864                                 p_business_method_code     => l_bflow_method_code
24865                                ,p_business_class_code      => l_bflow_class_code
24866                                ,p_inherit_description_flag => l_inherit_desc_flag);
24867    END IF;
24868 
24869    --
24870    -- call analytical criteria
24871    --
24872    
24873    --
24874    -- call description
24875    --
24876    -- No description or it is inherited.
24877    --
24878    -- call ADRs
24879    -- Bug 4922099
24880    --
24881    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24882         (NVL(l_actual_upg_option, 'N') = 'O') OR
24883         (NVL(l_enc_upg_option, 'N') = 'O')
24884       )
24885    THEN
24886    NULL;
24887    --
24888    --
24889    
24890    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
24891      p_code_combination_id      => TO_NUMBER(C_NUM)
24892    , p_value_type_code          => NULL
24893    , p_transaction_coa_id       => null
24894    , p_accounting_coa_id        => null
24895    , p_adr_code                 => NULL
24896    , p_adr_type_code            => NULL
24897    , p_component_type           => l_component_type
24898    , p_component_code           => l_component_code
24899    , p_component_type_code      => l_component_type_code
24900    , p_component_appl_id        => l_component_appl_id
24901    , p_amb_context_code         => l_amb_context_code
24902    , p_side                     => NULL
24903    );
24904 
24905    
24906   -- initialise segments
24910   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24907   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24908   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24909   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24911   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24912   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24913   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24914   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24915   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24916   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24917   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24918   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24919   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24920   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24921   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24922   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24923   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24924   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24925   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24926   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24927   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24928   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24929   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24930   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24931   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24932   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24933   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24934   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24935   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24936   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24937   --
24938 
24939    --
24940 
24941 
24942    l_segment := AcctDerRule_11(
24943            p_application_id           => p_application_id
24944          , p_ae_header_id             => l_ae_header_id 
24945 , p_source_21 => p_source_21
24946          , x_transaction_coa_id       => l_adr_transaction_coa_id
24947          , x_accounting_coa_id        => l_adr_accounting_coa_id
24948          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
24949          , x_flex_value_set_id        => l_adr_flex_value_set_id
24950          , x_value_type_code          => l_adr_value_type_code
24951          , x_value_combination_id     => l_adr_value_combination_id
24952          , x_value_segment_code       => l_adr_value_segment_code
24953          , p_side                     => 'NA'
24954          , p_override_seg_flag        => 'Y'
24955    );
24956 
24957    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
24958 
24959       xla_ae_lines_pkg.set_segment(
24960           p_to_segment_code         => 'GL_ACCOUNT'
24961         , p_segment_value           => l_segment
24962         , p_from_segment_code       => l_adr_value_segment_code
24963         , p_from_combination_id     => l_adr_value_combination_id
24964         , p_value_type_code         => l_adr_value_type_code
24965         , p_transaction_coa_id      => l_adr_transaction_coa_id
24966         , p_accounting_coa_id       => l_adr_accounting_coa_id
24967         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
24968         , p_flex_value_set_id       => l_adr_flex_value_set_id
24969         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
24970         , p_adr_type_code           => 'S'
24971         , p_component_type          => l_component_type
24972         , p_component_code          => l_component_code
24973         , p_component_type_code     => l_component_type_code
24974         , p_component_appl_id       => l_component_appl_id
24975         , p_amb_context_code        => l_amb_context_code
24976         , p_entity_code             => 'AP_PAYMENTS'
24977         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
24978         , p_side                    => 'NA'
24979         );
24980 
24981   END IF;
24982 
24983    --
24984    --
24985    END IF;
24986    --
24987    -- Bug 4922099
24988    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24989           (NVL(l_enc_upg_option, 'N') = 'O')
24990         ) AND
24991         (l_bflow_method_code = 'PRIOR_ENTRY')
24992       )
24993    THEN
24994       IF
24995       --
24996       1 = 2
24997       --
24998       THEN
24999       xla_accounting_err_pkg.build_message
25000                                     (p_appli_s_name            => 'XLA'
25001                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25002                                     ,p_token_1                 => 'LINE_NUMBER'
25006                                                                              l_component_type
25003                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25004                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25005                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25007                                                                             ,l_component_code
25008                                                                             ,l_component_type_code
25009                                                                             ,l_component_appl_id
25010                                                                             ,l_amb_context_code
25011                                                                             ,l_entity_code
25012                                                                             ,l_event_class_code
25013                                                                            )
25014                                     ,p_token_3                 => 'OWNER'
25015                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25016                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25017                                                                           ,p_lookup_code    => l_component_type_code
25018                                                                          )
25019                                     ,p_token_4                 => 'PRODUCT_NAME'
25020                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25021                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25022                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25023                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25024                                     ,p_ae_header_id            =>  NULL
25025                                        );
25026 
25027         IF (C_LEVEL_ERROR>= g_log_level) THEN
25028                  trace
25029                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25030                       ,p_level    => C_LEVEL_ERROR
25031                       ,p_module   => l_log_module);
25032         END IF;
25033       END IF;
25034    END IF;
25035    --
25036    --
25037    ------------------------------------------------------------------------------------------------
25038    -- 4219869 Business Flow
25039    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25040    -- Prior Entry.  Currently, the following code is always generated.
25041    ------------------------------------------------------------------------------------------------
25042    XLA_AE_LINES_PKG.ValidateCurrentLine;
25043 
25044    ------------------------------------------------------------------------------------
25045    -- 4219869 Business Flow
25046    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25047    ------------------------------------------------------------------------------------
25048    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25049 
25050    ----------------------------------------------------------------------------------
25051    -- 4219869 Business Flow
25052    -- Update journal entry status -- Need to generate this within IF <condition>
25053    ----------------------------------------------------------------------------------
25054    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25055          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25056          ,p_balance_type_code => l_balance_type_code
25057          );
25058 
25059    -------------------------------------------------------------------------------------------
25060    -- 4262811 - Generate the Accrual Reversal lines
25061    -------------------------------------------------------------------------------------------
25062    BEGIN
25063       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25064                               (g_array_event(p_event_id).array_value_num('header_index'));
25065       IF l_acc_rev_flag IS NULL THEN
25066          l_acc_rev_flag := 'N';
25067       END IF;
25068    EXCEPTION
25069       WHEN OTHERS THEN
25070          l_acc_rev_flag := 'N';
25071    END;
25072    --
25073    IF (l_acc_rev_flag = 'Y') THEN
25074 
25075        -- 4645092  ------------------------------------------------------------------------------
25076        -- To allow MPA report to determine if it should generate report process
25077        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25078        ------------------------------------------------------------------------------------------
25079 
25080        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25081        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25082    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25083    -- call ADRs
25084    -- Bug 4922099
25085    --
25086    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25087         (NVL(l_actual_upg_option, 'N') = 'O') OR
25088         (NVL(l_enc_upg_option, 'N') = 'O')
25089       )
25090    THEN
25091    NULL;
25092    --
25093    --
25094    
25098    , p_transaction_coa_id       => null
25095    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
25096      p_code_combination_id      => TO_NUMBER(C_NUM)
25097    , p_value_type_code          => NULL
25099    , p_accounting_coa_id        => null
25100    , p_adr_code                 => NULL
25101    , p_adr_type_code            => NULL
25102    , p_component_type           => l_component_type
25103    , p_component_code           => l_component_code
25104    , p_component_type_code      => l_component_type_code
25105    , p_component_appl_id        => l_component_appl_id
25106    , p_amb_context_code         => l_amb_context_code
25107    , p_side                     => NULL
25108    );
25109 
25110    
25111   -- initialise segments
25112   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25113   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25114   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25115   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25116   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25117   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25118   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25119   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25120   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25121   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25122   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25123   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25124   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25125   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25126   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25127   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25128   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25129   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25130   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25131   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25132   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25133   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25134   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25135   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25136   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25137   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25138   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25139   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25140   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25141   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25142   --
25143 
25144    --
25145 
25146 
25147    l_segment := AcctDerRule_11(
25148            p_application_id           => p_application_id
25149          , p_ae_header_id             => l_ae_header_id 
25150 , p_source_21 => p_source_21
25151          , x_transaction_coa_id       => l_adr_transaction_coa_id
25152          , x_accounting_coa_id        => l_adr_accounting_coa_id
25153          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
25154          , x_flex_value_set_id        => l_adr_flex_value_set_id
25155          , x_value_type_code          => l_adr_value_type_code
25156          , x_value_combination_id     => l_adr_value_combination_id
25157          , x_value_segment_code       => l_adr_value_segment_code
25158          , p_side                     => 'NA'
25159          , p_override_seg_flag        => 'Y'
25160    );
25161 
25162    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
25163 
25164       xla_ae_lines_pkg.set_segment(
25165           p_to_segment_code         => 'GL_ACCOUNT'
25166         , p_segment_value           => l_segment
25167         , p_from_segment_code       => l_adr_value_segment_code
25168         , p_from_combination_id     => l_adr_value_combination_id
25169         , p_value_type_code         => l_adr_value_type_code
25170         , p_transaction_coa_id      => l_adr_transaction_coa_id
25171         , p_accounting_coa_id       => l_adr_accounting_coa_id
25172         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
25173         , p_flex_value_set_id       => l_adr_flex_value_set_id
25174         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
25175         , p_adr_type_code           => 'S'
25176         , p_component_type          => l_component_type
25177         , p_component_code          => l_component_code
25178         , p_component_type_code     => l_component_type_code
25179         , p_component_appl_id       => l_component_appl_id
25180         , p_amb_context_code        => l_amb_context_code
25181         , p_entity_code             => 'AP_PAYMENTS'
25182         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
25186   END IF;
25183         , p_side                    => 'NA'
25184         );
25185 
25187 
25188    --
25189    --
25190    END IF;
25191 
25192        --
25193        -- Update the line information that should be overwritten
25194        --
25195        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25196                                          p_header_num   => 1);
25197        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25198 
25199        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25200 
25201        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25202           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25203        END IF;
25204 
25205       --
25206       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25207       --
25208       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25209           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25210       ELSE
25211           ---------------------------------------------------------------------------------------------------
25212           -- 4262811a Switch Sign
25213           ---------------------------------------------------------------------------------------------------
25214           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25215           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25216                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25217           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25218                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25219           -- 5132302
25220           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25221                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25222 
25223       END IF;
25224 
25225       -- 4955764
25226       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25227       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25228 
25229 
25230       XLA_AE_LINES_PKG.ValidateCurrentLine;
25231       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25232 
25233       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25234                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25235                ,p_balance_type_code => l_balance_type_code);
25236 
25237    END IF;
25238 
25239    -----------------------------------------------------------------------------------------
25240    -- 4262811 Multiperiod Accounting
25241    -----------------------------------------------------------------------------------------
25242      -- No MPA option is assigned.
25243 
25244 
25245 END IF;
25246 END IF;
25247 --
25248 
25249 --
25250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25251    trace
25252       (p_msg      => 'END of AcctLineType_64'
25253       ,p_level    => C_LEVEL_PROCEDURE
25254       ,p_module   => l_log_module);
25255 END IF;
25256 --
25257 EXCEPTION
25258   WHEN xla_exceptions_pkg.application_exception THEN
25259       RAISE;
25260   WHEN OTHERS THEN
25261        xla_exceptions_pkg.raise_message
25262            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_64');
25263 END AcctLineType_64;
25264 --
25265 
25266 ---------------------------------------
25267 --
25268 -- PRIVATE FUNCTION
25269 --         AcctLineType_65
25270 --
25271 ---------------------------------------
25272 PROCEDURE AcctLineType_65 (
25273   p_application_id        IN NUMBER
25274  ,p_event_id              IN NUMBER
25275  ,p_calculate_acctd_flag  IN VARCHAR2
25276  ,p_calculate_g_l_flag    IN VARCHAR2
25277  ,p_actual_flag           IN OUT VARCHAR2
25278  ,p_balance_type_code     OUT VARCHAR2
25279  ,p_gain_or_loss_ref      OUT VARCHAR2
25280  
25281 --Automatic Offsets Value
25282  , p_source_4            IN VARCHAR2
25283  , p_source_4_meaning    IN VARCHAR2
25284 --Bank Cash Clearing Account
25285  , p_source_21            IN NUMBER
25286 --When to Account for Payment Option
25287  , p_source_38            IN VARCHAR2
25288 --Payment Distribution Type
25289  , p_source_39            IN VARCHAR2
25290  , p_source_39_meaning    IN VARCHAR2
25291 --Accounting Reversal Indicator
25292  , p_source_40            IN VARCHAR2
25293 --Payment Distribution Amount
25294  , p_source_41            IN NUMBER
25295 --Business Flow Accounts Payable Application Identifier
25296  , p_source_42            IN NUMBER
25297 --Business Flow Payment Distribution Type
25298  , p_source_43            IN VARCHAR2
25299 --Business Flow Payment Entity Code
25300  , p_source_44            IN VARCHAR2
25301 --Business Flow Payment Distribution Identifier
25302  , p_source_45            IN NUMBER
25303 --Business Flow Payment Identifier
25304  , p_source_46            IN NUMBER
25305 --Payment Distribution Identifier
25306  , p_source_47            IN NUMBER
25307 --Distribution Link Type
25308  , p_source_48            IN VARCHAR2
25309 --Payment Currency Code
25310  , p_source_49            IN VARCHAR2
25314 --Payment Supplier Identifier
25311 --Override Accounted Amount Indicator
25312  , p_source_53            IN VARCHAR2
25313  , p_source_53_meaning    IN VARCHAR2
25315  , p_source_54            IN NUMBER
25316 --Payment Supplier Site Identifier
25317  , p_source_55            IN NUMBER
25318 --Third Party Type
25319  , p_source_56            IN VARCHAR2
25320 --Payment Distribution Reversed Identifier
25321  , p_source_57            IN NUMBER
25322 --Pooled Bank Account Option
25323  , p_source_110            IN VARCHAR2
25324  , p_source_110_meaning    IN VARCHAR2
25325 --Payment Maturity Date
25326  , p_source_111            IN DATE
25327 --Payment Exchange Date
25328  , p_source_114            IN DATE
25329 --Payment Exchange Rate
25330  , p_source_115            IN NUMBER
25331 --Payment Exchange Rate Type
25332  , p_source_116            IN VARCHAR2
25333 --Payment Distribution (Matured Rate) Ledger Amount
25334  , p_source_117            IN NUMBER
25335 )
25336 IS
25337 
25338 l_component_type              VARCHAR2(80);
25339 l_component_code              VARCHAR2(30);
25340 l_component_type_code         VARCHAR2(1);
25341 l_component_appl_id           INTEGER;
25342 l_amb_context_code            VARCHAR2(30);
25343 l_entity_code                 VARCHAR2(30);
25344 l_event_class_code            VARCHAR2(30);
25345 l_ae_header_id                NUMBER;
25346 l_event_type_code             VARCHAR2(30);
25347 l_line_definition_code        VARCHAR2(30);
25348 l_line_definition_owner_code  VARCHAR2(1);
25349 --
25350 -- adr variables
25351 l_segment                     VARCHAR2(30);
25352 l_ccid                        NUMBER;
25353 l_adr_transaction_coa_id      NUMBER;
25354 l_adr_accounting_coa_id       NUMBER;
25355 l_adr_flexfield_segment_code  VARCHAR2(30);
25356 l_adr_flex_value_set_id       NUMBER;
25357 l_adr_value_type_code         VARCHAR2(30);
25358 l_adr_value_combination_id    NUMBER;
25359 l_adr_value_segment_code      VARCHAR2(30);
25360 
25361 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25362 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25363 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25364 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25365 
25366 -- 4262811 Variables ------------------------------------------------------------------------------------------
25367 l_entered_amt_idx             NUMBER;
25368 l_accted_amt_idx              NUMBER;
25369 l_acc_rev_flag                VARCHAR2(1);
25370 l_accrual_line_num            NUMBER;
25371 l_tmp_amt                     NUMBER;
25372 l_acc_rev_natural_side_code   VARCHAR2(1);
25373 
25374 l_num_entries                 NUMBER;
25375 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25376 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25377 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25378 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25379 l_recog_line_1                NUMBER;
25380 l_recog_line_2                NUMBER;
25381 
25382 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25383 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25384 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25385 
25386 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25387 
25388 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
25389 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
25390 
25391 ---------------------------------------------------------------------------------------------------------------
25392 
25393 
25394 --
25395 -- bulk performance
25396 --
25397 l_balance_type_code           VARCHAR2(1);
25398 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
25399 l_log_module                  VARCHAR2(240);
25400 
25401 --
25402 -- Upgrade strategy
25403 --
25404 l_actual_upg_option           VARCHAR2(1);
25405 l_enc_upg_option           VARCHAR2(1);
25406 
25407 --
25408 BEGIN
25409 --
25410 IF g_log_enabled THEN
25411       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
25412 END IF;
25413 --
25414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25415 
25416       trace
25417          (p_msg      => 'BEGIN of AcctLineType_65'
25418          ,p_level    => C_LEVEL_PROCEDURE
25419          ,p_module   => l_log_module);
25420 
25421 END IF;
25422 --
25423 l_component_type             := 'AMB_JLT';
25424 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_BS';
25425 l_component_type_code        := 'S';
25426 l_component_appl_id          :=  200;
25427 l_amb_context_code           := 'DEFAULT';
25428 l_entity_code                := 'AP_PAYMENTS';
25429 l_event_class_code           := 'FUTURE DATED PAYMENTS';
25430 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
25431 l_line_definition_owner_code := 'S';
25432 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
25433 --
25434 l_balance_type_code          := 'A';
25435 l_segment                     := NULL;
25436 l_ccid                        := NULL;
25437 l_adr_transaction_coa_id      := NULL;
25438 l_adr_accounting_coa_id       := NULL;
25439 l_adr_flexfield_segment_code  := NULL;
25440 l_adr_flex_value_set_id       := NULL;
25444 
25441 l_adr_value_type_code         := NULL;
25442 l_adr_value_combination_id    := NULL;
25443 l_adr_value_segment_code      := NULL;
25445 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
25446 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
25447 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
25448 l_budgetary_control_flag     := 'N';
25449 
25450 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
25451 l_bflow_applied_to_amt       := NULL; -- 5132302
25452 l_entered_amt_idx            := NULL;          -- 4262811
25453 l_accted_amt_idx             := NULL;          -- 4262811
25454 l_acc_rev_flag               := NULL;          -- 4262811
25455 l_accrual_line_num           := NULL;          -- 4262811
25456 l_tmp_amt                    := NULL;          -- 4262811
25457 --
25458  
25459 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25460     l_balance_type_code <> 'B' THEN
25461 IF (NVL(p_source_38,'
25462 ') =  'ALWAYS_ALWAYS' OR 
25463 NVL(p_source_38,'
25464 ') =  'ALWAYS_CLEAR' OR 
25465 NVL(p_source_38,'
25466 ') =  'ALWAYS_ISSUE') AND 
25467 (NVL(p_source_110,'
25468 ') =  'Y' AND 
25469 NVL(p_source_4,'
25470 ') =  'BALANCING_SEGMENT') AND 
25471 p_source_111 IS NOT NULL AND 
25472 NVL(p_source_39,'
25473 ') =  'CASH'
25474  THEN 
25475 
25476    --
25477    XLA_AE_LINES_PKG.SetNewLine;
25478 
25479    p_balance_type_code          := l_balance_type_code;
25480    -- set the flag so later we will know whether the gain loss line needs to be created
25481    
25482    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25483      p_actual_flag :='A';
25484    END IF;
25485 
25486    --
25487    -- bulk performance
25488    --
25489    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25490                                       p_header_num   => 0); -- 4262811
25491    --
25492    -- set accounting line options
25493    --
25494    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25495            p_natural_side_code          => 'C'
25496          , p_gain_or_loss_flag          => 'N'
25497          , p_gl_transfer_mode_code      => 'S'
25498          , p_acct_entry_type_code       => 'A'
25499          , p_switch_side_flag           => 'Y'
25500          , p_merge_duplicate_code       => 'A'
25501          );
25502    --
25503    l_acc_rev_natural_side_code := 'D';  -- 4262811
25504    -- 
25505    --
25506    -- set accounting line type info
25507    --
25508    xla_ae_lines_pkg.SetAcctLineType
25509       (p_component_type             => l_component_type
25510       ,p_event_type_code            => l_event_type_code
25511       ,p_line_definition_owner_code => l_line_definition_owner_code
25512       ,p_line_definition_code       => l_line_definition_code
25513       ,p_accounting_line_code       => l_component_code
25514       ,p_accounting_line_type_code  => l_component_type_code
25515       ,p_accounting_line_appl_id    => l_component_appl_id
25516       ,p_amb_context_code           => l_amb_context_code
25517       ,p_entity_code                => l_entity_code
25518       ,p_event_class_code           => l_event_class_code);
25519    --
25520    -- set accounting class
25521    --
25522    xla_ae_lines_pkg.SetAcctClass(
25523            p_accounting_class_code  => 'CASH_CLEARING'
25524          , p_ae_header_id           => l_ae_header_id
25525          );
25526 
25527    --
25528    -- set rounding class
25529    --
25530    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25531                       'CASH_CLEARING';
25532 
25533    --
25534    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25535    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25536    --
25537    -- bulk performance
25538    --
25539    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25540 
25541    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25542       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25543 
25544    -- 4955764
25545    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25546       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25547 
25548    -- 4458381 Public Sector Enh
25549    
25550    --
25551    -- set accounting attributes for the line type
25552    --
25553    l_entered_amt_idx := 9;
25554    l_accted_amt_idx  := 14;
25555    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
25556    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25557    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
25558    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
25559    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
25560    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25561    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
25562    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
25563    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
25564    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
25565    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
25569    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
25566    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25567    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
25568    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
25570    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
25571    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
25572    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
25573    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
25574    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
25575    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
25576    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
25577    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
25578    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
25579    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
25580    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
25581    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
25582    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
25583    l_rec_acct_attrs.array_num_value(14)  := p_source_117;
25584    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
25585    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
25586    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
25587    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
25588    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
25589    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
25590    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
25591    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
25592    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
25593    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
25594    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
25595    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
25596 
25597    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25598    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25599 
25600    ---------------------------------------------------------------------------------------------------------------
25601    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25602    ---------------------------------------------------------------------------------------------------------------
25603    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25604 
25605    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25606    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25607 
25608    IF xla_accounting_cache_pkg.GetValueChar
25609          (p_source_code         => 'LEDGER_CATEGORY_CODE'
25610          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25611    AND l_bflow_method_code = 'PRIOR_ENTRY'
25612 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25613    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25614          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25615        )
25616    THEN
25617          xla_ae_lines_pkg.BflowUpgEntry
25618            (p_business_method_code    => l_bflow_method_code
25619            ,p_business_class_code     => l_bflow_class_code
25620            ,p_balance_type            => l_balance_type_code);
25621    ELSE
25622       NULL;
25623 XLA_AE_LINES_PKG.business_flow_validation(
25624                                 p_business_method_code     => l_bflow_method_code
25625                                ,p_business_class_code      => l_bflow_class_code
25626                                ,p_inherit_description_flag => l_inherit_desc_flag);
25627    END IF;
25628 
25629    --
25630    -- call analytical criteria
25631    --
25632    
25633    --
25634    -- call description
25635    --
25636    -- No description or it is inherited.
25637    --
25638    -- call ADRs
25639    -- Bug 4922099
25640    --
25641    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25642         (NVL(l_actual_upg_option, 'N') = 'O') OR
25643         (NVL(l_enc_upg_option, 'N') = 'O')
25644       )
25645    THEN
25646    NULL;
25647    --
25648    --
25649    
25650   l_ccid := AcctDerRule_28(
25651            p_application_id           => p_application_id
25652          , p_ae_header_id             => l_ae_header_id 
25653 , p_source_21 => p_source_21
25654          , x_transaction_coa_id       => l_adr_transaction_coa_id
25655          , x_accounting_coa_id        => l_adr_accounting_coa_id
25656          , x_value_type_code          => l_adr_value_type_code
25657          , p_side                     => 'NA'
25658    );
25659 
25660    xla_ae_lines_pkg.set_ccid(
25661     p_code_combination_id          => l_ccid
25662   , p_value_type_code              => l_adr_value_type_code
25663   , p_transaction_coa_id           => l_adr_transaction_coa_id
25664   , p_accounting_coa_id            => l_adr_accounting_coa_id
25665   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
25666   , p_adr_type_code                => 'S'
25667   , p_component_type               => l_component_type
25668   , p_component_code               => l_component_code
25669   , p_component_type_code          => l_component_type_code
25673   );
25670   , p_component_appl_id            => l_component_appl_id
25671   , p_amb_context_code             => l_amb_context_code
25672   , p_side                         => 'NA'
25674 
25675 
25676    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
25677      p_to_segment_code         => 'GL_BALANCING'
25678    , p_segment_value           => C_CHAR
25679    , p_from_segment_code       => NULL
25680    , p_from_combination_id     => NULL
25681    , p_value_type_code         => NULL
25682    , p_transaction_coa_id      => null
25683    , p_accounting_coa_id       => null
25684    , p_flexfield_segment_code  => NULL
25685    , p_flex_value_set_id       => NULL
25686    , p_adr_code                => NULL
25687    , p_adr_type_code           => NULL
25688    , p_component_type          => l_component_type
25689    , p_component_code          => l_component_code
25690    , p_component_type_code     => l_component_type_code
25691    , p_component_appl_id       => l_component_appl_id
25692    , p_amb_context_code        => l_amb_context_code
25693    , p_entity_code             => 'AP_PAYMENTS'
25694    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
25695    , p_side                    => 'NA'
25696    );
25697    --
25698 
25699 
25700    --
25701    --
25702    END IF;
25703    --
25704    -- Bug 4922099
25705    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25706           (NVL(l_enc_upg_option, 'N') = 'O')
25707         ) AND
25708         (l_bflow_method_code = 'PRIOR_ENTRY')
25709       )
25710    THEN
25711       IF
25712       --
25713       1 = 2
25714       --
25715       THEN
25716       xla_accounting_err_pkg.build_message
25717                                     (p_appli_s_name            => 'XLA'
25718                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25719                                     ,p_token_1                 => 'LINE_NUMBER'
25720                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25721                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25722                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25723                                                                              l_component_type
25724                                                                             ,l_component_code
25725                                                                             ,l_component_type_code
25726                                                                             ,l_component_appl_id
25727                                                                             ,l_amb_context_code
25728                                                                             ,l_entity_code
25729                                                                             ,l_event_class_code
25730                                                                            )
25731                                     ,p_token_3                 => 'OWNER'
25732                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25733                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25734                                                                           ,p_lookup_code    => l_component_type_code
25735                                                                          )
25736                                     ,p_token_4                 => 'PRODUCT_NAME'
25737                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25738                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25739                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25740                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25741                                     ,p_ae_header_id            =>  NULL
25742                                        );
25743 
25744         IF (C_LEVEL_ERROR>= g_log_level) THEN
25745                  trace
25746                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25747                       ,p_level    => C_LEVEL_ERROR
25748                       ,p_module   => l_log_module);
25749         END IF;
25750       END IF;
25751    END IF;
25752    --
25753    --
25754    ------------------------------------------------------------------------------------------------
25755    -- 4219869 Business Flow
25756    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25757    -- Prior Entry.  Currently, the following code is always generated.
25758    ------------------------------------------------------------------------------------------------
25759    XLA_AE_LINES_PKG.ValidateCurrentLine;
25760 
25761    ------------------------------------------------------------------------------------
25762    -- 4219869 Business Flow
25763    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25764    ------------------------------------------------------------------------------------
25765    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25766 
25767    ----------------------------------------------------------------------------------
25768    -- 4219869 Business Flow
25769    -- Update journal entry status -- Need to generate this within IF <condition>
25773          ,p_balance_type_code => l_balance_type_code
25770    ----------------------------------------------------------------------------------
25771    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25772          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25774          );
25775 
25776    -------------------------------------------------------------------------------------------
25777    -- 4262811 - Generate the Accrual Reversal lines
25778    -------------------------------------------------------------------------------------------
25779    BEGIN
25780       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25781                               (g_array_event(p_event_id).array_value_num('header_index'));
25782       IF l_acc_rev_flag IS NULL THEN
25783          l_acc_rev_flag := 'N';
25784       END IF;
25785    EXCEPTION
25786       WHEN OTHERS THEN
25787          l_acc_rev_flag := 'N';
25788    END;
25789    --
25790    IF (l_acc_rev_flag = 'Y') THEN
25791 
25792        -- 4645092  ------------------------------------------------------------------------------
25793        -- To allow MPA report to determine if it should generate report process
25794        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25795        ------------------------------------------------------------------------------------------
25796 
25797        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25798        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25799    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25800    -- call ADRs
25801    -- Bug 4922099
25802    --
25803    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25804         (NVL(l_actual_upg_option, 'N') = 'O') OR
25805         (NVL(l_enc_upg_option, 'N') = 'O')
25806       )
25807    THEN
25808    NULL;
25809    --
25810    --
25811    
25812   l_ccid := AcctDerRule_28(
25813            p_application_id           => p_application_id
25814          , p_ae_header_id             => l_ae_header_id 
25815 , p_source_21 => p_source_21
25816          , x_transaction_coa_id       => l_adr_transaction_coa_id
25817          , x_accounting_coa_id        => l_adr_accounting_coa_id
25818          , x_value_type_code          => l_adr_value_type_code
25819          , p_side                     => 'NA'
25820    );
25821 
25822    xla_ae_lines_pkg.set_ccid(
25823     p_code_combination_id          => l_ccid
25824   , p_value_type_code              => l_adr_value_type_code
25825   , p_transaction_coa_id           => l_adr_transaction_coa_id
25826   , p_accounting_coa_id            => l_adr_accounting_coa_id
25827   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
25828   , p_adr_type_code                => 'S'
25829   , p_component_type               => l_component_type
25830   , p_component_code               => l_component_code
25831   , p_component_type_code          => l_component_type_code
25832   , p_component_appl_id            => l_component_appl_id
25833   , p_amb_context_code             => l_amb_context_code
25834   , p_side                         => 'NA'
25835   );
25836 
25837 
25838    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
25839      p_to_segment_code         => 'GL_BALANCING'
25840    , p_segment_value           => C_CHAR
25841    , p_from_segment_code       => NULL
25842    , p_from_combination_id     => NULL
25843    , p_value_type_code         => NULL
25844    , p_transaction_coa_id      => null
25845    , p_accounting_coa_id       => null
25846    , p_flexfield_segment_code  => NULL
25847    , p_flex_value_set_id       => NULL
25848    , p_adr_code                => NULL
25849    , p_adr_type_code           => NULL
25850    , p_component_type          => l_component_type
25851    , p_component_code          => l_component_code
25852    , p_component_type_code     => l_component_type_code
25853    , p_component_appl_id       => l_component_appl_id
25854    , p_amb_context_code        => l_amb_context_code
25855    , p_entity_code             => 'AP_PAYMENTS'
25856    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
25857    , p_side                    => 'NA'
25858    );
25859    --
25860 
25861 
25862    --
25863    --
25864    END IF;
25865 
25866        --
25867        -- Update the line information that should be overwritten
25868        --
25869        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25870                                          p_header_num   => 1);
25871        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25872 
25873        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25874 
25875        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25876           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25877        END IF;
25878 
25879       --
25880       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25881       --
25882       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25883           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25884       ELSE
25885           ---------------------------------------------------------------------------------------------------
25886           -- 4262811a Switch Sign
25890                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25887           ---------------------------------------------------------------------------------------------------
25888           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25889           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25891           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25892                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25893           -- 5132302
25894           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25895                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25896 
25897       END IF;
25898 
25899       -- 4955764
25900       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25901       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25902 
25903 
25904       XLA_AE_LINES_PKG.ValidateCurrentLine;
25905       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25906 
25907       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25908                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25909                ,p_balance_type_code => l_balance_type_code);
25910 
25911    END IF;
25912 
25913    -----------------------------------------------------------------------------------------
25914    -- 4262811 Multiperiod Accounting
25915    -----------------------------------------------------------------------------------------
25916      -- No MPA option is assigned.
25917 
25918 
25919 END IF;
25920 END IF;
25921 --
25922 
25923 --
25924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25925    trace
25926       (p_msg      => 'END of AcctLineType_65'
25927       ,p_level    => C_LEVEL_PROCEDURE
25928       ,p_module   => l_log_module);
25929 END IF;
25930 --
25931 EXCEPTION
25932   WHEN xla_exceptions_pkg.application_exception THEN
25933       RAISE;
25934   WHEN OTHERS THEN
25935        xla_exceptions_pkg.raise_message
25936            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_65');
25937 END AcctLineType_65;
25938 --
25939 
25940 ---------------------------------------
25941 --
25942 -- PRIVATE FUNCTION
25943 --         AcctLineType_66
25944 --
25945 ---------------------------------------
25946 PROCEDURE AcctLineType_66 (
25947   p_application_id        IN NUMBER
25948  ,p_event_id              IN NUMBER
25949  ,p_calculate_acctd_flag  IN VARCHAR2
25950  ,p_calculate_g_l_flag    IN VARCHAR2
25951  ,p_actual_flag           IN OUT VARCHAR2
25952  ,p_balance_type_code     OUT VARCHAR2
25953  ,p_gain_or_loss_ref      OUT VARCHAR2
25954  
25955 --Payment Distribution (Payment Rate) Ledger Amount
25956  , p_source_9            IN NUMBER
25957 --Bank Cash Clearing Account
25958  , p_source_21            IN NUMBER
25959 --Automatic Offsets Flag
25960  , p_source_30            IN VARCHAR2
25961  , p_source_30_meaning    IN VARCHAR2
25962 --When to Account for Payment Option
25963  , p_source_38            IN VARCHAR2
25964 --Payment Distribution Type
25965  , p_source_39            IN VARCHAR2
25966  , p_source_39_meaning    IN VARCHAR2
25967 --Accounting Reversal Indicator
25968  , p_source_40            IN VARCHAR2
25969 --Payment Distribution Amount
25970  , p_source_41            IN NUMBER
25971 --Business Flow Accounts Payable Application Identifier
25972  , p_source_42            IN NUMBER
25973 --Payment Distribution Identifier
25974  , p_source_47            IN NUMBER
25975 --Distribution Link Type
25976  , p_source_48            IN VARCHAR2
25977 --Payment Currency Code
25978  , p_source_49            IN VARCHAR2
25979 --Override Accounted Amount Indicator
25980  , p_source_53            IN VARCHAR2
25981  , p_source_53_meaning    IN VARCHAR2
25982 --Payment Supplier Identifier
25983  , p_source_54            IN NUMBER
25984 --Payment Supplier Site Identifier
25985  , p_source_55            IN NUMBER
25986 --Third Party Type
25987  , p_source_56            IN VARCHAR2
25988 --Payment Distribution Reversed Identifier
25989  , p_source_57            IN NUMBER
25990 --Invoice Distribution Tax Line Identifier
25991  , p_source_58            IN NUMBER
25992 --Invoice Distribution Summary Tax Line Identifier
25993  , p_source_59            IN NUMBER
25994 --Payment Type
25995  , p_source_60            IN VARCHAR2
25996  , p_source_60_meaning    IN VARCHAR2
25997 --Business Flow Invoice Distribution Type
25998  , p_source_62            IN VARCHAR2
25999 --Business Flow Invoice Entity Code
26000  , p_source_63            IN VARCHAR2
26001 --Business Flow Invoice Distribution Identifier
26002  , p_source_64            IN NUMBER
26003 --Business Flow Invoice Identifier
26004  , p_source_65            IN NUMBER
26005 --Invoice Distribution Tax Distribution Identifier from Tax
26006  , p_source_66            IN NUMBER
26007 --Pooled Bank Account Option
26008  , p_source_110            IN VARCHAR2
26009  , p_source_110_meaning    IN VARCHAR2
26010 --Payment Maturity Date
26011  , p_source_111            IN DATE
26012 --Payment Exchange Date
26013  , p_source_114            IN DATE
26014 --Payment Exchange Rate
26015  , p_source_115            IN NUMBER
26016 --Payment Exchange Rate Type
26017  , p_source_116            IN VARCHAR2
26021 l_component_type              VARCHAR2(80);
26018 )
26019 IS
26020 
26022 l_component_code              VARCHAR2(30);
26023 l_component_type_code         VARCHAR2(1);
26024 l_component_appl_id           INTEGER;
26025 l_amb_context_code            VARCHAR2(30);
26026 l_entity_code                 VARCHAR2(30);
26027 l_event_class_code            VARCHAR2(30);
26028 l_ae_header_id                NUMBER;
26029 l_event_type_code             VARCHAR2(30);
26030 l_line_definition_code        VARCHAR2(30);
26031 l_line_definition_owner_code  VARCHAR2(1);
26032 --
26033 -- adr variables
26034 l_segment                     VARCHAR2(30);
26035 l_ccid                        NUMBER;
26036 l_adr_transaction_coa_id      NUMBER;
26037 l_adr_accounting_coa_id       NUMBER;
26038 l_adr_flexfield_segment_code  VARCHAR2(30);
26039 l_adr_flex_value_set_id       NUMBER;
26040 l_adr_value_type_code         VARCHAR2(30);
26041 l_adr_value_combination_id    NUMBER;
26042 l_adr_value_segment_code      VARCHAR2(30);
26043 
26044 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
26045 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
26046 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
26047 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
26048 
26049 -- 4262811 Variables ------------------------------------------------------------------------------------------
26050 l_entered_amt_idx             NUMBER;
26051 l_accted_amt_idx              NUMBER;
26052 l_acc_rev_flag                VARCHAR2(1);
26053 l_accrual_line_num            NUMBER;
26054 l_tmp_amt                     NUMBER;
26055 l_acc_rev_natural_side_code   VARCHAR2(1);
26056 
26057 l_num_entries                 NUMBER;
26058 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26059 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26060 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26061 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26062 l_recog_line_1                NUMBER;
26063 l_recog_line_2                NUMBER;
26064 
26065 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26066 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26067 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26068 
26069 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26070 
26071 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26072 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26073 
26074 ---------------------------------------------------------------------------------------------------------------
26075 
26076 
26077 --
26078 -- bulk performance
26079 --
26080 l_balance_type_code           VARCHAR2(1);
26081 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26082 l_log_module                  VARCHAR2(240);
26083 
26084 --
26085 -- Upgrade strategy
26086 --
26087 l_actual_upg_option           VARCHAR2(1);
26088 l_enc_upg_option           VARCHAR2(1);
26089 
26090 --
26091 BEGIN
26092 --
26093 IF g_log_enabled THEN
26094       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
26095 END IF;
26096 --
26097 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26098 
26099       trace
26100          (p_msg      => 'BEGIN of AcctLineType_66'
26101          ,p_level    => C_LEVEL_PROCEDURE
26102          ,p_module   => l_log_module);
26103 
26104 END IF;
26105 --
26106 l_component_type             := 'AMB_JLT';
26107 l_component_code             := 'AP_CASH_CLEAR_REF';
26108 l_component_type_code        := 'S';
26109 l_component_appl_id          :=  200;
26110 l_amb_context_code           := 'DEFAULT';
26111 l_entity_code                := 'AP_PAYMENTS';
26112 l_event_class_code           := 'REFUNDS';
26113 l_event_type_code            := 'REFUNDS_ALL';
26114 l_line_definition_owner_code := 'S';
26115 l_line_definition_code       := 'CASH_REFUNDS_ALL';
26116 --
26117 l_balance_type_code          := 'A';
26118 l_segment                     := NULL;
26119 l_ccid                        := NULL;
26120 l_adr_transaction_coa_id      := NULL;
26121 l_adr_accounting_coa_id       := NULL;
26122 l_adr_flexfield_segment_code  := NULL;
26123 l_adr_flex_value_set_id       := NULL;
26124 l_adr_value_type_code         := NULL;
26125 l_adr_value_combination_id    := NULL;
26126 l_adr_value_segment_code      := NULL;
26127 
26128 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
26129 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26130 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26131 l_budgetary_control_flag     := 'N';
26132 
26133 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26134 l_bflow_applied_to_amt       := NULL; -- 5132302
26135 l_entered_amt_idx            := NULL;          -- 4262811
26136 l_accted_amt_idx             := NULL;          -- 4262811
26137 l_acc_rev_flag               := NULL;          -- 4262811
26138 l_accrual_line_num           := NULL;          -- 4262811
26139 l_tmp_amt                    := NULL;          -- 4262811
26140 --
26141  
26142 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26143     l_balance_type_code <> 'B' THEN
26144 IF NVL(p_source_38,'
26148 NVL(p_source_30,'
26145 ') =  'ALWAYS_ALWAYS' AND 
26146 (NVL(p_source_30,'
26147 ') <>  'Y' OR 
26149 ') =  'Y' AND 
26150 NVL(p_source_110,'
26151 ') <>  'Y') AND 
26152 p_source_111 IS NULL AND 
26153 NVL(p_source_39,'
26154 ') =  'CASH' AND 
26155 NVL(p_source_60,'
26156 ') =  'R'
26157  THEN 
26158 
26159    --
26160    XLA_AE_LINES_PKG.SetNewLine;
26161 
26162    p_balance_type_code          := l_balance_type_code;
26163    -- set the flag so later we will know whether the gain loss line needs to be created
26164    
26165    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26166      p_actual_flag :='A';
26167    END IF;
26168 
26169    --
26170    -- bulk performance
26171    --
26172    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26173                                       p_header_num   => 0); -- 4262811
26174    --
26175    -- set accounting line options
26176    --
26177    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26178            p_natural_side_code          => 'C'
26179          , p_gain_or_loss_flag          => 'N'
26180          , p_gl_transfer_mode_code      => 'S'
26181          , p_acct_entry_type_code       => 'A'
26182          , p_switch_side_flag           => 'Y'
26183          , p_merge_duplicate_code       => 'A'
26184          );
26185    --
26186    l_acc_rev_natural_side_code := 'D';  -- 4262811
26187    -- 
26188    --
26189    -- set accounting line type info
26190    --
26191    xla_ae_lines_pkg.SetAcctLineType
26192       (p_component_type             => l_component_type
26193       ,p_event_type_code            => l_event_type_code
26194       ,p_line_definition_owner_code => l_line_definition_owner_code
26195       ,p_line_definition_code       => l_line_definition_code
26196       ,p_accounting_line_code       => l_component_code
26197       ,p_accounting_line_type_code  => l_component_type_code
26198       ,p_accounting_line_appl_id    => l_component_appl_id
26199       ,p_amb_context_code           => l_amb_context_code
26200       ,p_entity_code                => l_entity_code
26201       ,p_event_class_code           => l_event_class_code);
26202    --
26203    -- set accounting class
26204    --
26205    xla_ae_lines_pkg.SetAcctClass(
26206            p_accounting_class_code  => 'CASH_CLEARING'
26207          , p_ae_header_id           => l_ae_header_id
26208          );
26209 
26210    --
26211    -- set rounding class
26212    --
26213    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26214                       'CASH_CLEARING';
26215 
26216    --
26217    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26218    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26219    --
26220    -- bulk performance
26221    --
26222    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26223 
26224    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26225       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26226 
26227    -- 4955764
26228    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26229       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26230 
26231    -- 4458381 Public Sector Enh
26232    
26233    --
26234    -- set accounting attributes for the line type
26235    --
26236    l_entered_amt_idx := 9;
26237    l_accted_amt_idx  := 14;
26238    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
26239    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26240    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
26241    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
26242    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
26243    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26244    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
26245    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
26246    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
26247    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
26248    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
26249    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26250    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
26251    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
26252    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
26253    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
26254    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
26255    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
26256    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
26257    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
26258    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
26259    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
26260    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
26261    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
26262    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
26263    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
26264    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
26265    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
26269    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
26266    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
26267    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
26268    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
26270    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
26271    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
26272    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
26273    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
26274    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
26275    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
26276    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
26277    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
26278    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
26279    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
26280    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
26281    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
26282    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
26283    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
26284    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
26285 
26286    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26287    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26288 
26289    ---------------------------------------------------------------------------------------------------------------
26290    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26291    ---------------------------------------------------------------------------------------------------------------
26292    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26293 
26294    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26295    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26296 
26297    IF xla_accounting_cache_pkg.GetValueChar
26298          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26299          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26300    AND l_bflow_method_code = 'PRIOR_ENTRY'
26301 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26302    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26303          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26304        )
26305    THEN
26306          xla_ae_lines_pkg.BflowUpgEntry
26307            (p_business_method_code    => l_bflow_method_code
26308            ,p_business_class_code     => l_bflow_class_code
26309            ,p_balance_type            => l_balance_type_code);
26310    ELSE
26311       NULL;
26312 -- No business flow processing for business flow method of NONE.
26313    END IF;
26314 
26315    --
26316    -- call analytical criteria
26317    --
26318    
26319    --
26320    -- call description
26321    --
26322    -- No description or it is inherited.
26323    --
26324    -- call ADRs
26325    -- Bug 4922099
26326    --
26327    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26328         (NVL(l_actual_upg_option, 'N') = 'O') OR
26329         (NVL(l_enc_upg_option, 'N') = 'O')
26330       )
26331    THEN
26332    NULL;
26333    --
26334    --
26335    
26336   l_ccid := AcctDerRule_28(
26337            p_application_id           => p_application_id
26338          , p_ae_header_id             => l_ae_header_id 
26339 , p_source_21 => p_source_21
26340          , x_transaction_coa_id       => l_adr_transaction_coa_id
26341          , x_accounting_coa_id        => l_adr_accounting_coa_id
26342          , x_value_type_code          => l_adr_value_type_code
26343          , p_side                     => 'NA'
26344    );
26345 
26346    xla_ae_lines_pkg.set_ccid(
26347     p_code_combination_id          => l_ccid
26348   , p_value_type_code              => l_adr_value_type_code
26349   , p_transaction_coa_id           => l_adr_transaction_coa_id
26350   , p_accounting_coa_id            => l_adr_accounting_coa_id
26351   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
26352   , p_adr_type_code                => 'S'
26353   , p_component_type               => l_component_type
26354   , p_component_code               => l_component_code
26355   , p_component_type_code          => l_component_type_code
26356   , p_component_appl_id            => l_component_appl_id
26357   , p_amb_context_code             => l_amb_context_code
26358   , p_side                         => 'NA'
26359   );
26360 
26361 
26362    --
26363    --
26364    END IF;
26365    --
26366    -- Bug 4922099
26367    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26368           (NVL(l_enc_upg_option, 'N') = 'O')
26369         ) AND
26370         (l_bflow_method_code = 'PRIOR_ENTRY')
26371       )
26372    THEN
26373       IF
26374       --
26375       1 = 2
26376       --
26377       THEN
26378       xla_accounting_err_pkg.build_message
26379                                     (p_appli_s_name            => 'XLA'
26380                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26381                                     ,p_token_1                 => 'LINE_NUMBER'
26385                                                                              l_component_type
26382                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
26383                                     ,p_token_2                 => 'LINE_TYPE_NAME'
26384                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
26386                                                                             ,l_component_code
26387                                                                             ,l_component_type_code
26388                                                                             ,l_component_appl_id
26389                                                                             ,l_amb_context_code
26390                                                                             ,l_entity_code
26391                                                                             ,l_event_class_code
26392                                                                            )
26393                                     ,p_token_3                 => 'OWNER'
26394                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
26395                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
26396                                                                           ,p_lookup_code    => l_component_type_code
26397                                                                          )
26398                                     ,p_token_4                 => 'PRODUCT_NAME'
26399                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26400                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26401                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26402                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26403                                     ,p_ae_header_id            =>  NULL
26404                                        );
26405 
26406         IF (C_LEVEL_ERROR>= g_log_level) THEN
26407                  trace
26408                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26409                       ,p_level    => C_LEVEL_ERROR
26410                       ,p_module   => l_log_module);
26411         END IF;
26412       END IF;
26413    END IF;
26414    --
26415    --
26416    ------------------------------------------------------------------------------------------------
26417    -- 4219869 Business Flow
26418    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26419    -- Prior Entry.  Currently, the following code is always generated.
26420    ------------------------------------------------------------------------------------------------
26421    XLA_AE_LINES_PKG.ValidateCurrentLine;
26422 
26423    ------------------------------------------------------------------------------------
26424    -- 4219869 Business Flow
26425    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26426    ------------------------------------------------------------------------------------
26427    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26428 
26429    ----------------------------------------------------------------------------------
26430    -- 4219869 Business Flow
26431    -- Update journal entry status -- Need to generate this within IF <condition>
26432    ----------------------------------------------------------------------------------
26433    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26434          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26435          ,p_balance_type_code => l_balance_type_code
26436          );
26437 
26438    -------------------------------------------------------------------------------------------
26439    -- 4262811 - Generate the Accrual Reversal lines
26440    -------------------------------------------------------------------------------------------
26441    BEGIN
26442       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26443                               (g_array_event(p_event_id).array_value_num('header_index'));
26444       IF l_acc_rev_flag IS NULL THEN
26445          l_acc_rev_flag := 'N';
26446       END IF;
26447    EXCEPTION
26448       WHEN OTHERS THEN
26449          l_acc_rev_flag := 'N';
26450    END;
26451    --
26452    IF (l_acc_rev_flag = 'Y') THEN
26453 
26454        -- 4645092  ------------------------------------------------------------------------------
26455        -- To allow MPA report to determine if it should generate report process
26456        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26457        ------------------------------------------------------------------------------------------
26458 
26459        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26460        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26461    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
26462    -- call ADRs
26463    -- Bug 4922099
26464    --
26465    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26466         (NVL(l_actual_upg_option, 'N') = 'O') OR
26467         (NVL(l_enc_upg_option, 'N') = 'O')
26468       )
26469    THEN
26470    NULL;
26471    --
26472    --
26473    
26474   l_ccid := AcctDerRule_28(
26478          , x_transaction_coa_id       => l_adr_transaction_coa_id
26475            p_application_id           => p_application_id
26476          , p_ae_header_id             => l_ae_header_id 
26477 , p_source_21 => p_source_21
26479          , x_accounting_coa_id        => l_adr_accounting_coa_id
26480          , x_value_type_code          => l_adr_value_type_code
26481          , p_side                     => 'NA'
26482    );
26483 
26484    xla_ae_lines_pkg.set_ccid(
26485     p_code_combination_id          => l_ccid
26486   , p_value_type_code              => l_adr_value_type_code
26487   , p_transaction_coa_id           => l_adr_transaction_coa_id
26488   , p_accounting_coa_id            => l_adr_accounting_coa_id
26489   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
26490   , p_adr_type_code                => 'S'
26491   , p_component_type               => l_component_type
26492   , p_component_code               => l_component_code
26493   , p_component_type_code          => l_component_type_code
26494   , p_component_appl_id            => l_component_appl_id
26495   , p_amb_context_code             => l_amb_context_code
26496   , p_side                         => 'NA'
26497   );
26498 
26499 
26500    --
26501    --
26502    END IF;
26503 
26504        --
26505        -- Update the line information that should be overwritten
26506        --
26507        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26508                                          p_header_num   => 1);
26509        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
26510 
26511        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26512 
26513        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
26514           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26515        END IF;
26516 
26517       --
26518       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26519       --
26520       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26521           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
26522       ELSE
26523           ---------------------------------------------------------------------------------------------------
26524           -- 4262811a Switch Sign
26525           ---------------------------------------------------------------------------------------------------
26526           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
26527           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26528                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26529           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26530                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26531           -- 5132302
26532           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26533                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26534 
26535       END IF;
26536 
26537       -- 4955764
26538       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26539       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26540 
26541 
26542       XLA_AE_LINES_PKG.ValidateCurrentLine;
26543       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26544 
26545       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26546                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26547                ,p_balance_type_code => l_balance_type_code);
26548 
26549    END IF;
26550 
26551    -----------------------------------------------------------------------------------------
26552    -- 4262811 Multiperiod Accounting
26553    -----------------------------------------------------------------------------------------
26554      -- No MPA option is assigned.
26555 
26556 
26557 END IF;
26558 END IF;
26559 --
26560 
26561 --
26562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26563    trace
26564       (p_msg      => 'END of AcctLineType_66'
26565       ,p_level    => C_LEVEL_PROCEDURE
26566       ,p_module   => l_log_module);
26567 END IF;
26568 --
26569 EXCEPTION
26570   WHEN xla_exceptions_pkg.application_exception THEN
26571       RAISE;
26572   WHEN OTHERS THEN
26573        xla_exceptions_pkg.raise_message
26574            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_66');
26575 END AcctLineType_66;
26576 --
26577 
26578 ---------------------------------------
26579 --
26580 -- PRIVATE FUNCTION
26581 --         AcctLineType_67
26582 --
26583 ---------------------------------------
26584 PROCEDURE AcctLineType_67 (
26585   p_application_id        IN NUMBER
26586  ,p_event_id              IN NUMBER
26587  ,p_calculate_acctd_flag  IN VARCHAR2
26588  ,p_calculate_g_l_flag    IN VARCHAR2
26589  ,p_actual_flag           IN OUT VARCHAR2
26590  ,p_balance_type_code     OUT VARCHAR2
26591  ,p_gain_or_loss_ref      OUT VARCHAR2
26592  
26593 --Automatic Offsets Value
26594  , p_source_4            IN VARCHAR2
26598 --Bank Cash Clearing Account
26595  , p_source_4_meaning    IN VARCHAR2
26596 --Payment Distribution (Payment Rate) Ledger Amount
26597  , p_source_9            IN NUMBER
26599  , p_source_21            IN NUMBER
26600 --When to Account for Payment Option
26601  , p_source_38            IN VARCHAR2
26602 --Payment Distribution Type
26603  , p_source_39            IN VARCHAR2
26604  , p_source_39_meaning    IN VARCHAR2
26605 --Accounting Reversal Indicator
26606  , p_source_40            IN VARCHAR2
26607 --Payment Distribution Amount
26608  , p_source_41            IN NUMBER
26609 --Business Flow Accounts Payable Application Identifier
26610  , p_source_42            IN NUMBER
26611 --Payment Distribution Identifier
26612  , p_source_47            IN NUMBER
26613 --Distribution Link Type
26614  , p_source_48            IN VARCHAR2
26615 --Payment Currency Code
26616  , p_source_49            IN VARCHAR2
26617 --Override Accounted Amount Indicator
26618  , p_source_53            IN VARCHAR2
26619  , p_source_53_meaning    IN VARCHAR2
26620 --Payment Supplier Identifier
26621  , p_source_54            IN NUMBER
26622 --Payment Supplier Site Identifier
26623  , p_source_55            IN NUMBER
26624 --Third Party Type
26625  , p_source_56            IN VARCHAR2
26626 --Payment Distribution Reversed Identifier
26627  , p_source_57            IN NUMBER
26628 --Invoice Distribution Tax Line Identifier
26629  , p_source_58            IN NUMBER
26630 --Invoice Distribution Summary Tax Line Identifier
26631  , p_source_59            IN NUMBER
26632 --Payment Type
26633  , p_source_60            IN VARCHAR2
26634  , p_source_60_meaning    IN VARCHAR2
26635 --Business Flow Invoice Distribution Type
26636  , p_source_62            IN VARCHAR2
26637 --Business Flow Invoice Entity Code
26638  , p_source_63            IN VARCHAR2
26639 --Business Flow Invoice Distribution Identifier
26640  , p_source_64            IN NUMBER
26641 --Business Flow Invoice Identifier
26642  , p_source_65            IN NUMBER
26643 --Invoice Distribution Tax Distribution Identifier from Tax
26644  , p_source_66            IN NUMBER
26645 --Pooled Bank Account Option
26646  , p_source_110            IN VARCHAR2
26647  , p_source_110_meaning    IN VARCHAR2
26648 --Payment Maturity Date
26649  , p_source_111            IN DATE
26650 --Payment Exchange Date
26651  , p_source_114            IN DATE
26652 --Payment Exchange Rate
26653  , p_source_115            IN NUMBER
26654 --Payment Exchange Rate Type
26655  , p_source_116            IN VARCHAR2
26656 )
26657 IS
26658 
26659 l_component_type              VARCHAR2(80);
26660 l_component_code              VARCHAR2(30);
26661 l_component_type_code         VARCHAR2(1);
26662 l_component_appl_id           INTEGER;
26663 l_amb_context_code            VARCHAR2(30);
26664 l_entity_code                 VARCHAR2(30);
26665 l_event_class_code            VARCHAR2(30);
26666 l_ae_header_id                NUMBER;
26667 l_event_type_code             VARCHAR2(30);
26668 l_line_definition_code        VARCHAR2(30);
26669 l_line_definition_owner_code  VARCHAR2(1);
26670 --
26671 -- adr variables
26672 l_segment                     VARCHAR2(30);
26673 l_ccid                        NUMBER;
26674 l_adr_transaction_coa_id      NUMBER;
26675 l_adr_accounting_coa_id       NUMBER;
26676 l_adr_flexfield_segment_code  VARCHAR2(30);
26677 l_adr_flex_value_set_id       NUMBER;
26678 l_adr_value_type_code         VARCHAR2(30);
26679 l_adr_value_combination_id    NUMBER;
26680 l_adr_value_segment_code      VARCHAR2(30);
26681 
26682 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
26683 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
26684 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
26685 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
26686 
26687 -- 4262811 Variables ------------------------------------------------------------------------------------------
26688 l_entered_amt_idx             NUMBER;
26689 l_accted_amt_idx              NUMBER;
26690 l_acc_rev_flag                VARCHAR2(1);
26691 l_accrual_line_num            NUMBER;
26692 l_tmp_amt                     NUMBER;
26693 l_acc_rev_natural_side_code   VARCHAR2(1);
26694 
26695 l_num_entries                 NUMBER;
26696 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26697 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26698 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26699 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26700 l_recog_line_1                NUMBER;
26701 l_recog_line_2                NUMBER;
26702 
26703 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26704 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26705 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26706 
26707 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26708 
26709 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26710 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26711 
26712 ---------------------------------------------------------------------------------------------------------------
26713 
26714 
26715 --
26716 -- bulk performance
26717 --
26718 l_balance_type_code           VARCHAR2(1);
26719 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26720 l_log_module                  VARCHAR2(240);
26724 --
26721 
26722 --
26723 -- Upgrade strategy
26725 l_actual_upg_option           VARCHAR2(1);
26726 l_enc_upg_option           VARCHAR2(1);
26727 
26728 --
26729 BEGIN
26730 --
26731 IF g_log_enabled THEN
26732       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
26733 END IF;
26734 --
26735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26736 
26737       trace
26738          (p_msg      => 'BEGIN of AcctLineType_67'
26739          ,p_level    => C_LEVEL_PROCEDURE
26740          ,p_module   => l_log_module);
26741 
26742 END IF;
26743 --
26744 l_component_type             := 'AMB_JLT';
26745 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_AS';
26746 l_component_type_code        := 'S';
26747 l_component_appl_id          :=  200;
26748 l_amb_context_code           := 'DEFAULT';
26749 l_entity_code                := 'AP_PAYMENTS';
26750 l_event_class_code           := 'REFUNDS';
26751 l_event_type_code            := 'REFUNDS_ALL';
26752 l_line_definition_owner_code := 'S';
26753 l_line_definition_code       := 'CASH_REFUNDS_ALL';
26754 --
26755 l_balance_type_code          := 'A';
26756 l_segment                     := NULL;
26757 l_ccid                        := NULL;
26758 l_adr_transaction_coa_id      := NULL;
26759 l_adr_accounting_coa_id       := NULL;
26760 l_adr_flexfield_segment_code  := NULL;
26761 l_adr_flex_value_set_id       := NULL;
26762 l_adr_value_type_code         := NULL;
26763 l_adr_value_combination_id    := NULL;
26764 l_adr_value_segment_code      := NULL;
26765 
26766 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
26767 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26768 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26769 l_budgetary_control_flag     := 'N';
26770 
26771 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26772 l_bflow_applied_to_amt       := NULL; -- 5132302
26773 l_entered_amt_idx            := NULL;          -- 4262811
26774 l_accted_amt_idx             := NULL;          -- 4262811
26775 l_acc_rev_flag               := NULL;          -- 4262811
26776 l_accrual_line_num           := NULL;          -- 4262811
26777 l_tmp_amt                    := NULL;          -- 4262811
26778 --
26779  
26780 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26781     l_balance_type_code <> 'B' THEN
26782 IF NVL(p_source_38,'
26783 ') =  'ALWAYS_ALWAYS' AND 
26784 (NVL(p_source_110,'
26785 ') =  'Y' AND 
26786 NVL(p_source_4,'
26787 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
26788 p_source_111 IS NULL AND 
26789 NVL(p_source_39,'
26790 ') =  'CASH' AND 
26791 NVL(p_source_60,'
26792 ') =  'R'
26793  THEN 
26794 
26795    --
26796    XLA_AE_LINES_PKG.SetNewLine;
26797 
26798    p_balance_type_code          := l_balance_type_code;
26799    -- set the flag so later we will know whether the gain loss line needs to be created
26800    
26801    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26802      p_actual_flag :='A';
26803    END IF;
26804 
26805    --
26806    -- bulk performance
26807    --
26808    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26809                                       p_header_num   => 0); -- 4262811
26810    --
26811    -- set accounting line options
26812    --
26813    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26814            p_natural_side_code          => 'C'
26815          , p_gain_or_loss_flag          => 'N'
26816          , p_gl_transfer_mode_code      => 'S'
26817          , p_acct_entry_type_code       => 'A'
26818          , p_switch_side_flag           => 'Y'
26819          , p_merge_duplicate_code       => 'A'
26820          );
26821    --
26822    l_acc_rev_natural_side_code := 'D';  -- 4262811
26823    -- 
26824    --
26825    -- set accounting line type info
26826    --
26827    xla_ae_lines_pkg.SetAcctLineType
26828       (p_component_type             => l_component_type
26829       ,p_event_type_code            => l_event_type_code
26830       ,p_line_definition_owner_code => l_line_definition_owner_code
26831       ,p_line_definition_code       => l_line_definition_code
26832       ,p_accounting_line_code       => l_component_code
26833       ,p_accounting_line_type_code  => l_component_type_code
26834       ,p_accounting_line_appl_id    => l_component_appl_id
26835       ,p_amb_context_code           => l_amb_context_code
26836       ,p_entity_code                => l_entity_code
26837       ,p_event_class_code           => l_event_class_code);
26838    --
26839    -- set accounting class
26840    --
26841    xla_ae_lines_pkg.SetAcctClass(
26842            p_accounting_class_code  => 'CASH_CLEARING'
26843          , p_ae_header_id           => l_ae_header_id
26844          );
26845 
26846    --
26847    -- set rounding class
26848    --
26849    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26850                       'CASH_CLEARING';
26851 
26852    --
26853    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26854    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26855    --
26856    -- bulk performance
26857    --
26858    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26862 
26859 
26860    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26861       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26863    -- 4955764
26864    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26865       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26866 
26867    -- 4458381 Public Sector Enh
26868    
26869    --
26870    -- set accounting attributes for the line type
26871    --
26872    l_entered_amt_idx := 9;
26873    l_accted_amt_idx  := 14;
26874    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
26875    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26876    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
26877    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
26878    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
26879    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26880    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
26881    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
26882    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
26883    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
26884    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
26885    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26886    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
26887    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
26888    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
26889    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
26890    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
26891    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
26892    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
26893    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
26894    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
26895    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
26896    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
26897    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
26898    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
26899    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
26900    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
26901    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
26902    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
26903    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
26904    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
26905    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
26906    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
26907    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
26908    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
26909    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
26910    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
26911    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
26912    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
26913    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
26914    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
26915    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
26916    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
26917    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
26918    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
26919    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
26920    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
26921 
26922    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26923    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26924 
26925    ---------------------------------------------------------------------------------------------------------------
26926    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26927    ---------------------------------------------------------------------------------------------------------------
26928    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26929 
26930    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26931    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26932 
26933    IF xla_accounting_cache_pkg.GetValueChar
26934          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26935          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26936    AND l_bflow_method_code = 'PRIOR_ENTRY'
26937 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26938    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26939          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26940        )
26941    THEN
26942          xla_ae_lines_pkg.BflowUpgEntry
26943            (p_business_method_code    => l_bflow_method_code
26944            ,p_business_class_code     => l_bflow_class_code
26945            ,p_balance_type            => l_balance_type_code);
26946    ELSE
26947       NULL;
26948 XLA_AE_LINES_PKG.business_flow_validation(
26949                                 p_business_method_code     => l_bflow_method_code
26950                                ,p_business_class_code      => l_bflow_class_code
26954    --
26951                                ,p_inherit_description_flag => l_inherit_desc_flag);
26952    END IF;
26953 
26955    -- call analytical criteria
26956    --
26957    
26958    --
26959    -- call description
26960    --
26961    -- No description or it is inherited.
26962    --
26963    -- call ADRs
26964    -- Bug 4922099
26965    --
26966    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26967         (NVL(l_actual_upg_option, 'N') = 'O') OR
26968         (NVL(l_enc_upg_option, 'N') = 'O')
26969       )
26970    THEN
26971    NULL;
26972    --
26973    --
26974    
26975    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
26976      p_code_combination_id      => TO_NUMBER(C_NUM)
26977    , p_value_type_code          => NULL
26978    , p_transaction_coa_id       => null
26979    , p_accounting_coa_id        => null
26980    , p_adr_code                 => NULL
26981    , p_adr_type_code            => NULL
26982    , p_component_type           => l_component_type
26983    , p_component_code           => l_component_code
26984    , p_component_type_code      => l_component_type_code
26985    , p_component_appl_id        => l_component_appl_id
26986    , p_amb_context_code         => l_amb_context_code
26987    , p_side                     => NULL
26988    );
26989 
26990    
26991   -- initialise segments
26992   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26993   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26994   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26995   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26996   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26997   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26998   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26999   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27000   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27001   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27002   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27003   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27004   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27005   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27006   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27007   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27008   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27009   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27010   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27011   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27012   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27013   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27014   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27015   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27016   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27017   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27018   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27019   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27020   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27021   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27022   --
27023 
27024    --
27025 
27026 
27027    l_segment := AcctDerRule_11(
27028            p_application_id           => p_application_id
27029          , p_ae_header_id             => l_ae_header_id 
27030 , p_source_21 => p_source_21
27031          , x_transaction_coa_id       => l_adr_transaction_coa_id
27032          , x_accounting_coa_id        => l_adr_accounting_coa_id
27033          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
27034          , x_flex_value_set_id        => l_adr_flex_value_set_id
27035          , x_value_type_code          => l_adr_value_type_code
27036          , x_value_combination_id     => l_adr_value_combination_id
27037          , x_value_segment_code       => l_adr_value_segment_code
27038          , p_side                     => 'NA'
27039          , p_override_seg_flag        => 'Y'
27040    );
27041 
27042    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
27043 
27044       xla_ae_lines_pkg.set_segment(
27045           p_to_segment_code         => 'GL_ACCOUNT'
27046         , p_segment_value           => l_segment
27047         , p_from_segment_code       => l_adr_value_segment_code
27048         , p_from_combination_id     => l_adr_value_combination_id
27049         , p_value_type_code         => l_adr_value_type_code
27050         , p_transaction_coa_id      => l_adr_transaction_coa_id
27054         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
27051         , p_accounting_coa_id       => l_adr_accounting_coa_id
27052         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
27053         , p_flex_value_set_id       => l_adr_flex_value_set_id
27055         , p_adr_type_code           => 'S'
27056         , p_component_type          => l_component_type
27057         , p_component_code          => l_component_code
27058         , p_component_type_code     => l_component_type_code
27059         , p_component_appl_id       => l_component_appl_id
27060         , p_amb_context_code        => l_amb_context_code
27061         , p_entity_code             => 'AP_PAYMENTS'
27062         , p_event_class_code        => 'REFUNDS'
27063         , p_side                    => 'NA'
27064         );
27065 
27066   END IF;
27067 
27068    --
27069    --
27070    END IF;
27071    --
27072    -- Bug 4922099
27073    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27074           (NVL(l_enc_upg_option, 'N') = 'O')
27075         ) AND
27076         (l_bflow_method_code = 'PRIOR_ENTRY')
27077       )
27078    THEN
27079       IF
27080       --
27081       1 = 2
27082       --
27083       THEN
27084       xla_accounting_err_pkg.build_message
27085                                     (p_appli_s_name            => 'XLA'
27086                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27087                                     ,p_token_1                 => 'LINE_NUMBER'
27088                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27089                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27090                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27091                                                                              l_component_type
27092                                                                             ,l_component_code
27093                                                                             ,l_component_type_code
27094                                                                             ,l_component_appl_id
27095                                                                             ,l_amb_context_code
27096                                                                             ,l_entity_code
27097                                                                             ,l_event_class_code
27098                                                                            )
27099                                     ,p_token_3                 => 'OWNER'
27100                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27101                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27102                                                                           ,p_lookup_code    => l_component_type_code
27103                                                                          )
27104                                     ,p_token_4                 => 'PRODUCT_NAME'
27105                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27106                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27107                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27108                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27109                                     ,p_ae_header_id            =>  NULL
27110                                        );
27111 
27112         IF (C_LEVEL_ERROR>= g_log_level) THEN
27113                  trace
27114                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27115                       ,p_level    => C_LEVEL_ERROR
27116                       ,p_module   => l_log_module);
27117         END IF;
27118       END IF;
27119    END IF;
27120    --
27121    --
27122    ------------------------------------------------------------------------------------------------
27123    -- 4219869 Business Flow
27124    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27125    -- Prior Entry.  Currently, the following code is always generated.
27126    ------------------------------------------------------------------------------------------------
27127    XLA_AE_LINES_PKG.ValidateCurrentLine;
27128 
27129    ------------------------------------------------------------------------------------
27130    -- 4219869 Business Flow
27131    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27132    ------------------------------------------------------------------------------------
27133    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27134 
27135    ----------------------------------------------------------------------------------
27136    -- 4219869 Business Flow
27137    -- Update journal entry status -- Need to generate this within IF <condition>
27138    ----------------------------------------------------------------------------------
27139    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27140          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27141          ,p_balance_type_code => l_balance_type_code
27142          );
27143 
27144    -------------------------------------------------------------------------------------------
27145    -- 4262811 - Generate the Accrual Reversal lines
27149                               (g_array_event(p_event_id).array_value_num('header_index'));
27146    -------------------------------------------------------------------------------------------
27147    BEGIN
27148       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27150       IF l_acc_rev_flag IS NULL THEN
27151          l_acc_rev_flag := 'N';
27152       END IF;
27153    EXCEPTION
27154       WHEN OTHERS THEN
27155          l_acc_rev_flag := 'N';
27156    END;
27157    --
27158    IF (l_acc_rev_flag = 'Y') THEN
27159 
27160        -- 4645092  ------------------------------------------------------------------------------
27161        -- To allow MPA report to determine if it should generate report process
27162        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27163        ------------------------------------------------------------------------------------------
27164 
27165        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27166        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27167    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27168    -- call ADRs
27169    -- Bug 4922099
27170    --
27171    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27172         (NVL(l_actual_upg_option, 'N') = 'O') OR
27173         (NVL(l_enc_upg_option, 'N') = 'O')
27174       )
27175    THEN
27176    NULL;
27177    --
27178    --
27179    
27180    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
27181      p_code_combination_id      => TO_NUMBER(C_NUM)
27182    , p_value_type_code          => NULL
27183    , p_transaction_coa_id       => null
27184    , p_accounting_coa_id        => null
27185    , p_adr_code                 => NULL
27186    , p_adr_type_code            => NULL
27187    , p_component_type           => l_component_type
27188    , p_component_code           => l_component_code
27189    , p_component_type_code      => l_component_type_code
27190    , p_component_appl_id        => l_component_appl_id
27191    , p_amb_context_code         => l_amb_context_code
27192    , p_side                     => NULL
27193    );
27194 
27195    
27196   -- initialise segments
27197   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27198   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27199   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27200   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27201   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27202   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27203   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27204   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27205   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27206   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27207   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27208   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27209   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27210   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27211   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27212   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27213   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27214   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27215   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27216   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27217   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27218   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27219   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27220   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27221   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27222   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27223   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27224   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27225   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27226   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27227   --
27228 
27229    --
27230 
27231 
27232    l_segment := AcctDerRule_11(
27233            p_application_id           => p_application_id
27234          , p_ae_header_id             => l_ae_header_id 
27235 , p_source_21 => p_source_21
27236          , x_transaction_coa_id       => l_adr_transaction_coa_id
27237          , x_accounting_coa_id        => l_adr_accounting_coa_id
27238          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
27239          , x_flex_value_set_id        => l_adr_flex_value_set_id
27240          , x_value_type_code          => l_adr_value_type_code
27241          , x_value_combination_id     => l_adr_value_combination_id
27245    );
27242          , x_value_segment_code       => l_adr_value_segment_code
27243          , p_side                     => 'NA'
27244          , p_override_seg_flag        => 'Y'
27246 
27247    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
27248 
27249       xla_ae_lines_pkg.set_segment(
27250           p_to_segment_code         => 'GL_ACCOUNT'
27251         , p_segment_value           => l_segment
27252         , p_from_segment_code       => l_adr_value_segment_code
27253         , p_from_combination_id     => l_adr_value_combination_id
27254         , p_value_type_code         => l_adr_value_type_code
27255         , p_transaction_coa_id      => l_adr_transaction_coa_id
27256         , p_accounting_coa_id       => l_adr_accounting_coa_id
27257         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
27258         , p_flex_value_set_id       => l_adr_flex_value_set_id
27259         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
27260         , p_adr_type_code           => 'S'
27261         , p_component_type          => l_component_type
27262         , p_component_code          => l_component_code
27263         , p_component_type_code     => l_component_type_code
27264         , p_component_appl_id       => l_component_appl_id
27265         , p_amb_context_code        => l_amb_context_code
27266         , p_entity_code             => 'AP_PAYMENTS'
27267         , p_event_class_code        => 'REFUNDS'
27268         , p_side                    => 'NA'
27269         );
27270 
27271   END IF;
27272 
27273    --
27274    --
27275    END IF;
27276 
27277        --
27278        -- Update the line information that should be overwritten
27279        --
27280        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27281                                          p_header_num   => 1);
27282        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27283 
27284        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27285 
27286        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27287           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27288        END IF;
27289 
27290       --
27291       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27292       --
27293       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27294           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27295       ELSE
27296           ---------------------------------------------------------------------------------------------------
27297           -- 4262811a Switch Sign
27298           ---------------------------------------------------------------------------------------------------
27299           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27300           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27301                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27302           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27303                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27304           -- 5132302
27305           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27306                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27307 
27308       END IF;
27309 
27310       -- 4955764
27311       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27312       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27313 
27314 
27315       XLA_AE_LINES_PKG.ValidateCurrentLine;
27316       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27317 
27318       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27319                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27320                ,p_balance_type_code => l_balance_type_code);
27321 
27322    END IF;
27323 
27324    -----------------------------------------------------------------------------------------
27325    -- 4262811 Multiperiod Accounting
27326    -----------------------------------------------------------------------------------------
27327      -- No MPA option is assigned.
27328 
27329 
27330 END IF;
27331 END IF;
27332 --
27333 
27334 --
27335 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27336    trace
27337       (p_msg      => 'END of AcctLineType_67'
27338       ,p_level    => C_LEVEL_PROCEDURE
27339       ,p_module   => l_log_module);
27340 END IF;
27341 --
27342 EXCEPTION
27343   WHEN xla_exceptions_pkg.application_exception THEN
27344       RAISE;
27345   WHEN OTHERS THEN
27346        xla_exceptions_pkg.raise_message
27347            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_67');
27348 END AcctLineType_67;
27349 --
27350 
27351 ---------------------------------------
27352 --
27353 -- PRIVATE FUNCTION
27354 --         AcctLineType_68
27355 --
27356 ---------------------------------------
27357 PROCEDURE AcctLineType_68 (
27358   p_application_id        IN NUMBER
27359  ,p_event_id              IN NUMBER
27360  ,p_calculate_acctd_flag  IN VARCHAR2
27364  ,p_gain_or_loss_ref      OUT VARCHAR2
27361  ,p_calculate_g_l_flag    IN VARCHAR2
27362  ,p_actual_flag           IN OUT VARCHAR2
27363  ,p_balance_type_code     OUT VARCHAR2
27365  
27366 --Automatic Offsets Value
27367  , p_source_4            IN VARCHAR2
27368  , p_source_4_meaning    IN VARCHAR2
27369 --Payment Distribution (Payment Rate) Ledger Amount
27370  , p_source_9            IN NUMBER
27371 --Bank Cash Clearing Account
27372  , p_source_21            IN NUMBER
27373 --When to Account for Payment Option
27374  , p_source_38            IN VARCHAR2
27375 --Payment Distribution Type
27376  , p_source_39            IN VARCHAR2
27377  , p_source_39_meaning    IN VARCHAR2
27378 --Accounting Reversal Indicator
27379  , p_source_40            IN VARCHAR2
27380 --Payment Distribution Amount
27381  , p_source_41            IN NUMBER
27382 --Business Flow Accounts Payable Application Identifier
27383  , p_source_42            IN NUMBER
27384 --Payment Distribution Identifier
27385  , p_source_47            IN NUMBER
27386 --Distribution Link Type
27387  , p_source_48            IN VARCHAR2
27388 --Payment Currency Code
27389  , p_source_49            IN VARCHAR2
27390 --Override Accounted Amount Indicator
27391  , p_source_53            IN VARCHAR2
27392  , p_source_53_meaning    IN VARCHAR2
27393 --Payment Supplier Identifier
27394  , p_source_54            IN NUMBER
27395 --Payment Supplier Site Identifier
27396  , p_source_55            IN NUMBER
27397 --Third Party Type
27398  , p_source_56            IN VARCHAR2
27399 --Payment Distribution Reversed Identifier
27400  , p_source_57            IN NUMBER
27401 --Invoice Distribution Tax Line Identifier
27402  , p_source_58            IN NUMBER
27403 --Invoice Distribution Summary Tax Line Identifier
27404  , p_source_59            IN NUMBER
27405 --Payment Type
27406  , p_source_60            IN VARCHAR2
27407  , p_source_60_meaning    IN VARCHAR2
27408 --Business Flow Invoice Distribution Type
27409  , p_source_62            IN VARCHAR2
27410 --Business Flow Invoice Entity Code
27411  , p_source_63            IN VARCHAR2
27412 --Business Flow Invoice Distribution Identifier
27413  , p_source_64            IN NUMBER
27414 --Business Flow Invoice Identifier
27415  , p_source_65            IN NUMBER
27416 --Invoice Distribution Tax Distribution Identifier from Tax
27417  , p_source_66            IN NUMBER
27418 --Pooled Bank Account Option
27419  , p_source_110            IN VARCHAR2
27420  , p_source_110_meaning    IN VARCHAR2
27421 --Payment Maturity Date
27422  , p_source_111            IN DATE
27423 --Payment Exchange Date
27424  , p_source_114            IN DATE
27425 --Payment Exchange Rate
27426  , p_source_115            IN NUMBER
27427 --Payment Exchange Rate Type
27428  , p_source_116            IN VARCHAR2
27429 )
27430 IS
27431 
27432 l_component_type              VARCHAR2(80);
27433 l_component_code              VARCHAR2(30);
27434 l_component_type_code         VARCHAR2(1);
27435 l_component_appl_id           INTEGER;
27436 l_amb_context_code            VARCHAR2(30);
27437 l_entity_code                 VARCHAR2(30);
27438 l_event_class_code            VARCHAR2(30);
27439 l_ae_header_id                NUMBER;
27440 l_event_type_code             VARCHAR2(30);
27441 l_line_definition_code        VARCHAR2(30);
27442 l_line_definition_owner_code  VARCHAR2(1);
27443 --
27444 -- adr variables
27445 l_segment                     VARCHAR2(30);
27446 l_ccid                        NUMBER;
27447 l_adr_transaction_coa_id      NUMBER;
27448 l_adr_accounting_coa_id       NUMBER;
27449 l_adr_flexfield_segment_code  VARCHAR2(30);
27450 l_adr_flex_value_set_id       NUMBER;
27451 l_adr_value_type_code         VARCHAR2(30);
27452 l_adr_value_combination_id    NUMBER;
27453 l_adr_value_segment_code      VARCHAR2(30);
27454 
27455 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
27456 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
27457 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
27458 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
27459 
27460 -- 4262811 Variables ------------------------------------------------------------------------------------------
27461 l_entered_amt_idx             NUMBER;
27462 l_accted_amt_idx              NUMBER;
27463 l_acc_rev_flag                VARCHAR2(1);
27464 l_accrual_line_num            NUMBER;
27465 l_tmp_amt                     NUMBER;
27466 l_acc_rev_natural_side_code   VARCHAR2(1);
27467 
27468 l_num_entries                 NUMBER;
27469 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
27470 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
27471 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
27472 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
27473 l_recog_line_1                NUMBER;
27474 l_recog_line_2                NUMBER;
27475 
27476 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
27477 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
27478 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
27479 
27480 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27481 
27482 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
27483 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
27484 
27488 --
27485 ---------------------------------------------------------------------------------------------------------------
27486 
27487 
27489 -- bulk performance
27490 --
27491 l_balance_type_code           VARCHAR2(1);
27492 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
27493 l_log_module                  VARCHAR2(240);
27494 
27495 --
27496 -- Upgrade strategy
27497 --
27498 l_actual_upg_option           VARCHAR2(1);
27499 l_enc_upg_option           VARCHAR2(1);
27500 
27501 --
27502 BEGIN
27503 --
27504 IF g_log_enabled THEN
27505       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
27506 END IF;
27507 --
27508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27509 
27510       trace
27511          (p_msg      => 'BEGIN of AcctLineType_68'
27512          ,p_level    => C_LEVEL_PROCEDURE
27513          ,p_module   => l_log_module);
27514 
27515 END IF;
27516 --
27517 l_component_type             := 'AMB_JLT';
27518 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_BS';
27519 l_component_type_code        := 'S';
27520 l_component_appl_id          :=  200;
27521 l_amb_context_code           := 'DEFAULT';
27522 l_entity_code                := 'AP_PAYMENTS';
27523 l_event_class_code           := 'REFUNDS';
27524 l_event_type_code            := 'REFUNDS_ALL';
27525 l_line_definition_owner_code := 'S';
27526 l_line_definition_code       := 'CASH_REFUNDS_ALL';
27527 --
27528 l_balance_type_code          := 'A';
27529 l_segment                     := NULL;
27530 l_ccid                        := NULL;
27531 l_adr_transaction_coa_id      := NULL;
27532 l_adr_accounting_coa_id       := NULL;
27533 l_adr_flexfield_segment_code  := NULL;
27534 l_adr_flex_value_set_id       := NULL;
27535 l_adr_value_type_code         := NULL;
27536 l_adr_value_combination_id    := NULL;
27537 l_adr_value_segment_code      := NULL;
27538 
27539 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
27540 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
27541 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
27542 l_budgetary_control_flag     := 'N';
27543 
27544 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
27545 l_bflow_applied_to_amt       := NULL; -- 5132302
27546 l_entered_amt_idx            := NULL;          -- 4262811
27547 l_accted_amt_idx             := NULL;          -- 4262811
27548 l_acc_rev_flag               := NULL;          -- 4262811
27549 l_accrual_line_num           := NULL;          -- 4262811
27550 l_tmp_amt                    := NULL;          -- 4262811
27551 --
27552  
27553 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27554     l_balance_type_code <> 'B' THEN
27555 IF NVL(p_source_38,'
27556 ') =  'ALWAYS_ALWAYS' AND 
27557 (NVL(p_source_110,'
27558 ') =  'Y' AND 
27559 NVL(p_source_4,'
27560 ') =  'BALANCING_SEGMENT') AND 
27561 p_source_111 IS NULL AND 
27562 NVL(p_source_39,'
27563 ') =  'CASH' AND 
27564 NVL(p_source_60,'
27565 ') =  'R'
27566  THEN 
27567 
27568    --
27569    XLA_AE_LINES_PKG.SetNewLine;
27570 
27571    p_balance_type_code          := l_balance_type_code;
27572    -- set the flag so later we will know whether the gain loss line needs to be created
27573    
27574    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27575      p_actual_flag :='A';
27576    END IF;
27577 
27578    --
27579    -- bulk performance
27580    --
27581    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27582                                       p_header_num   => 0); -- 4262811
27583    --
27584    -- set accounting line options
27585    --
27586    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27587            p_natural_side_code          => 'C'
27588          , p_gain_or_loss_flag          => 'N'
27589          , p_gl_transfer_mode_code      => 'S'
27590          , p_acct_entry_type_code       => 'A'
27591          , p_switch_side_flag           => 'Y'
27592          , p_merge_duplicate_code       => 'A'
27593          );
27594    --
27595    l_acc_rev_natural_side_code := 'D';  -- 4262811
27596    -- 
27597    --
27598    -- set accounting line type info
27599    --
27600    xla_ae_lines_pkg.SetAcctLineType
27601       (p_component_type             => l_component_type
27602       ,p_event_type_code            => l_event_type_code
27603       ,p_line_definition_owner_code => l_line_definition_owner_code
27604       ,p_line_definition_code       => l_line_definition_code
27605       ,p_accounting_line_code       => l_component_code
27606       ,p_accounting_line_type_code  => l_component_type_code
27607       ,p_accounting_line_appl_id    => l_component_appl_id
27608       ,p_amb_context_code           => l_amb_context_code
27609       ,p_entity_code                => l_entity_code
27610       ,p_event_class_code           => l_event_class_code);
27611    --
27612    -- set accounting class
27613    --
27614    xla_ae_lines_pkg.SetAcctClass(
27615            p_accounting_class_code  => 'CASH_CLEARING'
27616          , p_ae_header_id           => l_ae_header_id
27617          );
27618 
27619    --
27620    -- set rounding class
27621    --
27622    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27623                       'CASH_CLEARING';
27624 
27625    --
27629    -- bulk performance
27626    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27627    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27628    --
27630    --
27631    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27632 
27633    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27634       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27635 
27636    -- 4955764
27637    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27638       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27639 
27640    -- 4458381 Public Sector Enh
27641    
27642    --
27643    -- set accounting attributes for the line type
27644    --
27645    l_entered_amt_idx := 9;
27646    l_accted_amt_idx  := 14;
27647    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
27648    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27649    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
27650    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
27651    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
27652    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27653    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
27654    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
27655    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
27656    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
27657    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
27658    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27659    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
27660    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
27661    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
27662    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
27663    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
27664    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
27665    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
27666    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
27667    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
27668    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
27669    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
27670    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
27671    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
27672    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
27673    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
27674    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
27675    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
27676    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
27677    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
27678    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
27679    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
27680    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
27681    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
27682    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
27683    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
27684    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
27685    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
27686    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
27687    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
27688    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
27689    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
27690    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
27691    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
27692    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
27693    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
27694 
27695    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27696    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27697 
27698    ---------------------------------------------------------------------------------------------------------------
27699    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27700    ---------------------------------------------------------------------------------------------------------------
27701    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27702 
27703    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27704    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27705 
27706    IF xla_accounting_cache_pkg.GetValueChar
27707          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27708          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27709    AND l_bflow_method_code = 'PRIOR_ENTRY'
27710 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27711    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27712          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27713        )
27714    THEN
27718            ,p_balance_type            => l_balance_type_code);
27715          xla_ae_lines_pkg.BflowUpgEntry
27716            (p_business_method_code    => l_bflow_method_code
27717            ,p_business_class_code     => l_bflow_class_code
27719    ELSE
27720       NULL;
27721 XLA_AE_LINES_PKG.business_flow_validation(
27722                                 p_business_method_code     => l_bflow_method_code
27723                                ,p_business_class_code      => l_bflow_class_code
27724                                ,p_inherit_description_flag => l_inherit_desc_flag);
27725    END IF;
27726 
27727    --
27728    -- call analytical criteria
27729    --
27730    
27731    --
27732    -- call description
27733    --
27734    -- No description or it is inherited.
27735    --
27736    -- call ADRs
27737    -- Bug 4922099
27738    --
27739    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27740         (NVL(l_actual_upg_option, 'N') = 'O') OR
27741         (NVL(l_enc_upg_option, 'N') = 'O')
27742       )
27743    THEN
27744    NULL;
27745    --
27746    --
27747    
27748   l_ccid := AcctDerRule_28(
27749            p_application_id           => p_application_id
27750          , p_ae_header_id             => l_ae_header_id 
27751 , p_source_21 => p_source_21
27752          , x_transaction_coa_id       => l_adr_transaction_coa_id
27753          , x_accounting_coa_id        => l_adr_accounting_coa_id
27754          , x_value_type_code          => l_adr_value_type_code
27755          , p_side                     => 'NA'
27756    );
27757 
27758    xla_ae_lines_pkg.set_ccid(
27759     p_code_combination_id          => l_ccid
27760   , p_value_type_code              => l_adr_value_type_code
27761   , p_transaction_coa_id           => l_adr_transaction_coa_id
27762   , p_accounting_coa_id            => l_adr_accounting_coa_id
27763   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27764   , p_adr_type_code                => 'S'
27765   , p_component_type               => l_component_type
27766   , p_component_code               => l_component_code
27767   , p_component_type_code          => l_component_type_code
27768   , p_component_appl_id            => l_component_appl_id
27769   , p_amb_context_code             => l_amb_context_code
27770   , p_side                         => 'NA'
27771   );
27772 
27773 
27774    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27775      p_to_segment_code         => 'GL_BALANCING'
27776    , p_segment_value           => C_CHAR
27777    , p_from_segment_code       => NULL
27778    , p_from_combination_id     => NULL
27779    , p_value_type_code         => NULL
27780    , p_transaction_coa_id      => null
27781    , p_accounting_coa_id       => null
27782    , p_flexfield_segment_code  => NULL
27783    , p_flex_value_set_id       => NULL
27784    , p_adr_code                => NULL
27785    , p_adr_type_code           => NULL
27786    , p_component_type          => l_component_type
27787    , p_component_code          => l_component_code
27788    , p_component_type_code     => l_component_type_code
27789    , p_component_appl_id       => l_component_appl_id
27790    , p_amb_context_code        => l_amb_context_code
27791    , p_entity_code             => 'AP_PAYMENTS'
27792    , p_event_class_code        => 'REFUNDS'
27793    , p_side                    => 'NA'
27794    );
27795    --
27796 
27797 
27798    --
27799    --
27800    END IF;
27801    --
27802    -- Bug 4922099
27803    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27804           (NVL(l_enc_upg_option, 'N') = 'O')
27805         ) AND
27806         (l_bflow_method_code = 'PRIOR_ENTRY')
27807       )
27808    THEN
27809       IF
27810       --
27811       1 = 2
27812       --
27813       THEN
27814       xla_accounting_err_pkg.build_message
27815                                     (p_appli_s_name            => 'XLA'
27816                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27817                                     ,p_token_1                 => 'LINE_NUMBER'
27818                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27819                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27820                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27821                                                                              l_component_type
27822                                                                             ,l_component_code
27823                                                                             ,l_component_type_code
27824                                                                             ,l_component_appl_id
27825                                                                             ,l_amb_context_code
27826                                                                             ,l_entity_code
27827                                                                             ,l_event_class_code
27828                                                                            )
27829                                     ,p_token_3                 => 'OWNER'
27830                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27831                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27835                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27832                                                                           ,p_lookup_code    => l_component_type_code
27833                                                                          )
27834                                     ,p_token_4                 => 'PRODUCT_NAME'
27836                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27837                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27838                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27839                                     ,p_ae_header_id            =>  NULL
27840                                        );
27841 
27842         IF (C_LEVEL_ERROR>= g_log_level) THEN
27843                  trace
27844                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27845                       ,p_level    => C_LEVEL_ERROR
27846                       ,p_module   => l_log_module);
27847         END IF;
27848       END IF;
27849    END IF;
27850    --
27851    --
27852    ------------------------------------------------------------------------------------------------
27853    -- 4219869 Business Flow
27854    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27855    -- Prior Entry.  Currently, the following code is always generated.
27856    ------------------------------------------------------------------------------------------------
27857    XLA_AE_LINES_PKG.ValidateCurrentLine;
27858 
27859    ------------------------------------------------------------------------------------
27860    -- 4219869 Business Flow
27861    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27862    ------------------------------------------------------------------------------------
27863    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27864 
27865    ----------------------------------------------------------------------------------
27866    -- 4219869 Business Flow
27867    -- Update journal entry status -- Need to generate this within IF <condition>
27868    ----------------------------------------------------------------------------------
27869    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27870          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27871          ,p_balance_type_code => l_balance_type_code
27872          );
27873 
27874    -------------------------------------------------------------------------------------------
27875    -- 4262811 - Generate the Accrual Reversal lines
27876    -------------------------------------------------------------------------------------------
27877    BEGIN
27878       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27879                               (g_array_event(p_event_id).array_value_num('header_index'));
27880       IF l_acc_rev_flag IS NULL THEN
27881          l_acc_rev_flag := 'N';
27882       END IF;
27883    EXCEPTION
27884       WHEN OTHERS THEN
27885          l_acc_rev_flag := 'N';
27886    END;
27887    --
27888    IF (l_acc_rev_flag = 'Y') THEN
27889 
27890        -- 4645092  ------------------------------------------------------------------------------
27891        -- To allow MPA report to determine if it should generate report process
27892        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27893        ------------------------------------------------------------------------------------------
27894 
27895        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27896        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27897    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27898    -- call ADRs
27899    -- Bug 4922099
27900    --
27901    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27902         (NVL(l_actual_upg_option, 'N') = 'O') OR
27903         (NVL(l_enc_upg_option, 'N') = 'O')
27904       )
27905    THEN
27906    NULL;
27907    --
27908    --
27909    
27910   l_ccid := AcctDerRule_28(
27911            p_application_id           => p_application_id
27912          , p_ae_header_id             => l_ae_header_id 
27913 , p_source_21 => p_source_21
27914          , x_transaction_coa_id       => l_adr_transaction_coa_id
27915          , x_accounting_coa_id        => l_adr_accounting_coa_id
27916          , x_value_type_code          => l_adr_value_type_code
27917          , p_side                     => 'NA'
27918    );
27919 
27920    xla_ae_lines_pkg.set_ccid(
27921     p_code_combination_id          => l_ccid
27922   , p_value_type_code              => l_adr_value_type_code
27923   , p_transaction_coa_id           => l_adr_transaction_coa_id
27924   , p_accounting_coa_id            => l_adr_accounting_coa_id
27925   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27926   , p_adr_type_code                => 'S'
27927   , p_component_type               => l_component_type
27928   , p_component_code               => l_component_code
27929   , p_component_type_code          => l_component_type_code
27930   , p_component_appl_id            => l_component_appl_id
27931   , p_amb_context_code             => l_amb_context_code
27932   , p_side                         => 'NA'
27933   );
27934 
27935 
27936    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27937      p_to_segment_code         => 'GL_BALANCING'
27941    , p_value_type_code         => NULL
27938    , p_segment_value           => C_CHAR
27939    , p_from_segment_code       => NULL
27940    , p_from_combination_id     => NULL
27942    , p_transaction_coa_id      => null
27943    , p_accounting_coa_id       => null
27944    , p_flexfield_segment_code  => NULL
27945    , p_flex_value_set_id       => NULL
27946    , p_adr_code                => NULL
27947    , p_adr_type_code           => NULL
27948    , p_component_type          => l_component_type
27949    , p_component_code          => l_component_code
27950    , p_component_type_code     => l_component_type_code
27951    , p_component_appl_id       => l_component_appl_id
27952    , p_amb_context_code        => l_amb_context_code
27953    , p_entity_code             => 'AP_PAYMENTS'
27954    , p_event_class_code        => 'REFUNDS'
27955    , p_side                    => 'NA'
27956    );
27957    --
27958 
27959 
27960    --
27961    --
27962    END IF;
27963 
27964        --
27965        -- Update the line information that should be overwritten
27966        --
27967        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27968                                          p_header_num   => 1);
27969        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27970 
27971        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27972 
27973        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27974           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27975        END IF;
27976 
27977       --
27978       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27979       --
27980       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27981           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27982       ELSE
27983           ---------------------------------------------------------------------------------------------------
27984           -- 4262811a Switch Sign
27985           ---------------------------------------------------------------------------------------------------
27986           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27987           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27988                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27989           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27990                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27991           -- 5132302
27992           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27993                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27994 
27995       END IF;
27996 
27997       -- 4955764
27998       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27999       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28000 
28001 
28002       XLA_AE_LINES_PKG.ValidateCurrentLine;
28003       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28004 
28005       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28006                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28007                ,p_balance_type_code => l_balance_type_code);
28008 
28009    END IF;
28010 
28011    -----------------------------------------------------------------------------------------
28012    -- 4262811 Multiperiod Accounting
28013    -----------------------------------------------------------------------------------------
28014      -- No MPA option is assigned.
28015 
28016 
28017 END IF;
28018 END IF;
28019 --
28020 
28021 --
28022 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28023    trace
28024       (p_msg      => 'END of AcctLineType_68'
28025       ,p_level    => C_LEVEL_PROCEDURE
28026       ,p_module   => l_log_module);
28027 END IF;
28028 --
28029 EXCEPTION
28030   WHEN xla_exceptions_pkg.application_exception THEN
28031       RAISE;
28032   WHEN OTHERS THEN
28033        xla_exceptions_pkg.raise_message
28034            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_68');
28035 END AcctLineType_68;
28036 --
28037 
28038 ---------------------------------------
28039 --
28040 -- PRIVATE FUNCTION
28041 --         AcctLineType_69
28042 --
28043 ---------------------------------------
28044 PROCEDURE AcctLineType_69 (
28045   p_application_id        IN NUMBER
28046  ,p_event_id              IN NUMBER
28047  ,p_calculate_acctd_flag  IN VARCHAR2
28048  ,p_calculate_g_l_flag    IN VARCHAR2
28049  ,p_actual_flag           IN OUT VARCHAR2
28050  ,p_balance_type_code     OUT VARCHAR2
28051  ,p_gain_or_loss_ref      OUT VARCHAR2
28052  
28053 --Bank Cash Account
28054  , p_source_1            IN NUMBER
28055 --Payment Distribution (Payment Rate) Ledger Amount
28056  , p_source_9            IN NUMBER
28057 --Automatic Offsets Flag
28058  , p_source_30            IN VARCHAR2
28059  , p_source_30_meaning    IN VARCHAR2
28060 --When to Account for Payment Option
28061  , p_source_38            IN VARCHAR2
28062 --Payment Distribution Type
28066  , p_source_40            IN VARCHAR2
28063  , p_source_39            IN VARCHAR2
28064  , p_source_39_meaning    IN VARCHAR2
28065 --Accounting Reversal Indicator
28067 --Payment Distribution Amount
28068  , p_source_41            IN NUMBER
28069 --Business Flow Accounts Payable Application Identifier
28070  , p_source_42            IN NUMBER
28071 --Payment Distribution Identifier
28072  , p_source_47            IN NUMBER
28073 --Distribution Link Type
28074  , p_source_48            IN VARCHAR2
28075 --Payment Currency Code
28076  , p_source_49            IN VARCHAR2
28077 --Override Accounted Amount Indicator
28078  , p_source_53            IN VARCHAR2
28079  , p_source_53_meaning    IN VARCHAR2
28080 --Payment Supplier Identifier
28081  , p_source_54            IN NUMBER
28082 --Payment Supplier Site Identifier
28083  , p_source_55            IN NUMBER
28084 --Third Party Type
28085  , p_source_56            IN VARCHAR2
28086 --Payment Distribution Reversed Identifier
28087  , p_source_57            IN NUMBER
28088 --Invoice Distribution Tax Line Identifier
28089  , p_source_58            IN NUMBER
28090 --Invoice Distribution Summary Tax Line Identifier
28091  , p_source_59            IN NUMBER
28092 --Payment Type
28093  , p_source_60            IN VARCHAR2
28094  , p_source_60_meaning    IN VARCHAR2
28095 --Invoice Distribution Amount of the Payment Distribution
28096  , p_source_61            IN NUMBER
28097 --Business Flow Invoice Distribution Type
28098  , p_source_62            IN VARCHAR2
28099 --Business Flow Invoice Entity Code
28100  , p_source_63            IN VARCHAR2
28101 --Business Flow Invoice Distribution Identifier
28102  , p_source_64            IN NUMBER
28103 --Business Flow Invoice Identifier
28104  , p_source_65            IN NUMBER
28105 --Invoice Distribution Tax Distribution Identifier from Tax
28106  , p_source_66            IN NUMBER
28107 --Pooled Bank Account Option
28108  , p_source_110            IN VARCHAR2
28109  , p_source_110_meaning    IN VARCHAR2
28110 --Payment Maturity Date
28111  , p_source_111            IN DATE
28112 --Payment Processing Type
28113  , p_source_113            IN VARCHAR2
28114 --Payment Exchange Date
28115  , p_source_114            IN DATE
28116 --Payment Exchange Rate
28117  , p_source_115            IN NUMBER
28118 --Payment Exchange Rate Type
28119  , p_source_116            IN VARCHAR2
28120 )
28121 IS
28122 
28123 l_component_type              VARCHAR2(80);
28124 l_component_code              VARCHAR2(30);
28125 l_component_type_code         VARCHAR2(1);
28126 l_component_appl_id           INTEGER;
28127 l_amb_context_code            VARCHAR2(30);
28128 l_entity_code                 VARCHAR2(30);
28129 l_event_class_code            VARCHAR2(30);
28130 l_ae_header_id                NUMBER;
28131 l_event_type_code             VARCHAR2(30);
28132 l_line_definition_code        VARCHAR2(30);
28133 l_line_definition_owner_code  VARCHAR2(1);
28134 --
28135 -- adr variables
28136 l_segment                     VARCHAR2(30);
28137 l_ccid                        NUMBER;
28138 l_adr_transaction_coa_id      NUMBER;
28139 l_adr_accounting_coa_id       NUMBER;
28140 l_adr_flexfield_segment_code  VARCHAR2(30);
28141 l_adr_flex_value_set_id       NUMBER;
28142 l_adr_value_type_code         VARCHAR2(30);
28143 l_adr_value_combination_id    NUMBER;
28144 l_adr_value_segment_code      VARCHAR2(30);
28145 
28146 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28147 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28148 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28149 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28150 
28151 -- 4262811 Variables ------------------------------------------------------------------------------------------
28152 l_entered_amt_idx             NUMBER;
28153 l_accted_amt_idx              NUMBER;
28154 l_acc_rev_flag                VARCHAR2(1);
28155 l_accrual_line_num            NUMBER;
28156 l_tmp_amt                     NUMBER;
28157 l_acc_rev_natural_side_code   VARCHAR2(1);
28158 
28159 l_num_entries                 NUMBER;
28160 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28161 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28162 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28163 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28164 l_recog_line_1                NUMBER;
28165 l_recog_line_2                NUMBER;
28166 
28167 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28168 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28169 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28170 
28171 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28172 
28173 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28174 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28175 
28176 ---------------------------------------------------------------------------------------------------------------
28177 
28178 
28179 --
28180 -- bulk performance
28181 --
28182 l_balance_type_code           VARCHAR2(1);
28183 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28184 l_log_module                  VARCHAR2(240);
28185 
28186 --
28187 -- Upgrade strategy
28188 --
28192 --
28189 l_actual_upg_option           VARCHAR2(1);
28190 l_enc_upg_option           VARCHAR2(1);
28191 
28193 BEGIN
28194 --
28195 IF g_log_enabled THEN
28196       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
28197 END IF;
28198 --
28199 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28200 
28201       trace
28202          (p_msg      => 'BEGIN of AcctLineType_69'
28203          ,p_level    => C_LEVEL_PROCEDURE
28204          ,p_module   => l_log_module);
28205 
28206 END IF;
28207 --
28208 l_component_type             := 'AMB_JLT';
28209 l_component_code             := 'AP_CASH_PMT';
28210 l_component_type_code        := 'S';
28211 l_component_appl_id          :=  200;
28212 l_amb_context_code           := 'DEFAULT';
28213 l_entity_code                := 'AP_PAYMENTS';
28214 l_event_class_code           := 'PAYMENTS';
28215 l_event_type_code            := 'PAYMENTS_ALL';
28216 l_line_definition_owner_code := 'S';
28217 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
28218 --
28219 l_balance_type_code          := 'A';
28220 l_segment                     := NULL;
28221 l_ccid                        := NULL;
28222 l_adr_transaction_coa_id      := NULL;
28223 l_adr_accounting_coa_id       := NULL;
28224 l_adr_flexfield_segment_code  := NULL;
28225 l_adr_flex_value_set_id       := NULL;
28226 l_adr_value_type_code         := NULL;
28227 l_adr_value_combination_id    := NULL;
28228 l_adr_value_segment_code      := NULL;
28229 
28230 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
28231 l_bflow_class_code           := '';    -- 4219869 Business Flow
28232 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28233 l_budgetary_control_flag     := 'N';
28234 
28235 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28236 l_bflow_applied_to_amt       := NULL; -- 5132302
28237 l_entered_amt_idx            := NULL;          -- 4262811
28238 l_accted_amt_idx             := NULL;          -- 4262811
28239 l_acc_rev_flag               := NULL;          -- 4262811
28240 l_accrual_line_num           := NULL;          -- 4262811
28241 l_tmp_amt                    := NULL;          -- 4262811
28242 --
28243  
28244 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28245     l_balance_type_code <> 'B' THEN
28246 IF NVL(p_source_38,'
28247 ') =  'ISSUE_ISSUE' AND 
28248 (NVL(p_source_30,'
28249 ') <>  'Y' OR 
28250 NVL(p_source_30,'
28251 ') =  'Y' AND 
28252 NVL(p_source_110,'
28253 ') <>  'Y') AND 
28254 p_source_111 IS NULL AND 
28255 NVL(p_source_39,'
28256 ') =  'CASH' AND 
28257 NVL(p_source_60,'
28258 ') <>  'R' AND 
28259 NVL(p_source_113,'
28260 ') <>  'PAYMENTCARD'
28261  THEN 
28262 
28263    --
28264    XLA_AE_LINES_PKG.SetNewLine;
28265 
28266    p_balance_type_code          := l_balance_type_code;
28267    -- set the flag so later we will know whether the gain loss line needs to be created
28268    
28269    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28270      p_actual_flag :='A';
28271    END IF;
28272 
28273    --
28274    -- bulk performance
28275    --
28276    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28277                                       p_header_num   => 0); -- 4262811
28278    --
28279    -- set accounting line options
28280    --
28281    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28282            p_natural_side_code          => 'C'
28283          , p_gain_or_loss_flag          => 'N'
28284          , p_gl_transfer_mode_code      => 'S'
28285          , p_acct_entry_type_code       => 'A'
28286          , p_switch_side_flag           => 'Y'
28287          , p_merge_duplicate_code       => 'A'
28288          );
28289    --
28290    l_acc_rev_natural_side_code := 'D';  -- 4262811
28291    -- 
28292    --
28293    -- set accounting line type info
28294    --
28295    xla_ae_lines_pkg.SetAcctLineType
28296       (p_component_type             => l_component_type
28297       ,p_event_type_code            => l_event_type_code
28298       ,p_line_definition_owner_code => l_line_definition_owner_code
28299       ,p_line_definition_code       => l_line_definition_code
28300       ,p_accounting_line_code       => l_component_code
28301       ,p_accounting_line_type_code  => l_component_type_code
28302       ,p_accounting_line_appl_id    => l_component_appl_id
28303       ,p_amb_context_code           => l_amb_context_code
28304       ,p_entity_code                => l_entity_code
28305       ,p_event_class_code           => l_event_class_code);
28306    --
28307    -- set accounting class
28308    --
28309    xla_ae_lines_pkg.SetAcctClass(
28310            p_accounting_class_code  => 'CASH'
28311          , p_ae_header_id           => l_ae_header_id
28312          );
28313 
28314    --
28315    -- set rounding class
28316    --
28317    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28318                       'CASH';
28319 
28320    --
28321    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28322    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28323    --
28324    -- bulk performance
28325    --
28326    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28327 
28331    -- 4955764
28328    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28329       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28330 
28332    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28333       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28334 
28335    -- 4458381 Public Sector Enh
28336    
28337    --
28338    -- set accounting attributes for the line type
28339    --
28340    l_entered_amt_idx := 10;
28341    l_accted_amt_idx  := 15;
28342    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
28343    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28344    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
28345    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28346    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
28347    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28348    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
28349    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28350    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
28351    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28352    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
28353    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28354    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
28355    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28356    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
28357    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
28358    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
28359    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
28360    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
28361    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
28362    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
28363    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
28364    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
28365    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
28366    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
28367    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
28368    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
28369    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
28370    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
28371    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
28372    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
28373    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
28374    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
28375    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
28376    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
28377    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
28378    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
28379    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
28380    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
28381    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
28382    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
28383    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
28384    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
28385    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
28386    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
28387    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
28388    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
28389    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
28390    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
28391 
28392    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28393    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28394 
28395    ---------------------------------------------------------------------------------------------------------------
28396    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28397    ---------------------------------------------------------------------------------------------------------------
28398    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28399 
28400    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28401    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28402 
28403    IF xla_accounting_cache_pkg.GetValueChar
28404          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28405          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28406    AND l_bflow_method_code = 'PRIOR_ENTRY'
28407 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28408    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28409          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28410        )
28411    THEN
28412          xla_ae_lines_pkg.BflowUpgEntry
28413            (p_business_method_code    => l_bflow_method_code
28414            ,p_business_class_code     => l_bflow_class_code
28415            ,p_balance_type            => l_balance_type_code);
28416    ELSE
28417       NULL;
28421    --
28418 -- No business flow processing for business flow method of NONE.
28419    END IF;
28420 
28422    -- call analytical criteria
28423    --
28424    
28425    --
28426    -- call description
28427    --
28428    -- No description or it is inherited.
28429    --
28430    -- call ADRs
28431    -- Bug 4922099
28432    --
28433    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28434         (NVL(l_actual_upg_option, 'N') = 'O') OR
28435         (NVL(l_enc_upg_option, 'N') = 'O')
28436       )
28437    THEN
28438    NULL;
28439    --
28440    --
28441    
28442   l_ccid := AcctDerRule_20(
28443            p_application_id           => p_application_id
28444          , p_ae_header_id             => l_ae_header_id 
28445 , p_source_1 => p_source_1
28446          , x_transaction_coa_id       => l_adr_transaction_coa_id
28447          , x_accounting_coa_id        => l_adr_accounting_coa_id
28448          , x_value_type_code          => l_adr_value_type_code
28449          , p_side                     => 'NA'
28450    );
28451 
28452    xla_ae_lines_pkg.set_ccid(
28453     p_code_combination_id          => l_ccid
28454   , p_value_type_code              => l_adr_value_type_code
28455   , p_transaction_coa_id           => l_adr_transaction_coa_id
28456   , p_accounting_coa_id            => l_adr_accounting_coa_id
28457   , p_adr_code                     => 'AP_CASH'
28458   , p_adr_type_code                => 'S'
28459   , p_component_type               => l_component_type
28460   , p_component_code               => l_component_code
28461   , p_component_type_code          => l_component_type_code
28462   , p_component_appl_id            => l_component_appl_id
28463   , p_amb_context_code             => l_amb_context_code
28464   , p_side                         => 'NA'
28465   );
28466 
28467 
28468    --
28469    --
28470    END IF;
28471    --
28472    -- Bug 4922099
28473    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28474           (NVL(l_enc_upg_option, 'N') = 'O')
28475         ) AND
28476         (l_bflow_method_code = 'PRIOR_ENTRY')
28477       )
28478    THEN
28479       IF
28480       --
28481       1 = 2
28482       --
28483       THEN
28484       xla_accounting_err_pkg.build_message
28485                                     (p_appli_s_name            => 'XLA'
28486                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28487                                     ,p_token_1                 => 'LINE_NUMBER'
28488                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
28489                                     ,p_token_2                 => 'LINE_TYPE_NAME'
28490                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
28491                                                                              l_component_type
28492                                                                             ,l_component_code
28493                                                                             ,l_component_type_code
28494                                                                             ,l_component_appl_id
28495                                                                             ,l_amb_context_code
28496                                                                             ,l_entity_code
28497                                                                             ,l_event_class_code
28498                                                                            )
28499                                     ,p_token_3                 => 'OWNER'
28500                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
28501                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
28502                                                                           ,p_lookup_code    => l_component_type_code
28503                                                                          )
28504                                     ,p_token_4                 => 'PRODUCT_NAME'
28505                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28506                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28507                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28508                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28509                                     ,p_ae_header_id            =>  NULL
28510                                        );
28511 
28512         IF (C_LEVEL_ERROR>= g_log_level) THEN
28513                  trace
28514                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28515                       ,p_level    => C_LEVEL_ERROR
28516                       ,p_module   => l_log_module);
28517         END IF;
28518       END IF;
28519    END IF;
28520    --
28521    --
28522    ------------------------------------------------------------------------------------------------
28523    -- 4219869 Business Flow
28524    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28525    -- Prior Entry.  Currently, the following code is always generated.
28526    ------------------------------------------------------------------------------------------------
28527    XLA_AE_LINES_PKG.ValidateCurrentLine;
28531    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28528 
28529    ------------------------------------------------------------------------------------
28530    -- 4219869 Business Flow
28532    ------------------------------------------------------------------------------------
28533    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28534 
28535    ----------------------------------------------------------------------------------
28536    -- 4219869 Business Flow
28537    -- Update journal entry status -- Need to generate this within IF <condition>
28538    ----------------------------------------------------------------------------------
28539    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28540          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28541          ,p_balance_type_code => l_balance_type_code
28542          );
28543 
28544    -------------------------------------------------------------------------------------------
28545    -- 4262811 - Generate the Accrual Reversal lines
28546    -------------------------------------------------------------------------------------------
28547    BEGIN
28548       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28549                               (g_array_event(p_event_id).array_value_num('header_index'));
28550       IF l_acc_rev_flag IS NULL THEN
28551          l_acc_rev_flag := 'N';
28552       END IF;
28553    EXCEPTION
28554       WHEN OTHERS THEN
28555          l_acc_rev_flag := 'N';
28556    END;
28557    --
28558    IF (l_acc_rev_flag = 'Y') THEN
28559 
28560        -- 4645092  ------------------------------------------------------------------------------
28561        -- To allow MPA report to determine if it should generate report process
28562        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28563        ------------------------------------------------------------------------------------------
28564 
28565        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28566        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28567    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
28568    -- call ADRs
28569    -- Bug 4922099
28570    --
28571    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28572         (NVL(l_actual_upg_option, 'N') = 'O') OR
28573         (NVL(l_enc_upg_option, 'N') = 'O')
28574       )
28575    THEN
28576    NULL;
28577    --
28578    --
28579    
28580   l_ccid := AcctDerRule_20(
28581            p_application_id           => p_application_id
28582          , p_ae_header_id             => l_ae_header_id 
28583 , p_source_1 => p_source_1
28584          , x_transaction_coa_id       => l_adr_transaction_coa_id
28585          , x_accounting_coa_id        => l_adr_accounting_coa_id
28586          , x_value_type_code          => l_adr_value_type_code
28587          , p_side                     => 'NA'
28588    );
28589 
28590    xla_ae_lines_pkg.set_ccid(
28591     p_code_combination_id          => l_ccid
28592   , p_value_type_code              => l_adr_value_type_code
28593   , p_transaction_coa_id           => l_adr_transaction_coa_id
28594   , p_accounting_coa_id            => l_adr_accounting_coa_id
28595   , p_adr_code                     => 'AP_CASH'
28596   , p_adr_type_code                => 'S'
28597   , p_component_type               => l_component_type
28598   , p_component_code               => l_component_code
28599   , p_component_type_code          => l_component_type_code
28600   , p_component_appl_id            => l_component_appl_id
28601   , p_amb_context_code             => l_amb_context_code
28602   , p_side                         => 'NA'
28603   );
28604 
28605 
28606    --
28607    --
28608    END IF;
28609 
28610        --
28611        -- Update the line information that should be overwritten
28612        --
28613        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28614                                          p_header_num   => 1);
28615        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
28616 
28617        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28618 
28619        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
28620           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28621        END IF;
28622 
28623       --
28624       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28625       --
28626       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28627           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
28628       ELSE
28629           ---------------------------------------------------------------------------------------------------
28630           -- 4262811a Switch Sign
28631           ---------------------------------------------------------------------------------------------------
28632           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
28633           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28634                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28635           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28636                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28640 
28637           -- 5132302
28638           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28639                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28641       END IF;
28642 
28643       -- 4955764
28644       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28645       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28646 
28647 
28648       XLA_AE_LINES_PKG.ValidateCurrentLine;
28649       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28650 
28651       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28652                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28653                ,p_balance_type_code => l_balance_type_code);
28654 
28655    END IF;
28656 
28657    -----------------------------------------------------------------------------------------
28658    -- 4262811 Multiperiod Accounting
28659    -----------------------------------------------------------------------------------------
28660      -- No MPA option is assigned.
28661 
28662 
28663 END IF;
28664 END IF;
28665 --
28666 
28667 --
28668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28669    trace
28670       (p_msg      => 'END of AcctLineType_69'
28671       ,p_level    => C_LEVEL_PROCEDURE
28672       ,p_module   => l_log_module);
28673 END IF;
28674 --
28675 EXCEPTION
28676   WHEN xla_exceptions_pkg.application_exception THEN
28677       RAISE;
28678   WHEN OTHERS THEN
28679        xla_exceptions_pkg.raise_message
28680            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_69');
28681 END AcctLineType_69;
28682 --
28683 
28684 ---------------------------------------
28685 --
28686 -- PRIVATE FUNCTION
28687 --         AcctLineType_70
28688 --
28689 ---------------------------------------
28690 PROCEDURE AcctLineType_70 (
28691   p_application_id        IN NUMBER
28692  ,p_event_id              IN NUMBER
28693  ,p_calculate_acctd_flag  IN VARCHAR2
28694  ,p_calculate_g_l_flag    IN VARCHAR2
28695  ,p_actual_flag           IN OUT VARCHAR2
28696  ,p_balance_type_code     OUT VARCHAR2
28697  ,p_gain_or_loss_ref      OUT VARCHAR2
28698  
28699 --Bank Cash Account
28700  , p_source_1            IN NUMBER
28701 --Automatic Offsets Value
28702  , p_source_4            IN VARCHAR2
28703  , p_source_4_meaning    IN VARCHAR2
28704 --Payment Distribution (Payment Rate) Ledger Amount
28705  , p_source_9            IN NUMBER
28706 --When to Account for Payment Option
28707  , p_source_38            IN VARCHAR2
28708 --Payment Distribution Type
28709  , p_source_39            IN VARCHAR2
28710  , p_source_39_meaning    IN VARCHAR2
28711 --Accounting Reversal Indicator
28712  , p_source_40            IN VARCHAR2
28713 --Payment Distribution Amount
28714  , p_source_41            IN NUMBER
28715 --Business Flow Accounts Payable Application Identifier
28716  , p_source_42            IN NUMBER
28717 --Payment Distribution Identifier
28718  , p_source_47            IN NUMBER
28719 --Distribution Link Type
28720  , p_source_48            IN VARCHAR2
28721 --Payment Currency Code
28722  , p_source_49            IN VARCHAR2
28723 --Override Accounted Amount Indicator
28724  , p_source_53            IN VARCHAR2
28725  , p_source_53_meaning    IN VARCHAR2
28726 --Payment Supplier Identifier
28727  , p_source_54            IN NUMBER
28728 --Payment Supplier Site Identifier
28729  , p_source_55            IN NUMBER
28730 --Third Party Type
28731  , p_source_56            IN VARCHAR2
28732 --Payment Distribution Reversed Identifier
28733  , p_source_57            IN NUMBER
28734 --Invoice Distribution Tax Line Identifier
28735  , p_source_58            IN NUMBER
28736 --Invoice Distribution Summary Tax Line Identifier
28737  , p_source_59            IN NUMBER
28738 --Payment Type
28739  , p_source_60            IN VARCHAR2
28740  , p_source_60_meaning    IN VARCHAR2
28741 --Invoice Distribution Amount of the Payment Distribution
28742  , p_source_61            IN NUMBER
28743 --Business Flow Invoice Distribution Type
28744  , p_source_62            IN VARCHAR2
28745 --Business Flow Invoice Entity Code
28746  , p_source_63            IN VARCHAR2
28747 --Business Flow Invoice Distribution Identifier
28748  , p_source_64            IN NUMBER
28749 --Business Flow Invoice Identifier
28750  , p_source_65            IN NUMBER
28751 --Invoice Distribution Tax Distribution Identifier from Tax
28752  , p_source_66            IN NUMBER
28753 --Pooled Bank Account Option
28754  , p_source_110            IN VARCHAR2
28755  , p_source_110_meaning    IN VARCHAR2
28756 --Payment Maturity Date
28757  , p_source_111            IN DATE
28758 --Payment Processing Type
28759  , p_source_113            IN VARCHAR2
28760 --Payment Exchange Date
28761  , p_source_114            IN DATE
28762 --Payment Exchange Rate
28763  , p_source_115            IN NUMBER
28764 --Payment Exchange Rate Type
28765  , p_source_116            IN VARCHAR2
28766 )
28767 IS
28768 
28769 l_component_type              VARCHAR2(80);
28770 l_component_code              VARCHAR2(30);
28771 l_component_type_code         VARCHAR2(1);
28772 l_component_appl_id           INTEGER;
28773 l_amb_context_code            VARCHAR2(30);
28774 l_entity_code                 VARCHAR2(30);
28778 l_line_definition_code        VARCHAR2(30);
28775 l_event_class_code            VARCHAR2(30);
28776 l_ae_header_id                NUMBER;
28777 l_event_type_code             VARCHAR2(30);
28779 l_line_definition_owner_code  VARCHAR2(1);
28780 --
28781 -- adr variables
28782 l_segment                     VARCHAR2(30);
28783 l_ccid                        NUMBER;
28784 l_adr_transaction_coa_id      NUMBER;
28785 l_adr_accounting_coa_id       NUMBER;
28786 l_adr_flexfield_segment_code  VARCHAR2(30);
28787 l_adr_flex_value_set_id       NUMBER;
28788 l_adr_value_type_code         VARCHAR2(30);
28789 l_adr_value_combination_id    NUMBER;
28790 l_adr_value_segment_code      VARCHAR2(30);
28791 
28792 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28793 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28794 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28795 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28796 
28797 -- 4262811 Variables ------------------------------------------------------------------------------------------
28798 l_entered_amt_idx             NUMBER;
28799 l_accted_amt_idx              NUMBER;
28800 l_acc_rev_flag                VARCHAR2(1);
28801 l_accrual_line_num            NUMBER;
28802 l_tmp_amt                     NUMBER;
28803 l_acc_rev_natural_side_code   VARCHAR2(1);
28804 
28805 l_num_entries                 NUMBER;
28806 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28807 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28808 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28809 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28810 l_recog_line_1                NUMBER;
28811 l_recog_line_2                NUMBER;
28812 
28813 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28814 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28815 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28816 
28817 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28818 
28819 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28820 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28821 
28822 ---------------------------------------------------------------------------------------------------------------
28823 
28824 
28825 --
28826 -- bulk performance
28827 --
28828 l_balance_type_code           VARCHAR2(1);
28829 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28830 l_log_module                  VARCHAR2(240);
28831 
28832 --
28833 -- Upgrade strategy
28834 --
28835 l_actual_upg_option           VARCHAR2(1);
28836 l_enc_upg_option           VARCHAR2(1);
28837 
28838 --
28839 BEGIN
28840 --
28841 IF g_log_enabled THEN
28842       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
28843 END IF;
28844 --
28845 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28846 
28847       trace
28848          (p_msg      => 'BEGIN of AcctLineType_70'
28849          ,p_level    => C_LEVEL_PROCEDURE
28850          ,p_module   => l_log_module);
28851 
28852 END IF;
28853 --
28854 l_component_type             := 'AMB_JLT';
28855 l_component_code             := 'AP_CASH_PMT_AOS_AS';
28856 l_component_type_code        := 'S';
28857 l_component_appl_id          :=  200;
28858 l_amb_context_code           := 'DEFAULT';
28859 l_entity_code                := 'AP_PAYMENTS';
28860 l_event_class_code           := 'PAYMENTS';
28861 l_event_type_code            := 'PAYMENTS_ALL';
28862 l_line_definition_owner_code := 'S';
28863 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
28864 --
28865 l_balance_type_code          := 'A';
28866 l_segment                     := NULL;
28867 l_ccid                        := NULL;
28868 l_adr_transaction_coa_id      := NULL;
28869 l_adr_accounting_coa_id       := NULL;
28870 l_adr_flexfield_segment_code  := NULL;
28871 l_adr_flex_value_set_id       := NULL;
28872 l_adr_value_type_code         := NULL;
28873 l_adr_value_combination_id    := NULL;
28874 l_adr_value_segment_code      := NULL;
28875 
28876 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
28877 l_bflow_class_code           := '';    -- 4219869 Business Flow
28878 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28879 l_budgetary_control_flag     := 'N';
28880 
28881 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28882 l_bflow_applied_to_amt       := NULL; -- 5132302
28883 l_entered_amt_idx            := NULL;          -- 4262811
28884 l_accted_amt_idx             := NULL;          -- 4262811
28885 l_acc_rev_flag               := NULL;          -- 4262811
28886 l_accrual_line_num           := NULL;          -- 4262811
28887 l_tmp_amt                    := NULL;          -- 4262811
28888 --
28889  
28890 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28891     l_balance_type_code <> 'B' THEN
28892 IF NVL(p_source_38,'
28893 ') =  'ISSUE_ISSUE' AND 
28894 (NVL(p_source_110,'
28895 ') =  'Y' AND 
28896 NVL(p_source_4,'
28897 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
28898 p_source_111 IS NULL AND 
28899 NVL(p_source_39,'
28900 ') =  'CASH' AND 
28901 NVL(p_source_60,'
28902 ') <>  'R' AND 
28903 NVL(p_source_113,'
28904 ') <>  'PAYMENTCARD'
28905  THEN 
28906 
28907    --
28908    XLA_AE_LINES_PKG.SetNewLine;
28909 
28913    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28910    p_balance_type_code          := l_balance_type_code;
28911    -- set the flag so later we will know whether the gain loss line needs to be created
28912    
28914      p_actual_flag :='A';
28915    END IF;
28916 
28917    --
28918    -- bulk performance
28919    --
28920    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28921                                       p_header_num   => 0); -- 4262811
28922    --
28923    -- set accounting line options
28924    --
28925    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28926            p_natural_side_code          => 'C'
28927          , p_gain_or_loss_flag          => 'N'
28928          , p_gl_transfer_mode_code      => 'S'
28929          , p_acct_entry_type_code       => 'A'
28930          , p_switch_side_flag           => 'Y'
28931          , p_merge_duplicate_code       => 'A'
28932          );
28933    --
28934    l_acc_rev_natural_side_code := 'D';  -- 4262811
28935    -- 
28936    --
28937    -- set accounting line type info
28938    --
28939    xla_ae_lines_pkg.SetAcctLineType
28940       (p_component_type             => l_component_type
28941       ,p_event_type_code            => l_event_type_code
28942       ,p_line_definition_owner_code => l_line_definition_owner_code
28943       ,p_line_definition_code       => l_line_definition_code
28944       ,p_accounting_line_code       => l_component_code
28945       ,p_accounting_line_type_code  => l_component_type_code
28946       ,p_accounting_line_appl_id    => l_component_appl_id
28947       ,p_amb_context_code           => l_amb_context_code
28948       ,p_entity_code                => l_entity_code
28949       ,p_event_class_code           => l_event_class_code);
28950    --
28951    -- set accounting class
28952    --
28953    xla_ae_lines_pkg.SetAcctClass(
28954            p_accounting_class_code  => 'CASH'
28955          , p_ae_header_id           => l_ae_header_id
28956          );
28957 
28958    --
28959    -- set rounding class
28960    --
28961    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28962                       'CASH';
28963 
28964    --
28965    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28966    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28967    --
28968    -- bulk performance
28969    --
28970    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28971 
28972    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28973       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28974 
28975    -- 4955764
28976    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28977       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28978 
28979    -- 4458381 Public Sector Enh
28980    
28981    --
28982    -- set accounting attributes for the line type
28983    --
28984    l_entered_amt_idx := 10;
28985    l_accted_amt_idx  := 15;
28986    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
28987    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28988    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
28989    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28990    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
28991    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28992    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
28993    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28994    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
28995    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28996    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
28997    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28998    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
28999    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29000    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
29001    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
29002    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
29003    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
29004    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
29005    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
29006    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
29007    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
29008    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
29009    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
29010    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
29011    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
29012    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
29013    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
29014    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
29015    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
29016    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
29017    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
29018    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
29019    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
29023    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
29020    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
29021    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
29022    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
29024    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
29025    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
29026    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
29027    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
29028    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
29029    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
29030    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
29031    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
29032    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
29033    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
29034    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
29035 
29036    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29037    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29038 
29039    ---------------------------------------------------------------------------------------------------------------
29040    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29041    ---------------------------------------------------------------------------------------------------------------
29042    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29043 
29044    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29045    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29046 
29047    IF xla_accounting_cache_pkg.GetValueChar
29048          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29049          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29050    AND l_bflow_method_code = 'PRIOR_ENTRY'
29051 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29052    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29053          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29054        )
29055    THEN
29056          xla_ae_lines_pkg.BflowUpgEntry
29057            (p_business_method_code    => l_bflow_method_code
29058            ,p_business_class_code     => l_bflow_class_code
29059            ,p_balance_type            => l_balance_type_code);
29060    ELSE
29061       NULL;
29062 XLA_AE_LINES_PKG.business_flow_validation(
29063                                 p_business_method_code     => l_bflow_method_code
29064                                ,p_business_class_code      => l_bflow_class_code
29065                                ,p_inherit_description_flag => l_inherit_desc_flag);
29066    END IF;
29067 
29068    --
29069    -- call analytical criteria
29070    --
29071    
29072    --
29073    -- call description
29074    --
29075    -- No description or it is inherited.
29076    --
29077    -- call ADRs
29078    -- Bug 4922099
29079    --
29080    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29081         (NVL(l_actual_upg_option, 'N') = 'O') OR
29082         (NVL(l_enc_upg_option, 'N') = 'O')
29083       )
29084    THEN
29085    NULL;
29086    --
29087    --
29088    
29089    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
29090      p_code_combination_id      => TO_NUMBER(C_NUM)
29091    , p_value_type_code          => NULL
29092    , p_transaction_coa_id       => null
29093    , p_accounting_coa_id        => null
29094    , p_adr_code                 => NULL
29095    , p_adr_type_code            => NULL
29096    , p_component_type           => l_component_type
29097    , p_component_code           => l_component_code
29098    , p_component_type_code      => l_component_type_code
29099    , p_component_appl_id        => l_component_appl_id
29100    , p_amb_context_code         => l_amb_context_code
29101    , p_side                     => NULL
29102    );
29103 
29104    
29105   -- initialise segments
29106   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29107   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29108   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29109   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29110   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29111   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29112   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29113   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29114   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29115   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29116   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29117   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29118   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29119   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29123   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29120   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29121   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29122   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29124   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29125   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29126   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29127   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29128   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29129   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29130   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29131   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29132   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29133   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29134   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29135   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29136   --
29137 
29138    --
29139 
29140 
29141    l_segment := AcctDerRule_1(
29142            p_application_id           => p_application_id
29143          , p_ae_header_id             => l_ae_header_id 
29144 , p_source_1 => p_source_1
29145          , x_transaction_coa_id       => l_adr_transaction_coa_id
29146          , x_accounting_coa_id        => l_adr_accounting_coa_id
29147          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
29148          , x_flex_value_set_id        => l_adr_flex_value_set_id
29149          , x_value_type_code          => l_adr_value_type_code
29150          , x_value_combination_id     => l_adr_value_combination_id
29151          , x_value_segment_code       => l_adr_value_segment_code
29152          , p_side                     => 'NA'
29153          , p_override_seg_flag        => 'Y'
29154    );
29155 
29156    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
29157 
29158       xla_ae_lines_pkg.set_segment(
29159           p_to_segment_code         => 'GL_ACCOUNT'
29160         , p_segment_value           => l_segment
29161         , p_from_segment_code       => l_adr_value_segment_code
29162         , p_from_combination_id     => l_adr_value_combination_id
29163         , p_value_type_code         => l_adr_value_type_code
29164         , p_transaction_coa_id      => l_adr_transaction_coa_id
29165         , p_accounting_coa_id       => l_adr_accounting_coa_id
29166         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
29167         , p_flex_value_set_id       => l_adr_flex_value_set_id
29168         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
29169         , p_adr_type_code           => 'S'
29170         , p_component_type          => l_component_type
29171         , p_component_code          => l_component_code
29172         , p_component_type_code     => l_component_type_code
29173         , p_component_appl_id       => l_component_appl_id
29174         , p_amb_context_code        => l_amb_context_code
29175         , p_entity_code             => 'AP_PAYMENTS'
29176         , p_event_class_code        => 'PAYMENTS'
29177         , p_side                    => 'NA'
29178         );
29179 
29180   END IF;
29181 
29182    --
29183    --
29184    END IF;
29185    --
29186    -- Bug 4922099
29187    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29188           (NVL(l_enc_upg_option, 'N') = 'O')
29189         ) AND
29190         (l_bflow_method_code = 'PRIOR_ENTRY')
29191       )
29192    THEN
29193       IF
29194       --
29195       1 = 2
29196       --
29197       THEN
29198       xla_accounting_err_pkg.build_message
29199                                     (p_appli_s_name            => 'XLA'
29200                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29201                                     ,p_token_1                 => 'LINE_NUMBER'
29202                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29203                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29204                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29205                                                                              l_component_type
29206                                                                             ,l_component_code
29207                                                                             ,l_component_type_code
29208                                                                             ,l_component_appl_id
29209                                                                             ,l_amb_context_code
29210                                                                             ,l_entity_code
29211                                                                             ,l_event_class_code
29212                                                                            )
29213                                     ,p_token_3                 => 'OWNER'
29214                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29218                                     ,p_token_4                 => 'PRODUCT_NAME'
29215                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29216                                                                           ,p_lookup_code    => l_component_type_code
29217                                                                          )
29219                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29220                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29221                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29222                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29223                                     ,p_ae_header_id            =>  NULL
29224                                        );
29225 
29226         IF (C_LEVEL_ERROR>= g_log_level) THEN
29227                  trace
29228                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29229                       ,p_level    => C_LEVEL_ERROR
29230                       ,p_module   => l_log_module);
29231         END IF;
29232       END IF;
29233    END IF;
29234    --
29235    --
29236    ------------------------------------------------------------------------------------------------
29237    -- 4219869 Business Flow
29238    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29239    -- Prior Entry.  Currently, the following code is always generated.
29240    ------------------------------------------------------------------------------------------------
29241    XLA_AE_LINES_PKG.ValidateCurrentLine;
29242 
29243    ------------------------------------------------------------------------------------
29244    -- 4219869 Business Flow
29245    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29246    ------------------------------------------------------------------------------------
29247    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29248 
29249    ----------------------------------------------------------------------------------
29250    -- 4219869 Business Flow
29251    -- Update journal entry status -- Need to generate this within IF <condition>
29252    ----------------------------------------------------------------------------------
29253    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29254          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29255          ,p_balance_type_code => l_balance_type_code
29256          );
29257 
29258    -------------------------------------------------------------------------------------------
29259    -- 4262811 - Generate the Accrual Reversal lines
29260    -------------------------------------------------------------------------------------------
29261    BEGIN
29262       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29263                               (g_array_event(p_event_id).array_value_num('header_index'));
29264       IF l_acc_rev_flag IS NULL THEN
29265          l_acc_rev_flag := 'N';
29266       END IF;
29267    EXCEPTION
29268       WHEN OTHERS THEN
29269          l_acc_rev_flag := 'N';
29270    END;
29271    --
29272    IF (l_acc_rev_flag = 'Y') THEN
29273 
29274        -- 4645092  ------------------------------------------------------------------------------
29275        -- To allow MPA report to determine if it should generate report process
29276        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29277        ------------------------------------------------------------------------------------------
29278 
29279        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29280        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29281    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29282    -- call ADRs
29283    -- Bug 4922099
29284    --
29285    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29286         (NVL(l_actual_upg_option, 'N') = 'O') OR
29287         (NVL(l_enc_upg_option, 'N') = 'O')
29288       )
29289    THEN
29290    NULL;
29291    --
29292    --
29293    
29294    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
29295      p_code_combination_id      => TO_NUMBER(C_NUM)
29296    , p_value_type_code          => NULL
29297    , p_transaction_coa_id       => null
29298    , p_accounting_coa_id        => null
29299    , p_adr_code                 => NULL
29300    , p_adr_type_code            => NULL
29301    , p_component_type           => l_component_type
29302    , p_component_code           => l_component_code
29303    , p_component_type_code      => l_component_type_code
29304    , p_component_appl_id        => l_component_appl_id
29305    , p_amb_context_code         => l_amb_context_code
29306    , p_side                     => NULL
29307    );
29308 
29309    
29310   -- initialise segments
29311   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29312   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29313   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29314   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29315   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29316   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29320   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29317   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29318   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29319   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29321   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29322   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29323   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29324   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29325   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29326   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29327   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29328   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29329   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29330   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29331   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29332   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29333   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29334   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29335   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29336   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29337   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29338   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29339   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29340   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29341   --
29342 
29343    --
29344 
29345 
29346    l_segment := AcctDerRule_1(
29347            p_application_id           => p_application_id
29348          , p_ae_header_id             => l_ae_header_id 
29349 , p_source_1 => p_source_1
29350          , x_transaction_coa_id       => l_adr_transaction_coa_id
29351          , x_accounting_coa_id        => l_adr_accounting_coa_id
29352          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
29353          , x_flex_value_set_id        => l_adr_flex_value_set_id
29354          , x_value_type_code          => l_adr_value_type_code
29355          , x_value_combination_id     => l_adr_value_combination_id
29356          , x_value_segment_code       => l_adr_value_segment_code
29357          , p_side                     => 'NA'
29358          , p_override_seg_flag        => 'Y'
29359    );
29360 
29361    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
29362 
29363       xla_ae_lines_pkg.set_segment(
29364           p_to_segment_code         => 'GL_ACCOUNT'
29365         , p_segment_value           => l_segment
29366         , p_from_segment_code       => l_adr_value_segment_code
29367         , p_from_combination_id     => l_adr_value_combination_id
29368         , p_value_type_code         => l_adr_value_type_code
29369         , p_transaction_coa_id      => l_adr_transaction_coa_id
29370         , p_accounting_coa_id       => l_adr_accounting_coa_id
29371         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
29372         , p_flex_value_set_id       => l_adr_flex_value_set_id
29373         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
29374         , p_adr_type_code           => 'S'
29375         , p_component_type          => l_component_type
29376         , p_component_code          => l_component_code
29377         , p_component_type_code     => l_component_type_code
29378         , p_component_appl_id       => l_component_appl_id
29379         , p_amb_context_code        => l_amb_context_code
29380         , p_entity_code             => 'AP_PAYMENTS'
29381         , p_event_class_code        => 'PAYMENTS'
29382         , p_side                    => 'NA'
29383         );
29384 
29385   END IF;
29386 
29387    --
29388    --
29389    END IF;
29390 
29391        --
29392        -- Update the line information that should be overwritten
29393        --
29394        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29395                                          p_header_num   => 1);
29396        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29397 
29398        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29399 
29400        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29401           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29402        END IF;
29403 
29404       --
29405       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29406       --
29407       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29408           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29409       ELSE
29410           ---------------------------------------------------------------------------------------------------
29411           -- 4262811a Switch Sign
29415                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29412           ---------------------------------------------------------------------------------------------------
29413           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29414           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29416           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29417                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29418           -- 5132302
29419           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29420                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29421 
29422       END IF;
29423 
29424       -- 4955764
29425       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29426       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29427 
29428 
29429       XLA_AE_LINES_PKG.ValidateCurrentLine;
29430       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29431 
29432       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29433                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29434                ,p_balance_type_code => l_balance_type_code);
29435 
29436    END IF;
29437 
29438    -----------------------------------------------------------------------------------------
29439    -- 4262811 Multiperiod Accounting
29440    -----------------------------------------------------------------------------------------
29441      -- No MPA option is assigned.
29442 
29443 
29444 END IF;
29445 END IF;
29446 --
29447 
29448 --
29449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29450    trace
29451       (p_msg      => 'END of AcctLineType_70'
29452       ,p_level    => C_LEVEL_PROCEDURE
29453       ,p_module   => l_log_module);
29454 END IF;
29455 --
29456 EXCEPTION
29457   WHEN xla_exceptions_pkg.application_exception THEN
29458       RAISE;
29459   WHEN OTHERS THEN
29460        xla_exceptions_pkg.raise_message
29461            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_70');
29462 END AcctLineType_70;
29463 --
29464 
29465 ---------------------------------------
29466 --
29467 -- PRIVATE FUNCTION
29468 --         AcctLineType_71
29469 --
29470 ---------------------------------------
29471 PROCEDURE AcctLineType_71 (
29472   p_application_id        IN NUMBER
29473  ,p_event_id              IN NUMBER
29474  ,p_calculate_acctd_flag  IN VARCHAR2
29475  ,p_calculate_g_l_flag    IN VARCHAR2
29476  ,p_actual_flag           IN OUT VARCHAR2
29477  ,p_balance_type_code     OUT VARCHAR2
29478  ,p_gain_or_loss_ref      OUT VARCHAR2
29479  
29480 --Bank Cash Account
29481  , p_source_1            IN NUMBER
29482 --Automatic Offsets Value
29483  , p_source_4            IN VARCHAR2
29484  , p_source_4_meaning    IN VARCHAR2
29485 --Payment Distribution (Payment Rate) Ledger Amount
29486  , p_source_9            IN NUMBER
29487 --When to Account for Payment Option
29488  , p_source_38            IN VARCHAR2
29489 --Payment Distribution Type
29490  , p_source_39            IN VARCHAR2
29491  , p_source_39_meaning    IN VARCHAR2
29492 --Accounting Reversal Indicator
29493  , p_source_40            IN VARCHAR2
29494 --Payment Distribution Amount
29495  , p_source_41            IN NUMBER
29496 --Business Flow Accounts Payable Application Identifier
29497  , p_source_42            IN NUMBER
29498 --Payment Distribution Identifier
29499  , p_source_47            IN NUMBER
29500 --Distribution Link Type
29501  , p_source_48            IN VARCHAR2
29502 --Payment Currency Code
29503  , p_source_49            IN VARCHAR2
29504 --Override Accounted Amount Indicator
29505  , p_source_53            IN VARCHAR2
29506  , p_source_53_meaning    IN VARCHAR2
29507 --Payment Supplier Identifier
29508  , p_source_54            IN NUMBER
29509 --Payment Supplier Site Identifier
29510  , p_source_55            IN NUMBER
29511 --Third Party Type
29512  , p_source_56            IN VARCHAR2
29513 --Payment Distribution Reversed Identifier
29514  , p_source_57            IN NUMBER
29515 --Invoice Distribution Tax Line Identifier
29516  , p_source_58            IN NUMBER
29517 --Invoice Distribution Summary Tax Line Identifier
29518  , p_source_59            IN NUMBER
29519 --Payment Type
29520  , p_source_60            IN VARCHAR2
29521  , p_source_60_meaning    IN VARCHAR2
29522 --Invoice Distribution Amount of the Payment Distribution
29523  , p_source_61            IN NUMBER
29524 --Business Flow Invoice Distribution Type
29525  , p_source_62            IN VARCHAR2
29526 --Business Flow Invoice Entity Code
29527  , p_source_63            IN VARCHAR2
29528 --Business Flow Invoice Distribution Identifier
29529  , p_source_64            IN NUMBER
29530 --Business Flow Invoice Identifier
29531  , p_source_65            IN NUMBER
29532 --Invoice Distribution Tax Distribution Identifier from Tax
29533  , p_source_66            IN NUMBER
29534 --Pooled Bank Account Option
29535  , p_source_110            IN VARCHAR2
29536  , p_source_110_meaning    IN VARCHAR2
29537 --Payment Maturity Date
29538  , p_source_111            IN DATE
29539 --Payment Processing Type
29543 --Payment Exchange Rate
29540  , p_source_113            IN VARCHAR2
29541 --Payment Exchange Date
29542  , p_source_114            IN DATE
29544  , p_source_115            IN NUMBER
29545 --Payment Exchange Rate Type
29546  , p_source_116            IN VARCHAR2
29547 )
29548 IS
29549 
29550 l_component_type              VARCHAR2(80);
29551 l_component_code              VARCHAR2(30);
29552 l_component_type_code         VARCHAR2(1);
29553 l_component_appl_id           INTEGER;
29554 l_amb_context_code            VARCHAR2(30);
29555 l_entity_code                 VARCHAR2(30);
29556 l_event_class_code            VARCHAR2(30);
29557 l_ae_header_id                NUMBER;
29558 l_event_type_code             VARCHAR2(30);
29559 l_line_definition_code        VARCHAR2(30);
29560 l_line_definition_owner_code  VARCHAR2(1);
29561 --
29562 -- adr variables
29563 l_segment                     VARCHAR2(30);
29564 l_ccid                        NUMBER;
29565 l_adr_transaction_coa_id      NUMBER;
29566 l_adr_accounting_coa_id       NUMBER;
29567 l_adr_flexfield_segment_code  VARCHAR2(30);
29568 l_adr_flex_value_set_id       NUMBER;
29569 l_adr_value_type_code         VARCHAR2(30);
29570 l_adr_value_combination_id    NUMBER;
29571 l_adr_value_segment_code      VARCHAR2(30);
29572 
29573 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29574 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29575 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29576 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29577 
29578 -- 4262811 Variables ------------------------------------------------------------------------------------------
29579 l_entered_amt_idx             NUMBER;
29580 l_accted_amt_idx              NUMBER;
29581 l_acc_rev_flag                VARCHAR2(1);
29582 l_accrual_line_num            NUMBER;
29583 l_tmp_amt                     NUMBER;
29584 l_acc_rev_natural_side_code   VARCHAR2(1);
29585 
29586 l_num_entries                 NUMBER;
29587 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29588 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29589 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29590 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29591 l_recog_line_1                NUMBER;
29592 l_recog_line_2                NUMBER;
29593 
29594 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29595 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29596 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29597 
29598 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29599 
29600 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
29601 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
29602 
29603 ---------------------------------------------------------------------------------------------------------------
29604 
29605 
29606 --
29607 -- bulk performance
29608 --
29609 l_balance_type_code           VARCHAR2(1);
29610 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
29611 l_log_module                  VARCHAR2(240);
29612 
29613 --
29614 -- Upgrade strategy
29615 --
29616 l_actual_upg_option           VARCHAR2(1);
29617 l_enc_upg_option           VARCHAR2(1);
29618 
29619 --
29620 BEGIN
29621 --
29622 IF g_log_enabled THEN
29623       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
29624 END IF;
29625 --
29626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29627 
29628       trace
29629          (p_msg      => 'BEGIN of AcctLineType_71'
29630          ,p_level    => C_LEVEL_PROCEDURE
29631          ,p_module   => l_log_module);
29632 
29633 END IF;
29634 --
29635 l_component_type             := 'AMB_JLT';
29636 l_component_code             := 'AP_CASH_PMT_AOS_BS';
29637 l_component_type_code        := 'S';
29638 l_component_appl_id          :=  200;
29639 l_amb_context_code           := 'DEFAULT';
29640 l_entity_code                := 'AP_PAYMENTS';
29641 l_event_class_code           := 'PAYMENTS';
29642 l_event_type_code            := 'PAYMENTS_ALL';
29643 l_line_definition_owner_code := 'S';
29644 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
29645 --
29646 l_balance_type_code          := 'A';
29647 l_segment                     := NULL;
29648 l_ccid                        := NULL;
29649 l_adr_transaction_coa_id      := NULL;
29650 l_adr_accounting_coa_id       := NULL;
29651 l_adr_flexfield_segment_code  := NULL;
29652 l_adr_flex_value_set_id       := NULL;
29653 l_adr_value_type_code         := NULL;
29654 l_adr_value_combination_id    := NULL;
29655 l_adr_value_segment_code      := NULL;
29656 
29657 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
29658 l_bflow_class_code           := '';    -- 4219869 Business Flow
29659 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
29660 l_budgetary_control_flag     := 'N';
29661 
29662 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
29663 l_bflow_applied_to_amt       := NULL; -- 5132302
29664 l_entered_amt_idx            := NULL;          -- 4262811
29665 l_accted_amt_idx             := NULL;          -- 4262811
29666 l_acc_rev_flag               := NULL;          -- 4262811
29667 l_accrual_line_num           := NULL;          -- 4262811
29668 l_tmp_amt                    := NULL;          -- 4262811
29669 --
29670  
29674 ') =  'ISSUE_ISSUE' AND 
29671 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29672     l_balance_type_code <> 'B' THEN
29673 IF NVL(p_source_38,'
29675 (NVL(p_source_110,'
29676 ') =  'Y' AND 
29677 NVL(p_source_4,'
29678 ') =  'BALANCING_SEGMENT') AND 
29679 p_source_111 IS NULL AND 
29680 NVL(p_source_39,'
29681 ') =  'CASH' AND 
29682 NVL(p_source_60,'
29683 ') <>  'R' AND 
29684 NVL(p_source_113,'
29685 ') <>  'PAYMENTCARD'
29686  THEN 
29687 
29688    --
29689    XLA_AE_LINES_PKG.SetNewLine;
29690 
29691    p_balance_type_code          := l_balance_type_code;
29692    -- set the flag so later we will know whether the gain loss line needs to be created
29693    
29694    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29695      p_actual_flag :='A';
29696    END IF;
29697 
29698    --
29699    -- bulk performance
29700    --
29701    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29702                                       p_header_num   => 0); -- 4262811
29703    --
29704    -- set accounting line options
29705    --
29706    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29707            p_natural_side_code          => 'C'
29708          , p_gain_or_loss_flag          => 'N'
29709          , p_gl_transfer_mode_code      => 'S'
29710          , p_acct_entry_type_code       => 'A'
29711          , p_switch_side_flag           => 'Y'
29712          , p_merge_duplicate_code       => 'A'
29713          );
29714    --
29715    l_acc_rev_natural_side_code := 'D';  -- 4262811
29716    -- 
29717    --
29718    -- set accounting line type info
29719    --
29720    xla_ae_lines_pkg.SetAcctLineType
29721       (p_component_type             => l_component_type
29722       ,p_event_type_code            => l_event_type_code
29723       ,p_line_definition_owner_code => l_line_definition_owner_code
29724       ,p_line_definition_code       => l_line_definition_code
29725       ,p_accounting_line_code       => l_component_code
29726       ,p_accounting_line_type_code  => l_component_type_code
29727       ,p_accounting_line_appl_id    => l_component_appl_id
29728       ,p_amb_context_code           => l_amb_context_code
29729       ,p_entity_code                => l_entity_code
29730       ,p_event_class_code           => l_event_class_code);
29731    --
29732    -- set accounting class
29733    --
29734    xla_ae_lines_pkg.SetAcctClass(
29735            p_accounting_class_code  => 'CASH'
29736          , p_ae_header_id           => l_ae_header_id
29737          );
29738 
29739    --
29740    -- set rounding class
29741    --
29742    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29743                       'CASH';
29744 
29745    --
29746    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29747    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29748    --
29749    -- bulk performance
29750    --
29751    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29752 
29753    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29754       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29755 
29756    -- 4955764
29757    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29758       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29759 
29760    -- 4458381 Public Sector Enh
29761    
29762    --
29763    -- set accounting attributes for the line type
29764    --
29765    l_entered_amt_idx := 10;
29766    l_accted_amt_idx  := 15;
29767    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
29768    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29769    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
29770    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
29771    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
29772    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
29773    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
29774    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29775    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
29776    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
29777    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
29778    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
29779    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
29780    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29781    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
29782    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
29783    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
29784    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
29785    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
29786    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
29787    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
29788    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
29789    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
29790    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
29794    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
29791    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
29792    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
29793    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
29795    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
29796    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
29797    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
29798    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
29799    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
29800    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
29801    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
29802    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
29803    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
29804    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
29805    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
29806    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
29807    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
29808    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
29809    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
29810    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
29811    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
29812    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
29813    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
29814    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
29815    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
29816 
29817    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29818    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29819 
29820    ---------------------------------------------------------------------------------------------------------------
29821    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29822    ---------------------------------------------------------------------------------------------------------------
29823    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29824 
29825    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29826    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29827 
29828    IF xla_accounting_cache_pkg.GetValueChar
29829          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29830          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29831    AND l_bflow_method_code = 'PRIOR_ENTRY'
29832 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29833    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29834          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29835        )
29836    THEN
29837          xla_ae_lines_pkg.BflowUpgEntry
29838            (p_business_method_code    => l_bflow_method_code
29839            ,p_business_class_code     => l_bflow_class_code
29840            ,p_balance_type            => l_balance_type_code);
29841    ELSE
29842       NULL;
29843 XLA_AE_LINES_PKG.business_flow_validation(
29844                                 p_business_method_code     => l_bflow_method_code
29845                                ,p_business_class_code      => l_bflow_class_code
29846                                ,p_inherit_description_flag => l_inherit_desc_flag);
29847    END IF;
29848 
29849    --
29850    -- call analytical criteria
29851    --
29852    
29853    --
29854    -- call description
29855    --
29856    -- No description or it is inherited.
29857    --
29858    -- call ADRs
29859    -- Bug 4922099
29860    --
29861    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29862         (NVL(l_actual_upg_option, 'N') = 'O') OR
29863         (NVL(l_enc_upg_option, 'N') = 'O')
29864       )
29865    THEN
29866    NULL;
29867    --
29868    --
29869    
29870   l_ccid := AcctDerRule_20(
29871            p_application_id           => p_application_id
29872          , p_ae_header_id             => l_ae_header_id 
29873 , p_source_1 => p_source_1
29874          , x_transaction_coa_id       => l_adr_transaction_coa_id
29875          , x_accounting_coa_id        => l_adr_accounting_coa_id
29876          , x_value_type_code          => l_adr_value_type_code
29877          , p_side                     => 'NA'
29878    );
29879 
29880    xla_ae_lines_pkg.set_ccid(
29881     p_code_combination_id          => l_ccid
29882   , p_value_type_code              => l_adr_value_type_code
29883   , p_transaction_coa_id           => l_adr_transaction_coa_id
29884   , p_accounting_coa_id            => l_adr_accounting_coa_id
29885   , p_adr_code                     => 'AP_CASH'
29886   , p_adr_type_code                => 'S'
29887   , p_component_type               => l_component_type
29888   , p_component_code               => l_component_code
29889   , p_component_type_code          => l_component_type_code
29890   , p_component_appl_id            => l_component_appl_id
29891   , p_amb_context_code             => l_amb_context_code
29892   , p_side                         => 'NA'
29893   );
29894 
29895 
29896    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
29900    , p_from_combination_id     => NULL
29897      p_to_segment_code         => 'GL_BALANCING'
29898    , p_segment_value           => C_CHAR
29899    , p_from_segment_code       => NULL
29901    , p_value_type_code         => NULL
29902    , p_transaction_coa_id      => null
29903    , p_accounting_coa_id       => null
29904    , p_flexfield_segment_code  => NULL
29905    , p_flex_value_set_id       => NULL
29906    , p_adr_code                => NULL
29907    , p_adr_type_code           => NULL
29908    , p_component_type          => l_component_type
29909    , p_component_code          => l_component_code
29910    , p_component_type_code     => l_component_type_code
29911    , p_component_appl_id       => l_component_appl_id
29912    , p_amb_context_code        => l_amb_context_code
29913    , p_entity_code             => 'AP_PAYMENTS'
29914    , p_event_class_code        => 'PAYMENTS'
29915    , p_side                    => 'NA'
29916    );
29917    --
29918 
29919 
29920    --
29921    --
29922    END IF;
29923    --
29924    -- Bug 4922099
29925    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29926           (NVL(l_enc_upg_option, 'N') = 'O')
29927         ) AND
29928         (l_bflow_method_code = 'PRIOR_ENTRY')
29929       )
29930    THEN
29931       IF
29932       --
29933       1 = 2
29934       --
29935       THEN
29936       xla_accounting_err_pkg.build_message
29937                                     (p_appli_s_name            => 'XLA'
29938                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29939                                     ,p_token_1                 => 'LINE_NUMBER'
29940                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29941                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29942                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29943                                                                              l_component_type
29944                                                                             ,l_component_code
29945                                                                             ,l_component_type_code
29946                                                                             ,l_component_appl_id
29947                                                                             ,l_amb_context_code
29948                                                                             ,l_entity_code
29949                                                                             ,l_event_class_code
29950                                                                            )
29951                                     ,p_token_3                 => 'OWNER'
29952                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29953                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29954                                                                           ,p_lookup_code    => l_component_type_code
29955                                                                          )
29956                                     ,p_token_4                 => 'PRODUCT_NAME'
29957                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29958                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29959                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29960                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29961                                     ,p_ae_header_id            =>  NULL
29962                                        );
29963 
29964         IF (C_LEVEL_ERROR>= g_log_level) THEN
29965                  trace
29966                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29967                       ,p_level    => C_LEVEL_ERROR
29968                       ,p_module   => l_log_module);
29969         END IF;
29970       END IF;
29971    END IF;
29972    --
29973    --
29974    ------------------------------------------------------------------------------------------------
29975    -- 4219869 Business Flow
29976    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29977    -- Prior Entry.  Currently, the following code is always generated.
29978    ------------------------------------------------------------------------------------------------
29979    XLA_AE_LINES_PKG.ValidateCurrentLine;
29980 
29981    ------------------------------------------------------------------------------------
29982    -- 4219869 Business Flow
29983    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29984    ------------------------------------------------------------------------------------
29985    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29986 
29987    ----------------------------------------------------------------------------------
29988    -- 4219869 Business Flow
29989    -- Update journal entry status -- Need to generate this within IF <condition>
29990    ----------------------------------------------------------------------------------
29991    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29992          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29996    -------------------------------------------------------------------------------------------
29993          ,p_balance_type_code => l_balance_type_code
29994          );
29995 
29997    -- 4262811 - Generate the Accrual Reversal lines
29998    -------------------------------------------------------------------------------------------
29999    BEGIN
30000       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30001                               (g_array_event(p_event_id).array_value_num('header_index'));
30002       IF l_acc_rev_flag IS NULL THEN
30003          l_acc_rev_flag := 'N';
30004       END IF;
30005    EXCEPTION
30006       WHEN OTHERS THEN
30007          l_acc_rev_flag := 'N';
30008    END;
30009    --
30010    IF (l_acc_rev_flag = 'Y') THEN
30011 
30012        -- 4645092  ------------------------------------------------------------------------------
30013        -- To allow MPA report to determine if it should generate report process
30014        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30015        ------------------------------------------------------------------------------------------
30016 
30017        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30018        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30019    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
30020    -- call ADRs
30021    -- Bug 4922099
30022    --
30023    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30024         (NVL(l_actual_upg_option, 'N') = 'O') OR
30025         (NVL(l_enc_upg_option, 'N') = 'O')
30026       )
30027    THEN
30028    NULL;
30029    --
30030    --
30031    
30032   l_ccid := AcctDerRule_20(
30033            p_application_id           => p_application_id
30034          , p_ae_header_id             => l_ae_header_id 
30035 , p_source_1 => p_source_1
30036          , x_transaction_coa_id       => l_adr_transaction_coa_id
30037          , x_accounting_coa_id        => l_adr_accounting_coa_id
30038          , x_value_type_code          => l_adr_value_type_code
30039          , p_side                     => 'NA'
30040    );
30041 
30042    xla_ae_lines_pkg.set_ccid(
30043     p_code_combination_id          => l_ccid
30044   , p_value_type_code              => l_adr_value_type_code
30045   , p_transaction_coa_id           => l_adr_transaction_coa_id
30046   , p_accounting_coa_id            => l_adr_accounting_coa_id
30047   , p_adr_code                     => 'AP_CASH'
30048   , p_adr_type_code                => 'S'
30049   , p_component_type               => l_component_type
30050   , p_component_code               => l_component_code
30051   , p_component_type_code          => l_component_type_code
30052   , p_component_appl_id            => l_component_appl_id
30053   , p_amb_context_code             => l_amb_context_code
30054   , p_side                         => 'NA'
30055   );
30056 
30057 
30058    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
30059      p_to_segment_code         => 'GL_BALANCING'
30060    , p_segment_value           => C_CHAR
30061    , p_from_segment_code       => NULL
30062    , p_from_combination_id     => NULL
30063    , p_value_type_code         => NULL
30064    , p_transaction_coa_id      => null
30065    , p_accounting_coa_id       => null
30066    , p_flexfield_segment_code  => NULL
30067    , p_flex_value_set_id       => NULL
30068    , p_adr_code                => NULL
30069    , p_adr_type_code           => NULL
30070    , p_component_type          => l_component_type
30071    , p_component_code          => l_component_code
30072    , p_component_type_code     => l_component_type_code
30073    , p_component_appl_id       => l_component_appl_id
30074    , p_amb_context_code        => l_amb_context_code
30075    , p_entity_code             => 'AP_PAYMENTS'
30076    , p_event_class_code        => 'PAYMENTS'
30077    , p_side                    => 'NA'
30078    );
30079    --
30080 
30081 
30082    --
30083    --
30084    END IF;
30085 
30086        --
30087        -- Update the line information that should be overwritten
30088        --
30089        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30090                                          p_header_num   => 1);
30091        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30092 
30093        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30094 
30095        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30096           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30097        END IF;
30098 
30099       --
30100       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30101       --
30102       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30103           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30104       ELSE
30105           ---------------------------------------------------------------------------------------------------
30106           -- 4262811a Switch Sign
30107           ---------------------------------------------------------------------------------------------------
30108           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30109           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30113           -- 5132302
30110                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30111           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30112                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30114           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30115                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30116 
30117       END IF;
30118 
30119       -- 4955764
30120       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30121       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30122 
30123 
30124       XLA_AE_LINES_PKG.ValidateCurrentLine;
30125       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30126 
30127       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30128                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30129                ,p_balance_type_code => l_balance_type_code);
30130 
30131    END IF;
30132 
30133    -----------------------------------------------------------------------------------------
30134    -- 4262811 Multiperiod Accounting
30135    -----------------------------------------------------------------------------------------
30136      -- No MPA option is assigned.
30137 
30138 
30139 END IF;
30140 END IF;
30141 --
30142 
30143 --
30144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30145    trace
30146       (p_msg      => 'END of AcctLineType_71'
30147       ,p_level    => C_LEVEL_PROCEDURE
30148       ,p_module   => l_log_module);
30149 END IF;
30150 --
30151 EXCEPTION
30152   WHEN xla_exceptions_pkg.application_exception THEN
30153       RAISE;
30154   WHEN OTHERS THEN
30155        xla_exceptions_pkg.raise_message
30156            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_71');
30157 END AcctLineType_71;
30158 --
30159 
30160 ---------------------------------------
30161 --
30162 -- PRIVATE FUNCTION
30163 --         AcctLineType_72
30164 --
30165 ---------------------------------------
30166 PROCEDURE AcctLineType_72 (
30167   p_application_id        IN NUMBER
30168  ,p_event_id              IN NUMBER
30169  ,p_calculate_acctd_flag  IN VARCHAR2
30170  ,p_calculate_g_l_flag    IN VARCHAR2
30171  ,p_actual_flag           IN OUT VARCHAR2
30172  ,p_balance_type_code     OUT VARCHAR2
30173  ,p_gain_or_loss_ref      OUT VARCHAR2
30174  
30175 --Bank Cash Account
30176  , p_source_1            IN NUMBER
30177 --Automatic Offsets Flag
30178  , p_source_30            IN VARCHAR2
30179  , p_source_30_meaning    IN VARCHAR2
30180 --When to Account for Payment Option
30181  , p_source_38            IN VARCHAR2
30182 --Payment Distribution Type
30183  , p_source_39            IN VARCHAR2
30184  , p_source_39_meaning    IN VARCHAR2
30185 --Accounting Reversal Indicator
30186  , p_source_40            IN VARCHAR2
30187 --Payment Distribution Amount
30188  , p_source_41            IN NUMBER
30189 --Business Flow Accounts Payable Application Identifier
30190  , p_source_42            IN NUMBER
30191 --Business Flow Payment Distribution Type
30192  , p_source_43            IN VARCHAR2
30193 --Business Flow Payment Entity Code
30194  , p_source_44            IN VARCHAR2
30195 --Business Flow Payment Distribution Identifier
30196  , p_source_45            IN NUMBER
30197 --Business Flow Payment Identifier
30198  , p_source_46            IN NUMBER
30199 --Payment Distribution Identifier
30200  , p_source_47            IN NUMBER
30201 --Distribution Link Type
30202  , p_source_48            IN VARCHAR2
30203 --Payment Currency Code
30204  , p_source_49            IN VARCHAR2
30205 --Override Accounted Amount Indicator
30206  , p_source_53            IN VARCHAR2
30207  , p_source_53_meaning    IN VARCHAR2
30208 --Payment Supplier Identifier
30209  , p_source_54            IN NUMBER
30210 --Payment Supplier Site Identifier
30211  , p_source_55            IN NUMBER
30212 --Third Party Type
30213  , p_source_56            IN VARCHAR2
30214 --Payment Distribution Reversed Identifier
30215  , p_source_57            IN NUMBER
30216 --Pooled Bank Account Option
30217  , p_source_110            IN VARCHAR2
30218  , p_source_110_meaning    IN VARCHAR2
30219 --Payment Maturity Date
30220  , p_source_111            IN DATE
30221 --Payment Exchange Date
30222  , p_source_114            IN DATE
30223 --Payment Exchange Rate
30224  , p_source_115            IN NUMBER
30225 --Payment Exchange Rate Type
30226  , p_source_116            IN VARCHAR2
30227 --Payment Distribution (Matured Rate) Ledger Amount
30228  , p_source_117            IN NUMBER
30229 )
30230 IS
30231 
30232 l_component_type              VARCHAR2(80);
30233 l_component_code              VARCHAR2(30);
30234 l_component_type_code         VARCHAR2(1);
30235 l_component_appl_id           INTEGER;
30236 l_amb_context_code            VARCHAR2(30);
30237 l_entity_code                 VARCHAR2(30);
30238 l_event_class_code            VARCHAR2(30);
30239 l_ae_header_id                NUMBER;
30240 l_event_type_code             VARCHAR2(30);
30241 l_line_definition_code        VARCHAR2(30);
30242 l_line_definition_owner_code  VARCHAR2(1);
30243 --
30244 -- adr variables
30245 l_segment                     VARCHAR2(30);
30249 l_adr_flexfield_segment_code  VARCHAR2(30);
30246 l_ccid                        NUMBER;
30247 l_adr_transaction_coa_id      NUMBER;
30248 l_adr_accounting_coa_id       NUMBER;
30250 l_adr_flex_value_set_id       NUMBER;
30251 l_adr_value_type_code         VARCHAR2(30);
30252 l_adr_value_combination_id    NUMBER;
30253 l_adr_value_segment_code      VARCHAR2(30);
30254 
30255 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30256 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30257 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30258 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30259 
30260 -- 4262811 Variables ------------------------------------------------------------------------------------------
30261 l_entered_amt_idx             NUMBER;
30262 l_accted_amt_idx              NUMBER;
30263 l_acc_rev_flag                VARCHAR2(1);
30264 l_accrual_line_num            NUMBER;
30265 l_tmp_amt                     NUMBER;
30266 l_acc_rev_natural_side_code   VARCHAR2(1);
30267 
30268 l_num_entries                 NUMBER;
30269 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30270 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30271 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30272 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30273 l_recog_line_1                NUMBER;
30274 l_recog_line_2                NUMBER;
30275 
30276 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30277 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30278 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30279 
30280 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30281 
30282 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30283 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30284 
30285 ---------------------------------------------------------------------------------------------------------------
30286 
30287 
30288 --
30289 -- bulk performance
30290 --
30291 l_balance_type_code           VARCHAR2(1);
30292 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30293 l_log_module                  VARCHAR2(240);
30294 
30295 --
30296 -- Upgrade strategy
30297 --
30298 l_actual_upg_option           VARCHAR2(1);
30299 l_enc_upg_option           VARCHAR2(1);
30300 
30301 --
30302 BEGIN
30303 --
30304 IF g_log_enabled THEN
30305       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
30306 END IF;
30307 --
30308 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30309 
30310       trace
30311          (p_msg      => 'BEGIN of AcctLineType_72'
30312          ,p_level    => C_LEVEL_PROCEDURE
30313          ,p_module   => l_log_module);
30314 
30315 END IF;
30316 --
30317 l_component_type             := 'AMB_JLT';
30318 l_component_code             := 'AP_CASH_PMT_MAT';
30319 l_component_type_code        := 'S';
30320 l_component_appl_id          :=  200;
30321 l_amb_context_code           := 'DEFAULT';
30322 l_entity_code                := 'AP_PAYMENTS';
30323 l_event_class_code           := 'FUTURE DATED PAYMENTS';
30324 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
30325 l_line_definition_owner_code := 'S';
30326 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
30327 --
30328 l_balance_type_code          := 'A';
30329 l_segment                     := NULL;
30330 l_ccid                        := NULL;
30331 l_adr_transaction_coa_id      := NULL;
30332 l_adr_accounting_coa_id       := NULL;
30333 l_adr_flexfield_segment_code  := NULL;
30334 l_adr_flex_value_set_id       := NULL;
30335 l_adr_value_type_code         := NULL;
30336 l_adr_value_combination_id    := NULL;
30337 l_adr_value_segment_code      := NULL;
30338 
30339 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
30340 l_bflow_class_code           := '';    -- 4219869 Business Flow
30341 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30342 l_budgetary_control_flag     := 'N';
30343 
30344 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30345 l_bflow_applied_to_amt       := NULL; -- 5132302
30346 l_entered_amt_idx            := NULL;          -- 4262811
30347 l_accted_amt_idx             := NULL;          -- 4262811
30348 l_acc_rev_flag               := NULL;          -- 4262811
30349 l_accrual_line_num           := NULL;          -- 4262811
30350 l_tmp_amt                    := NULL;          -- 4262811
30351 --
30352  
30353 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30354     l_balance_type_code <> 'B' THEN
30355 IF NVL(p_source_38,'
30356 ') =  'ISSUE_ISSUE' AND 
30357 (NVL(p_source_30,'
30358 ') <>  'Y' OR 
30359 NVL(p_source_30,'
30360 ') =  'Y' AND 
30361 NVL(p_source_110,'
30362 ') <>  'Y') AND 
30363 p_source_111 IS NOT NULL AND 
30364 NVL(p_source_39,'
30365 ') =  'CASH'
30366  THEN 
30367 
30368    --
30369    XLA_AE_LINES_PKG.SetNewLine;
30370 
30371    p_balance_type_code          := l_balance_type_code;
30372    -- set the flag so later we will know whether the gain loss line needs to be created
30373    
30374    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30375      p_actual_flag :='A';
30379    -- bulk performance
30376    END IF;
30377 
30378    --
30380    --
30381    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30382                                       p_header_num   => 0); -- 4262811
30383    --
30384    -- set accounting line options
30385    --
30386    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30387            p_natural_side_code          => 'C'
30388          , p_gain_or_loss_flag          => 'N'
30389          , p_gl_transfer_mode_code      => 'S'
30390          , p_acct_entry_type_code       => 'A'
30391          , p_switch_side_flag           => 'Y'
30392          , p_merge_duplicate_code       => 'A'
30393          );
30394    --
30395    l_acc_rev_natural_side_code := 'D';  -- 4262811
30396    -- 
30397    --
30398    -- set accounting line type info
30399    --
30400    xla_ae_lines_pkg.SetAcctLineType
30401       (p_component_type             => l_component_type
30402       ,p_event_type_code            => l_event_type_code
30403       ,p_line_definition_owner_code => l_line_definition_owner_code
30404       ,p_line_definition_code       => l_line_definition_code
30405       ,p_accounting_line_code       => l_component_code
30406       ,p_accounting_line_type_code  => l_component_type_code
30407       ,p_accounting_line_appl_id    => l_component_appl_id
30408       ,p_amb_context_code           => l_amb_context_code
30409       ,p_entity_code                => l_entity_code
30410       ,p_event_class_code           => l_event_class_code);
30411    --
30412    -- set accounting class
30413    --
30414    xla_ae_lines_pkg.SetAcctClass(
30415            p_accounting_class_code  => 'CASH'
30416          , p_ae_header_id           => l_ae_header_id
30417          );
30418 
30419    --
30420    -- set rounding class
30421    --
30422    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30423                       'CASH';
30424 
30425    --
30426    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30427    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30428    --
30429    -- bulk performance
30430    --
30431    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30432 
30433    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30434       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30435 
30436    -- 4955764
30437    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30438       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30439 
30440    -- 4458381 Public Sector Enh
30441    
30442    --
30443    -- set accounting attributes for the line type
30444    --
30445    l_entered_amt_idx := 9;
30446    l_accted_amt_idx  := 14;
30447    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
30448    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30449    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
30450    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30451    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
30452    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30453    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
30454    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30455    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
30456    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30457    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
30458    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30459    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
30460    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
30461    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
30462    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
30463    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
30464    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
30465    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
30466    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
30467    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
30468    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
30469    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
30470    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
30471    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
30472    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
30473    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
30474    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
30475    l_rec_acct_attrs.array_num_value(14)  := p_source_117;
30476    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
30477    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
30478    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
30479    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
30480    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
30481    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
30482    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
30483    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
30484    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
30485    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
30489    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30486    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
30487    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
30488 
30490    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30491 
30492    ---------------------------------------------------------------------------------------------------------------
30493    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30494    ---------------------------------------------------------------------------------------------------------------
30495    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30496 
30497    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30498    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30499 
30500    IF xla_accounting_cache_pkg.GetValueChar
30501          (p_source_code         => 'LEDGER_CATEGORY_CODE'
30502          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30503    AND l_bflow_method_code = 'PRIOR_ENTRY'
30504 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30505    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30506          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30507        )
30508    THEN
30509          xla_ae_lines_pkg.BflowUpgEntry
30510            (p_business_method_code    => l_bflow_method_code
30511            ,p_business_class_code     => l_bflow_class_code
30512            ,p_balance_type            => l_balance_type_code);
30513    ELSE
30514       NULL;
30515 -- No business flow processing for business flow method of NONE.
30516    END IF;
30517 
30518    --
30519    -- call analytical criteria
30520    --
30521    
30522    --
30523    -- call description
30524    --
30525    -- No description or it is inherited.
30526    --
30527    -- call ADRs
30528    -- Bug 4922099
30529    --
30530    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30531         (NVL(l_actual_upg_option, 'N') = 'O') OR
30532         (NVL(l_enc_upg_option, 'N') = 'O')
30533       )
30534    THEN
30535    NULL;
30536    --
30537    --
30538    
30539   l_ccid := AcctDerRule_20(
30540            p_application_id           => p_application_id
30541          , p_ae_header_id             => l_ae_header_id 
30542 , p_source_1 => p_source_1
30543          , x_transaction_coa_id       => l_adr_transaction_coa_id
30544          , x_accounting_coa_id        => l_adr_accounting_coa_id
30545          , x_value_type_code          => l_adr_value_type_code
30546          , p_side                     => 'NA'
30547    );
30548 
30549    xla_ae_lines_pkg.set_ccid(
30550     p_code_combination_id          => l_ccid
30551   , p_value_type_code              => l_adr_value_type_code
30552   , p_transaction_coa_id           => l_adr_transaction_coa_id
30553   , p_accounting_coa_id            => l_adr_accounting_coa_id
30554   , p_adr_code                     => 'AP_CASH'
30555   , p_adr_type_code                => 'S'
30556   , p_component_type               => l_component_type
30557   , p_component_code               => l_component_code
30558   , p_component_type_code          => l_component_type_code
30559   , p_component_appl_id            => l_component_appl_id
30560   , p_amb_context_code             => l_amb_context_code
30561   , p_side                         => 'NA'
30562   );
30563 
30564 
30565    --
30566    --
30567    END IF;
30568    --
30569    -- Bug 4922099
30570    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30571           (NVL(l_enc_upg_option, 'N') = 'O')
30572         ) AND
30573         (l_bflow_method_code = 'PRIOR_ENTRY')
30574       )
30575    THEN
30576       IF
30577       --
30578       1 = 2
30579       --
30580       THEN
30581       xla_accounting_err_pkg.build_message
30582                                     (p_appli_s_name            => 'XLA'
30583                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30584                                     ,p_token_1                 => 'LINE_NUMBER'
30585                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
30586                                     ,p_token_2                 => 'LINE_TYPE_NAME'
30587                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
30588                                                                              l_component_type
30589                                                                             ,l_component_code
30590                                                                             ,l_component_type_code
30591                                                                             ,l_component_appl_id
30592                                                                             ,l_amb_context_code
30593                                                                             ,l_entity_code
30594                                                                             ,l_event_class_code
30595                                                                            )
30596                                     ,p_token_3                 => 'OWNER'
30597                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
30601                                     ,p_token_4                 => 'PRODUCT_NAME'
30598                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
30599                                                                           ,p_lookup_code    => l_component_type_code
30600                                                                          )
30602                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30603                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30604                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30605                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30606                                     ,p_ae_header_id            =>  NULL
30607                                        );
30608 
30609         IF (C_LEVEL_ERROR>= g_log_level) THEN
30610                  trace
30611                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30612                       ,p_level    => C_LEVEL_ERROR
30613                       ,p_module   => l_log_module);
30614         END IF;
30615       END IF;
30616    END IF;
30617    --
30618    --
30619    ------------------------------------------------------------------------------------------------
30620    -- 4219869 Business Flow
30621    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30622    -- Prior Entry.  Currently, the following code is always generated.
30623    ------------------------------------------------------------------------------------------------
30624    XLA_AE_LINES_PKG.ValidateCurrentLine;
30625 
30626    ------------------------------------------------------------------------------------
30627    -- 4219869 Business Flow
30628    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30629    ------------------------------------------------------------------------------------
30630    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30631 
30632    ----------------------------------------------------------------------------------
30633    -- 4219869 Business Flow
30634    -- Update journal entry status -- Need to generate this within IF <condition>
30635    ----------------------------------------------------------------------------------
30636    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30637          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30638          ,p_balance_type_code => l_balance_type_code
30639          );
30640 
30641    -------------------------------------------------------------------------------------------
30642    -- 4262811 - Generate the Accrual Reversal lines
30643    -------------------------------------------------------------------------------------------
30644    BEGIN
30645       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30646                               (g_array_event(p_event_id).array_value_num('header_index'));
30647       IF l_acc_rev_flag IS NULL THEN
30648          l_acc_rev_flag := 'N';
30649       END IF;
30650    EXCEPTION
30651       WHEN OTHERS THEN
30652          l_acc_rev_flag := 'N';
30653    END;
30654    --
30655    IF (l_acc_rev_flag = 'Y') THEN
30656 
30657        -- 4645092  ------------------------------------------------------------------------------
30658        -- To allow MPA report to determine if it should generate report process
30659        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30660        ------------------------------------------------------------------------------------------
30661 
30662        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30663        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30664    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
30665    -- call ADRs
30666    -- Bug 4922099
30667    --
30668    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30669         (NVL(l_actual_upg_option, 'N') = 'O') OR
30670         (NVL(l_enc_upg_option, 'N') = 'O')
30671       )
30672    THEN
30673    NULL;
30674    --
30675    --
30676    
30677   l_ccid := AcctDerRule_20(
30678            p_application_id           => p_application_id
30679          , p_ae_header_id             => l_ae_header_id 
30680 , p_source_1 => p_source_1
30681          , x_transaction_coa_id       => l_adr_transaction_coa_id
30682          , x_accounting_coa_id        => l_adr_accounting_coa_id
30683          , x_value_type_code          => l_adr_value_type_code
30684          , p_side                     => 'NA'
30685    );
30686 
30687    xla_ae_lines_pkg.set_ccid(
30688     p_code_combination_id          => l_ccid
30689   , p_value_type_code              => l_adr_value_type_code
30690   , p_transaction_coa_id           => l_adr_transaction_coa_id
30691   , p_accounting_coa_id            => l_adr_accounting_coa_id
30692   , p_adr_code                     => 'AP_CASH'
30693   , p_adr_type_code                => 'S'
30694   , p_component_type               => l_component_type
30695   , p_component_code               => l_component_code
30696   , p_component_type_code          => l_component_type_code
30697   , p_component_appl_id            => l_component_appl_id
30698   , p_amb_context_code             => l_amb_context_code
30699   , p_side                         => 'NA'
30700   );
30701 
30702 
30703    --
30704    --
30708        -- Update the line information that should be overwritten
30705    END IF;
30706 
30707        --
30709        --
30710        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30711                                          p_header_num   => 1);
30712        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30713 
30714        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30715 
30716        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30717           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30718        END IF;
30719 
30720       --
30721       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30722       --
30723       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30724           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30725       ELSE
30726           ---------------------------------------------------------------------------------------------------
30727           -- 4262811a Switch Sign
30728           ---------------------------------------------------------------------------------------------------
30729           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30730           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30731                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30732           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30733                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30734           -- 5132302
30735           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30736                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30737 
30738       END IF;
30739 
30740       -- 4955764
30741       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30742       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30743 
30744 
30745       XLA_AE_LINES_PKG.ValidateCurrentLine;
30746       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30747 
30748       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30749                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30750                ,p_balance_type_code => l_balance_type_code);
30751 
30752    END IF;
30753 
30754    -----------------------------------------------------------------------------------------
30755    -- 4262811 Multiperiod Accounting
30756    -----------------------------------------------------------------------------------------
30757      -- No MPA option is assigned.
30758 
30759 
30760 END IF;
30761 END IF;
30762 --
30763 
30764 --
30765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30766    trace
30767       (p_msg      => 'END of AcctLineType_72'
30768       ,p_level    => C_LEVEL_PROCEDURE
30769       ,p_module   => l_log_module);
30770 END IF;
30771 --
30772 EXCEPTION
30773   WHEN xla_exceptions_pkg.application_exception THEN
30774       RAISE;
30775   WHEN OTHERS THEN
30776        xla_exceptions_pkg.raise_message
30777            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_72');
30778 END AcctLineType_72;
30779 --
30780 
30781 ---------------------------------------
30782 --
30783 -- PRIVATE FUNCTION
30784 --         AcctLineType_73
30785 --
30786 ---------------------------------------
30787 PROCEDURE AcctLineType_73 (
30788   p_application_id        IN NUMBER
30789  ,p_event_id              IN NUMBER
30790  ,p_calculate_acctd_flag  IN VARCHAR2
30791  ,p_calculate_g_l_flag    IN VARCHAR2
30792  ,p_actual_flag           IN OUT VARCHAR2
30793  ,p_balance_type_code     OUT VARCHAR2
30794  ,p_gain_or_loss_ref      OUT VARCHAR2
30795  
30796 --Bank Cash Account
30797  , p_source_1            IN NUMBER
30798 --Automatic Offsets Value
30799  , p_source_4            IN VARCHAR2
30800  , p_source_4_meaning    IN VARCHAR2
30801 --When to Account for Payment Option
30802  , p_source_38            IN VARCHAR2
30803 --Payment Distribution Type
30804  , p_source_39            IN VARCHAR2
30805  , p_source_39_meaning    IN VARCHAR2
30806 --Accounting Reversal Indicator
30807  , p_source_40            IN VARCHAR2
30808 --Payment Distribution Amount
30809  , p_source_41            IN NUMBER
30810 --Business Flow Accounts Payable Application Identifier
30811  , p_source_42            IN NUMBER
30812 --Business Flow Payment Distribution Type
30813  , p_source_43            IN VARCHAR2
30814 --Business Flow Payment Entity Code
30815  , p_source_44            IN VARCHAR2
30816 --Business Flow Payment Distribution Identifier
30817  , p_source_45            IN NUMBER
30818 --Business Flow Payment Identifier
30819  , p_source_46            IN NUMBER
30820 --Payment Distribution Identifier
30821  , p_source_47            IN NUMBER
30822 --Distribution Link Type
30823  , p_source_48            IN VARCHAR2
30824 --Payment Currency Code
30825  , p_source_49            IN VARCHAR2
30826 --Override Accounted Amount Indicator
30830  , p_source_54            IN NUMBER
30827  , p_source_53            IN VARCHAR2
30828  , p_source_53_meaning    IN VARCHAR2
30829 --Payment Supplier Identifier
30831 --Payment Supplier Site Identifier
30832  , p_source_55            IN NUMBER
30833 --Third Party Type
30834  , p_source_56            IN VARCHAR2
30835 --Payment Distribution Reversed Identifier
30836  , p_source_57            IN NUMBER
30837 --Pooled Bank Account Option
30838  , p_source_110            IN VARCHAR2
30839  , p_source_110_meaning    IN VARCHAR2
30840 --Payment Maturity Date
30841  , p_source_111            IN DATE
30842 --Payment Exchange Date
30843  , p_source_114            IN DATE
30844 --Payment Exchange Rate
30845  , p_source_115            IN NUMBER
30846 --Payment Exchange Rate Type
30847  , p_source_116            IN VARCHAR2
30848 --Payment Distribution (Matured Rate) Ledger Amount
30849  , p_source_117            IN NUMBER
30850 )
30851 IS
30852 
30853 l_component_type              VARCHAR2(80);
30854 l_component_code              VARCHAR2(30);
30855 l_component_type_code         VARCHAR2(1);
30856 l_component_appl_id           INTEGER;
30857 l_amb_context_code            VARCHAR2(30);
30858 l_entity_code                 VARCHAR2(30);
30859 l_event_class_code            VARCHAR2(30);
30860 l_ae_header_id                NUMBER;
30861 l_event_type_code             VARCHAR2(30);
30862 l_line_definition_code        VARCHAR2(30);
30863 l_line_definition_owner_code  VARCHAR2(1);
30864 --
30865 -- adr variables
30866 l_segment                     VARCHAR2(30);
30867 l_ccid                        NUMBER;
30868 l_adr_transaction_coa_id      NUMBER;
30869 l_adr_accounting_coa_id       NUMBER;
30870 l_adr_flexfield_segment_code  VARCHAR2(30);
30871 l_adr_flex_value_set_id       NUMBER;
30872 l_adr_value_type_code         VARCHAR2(30);
30873 l_adr_value_combination_id    NUMBER;
30874 l_adr_value_segment_code      VARCHAR2(30);
30875 
30876 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30877 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30878 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30879 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30880 
30881 -- 4262811 Variables ------------------------------------------------------------------------------------------
30882 l_entered_amt_idx             NUMBER;
30883 l_accted_amt_idx              NUMBER;
30884 l_acc_rev_flag                VARCHAR2(1);
30885 l_accrual_line_num            NUMBER;
30886 l_tmp_amt                     NUMBER;
30887 l_acc_rev_natural_side_code   VARCHAR2(1);
30888 
30889 l_num_entries                 NUMBER;
30890 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30891 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30892 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30893 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30894 l_recog_line_1                NUMBER;
30895 l_recog_line_2                NUMBER;
30896 
30897 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30898 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30899 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30900 
30901 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30902 
30903 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30904 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30905 
30906 ---------------------------------------------------------------------------------------------------------------
30907 
30908 
30909 --
30910 -- bulk performance
30911 --
30912 l_balance_type_code           VARCHAR2(1);
30913 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30914 l_log_module                  VARCHAR2(240);
30915 
30916 --
30917 -- Upgrade strategy
30918 --
30919 l_actual_upg_option           VARCHAR2(1);
30920 l_enc_upg_option           VARCHAR2(1);
30921 
30922 --
30923 BEGIN
30924 --
30925 IF g_log_enabled THEN
30926       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
30927 END IF;
30928 --
30929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30930 
30931       trace
30932          (p_msg      => 'BEGIN of AcctLineType_73'
30933          ,p_level    => C_LEVEL_PROCEDURE
30934          ,p_module   => l_log_module);
30935 
30936 END IF;
30937 --
30938 l_component_type             := 'AMB_JLT';
30939 l_component_code             := 'AP_CASH_PMT_MAT_AOS_AS';
30940 l_component_type_code        := 'S';
30941 l_component_appl_id          :=  200;
30942 l_amb_context_code           := 'DEFAULT';
30943 l_entity_code                := 'AP_PAYMENTS';
30944 l_event_class_code           := 'FUTURE DATED PAYMENTS';
30945 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
30946 l_line_definition_owner_code := 'S';
30947 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
30948 --
30949 l_balance_type_code          := 'A';
30950 l_segment                     := NULL;
30951 l_ccid                        := NULL;
30952 l_adr_transaction_coa_id      := NULL;
30953 l_adr_accounting_coa_id       := NULL;
30954 l_adr_flexfield_segment_code  := NULL;
30955 l_adr_flex_value_set_id       := NULL;
30956 l_adr_value_type_code         := NULL;
30957 l_adr_value_combination_id    := NULL;
30961 l_bflow_class_code           := '';    -- 4219869 Business Flow
30958 l_adr_value_segment_code      := NULL;
30959 
30960 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
30962 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30963 l_budgetary_control_flag     := 'N';
30964 
30965 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30966 l_bflow_applied_to_amt       := NULL; -- 5132302
30967 l_entered_amt_idx            := NULL;          -- 4262811
30968 l_accted_amt_idx             := NULL;          -- 4262811
30969 l_acc_rev_flag               := NULL;          -- 4262811
30970 l_accrual_line_num           := NULL;          -- 4262811
30971 l_tmp_amt                    := NULL;          -- 4262811
30972 --
30973  
30974 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30975     l_balance_type_code <> 'B' THEN
30976 IF NVL(p_source_38,'
30977 ') =  'ISSUE_ISSUE' AND 
30978 (NVL(p_source_110,'
30979 ') =  'Y' AND 
30980 NVL(p_source_4,'
30981 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
30982 p_source_111 IS NOT NULL AND 
30983 NVL(p_source_39,'
30984 ') =  'CASH'
30985  THEN 
30986 
30987    --
30988    XLA_AE_LINES_PKG.SetNewLine;
30989 
30990    p_balance_type_code          := l_balance_type_code;
30991    -- set the flag so later we will know whether the gain loss line needs to be created
30992    
30993    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30994      p_actual_flag :='A';
30995    END IF;
30996 
30997    --
30998    -- bulk performance
30999    --
31000    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31001                                       p_header_num   => 0); -- 4262811
31002    --
31003    -- set accounting line options
31004    --
31005    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31006            p_natural_side_code          => 'C'
31007          , p_gain_or_loss_flag          => 'N'
31008          , p_gl_transfer_mode_code      => 'S'
31009          , p_acct_entry_type_code       => 'A'
31010          , p_switch_side_flag           => 'Y'
31011          , p_merge_duplicate_code       => 'A'
31012          );
31013    --
31014    l_acc_rev_natural_side_code := 'D';  -- 4262811
31015    -- 
31016    --
31017    -- set accounting line type info
31018    --
31019    xla_ae_lines_pkg.SetAcctLineType
31020       (p_component_type             => l_component_type
31021       ,p_event_type_code            => l_event_type_code
31022       ,p_line_definition_owner_code => l_line_definition_owner_code
31023       ,p_line_definition_code       => l_line_definition_code
31024       ,p_accounting_line_code       => l_component_code
31025       ,p_accounting_line_type_code  => l_component_type_code
31026       ,p_accounting_line_appl_id    => l_component_appl_id
31027       ,p_amb_context_code           => l_amb_context_code
31028       ,p_entity_code                => l_entity_code
31029       ,p_event_class_code           => l_event_class_code);
31030    --
31031    -- set accounting class
31032    --
31033    xla_ae_lines_pkg.SetAcctClass(
31034            p_accounting_class_code  => 'CASH'
31035          , p_ae_header_id           => l_ae_header_id
31036          );
31037 
31038    --
31039    -- set rounding class
31040    --
31041    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31042                       'CASH';
31043 
31044    --
31045    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31046    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31047    --
31048    -- bulk performance
31049    --
31050    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31051 
31052    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31053       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31054 
31055    -- 4955764
31056    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31057       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31058 
31059    -- 4458381 Public Sector Enh
31060    
31061    --
31062    -- set accounting attributes for the line type
31063    --
31064    l_entered_amt_idx := 9;
31065    l_accted_amt_idx  := 14;
31066    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31067    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31068    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
31069    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31070    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
31071    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31072    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
31073    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31074    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
31075    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31076    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
31077    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31078    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
31079    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31080    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
31084    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
31081    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31082    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
31083    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31085    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31086    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
31087    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31088    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
31089    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31090    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
31091    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31092    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
31093    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31094    l_rec_acct_attrs.array_num_value(14)  := p_source_117;
31095    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31096    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
31097    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31098    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
31099    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31100    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
31101    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31102    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
31103    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31104    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
31105    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31106    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
31107 
31108    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31109    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31110 
31111    ---------------------------------------------------------------------------------------------------------------
31112    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31113    ---------------------------------------------------------------------------------------------------------------
31114    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31115 
31116    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31117    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31118 
31119    IF xla_accounting_cache_pkg.GetValueChar
31120          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31121          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31122    AND l_bflow_method_code = 'PRIOR_ENTRY'
31123 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31124    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31125          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31126        )
31127    THEN
31128          xla_ae_lines_pkg.BflowUpgEntry
31129            (p_business_method_code    => l_bflow_method_code
31130            ,p_business_class_code     => l_bflow_class_code
31131            ,p_balance_type            => l_balance_type_code);
31132    ELSE
31133       NULL;
31134 XLA_AE_LINES_PKG.business_flow_validation(
31135                                 p_business_method_code     => l_bflow_method_code
31136                                ,p_business_class_code      => l_bflow_class_code
31137                                ,p_inherit_description_flag => l_inherit_desc_flag);
31138    END IF;
31139 
31140    --
31141    -- call analytical criteria
31142    --
31143    
31144    --
31145    -- call description
31146    --
31147    -- No description or it is inherited.
31148    --
31149    -- call ADRs
31150    -- Bug 4922099
31151    --
31152    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31153         (NVL(l_actual_upg_option, 'N') = 'O') OR
31154         (NVL(l_enc_upg_option, 'N') = 'O')
31155       )
31156    THEN
31157    NULL;
31158    --
31159    --
31160    
31161    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
31162      p_code_combination_id      => TO_NUMBER(C_NUM)
31163    , p_value_type_code          => NULL
31164    , p_transaction_coa_id       => null
31165    , p_accounting_coa_id        => null
31166    , p_adr_code                 => NULL
31167    , p_adr_type_code            => NULL
31168    , p_component_type           => l_component_type
31169    , p_component_code           => l_component_code
31170    , p_component_type_code      => l_component_type_code
31171    , p_component_appl_id        => l_component_appl_id
31172    , p_amb_context_code         => l_amb_context_code
31173    , p_side                     => NULL
31174    );
31175 
31176    
31177   -- initialise segments
31178   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31179   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31180   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31181   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31182   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31183   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31184   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31188   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31185   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31186   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31187   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31189   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31190   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31191   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31192   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31193   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31194   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31195   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31196   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31197   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31198   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31199   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31200   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31201   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31202   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31203   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31204   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31205   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31206   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31207   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31208   --
31209 
31210    --
31211 
31212 
31213    l_segment := AcctDerRule_1(
31214            p_application_id           => p_application_id
31215          , p_ae_header_id             => l_ae_header_id 
31216 , p_source_1 => p_source_1
31217          , x_transaction_coa_id       => l_adr_transaction_coa_id
31218          , x_accounting_coa_id        => l_adr_accounting_coa_id
31219          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
31220          , x_flex_value_set_id        => l_adr_flex_value_set_id
31221          , x_value_type_code          => l_adr_value_type_code
31222          , x_value_combination_id     => l_adr_value_combination_id
31223          , x_value_segment_code       => l_adr_value_segment_code
31224          , p_side                     => 'NA'
31225          , p_override_seg_flag        => 'Y'
31226    );
31227 
31228    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
31229 
31230       xla_ae_lines_pkg.set_segment(
31231           p_to_segment_code         => 'GL_ACCOUNT'
31232         , p_segment_value           => l_segment
31233         , p_from_segment_code       => l_adr_value_segment_code
31234         , p_from_combination_id     => l_adr_value_combination_id
31235         , p_value_type_code         => l_adr_value_type_code
31236         , p_transaction_coa_id      => l_adr_transaction_coa_id
31237         , p_accounting_coa_id       => l_adr_accounting_coa_id
31238         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
31239         , p_flex_value_set_id       => l_adr_flex_value_set_id
31240         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
31241         , p_adr_type_code           => 'S'
31242         , p_component_type          => l_component_type
31243         , p_component_code          => l_component_code
31244         , p_component_type_code     => l_component_type_code
31245         , p_component_appl_id       => l_component_appl_id
31246         , p_amb_context_code        => l_amb_context_code
31247         , p_entity_code             => 'AP_PAYMENTS'
31248         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
31249         , p_side                    => 'NA'
31250         );
31251 
31252   END IF;
31253 
31254    --
31255    --
31256    END IF;
31257    --
31258    -- Bug 4922099
31259    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31260           (NVL(l_enc_upg_option, 'N') = 'O')
31261         ) AND
31262         (l_bflow_method_code = 'PRIOR_ENTRY')
31263       )
31264    THEN
31265       IF
31266       --
31267       1 = 2
31268       --
31269       THEN
31270       xla_accounting_err_pkg.build_message
31271                                     (p_appli_s_name            => 'XLA'
31272                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31273                                     ,p_token_1                 => 'LINE_NUMBER'
31274                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31275                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31276                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31277                                                                              l_component_type
31278                                                                             ,l_component_code
31279                                                                             ,l_component_type_code
31283                                                                             ,l_event_class_code
31280                                                                             ,l_component_appl_id
31281                                                                             ,l_amb_context_code
31282                                                                             ,l_entity_code
31284                                                                            )
31285                                     ,p_token_3                 => 'OWNER'
31286                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31287                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31288                                                                           ,p_lookup_code    => l_component_type_code
31289                                                                          )
31290                                     ,p_token_4                 => 'PRODUCT_NAME'
31291                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31292                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31293                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31294                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31295                                     ,p_ae_header_id            =>  NULL
31296                                        );
31297 
31298         IF (C_LEVEL_ERROR>= g_log_level) THEN
31299                  trace
31300                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31301                       ,p_level    => C_LEVEL_ERROR
31302                       ,p_module   => l_log_module);
31303         END IF;
31304       END IF;
31305    END IF;
31306    --
31307    --
31308    ------------------------------------------------------------------------------------------------
31309    -- 4219869 Business Flow
31310    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31311    -- Prior Entry.  Currently, the following code is always generated.
31312    ------------------------------------------------------------------------------------------------
31313    XLA_AE_LINES_PKG.ValidateCurrentLine;
31314 
31315    ------------------------------------------------------------------------------------
31316    -- 4219869 Business Flow
31317    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31318    ------------------------------------------------------------------------------------
31319    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31320 
31321    ----------------------------------------------------------------------------------
31322    -- 4219869 Business Flow
31323    -- Update journal entry status -- Need to generate this within IF <condition>
31324    ----------------------------------------------------------------------------------
31325    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31326          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31327          ,p_balance_type_code => l_balance_type_code
31328          );
31329 
31330    -------------------------------------------------------------------------------------------
31331    -- 4262811 - Generate the Accrual Reversal lines
31332    -------------------------------------------------------------------------------------------
31333    BEGIN
31334       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31335                               (g_array_event(p_event_id).array_value_num('header_index'));
31336       IF l_acc_rev_flag IS NULL THEN
31337          l_acc_rev_flag := 'N';
31338       END IF;
31339    EXCEPTION
31340       WHEN OTHERS THEN
31341          l_acc_rev_flag := 'N';
31342    END;
31343    --
31344    IF (l_acc_rev_flag = 'Y') THEN
31345 
31346        -- 4645092  ------------------------------------------------------------------------------
31347        -- To allow MPA report to determine if it should generate report process
31348        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31349        ------------------------------------------------------------------------------------------
31350 
31351        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31352        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31353    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31354    -- call ADRs
31355    -- Bug 4922099
31356    --
31357    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31358         (NVL(l_actual_upg_option, 'N') = 'O') OR
31359         (NVL(l_enc_upg_option, 'N') = 'O')
31360       )
31361    THEN
31362    NULL;
31363    --
31364    --
31365    
31366    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
31367      p_code_combination_id      => TO_NUMBER(C_NUM)
31368    , p_value_type_code          => NULL
31369    , p_transaction_coa_id       => null
31370    , p_accounting_coa_id        => null
31371    , p_adr_code                 => NULL
31372    , p_adr_type_code            => NULL
31373    , p_component_type           => l_component_type
31374    , p_component_code           => l_component_code
31375    , p_component_type_code      => l_component_type_code
31376    , p_component_appl_id        => l_component_appl_id
31377    , p_amb_context_code         => l_amb_context_code
31381    
31378    , p_side                     => NULL
31379    );
31380 
31382   -- initialise segments
31383   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31384   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31385   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31386   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31387   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31388   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31389   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31390   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31391   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
31392   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31393   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31394   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31395   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31396   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31397   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31398   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31399   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31400   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31401   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31402   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31403   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31404   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31405   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31406   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31407   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31408   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31409   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31410   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31411   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31412   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
31413   --
31414 
31415    --
31416 
31417 
31418    l_segment := AcctDerRule_1(
31419            p_application_id           => p_application_id
31420          , p_ae_header_id             => l_ae_header_id 
31421 , p_source_1 => p_source_1
31422          , x_transaction_coa_id       => l_adr_transaction_coa_id
31423          , x_accounting_coa_id        => l_adr_accounting_coa_id
31424          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
31425          , x_flex_value_set_id        => l_adr_flex_value_set_id
31426          , x_value_type_code          => l_adr_value_type_code
31427          , x_value_combination_id     => l_adr_value_combination_id
31428          , x_value_segment_code       => l_adr_value_segment_code
31429          , p_side                     => 'NA'
31430          , p_override_seg_flag        => 'Y'
31431    );
31432 
31433    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
31434 
31435       xla_ae_lines_pkg.set_segment(
31436           p_to_segment_code         => 'GL_ACCOUNT'
31437         , p_segment_value           => l_segment
31438         , p_from_segment_code       => l_adr_value_segment_code
31439         , p_from_combination_id     => l_adr_value_combination_id
31440         , p_value_type_code         => l_adr_value_type_code
31441         , p_transaction_coa_id      => l_adr_transaction_coa_id
31442         , p_accounting_coa_id       => l_adr_accounting_coa_id
31443         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
31444         , p_flex_value_set_id       => l_adr_flex_value_set_id
31445         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
31446         , p_adr_type_code           => 'S'
31447         , p_component_type          => l_component_type
31448         , p_component_code          => l_component_code
31449         , p_component_type_code     => l_component_type_code
31450         , p_component_appl_id       => l_component_appl_id
31451         , p_amb_context_code        => l_amb_context_code
31452         , p_entity_code             => 'AP_PAYMENTS'
31453         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
31454         , p_side                    => 'NA'
31455         );
31456 
31457   END IF;
31458 
31459    --
31460    --
31461    END IF;
31462 
31463        --
31464        -- Update the line information that should be overwritten
31465        --
31466        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31467                                          p_header_num   => 1);
31468        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31469 
31470        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31471 
31472        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
31476       --
31473           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31474        END IF;
31475 
31477       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31478       --
31479       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31480           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
31481       ELSE
31482           ---------------------------------------------------------------------------------------------------
31483           -- 4262811a Switch Sign
31484           ---------------------------------------------------------------------------------------------------
31485           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
31486           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31487                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31488           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31489                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31490           -- 5132302
31491           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31492                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31493 
31494       END IF;
31495 
31496       -- 4955764
31497       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31498       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31499 
31500 
31501       XLA_AE_LINES_PKG.ValidateCurrentLine;
31502       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31503 
31504       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31505                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31506                ,p_balance_type_code => l_balance_type_code);
31507 
31508    END IF;
31509 
31510    -----------------------------------------------------------------------------------------
31511    -- 4262811 Multiperiod Accounting
31512    -----------------------------------------------------------------------------------------
31513      -- No MPA option is assigned.
31514 
31515 
31516 END IF;
31517 END IF;
31518 --
31519 
31520 --
31521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31522    trace
31523       (p_msg      => 'END of AcctLineType_73'
31524       ,p_level    => C_LEVEL_PROCEDURE
31525       ,p_module   => l_log_module);
31526 END IF;
31527 --
31528 EXCEPTION
31529   WHEN xla_exceptions_pkg.application_exception THEN
31530       RAISE;
31531   WHEN OTHERS THEN
31532        xla_exceptions_pkg.raise_message
31533            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_73');
31534 END AcctLineType_73;
31535 --
31536 
31537 ---------------------------------------
31538 --
31539 -- PRIVATE FUNCTION
31540 --         AcctLineType_74
31541 --
31542 ---------------------------------------
31543 PROCEDURE AcctLineType_74 (
31544   p_application_id        IN NUMBER
31545  ,p_event_id              IN NUMBER
31546  ,p_calculate_acctd_flag  IN VARCHAR2
31547  ,p_calculate_g_l_flag    IN VARCHAR2
31548  ,p_actual_flag           IN OUT VARCHAR2
31549  ,p_balance_type_code     OUT VARCHAR2
31550  ,p_gain_or_loss_ref      OUT VARCHAR2
31551  
31552 --Bank Cash Account
31553  , p_source_1            IN NUMBER
31554 --Automatic Offsets Value
31555  , p_source_4            IN VARCHAR2
31556  , p_source_4_meaning    IN VARCHAR2
31557 --When to Account for Payment Option
31558  , p_source_38            IN VARCHAR2
31559 --Payment Distribution Type
31560  , p_source_39            IN VARCHAR2
31561  , p_source_39_meaning    IN VARCHAR2
31562 --Accounting Reversal Indicator
31563  , p_source_40            IN VARCHAR2
31564 --Payment Distribution Amount
31565  , p_source_41            IN NUMBER
31566 --Business Flow Accounts Payable Application Identifier
31567  , p_source_42            IN NUMBER
31568 --Business Flow Payment Distribution Type
31569  , p_source_43            IN VARCHAR2
31570 --Business Flow Payment Entity Code
31571  , p_source_44            IN VARCHAR2
31572 --Business Flow Payment Distribution Identifier
31573  , p_source_45            IN NUMBER
31574 --Business Flow Payment Identifier
31575  , p_source_46            IN NUMBER
31576 --Payment Distribution Identifier
31577  , p_source_47            IN NUMBER
31578 --Distribution Link Type
31579  , p_source_48            IN VARCHAR2
31580 --Payment Currency Code
31581  , p_source_49            IN VARCHAR2
31582 --Override Accounted Amount Indicator
31583  , p_source_53            IN VARCHAR2
31584  , p_source_53_meaning    IN VARCHAR2
31585 --Payment Supplier Identifier
31586  , p_source_54            IN NUMBER
31587 --Payment Supplier Site Identifier
31588  , p_source_55            IN NUMBER
31589 --Third Party Type
31590  , p_source_56            IN VARCHAR2
31591 --Payment Distribution Reversed Identifier
31592  , p_source_57            IN NUMBER
31593 --Pooled Bank Account Option
31594  , p_source_110            IN VARCHAR2
31595  , p_source_110_meaning    IN VARCHAR2
31596 --Payment Maturity Date
31597  , p_source_111            IN DATE
31601  , p_source_115            IN NUMBER
31598 --Payment Exchange Date
31599  , p_source_114            IN DATE
31600 --Payment Exchange Rate
31602 --Payment Exchange Rate Type
31603  , p_source_116            IN VARCHAR2
31604 --Payment Distribution (Matured Rate) Ledger Amount
31605  , p_source_117            IN NUMBER
31606 )
31607 IS
31608 
31609 l_component_type              VARCHAR2(80);
31610 l_component_code              VARCHAR2(30);
31611 l_component_type_code         VARCHAR2(1);
31612 l_component_appl_id           INTEGER;
31613 l_amb_context_code            VARCHAR2(30);
31614 l_entity_code                 VARCHAR2(30);
31615 l_event_class_code            VARCHAR2(30);
31616 l_ae_header_id                NUMBER;
31617 l_event_type_code             VARCHAR2(30);
31618 l_line_definition_code        VARCHAR2(30);
31619 l_line_definition_owner_code  VARCHAR2(1);
31620 --
31621 -- adr variables
31622 l_segment                     VARCHAR2(30);
31623 l_ccid                        NUMBER;
31624 l_adr_transaction_coa_id      NUMBER;
31625 l_adr_accounting_coa_id       NUMBER;
31626 l_adr_flexfield_segment_code  VARCHAR2(30);
31627 l_adr_flex_value_set_id       NUMBER;
31628 l_adr_value_type_code         VARCHAR2(30);
31629 l_adr_value_combination_id    NUMBER;
31630 l_adr_value_segment_code      VARCHAR2(30);
31631 
31632 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
31633 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
31634 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
31635 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
31636 
31637 -- 4262811 Variables ------------------------------------------------------------------------------------------
31638 l_entered_amt_idx             NUMBER;
31639 l_accted_amt_idx              NUMBER;
31640 l_acc_rev_flag                VARCHAR2(1);
31641 l_accrual_line_num            NUMBER;
31642 l_tmp_amt                     NUMBER;
31643 l_acc_rev_natural_side_code   VARCHAR2(1);
31644 
31645 l_num_entries                 NUMBER;
31646 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
31647 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
31648 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
31649 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
31650 l_recog_line_1                NUMBER;
31651 l_recog_line_2                NUMBER;
31652 
31653 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
31654 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
31655 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
31656 
31657 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31658 
31659 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
31660 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
31661 
31662 ---------------------------------------------------------------------------------------------------------------
31663 
31664 
31665 --
31666 -- bulk performance
31667 --
31668 l_balance_type_code           VARCHAR2(1);
31669 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
31670 l_log_module                  VARCHAR2(240);
31671 
31672 --
31673 -- Upgrade strategy
31674 --
31675 l_actual_upg_option           VARCHAR2(1);
31676 l_enc_upg_option           VARCHAR2(1);
31677 
31678 --
31679 BEGIN
31680 --
31681 IF g_log_enabled THEN
31682       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
31683 END IF;
31684 --
31685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31686 
31687       trace
31688          (p_msg      => 'BEGIN of AcctLineType_74'
31689          ,p_level    => C_LEVEL_PROCEDURE
31690          ,p_module   => l_log_module);
31691 
31692 END IF;
31693 --
31694 l_component_type             := 'AMB_JLT';
31695 l_component_code             := 'AP_CASH_PMT_MAT_AOS_BS';
31696 l_component_type_code        := 'S';
31697 l_component_appl_id          :=  200;
31698 l_amb_context_code           := 'DEFAULT';
31699 l_entity_code                := 'AP_PAYMENTS';
31700 l_event_class_code           := 'FUTURE DATED PAYMENTS';
31701 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
31702 l_line_definition_owner_code := 'S';
31703 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
31704 --
31705 l_balance_type_code          := 'A';
31706 l_segment                     := NULL;
31707 l_ccid                        := NULL;
31708 l_adr_transaction_coa_id      := NULL;
31709 l_adr_accounting_coa_id       := NULL;
31710 l_adr_flexfield_segment_code  := NULL;
31711 l_adr_flex_value_set_id       := NULL;
31712 l_adr_value_type_code         := NULL;
31713 l_adr_value_combination_id    := NULL;
31714 l_adr_value_segment_code      := NULL;
31715 
31716 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
31717 l_bflow_class_code           := '';    -- 4219869 Business Flow
31718 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
31719 l_budgetary_control_flag     := 'N';
31720 
31721 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
31722 l_bflow_applied_to_amt       := NULL; -- 5132302
31723 l_entered_amt_idx            := NULL;          -- 4262811
31724 l_accted_amt_idx             := NULL;          -- 4262811
31725 l_acc_rev_flag               := NULL;          -- 4262811
31729  
31726 l_accrual_line_num           := NULL;          -- 4262811
31727 l_tmp_amt                    := NULL;          -- 4262811
31728 --
31730 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31731     l_balance_type_code <> 'B' THEN
31732 IF NVL(p_source_38,'
31733 ') =  'ISSUE_ISSUE' AND 
31734 (NVL(p_source_110,'
31735 ') =  'Y' AND 
31736 NVL(p_source_4,'
31737 ') =  'BALANCING_SEGMENT') AND 
31738 p_source_111 IS NOT NULL AND 
31739 NVL(p_source_39,'
31740 ') =  'CASH'
31741  THEN 
31742 
31743    --
31744    XLA_AE_LINES_PKG.SetNewLine;
31745 
31746    p_balance_type_code          := l_balance_type_code;
31747    -- set the flag so later we will know whether the gain loss line needs to be created
31748    
31749    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31750      p_actual_flag :='A';
31751    END IF;
31752 
31753    --
31754    -- bulk performance
31755    --
31756    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31757                                       p_header_num   => 0); -- 4262811
31758    --
31759    -- set accounting line options
31760    --
31761    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31762            p_natural_side_code          => 'C'
31763          , p_gain_or_loss_flag          => 'N'
31764          , p_gl_transfer_mode_code      => 'S'
31765          , p_acct_entry_type_code       => 'A'
31766          , p_switch_side_flag           => 'Y'
31767          , p_merge_duplicate_code       => 'A'
31768          );
31769    --
31770    l_acc_rev_natural_side_code := 'D';  -- 4262811
31771    -- 
31772    --
31773    -- set accounting line type info
31774    --
31775    xla_ae_lines_pkg.SetAcctLineType
31776       (p_component_type             => l_component_type
31777       ,p_event_type_code            => l_event_type_code
31778       ,p_line_definition_owner_code => l_line_definition_owner_code
31779       ,p_line_definition_code       => l_line_definition_code
31780       ,p_accounting_line_code       => l_component_code
31781       ,p_accounting_line_type_code  => l_component_type_code
31782       ,p_accounting_line_appl_id    => l_component_appl_id
31783       ,p_amb_context_code           => l_amb_context_code
31784       ,p_entity_code                => l_entity_code
31785       ,p_event_class_code           => l_event_class_code);
31786    --
31787    -- set accounting class
31788    --
31789    xla_ae_lines_pkg.SetAcctClass(
31790            p_accounting_class_code  => 'CASH'
31791          , p_ae_header_id           => l_ae_header_id
31792          );
31793 
31794    --
31795    -- set rounding class
31796    --
31797    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31798                       'CASH';
31799 
31800    --
31801    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31802    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31803    --
31804    -- bulk performance
31805    --
31806    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31807 
31808    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31809       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31810 
31811    -- 4955764
31812    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31813       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31814 
31815    -- 4458381 Public Sector Enh
31816    
31817    --
31818    -- set accounting attributes for the line type
31819    --
31820    l_entered_amt_idx := 9;
31821    l_accted_amt_idx  := 14;
31822    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31823    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31824    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
31825    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31826    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
31827    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31828    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
31829    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31830    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
31831    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31832    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
31833    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31834    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
31835    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31836    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
31837    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31838    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
31839    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31840    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
31841    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31842    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
31843    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31844    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
31848    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
31845    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31846    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
31847    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31849    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31850    l_rec_acct_attrs.array_num_value(14)  := p_source_117;
31851    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31852    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
31853    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31854    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
31855    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31856    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
31857    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31858    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
31859    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31860    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
31861    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31862    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
31863 
31864    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31865    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31866 
31867    ---------------------------------------------------------------------------------------------------------------
31868    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31869    ---------------------------------------------------------------------------------------------------------------
31870    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31871 
31872    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31873    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31874 
31875    IF xla_accounting_cache_pkg.GetValueChar
31876          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31877          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31878    AND l_bflow_method_code = 'PRIOR_ENTRY'
31879 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31880    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31881          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31882        )
31883    THEN
31884          xla_ae_lines_pkg.BflowUpgEntry
31885            (p_business_method_code    => l_bflow_method_code
31886            ,p_business_class_code     => l_bflow_class_code
31887            ,p_balance_type            => l_balance_type_code);
31888    ELSE
31889       NULL;
31890 XLA_AE_LINES_PKG.business_flow_validation(
31891                                 p_business_method_code     => l_bflow_method_code
31892                                ,p_business_class_code      => l_bflow_class_code
31893                                ,p_inherit_description_flag => l_inherit_desc_flag);
31894    END IF;
31895 
31896    --
31897    -- call analytical criteria
31898    --
31899    
31900    --
31901    -- call description
31902    --
31903    -- No description or it is inherited.
31904    --
31905    -- call ADRs
31906    -- Bug 4922099
31907    --
31908    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31909         (NVL(l_actual_upg_option, 'N') = 'O') OR
31910         (NVL(l_enc_upg_option, 'N') = 'O')
31911       )
31912    THEN
31913    NULL;
31914    --
31915    --
31916    
31917   l_ccid := AcctDerRule_20(
31918            p_application_id           => p_application_id
31919          , p_ae_header_id             => l_ae_header_id 
31920 , p_source_1 => p_source_1
31921          , x_transaction_coa_id       => l_adr_transaction_coa_id
31922          , x_accounting_coa_id        => l_adr_accounting_coa_id
31923          , x_value_type_code          => l_adr_value_type_code
31924          , p_side                     => 'NA'
31925    );
31926 
31927    xla_ae_lines_pkg.set_ccid(
31928     p_code_combination_id          => l_ccid
31929   , p_value_type_code              => l_adr_value_type_code
31930   , p_transaction_coa_id           => l_adr_transaction_coa_id
31931   , p_accounting_coa_id            => l_adr_accounting_coa_id
31932   , p_adr_code                     => 'AP_CASH'
31933   , p_adr_type_code                => 'S'
31934   , p_component_type               => l_component_type
31935   , p_component_code               => l_component_code
31936   , p_component_type_code          => l_component_type_code
31937   , p_component_appl_id            => l_component_appl_id
31938   , p_amb_context_code             => l_amb_context_code
31939   , p_side                         => 'NA'
31940   );
31941 
31942 
31943    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
31944      p_to_segment_code         => 'GL_BALANCING'
31945    , p_segment_value           => C_CHAR
31946    , p_from_segment_code       => NULL
31947    , p_from_combination_id     => NULL
31948    , p_value_type_code         => NULL
31949    , p_transaction_coa_id      => null
31950    , p_accounting_coa_id       => null
31951    , p_flexfield_segment_code  => NULL
31952    , p_flex_value_set_id       => NULL
31953    , p_adr_code                => NULL
31954    , p_adr_type_code           => NULL
31958    , p_component_appl_id       => l_component_appl_id
31955    , p_component_type          => l_component_type
31956    , p_component_code          => l_component_code
31957    , p_component_type_code     => l_component_type_code
31959    , p_amb_context_code        => l_amb_context_code
31960    , p_entity_code             => 'AP_PAYMENTS'
31961    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
31962    , p_side                    => 'NA'
31963    );
31964    --
31965 
31966 
31967    --
31968    --
31969    END IF;
31970    --
31971    -- Bug 4922099
31972    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31973           (NVL(l_enc_upg_option, 'N') = 'O')
31974         ) AND
31975         (l_bflow_method_code = 'PRIOR_ENTRY')
31976       )
31977    THEN
31978       IF
31979       --
31980       1 = 2
31981       --
31982       THEN
31983       xla_accounting_err_pkg.build_message
31984                                     (p_appli_s_name            => 'XLA'
31985                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31986                                     ,p_token_1                 => 'LINE_NUMBER'
31987                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31988                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31989                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31990                                                                              l_component_type
31991                                                                             ,l_component_code
31992                                                                             ,l_component_type_code
31993                                                                             ,l_component_appl_id
31994                                                                             ,l_amb_context_code
31995                                                                             ,l_entity_code
31996                                                                             ,l_event_class_code
31997                                                                            )
31998                                     ,p_token_3                 => 'OWNER'
31999                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
32000                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
32001                                                                           ,p_lookup_code    => l_component_type_code
32002                                                                          )
32003                                     ,p_token_4                 => 'PRODUCT_NAME'
32004                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32005                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32006                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32007                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32008                                     ,p_ae_header_id            =>  NULL
32009                                        );
32010 
32011         IF (C_LEVEL_ERROR>= g_log_level) THEN
32012                  trace
32013                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32014                       ,p_level    => C_LEVEL_ERROR
32015                       ,p_module   => l_log_module);
32016         END IF;
32017       END IF;
32018    END IF;
32019    --
32020    --
32021    ------------------------------------------------------------------------------------------------
32022    -- 4219869 Business Flow
32023    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32024    -- Prior Entry.  Currently, the following code is always generated.
32025    ------------------------------------------------------------------------------------------------
32026    XLA_AE_LINES_PKG.ValidateCurrentLine;
32027 
32028    ------------------------------------------------------------------------------------
32029    -- 4219869 Business Flow
32030    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32031    ------------------------------------------------------------------------------------
32032    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32033 
32034    ----------------------------------------------------------------------------------
32035    -- 4219869 Business Flow
32036    -- Update journal entry status -- Need to generate this within IF <condition>
32037    ----------------------------------------------------------------------------------
32038    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32039          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32040          ,p_balance_type_code => l_balance_type_code
32041          );
32042 
32043    -------------------------------------------------------------------------------------------
32044    -- 4262811 - Generate the Accrual Reversal lines
32045    -------------------------------------------------------------------------------------------
32046    BEGIN
32047       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32048                               (g_array_event(p_event_id).array_value_num('header_index'));
32049       IF l_acc_rev_flag IS NULL THEN
32050          l_acc_rev_flag := 'N';
32051       END IF;
32052    EXCEPTION
32053       WHEN OTHERS THEN
32057    IF (l_acc_rev_flag = 'Y') THEN
32054          l_acc_rev_flag := 'N';
32055    END;
32056    --
32058 
32059        -- 4645092  ------------------------------------------------------------------------------
32060        -- To allow MPA report to determine if it should generate report process
32061        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32062        ------------------------------------------------------------------------------------------
32063 
32064        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32065        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32066    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32067    -- call ADRs
32068    -- Bug 4922099
32069    --
32070    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32071         (NVL(l_actual_upg_option, 'N') = 'O') OR
32072         (NVL(l_enc_upg_option, 'N') = 'O')
32073       )
32074    THEN
32075    NULL;
32076    --
32077    --
32078    
32079   l_ccid := AcctDerRule_20(
32080            p_application_id           => p_application_id
32081          , p_ae_header_id             => l_ae_header_id 
32082 , p_source_1 => p_source_1
32083          , x_transaction_coa_id       => l_adr_transaction_coa_id
32084          , x_accounting_coa_id        => l_adr_accounting_coa_id
32085          , x_value_type_code          => l_adr_value_type_code
32086          , p_side                     => 'NA'
32087    );
32088 
32089    xla_ae_lines_pkg.set_ccid(
32090     p_code_combination_id          => l_ccid
32091   , p_value_type_code              => l_adr_value_type_code
32092   , p_transaction_coa_id           => l_adr_transaction_coa_id
32093   , p_accounting_coa_id            => l_adr_accounting_coa_id
32094   , p_adr_code                     => 'AP_CASH'
32095   , p_adr_type_code                => 'S'
32096   , p_component_type               => l_component_type
32097   , p_component_code               => l_component_code
32098   , p_component_type_code          => l_component_type_code
32099   , p_component_appl_id            => l_component_appl_id
32100   , p_amb_context_code             => l_amb_context_code
32101   , p_side                         => 'NA'
32102   );
32103 
32104 
32105    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
32106      p_to_segment_code         => 'GL_BALANCING'
32107    , p_segment_value           => C_CHAR
32108    , p_from_segment_code       => NULL
32109    , p_from_combination_id     => NULL
32110    , p_value_type_code         => NULL
32111    , p_transaction_coa_id      => null
32112    , p_accounting_coa_id       => null
32113    , p_flexfield_segment_code  => NULL
32114    , p_flex_value_set_id       => NULL
32115    , p_adr_code                => NULL
32116    , p_adr_type_code           => NULL
32117    , p_component_type          => l_component_type
32118    , p_component_code          => l_component_code
32119    , p_component_type_code     => l_component_type_code
32120    , p_component_appl_id       => l_component_appl_id
32121    , p_amb_context_code        => l_amb_context_code
32122    , p_entity_code             => 'AP_PAYMENTS'
32123    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
32124    , p_side                    => 'NA'
32125    );
32126    --
32127 
32128 
32129    --
32130    --
32131    END IF;
32132 
32133        --
32134        -- Update the line information that should be overwritten
32135        --
32136        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32137                                          p_header_num   => 1);
32138        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32139 
32140        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32141 
32142        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32143           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32144        END IF;
32145 
32146       --
32147       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32148       --
32149       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32150           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32151       ELSE
32152           ---------------------------------------------------------------------------------------------------
32153           -- 4262811a Switch Sign
32154           ---------------------------------------------------------------------------------------------------
32155           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32156           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32157                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32158           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32159                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32160           -- 5132302
32161           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32162                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32163 
32164       END IF;
32165 
32166       -- 4955764
32170 
32167       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32168       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32169 
32171       XLA_AE_LINES_PKG.ValidateCurrentLine;
32172       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32173 
32174       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32175                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32176                ,p_balance_type_code => l_balance_type_code);
32177 
32178    END IF;
32179 
32180    -----------------------------------------------------------------------------------------
32181    -- 4262811 Multiperiod Accounting
32182    -----------------------------------------------------------------------------------------
32183      -- No MPA option is assigned.
32184 
32185 
32186 END IF;
32187 END IF;
32188 --
32189 
32190 --
32191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32192    trace
32193       (p_msg      => 'END of AcctLineType_74'
32194       ,p_level    => C_LEVEL_PROCEDURE
32195       ,p_module   => l_log_module);
32196 END IF;
32197 --
32198 EXCEPTION
32199   WHEN xla_exceptions_pkg.application_exception THEN
32200       RAISE;
32201   WHEN OTHERS THEN
32202        xla_exceptions_pkg.raise_message
32203            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_74');
32204 END AcctLineType_74;
32205 --
32206 
32207 ---------------------------------------
32208 --
32209 -- PRIVATE FUNCTION
32210 --         AcctLineType_75
32211 --
32212 ---------------------------------------
32213 PROCEDURE AcctLineType_75 (
32214   p_application_id        IN NUMBER
32215  ,p_event_id              IN NUMBER
32216  ,p_calculate_acctd_flag  IN VARCHAR2
32217  ,p_calculate_g_l_flag    IN VARCHAR2
32218  ,p_actual_flag           IN OUT VARCHAR2
32219  ,p_balance_type_code     OUT VARCHAR2
32220  ,p_gain_or_loss_ref      OUT VARCHAR2
32221  
32222 --Bank Cash Account
32223  , p_source_1            IN NUMBER
32224 --Payment Distribution (Payment Rate) Ledger Amount
32225  , p_source_9            IN NUMBER
32226 --Automatic Offsets Flag
32227  , p_source_30            IN VARCHAR2
32228  , p_source_30_meaning    IN VARCHAR2
32229 --When to Account for Payment Option
32230  , p_source_38            IN VARCHAR2
32231 --Payment Distribution Type
32232  , p_source_39            IN VARCHAR2
32233  , p_source_39_meaning    IN VARCHAR2
32234 --Accounting Reversal Indicator
32235  , p_source_40            IN VARCHAR2
32236 --Payment Distribution Amount
32237  , p_source_41            IN NUMBER
32238 --Business Flow Accounts Payable Application Identifier
32239  , p_source_42            IN NUMBER
32240 --Payment Distribution Identifier
32241  , p_source_47            IN NUMBER
32242 --Distribution Link Type
32243  , p_source_48            IN VARCHAR2
32244 --Payment Currency Code
32245  , p_source_49            IN VARCHAR2
32246 --Override Accounted Amount Indicator
32247  , p_source_53            IN VARCHAR2
32248  , p_source_53_meaning    IN VARCHAR2
32249 --Payment Supplier Identifier
32250  , p_source_54            IN NUMBER
32251 --Payment Supplier Site Identifier
32252  , p_source_55            IN NUMBER
32253 --Third Party Type
32254  , p_source_56            IN VARCHAR2
32255 --Payment Distribution Reversed Identifier
32256  , p_source_57            IN NUMBER
32257 --Invoice Distribution Tax Line Identifier
32258  , p_source_58            IN NUMBER
32259 --Invoice Distribution Summary Tax Line Identifier
32260  , p_source_59            IN NUMBER
32261 --Payment Type
32262  , p_source_60            IN VARCHAR2
32263  , p_source_60_meaning    IN VARCHAR2
32264 --Business Flow Invoice Distribution Type
32265  , p_source_62            IN VARCHAR2
32266 --Business Flow Invoice Entity Code
32267  , p_source_63            IN VARCHAR2
32268 --Business Flow Invoice Distribution Identifier
32269  , p_source_64            IN NUMBER
32270 --Business Flow Invoice Identifier
32271  , p_source_65            IN NUMBER
32272 --Invoice Distribution Tax Distribution Identifier from Tax
32273  , p_source_66            IN NUMBER
32274 --Pooled Bank Account Option
32275  , p_source_110            IN VARCHAR2
32276  , p_source_110_meaning    IN VARCHAR2
32277 --Payment Maturity Date
32278  , p_source_111            IN DATE
32279 --Payment Exchange Date
32280  , p_source_114            IN DATE
32281 --Payment Exchange Rate
32282  , p_source_115            IN NUMBER
32283 --Payment Exchange Rate Type
32284  , p_source_116            IN VARCHAR2
32285 )
32286 IS
32287 
32288 l_component_type              VARCHAR2(80);
32289 l_component_code              VARCHAR2(30);
32290 l_component_type_code         VARCHAR2(1);
32291 l_component_appl_id           INTEGER;
32292 l_amb_context_code            VARCHAR2(30);
32293 l_entity_code                 VARCHAR2(30);
32294 l_event_class_code            VARCHAR2(30);
32295 l_ae_header_id                NUMBER;
32296 l_event_type_code             VARCHAR2(30);
32297 l_line_definition_code        VARCHAR2(30);
32298 l_line_definition_owner_code  VARCHAR2(1);
32299 --
32300 -- adr variables
32301 l_segment                     VARCHAR2(30);
32302 l_ccid                        NUMBER;
32303 l_adr_transaction_coa_id      NUMBER;
32304 l_adr_accounting_coa_id       NUMBER;
32305 l_adr_flexfield_segment_code  VARCHAR2(30);
32309 l_adr_value_segment_code      VARCHAR2(30);
32306 l_adr_flex_value_set_id       NUMBER;
32307 l_adr_value_type_code         VARCHAR2(30);
32308 l_adr_value_combination_id    NUMBER;
32310 
32311 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32312 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32313 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32314 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32315 
32316 -- 4262811 Variables ------------------------------------------------------------------------------------------
32317 l_entered_amt_idx             NUMBER;
32318 l_accted_amt_idx              NUMBER;
32319 l_acc_rev_flag                VARCHAR2(1);
32320 l_accrual_line_num            NUMBER;
32321 l_tmp_amt                     NUMBER;
32322 l_acc_rev_natural_side_code   VARCHAR2(1);
32323 
32324 l_num_entries                 NUMBER;
32325 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32326 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32327 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32328 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32329 l_recog_line_1                NUMBER;
32330 l_recog_line_2                NUMBER;
32331 
32332 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32333 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32334 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32335 
32336 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32337 
32338 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32339 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32340 
32341 ---------------------------------------------------------------------------------------------------------------
32342 
32343 
32344 --
32345 -- bulk performance
32346 --
32347 l_balance_type_code           VARCHAR2(1);
32348 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32349 l_log_module                  VARCHAR2(240);
32350 
32351 --
32352 -- Upgrade strategy
32353 --
32354 l_actual_upg_option           VARCHAR2(1);
32355 l_enc_upg_option           VARCHAR2(1);
32356 
32357 --
32358 BEGIN
32359 --
32360 IF g_log_enabled THEN
32361       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
32362 END IF;
32363 --
32364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32365 
32366       trace
32367          (p_msg      => 'BEGIN of AcctLineType_75'
32368          ,p_level    => C_LEVEL_PROCEDURE
32369          ,p_module   => l_log_module);
32370 
32371 END IF;
32372 --
32373 l_component_type             := 'AMB_JLT';
32374 l_component_code             := 'AP_CASH_REF';
32375 l_component_type_code        := 'S';
32376 l_component_appl_id          :=  200;
32377 l_amb_context_code           := 'DEFAULT';
32378 l_entity_code                := 'AP_PAYMENTS';
32379 l_event_class_code           := 'REFUNDS';
32380 l_event_type_code            := 'REFUNDS_ALL';
32381 l_line_definition_owner_code := 'S';
32382 l_line_definition_code       := 'CASH_REFUNDS_ALL';
32383 --
32384 l_balance_type_code          := 'A';
32385 l_segment                     := NULL;
32386 l_ccid                        := NULL;
32387 l_adr_transaction_coa_id      := NULL;
32388 l_adr_accounting_coa_id       := NULL;
32389 l_adr_flexfield_segment_code  := NULL;
32390 l_adr_flex_value_set_id       := NULL;
32391 l_adr_value_type_code         := NULL;
32392 l_adr_value_combination_id    := NULL;
32393 l_adr_value_segment_code      := NULL;
32394 
32395 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
32396 l_bflow_class_code           := '';    -- 4219869 Business Flow
32397 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32398 l_budgetary_control_flag     := 'N';
32399 
32400 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32401 l_bflow_applied_to_amt       := NULL; -- 5132302
32402 l_entered_amt_idx            := NULL;          -- 4262811
32403 l_accted_amt_idx             := NULL;          -- 4262811
32404 l_acc_rev_flag               := NULL;          -- 4262811
32405 l_accrual_line_num           := NULL;          -- 4262811
32406 l_tmp_amt                    := NULL;          -- 4262811
32407 --
32408  
32409 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32410     l_balance_type_code <> 'B' THEN
32411 IF NVL(p_source_38,'
32412 ') =  'ISSUE_ISSUE' AND 
32413 (NVL(p_source_30,'
32414 ') <>  'Y' OR 
32415 NVL(p_source_30,'
32416 ') =  'Y' AND 
32417 NVL(p_source_110,'
32418 ') <>  'Y') AND 
32419 p_source_111 IS NULL AND 
32420 NVL(p_source_39,'
32421 ') =  'CASH' AND 
32422 NVL(p_source_60,'
32423 ') =  'R'
32424  THEN 
32425 
32426    --
32427    XLA_AE_LINES_PKG.SetNewLine;
32428 
32429    p_balance_type_code          := l_balance_type_code;
32430    -- set the flag so later we will know whether the gain loss line needs to be created
32431    
32432    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32433      p_actual_flag :='A';
32434    END IF;
32435 
32436    --
32437    -- bulk performance
32438    --
32442    -- set accounting line options
32439    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32440                                       p_header_num   => 0); -- 4262811
32441    --
32443    --
32444    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32445            p_natural_side_code          => 'C'
32446          , p_gain_or_loss_flag          => 'N'
32447          , p_gl_transfer_mode_code      => 'S'
32448          , p_acct_entry_type_code       => 'A'
32449          , p_switch_side_flag           => 'Y'
32450          , p_merge_duplicate_code       => 'A'
32451          );
32452    --
32453    l_acc_rev_natural_side_code := 'D';  -- 4262811
32454    -- 
32455    --
32456    -- set accounting line type info
32457    --
32458    xla_ae_lines_pkg.SetAcctLineType
32459       (p_component_type             => l_component_type
32460       ,p_event_type_code            => l_event_type_code
32461       ,p_line_definition_owner_code => l_line_definition_owner_code
32462       ,p_line_definition_code       => l_line_definition_code
32463       ,p_accounting_line_code       => l_component_code
32464       ,p_accounting_line_type_code  => l_component_type_code
32465       ,p_accounting_line_appl_id    => l_component_appl_id
32466       ,p_amb_context_code           => l_amb_context_code
32467       ,p_entity_code                => l_entity_code
32468       ,p_event_class_code           => l_event_class_code);
32469    --
32470    -- set accounting class
32471    --
32472    xla_ae_lines_pkg.SetAcctClass(
32473            p_accounting_class_code  => 'CASH'
32474          , p_ae_header_id           => l_ae_header_id
32475          );
32476 
32477    --
32478    -- set rounding class
32479    --
32480    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32481                       'CASH';
32482 
32483    --
32484    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32485    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32486    --
32487    -- bulk performance
32488    --
32489    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32490 
32491    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32492       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32493 
32494    -- 4955764
32495    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32496       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32497 
32498    -- 4458381 Public Sector Enh
32499    
32500    --
32501    -- set accounting attributes for the line type
32502    --
32503    l_entered_amt_idx := 9;
32504    l_accted_amt_idx  := 14;
32505    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
32506    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32507    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
32508    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32509    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
32510    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32511    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
32512    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32513    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
32514    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32515    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
32516    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32517    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
32518    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
32519    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
32520    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
32521    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
32522    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
32523    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
32524    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
32525    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
32526    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
32527    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
32528    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
32529    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
32530    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
32531    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
32532    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
32533    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
32534    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
32535    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
32536    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
32537    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
32538    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
32539    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
32540    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32541    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
32542    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
32543    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
32547    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
32544    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
32545    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
32546    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
32548    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
32549    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
32550    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
32551    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
32552 
32553    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32554    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32555 
32556    ---------------------------------------------------------------------------------------------------------------
32557    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32558    ---------------------------------------------------------------------------------------------------------------
32559    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32560 
32561    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32562    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32563 
32564    IF xla_accounting_cache_pkg.GetValueChar
32565          (p_source_code         => 'LEDGER_CATEGORY_CODE'
32566          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32567    AND l_bflow_method_code = 'PRIOR_ENTRY'
32568 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32569    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32570          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32571        )
32572    THEN
32573          xla_ae_lines_pkg.BflowUpgEntry
32574            (p_business_method_code    => l_bflow_method_code
32575            ,p_business_class_code     => l_bflow_class_code
32576            ,p_balance_type            => l_balance_type_code);
32577    ELSE
32578       NULL;
32579 -- No business flow processing for business flow method of NONE.
32580    END IF;
32581 
32582    --
32583    -- call analytical criteria
32584    --
32585    
32586    --
32587    -- call description
32588    --
32589    -- No description or it is inherited.
32590    --
32591    -- call ADRs
32592    -- Bug 4922099
32593    --
32594    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32595         (NVL(l_actual_upg_option, 'N') = 'O') OR
32596         (NVL(l_enc_upg_option, 'N') = 'O')
32597       )
32598    THEN
32599    NULL;
32600    --
32601    --
32602    
32603   l_ccid := AcctDerRule_20(
32604            p_application_id           => p_application_id
32605          , p_ae_header_id             => l_ae_header_id 
32606 , p_source_1 => p_source_1
32607          , x_transaction_coa_id       => l_adr_transaction_coa_id
32608          , x_accounting_coa_id        => l_adr_accounting_coa_id
32609          , x_value_type_code          => l_adr_value_type_code
32610          , p_side                     => 'NA'
32611    );
32612 
32613    xla_ae_lines_pkg.set_ccid(
32614     p_code_combination_id          => l_ccid
32615   , p_value_type_code              => l_adr_value_type_code
32616   , p_transaction_coa_id           => l_adr_transaction_coa_id
32617   , p_accounting_coa_id            => l_adr_accounting_coa_id
32618   , p_adr_code                     => 'AP_CASH'
32619   , p_adr_type_code                => 'S'
32620   , p_component_type               => l_component_type
32621   , p_component_code               => l_component_code
32622   , p_component_type_code          => l_component_type_code
32623   , p_component_appl_id            => l_component_appl_id
32624   , p_amb_context_code             => l_amb_context_code
32625   , p_side                         => 'NA'
32626   );
32627 
32628 
32629    --
32630    --
32631    END IF;
32632    --
32633    -- Bug 4922099
32634    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32635           (NVL(l_enc_upg_option, 'N') = 'O')
32636         ) AND
32637         (l_bflow_method_code = 'PRIOR_ENTRY')
32638       )
32639    THEN
32640       IF
32641       --
32642       1 = 2
32643       --
32644       THEN
32645       xla_accounting_err_pkg.build_message
32646                                     (p_appli_s_name            => 'XLA'
32647                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32648                                     ,p_token_1                 => 'LINE_NUMBER'
32649                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
32650                                     ,p_token_2                 => 'LINE_TYPE_NAME'
32651                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
32652                                                                              l_component_type
32653                                                                             ,l_component_code
32654                                                                             ,l_component_type_code
32655                                                                             ,l_component_appl_id
32656                                                                             ,l_amb_context_code
32657                                                                             ,l_entity_code
32661                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
32658                                                                             ,l_event_class_code
32659                                                                            )
32660                                     ,p_token_3                 => 'OWNER'
32662                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
32663                                                                           ,p_lookup_code    => l_component_type_code
32664                                                                          )
32665                                     ,p_token_4                 => 'PRODUCT_NAME'
32666                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32667                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32668                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32669                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32670                                     ,p_ae_header_id            =>  NULL
32671                                        );
32672 
32673         IF (C_LEVEL_ERROR>= g_log_level) THEN
32674                  trace
32675                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32676                       ,p_level    => C_LEVEL_ERROR
32677                       ,p_module   => l_log_module);
32678         END IF;
32679       END IF;
32680    END IF;
32681    --
32682    --
32683    ------------------------------------------------------------------------------------------------
32684    -- 4219869 Business Flow
32685    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32686    -- Prior Entry.  Currently, the following code is always generated.
32687    ------------------------------------------------------------------------------------------------
32688    XLA_AE_LINES_PKG.ValidateCurrentLine;
32689 
32690    ------------------------------------------------------------------------------------
32691    -- 4219869 Business Flow
32692    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32693    ------------------------------------------------------------------------------------
32694    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32695 
32696    ----------------------------------------------------------------------------------
32697    -- 4219869 Business Flow
32698    -- Update journal entry status -- Need to generate this within IF <condition>
32699    ----------------------------------------------------------------------------------
32700    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32701          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32702          ,p_balance_type_code => l_balance_type_code
32703          );
32704 
32705    -------------------------------------------------------------------------------------------
32706    -- 4262811 - Generate the Accrual Reversal lines
32707    -------------------------------------------------------------------------------------------
32708    BEGIN
32709       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32710                               (g_array_event(p_event_id).array_value_num('header_index'));
32711       IF l_acc_rev_flag IS NULL THEN
32712          l_acc_rev_flag := 'N';
32713       END IF;
32714    EXCEPTION
32715       WHEN OTHERS THEN
32716          l_acc_rev_flag := 'N';
32717    END;
32718    --
32719    IF (l_acc_rev_flag = 'Y') THEN
32720 
32721        -- 4645092  ------------------------------------------------------------------------------
32722        -- To allow MPA report to determine if it should generate report process
32723        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32724        ------------------------------------------------------------------------------------------
32725 
32726        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32727        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32728    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32729    -- call ADRs
32730    -- Bug 4922099
32731    --
32732    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32733         (NVL(l_actual_upg_option, 'N') = 'O') OR
32734         (NVL(l_enc_upg_option, 'N') = 'O')
32735       )
32736    THEN
32737    NULL;
32738    --
32739    --
32740    
32741   l_ccid := AcctDerRule_20(
32742            p_application_id           => p_application_id
32743          , p_ae_header_id             => l_ae_header_id 
32744 , p_source_1 => p_source_1
32745          , x_transaction_coa_id       => l_adr_transaction_coa_id
32746          , x_accounting_coa_id        => l_adr_accounting_coa_id
32747          , x_value_type_code          => l_adr_value_type_code
32748          , p_side                     => 'NA'
32749    );
32750 
32751    xla_ae_lines_pkg.set_ccid(
32752     p_code_combination_id          => l_ccid
32753   , p_value_type_code              => l_adr_value_type_code
32754   , p_transaction_coa_id           => l_adr_transaction_coa_id
32755   , p_accounting_coa_id            => l_adr_accounting_coa_id
32756   , p_adr_code                     => 'AP_CASH'
32757   , p_adr_type_code                => 'S'
32758   , p_component_type               => l_component_type
32762   , p_amb_context_code             => l_amb_context_code
32759   , p_component_code               => l_component_code
32760   , p_component_type_code          => l_component_type_code
32761   , p_component_appl_id            => l_component_appl_id
32763   , p_side                         => 'NA'
32764   );
32765 
32766 
32767    --
32768    --
32769    END IF;
32770 
32771        --
32772        -- Update the line information that should be overwritten
32773        --
32774        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32775                                          p_header_num   => 1);
32776        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32777 
32778        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32779 
32780        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32781           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32782        END IF;
32783 
32784       --
32785       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32786       --
32787       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32788           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32789       ELSE
32790           ---------------------------------------------------------------------------------------------------
32791           -- 4262811a Switch Sign
32792           ---------------------------------------------------------------------------------------------------
32793           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32794           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32795                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32796           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32797                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32798           -- 5132302
32799           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32800                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32801 
32802       END IF;
32803 
32804       -- 4955764
32805       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32806       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32807 
32808 
32809       XLA_AE_LINES_PKG.ValidateCurrentLine;
32810       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32811 
32812       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32813                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32814                ,p_balance_type_code => l_balance_type_code);
32815 
32816    END IF;
32817 
32818    -----------------------------------------------------------------------------------------
32819    -- 4262811 Multiperiod Accounting
32820    -----------------------------------------------------------------------------------------
32821      -- No MPA option is assigned.
32822 
32823 
32824 END IF;
32825 END IF;
32826 --
32827 
32828 --
32829 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32830    trace
32831       (p_msg      => 'END of AcctLineType_75'
32832       ,p_level    => C_LEVEL_PROCEDURE
32833       ,p_module   => l_log_module);
32834 END IF;
32835 --
32836 EXCEPTION
32837   WHEN xla_exceptions_pkg.application_exception THEN
32838       RAISE;
32839   WHEN OTHERS THEN
32840        xla_exceptions_pkg.raise_message
32841            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_75');
32842 END AcctLineType_75;
32843 --
32844 
32845 ---------------------------------------
32846 --
32847 -- PRIVATE FUNCTION
32848 --         AcctLineType_76
32849 --
32850 ---------------------------------------
32851 PROCEDURE AcctLineType_76 (
32852   p_application_id        IN NUMBER
32853  ,p_event_id              IN NUMBER
32854  ,p_calculate_acctd_flag  IN VARCHAR2
32855  ,p_calculate_g_l_flag    IN VARCHAR2
32856  ,p_actual_flag           IN OUT VARCHAR2
32857  ,p_balance_type_code     OUT VARCHAR2
32858  ,p_gain_or_loss_ref      OUT VARCHAR2
32859  
32860 --Bank Cash Account
32861  , p_source_1            IN NUMBER
32862 --Automatic Offsets Value
32863  , p_source_4            IN VARCHAR2
32864  , p_source_4_meaning    IN VARCHAR2
32865 --Payment Distribution (Payment Rate) Ledger Amount
32866  , p_source_9            IN NUMBER
32867 --When to Account for Payment Option
32868  , p_source_38            IN VARCHAR2
32869 --Payment Distribution Type
32870  , p_source_39            IN VARCHAR2
32871  , p_source_39_meaning    IN VARCHAR2
32872 --Accounting Reversal Indicator
32873  , p_source_40            IN VARCHAR2
32874 --Payment Distribution Amount
32875  , p_source_41            IN NUMBER
32876 --Business Flow Accounts Payable Application Identifier
32877  , p_source_42            IN NUMBER
32878 --Payment Distribution Identifier
32879  , p_source_47            IN NUMBER
32880 --Distribution Link Type
32881  , p_source_48            IN VARCHAR2
32882 --Payment Currency Code
32883  , p_source_49            IN VARCHAR2
32887 --Payment Supplier Identifier
32884 --Override Accounted Amount Indicator
32885  , p_source_53            IN VARCHAR2
32886  , p_source_53_meaning    IN VARCHAR2
32888  , p_source_54            IN NUMBER
32889 --Payment Supplier Site Identifier
32890  , p_source_55            IN NUMBER
32891 --Third Party Type
32892  , p_source_56            IN VARCHAR2
32893 --Payment Distribution Reversed Identifier
32894  , p_source_57            IN NUMBER
32895 --Invoice Distribution Tax Line Identifier
32896  , p_source_58            IN NUMBER
32897 --Invoice Distribution Summary Tax Line Identifier
32898  , p_source_59            IN NUMBER
32899 --Payment Type
32900  , p_source_60            IN VARCHAR2
32901  , p_source_60_meaning    IN VARCHAR2
32902 --Business Flow Invoice Distribution Type
32903  , p_source_62            IN VARCHAR2
32904 --Business Flow Invoice Entity Code
32905  , p_source_63            IN VARCHAR2
32906 --Business Flow Invoice Distribution Identifier
32907  , p_source_64            IN NUMBER
32908 --Business Flow Invoice Identifier
32909  , p_source_65            IN NUMBER
32910 --Invoice Distribution Tax Distribution Identifier from Tax
32911  , p_source_66            IN NUMBER
32912 --Pooled Bank Account Option
32913  , p_source_110            IN VARCHAR2
32914  , p_source_110_meaning    IN VARCHAR2
32915 --Payment Maturity Date
32916  , p_source_111            IN DATE
32917 --Payment Exchange Date
32918  , p_source_114            IN DATE
32919 --Payment Exchange Rate
32920  , p_source_115            IN NUMBER
32921 --Payment Exchange Rate Type
32922  , p_source_116            IN VARCHAR2
32923 )
32924 IS
32925 
32926 l_component_type              VARCHAR2(80);
32927 l_component_code              VARCHAR2(30);
32928 l_component_type_code         VARCHAR2(1);
32929 l_component_appl_id           INTEGER;
32930 l_amb_context_code            VARCHAR2(30);
32931 l_entity_code                 VARCHAR2(30);
32932 l_event_class_code            VARCHAR2(30);
32933 l_ae_header_id                NUMBER;
32934 l_event_type_code             VARCHAR2(30);
32935 l_line_definition_code        VARCHAR2(30);
32936 l_line_definition_owner_code  VARCHAR2(1);
32937 --
32938 -- adr variables
32939 l_segment                     VARCHAR2(30);
32940 l_ccid                        NUMBER;
32941 l_adr_transaction_coa_id      NUMBER;
32942 l_adr_accounting_coa_id       NUMBER;
32943 l_adr_flexfield_segment_code  VARCHAR2(30);
32944 l_adr_flex_value_set_id       NUMBER;
32945 l_adr_value_type_code         VARCHAR2(30);
32946 l_adr_value_combination_id    NUMBER;
32947 l_adr_value_segment_code      VARCHAR2(30);
32948 
32949 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32950 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32951 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32952 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32953 
32954 -- 4262811 Variables ------------------------------------------------------------------------------------------
32955 l_entered_amt_idx             NUMBER;
32956 l_accted_amt_idx              NUMBER;
32957 l_acc_rev_flag                VARCHAR2(1);
32958 l_accrual_line_num            NUMBER;
32959 l_tmp_amt                     NUMBER;
32960 l_acc_rev_natural_side_code   VARCHAR2(1);
32961 
32962 l_num_entries                 NUMBER;
32963 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32964 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32965 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32966 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32967 l_recog_line_1                NUMBER;
32968 l_recog_line_2                NUMBER;
32969 
32970 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32971 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32972 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32973 
32974 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32975 
32976 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32977 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32978 
32979 ---------------------------------------------------------------------------------------------------------------
32980 
32981 
32982 --
32983 -- bulk performance
32984 --
32985 l_balance_type_code           VARCHAR2(1);
32986 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32987 l_log_module                  VARCHAR2(240);
32988 
32989 --
32990 -- Upgrade strategy
32991 --
32992 l_actual_upg_option           VARCHAR2(1);
32993 l_enc_upg_option           VARCHAR2(1);
32994 
32995 --
32996 BEGIN
32997 --
32998 IF g_log_enabled THEN
32999       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
33000 END IF;
33001 --
33002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33003 
33004       trace
33005          (p_msg      => 'BEGIN of AcctLineType_76'
33006          ,p_level    => C_LEVEL_PROCEDURE
33007          ,p_module   => l_log_module);
33008 
33009 END IF;
33010 --
33011 l_component_type             := 'AMB_JLT';
33012 l_component_code             := 'AP_CASH_REF_AOS_AS';
33013 l_component_type_code        := 'S';
33017 l_event_class_code           := 'REFUNDS';
33014 l_component_appl_id          :=  200;
33015 l_amb_context_code           := 'DEFAULT';
33016 l_entity_code                := 'AP_PAYMENTS';
33018 l_event_type_code            := 'REFUNDS_ALL';
33019 l_line_definition_owner_code := 'S';
33020 l_line_definition_code       := 'CASH_REFUNDS_ALL';
33021 --
33022 l_balance_type_code          := 'A';
33023 l_segment                     := NULL;
33024 l_ccid                        := NULL;
33025 l_adr_transaction_coa_id      := NULL;
33026 l_adr_accounting_coa_id       := NULL;
33027 l_adr_flexfield_segment_code  := NULL;
33028 l_adr_flex_value_set_id       := NULL;
33029 l_adr_value_type_code         := NULL;
33030 l_adr_value_combination_id    := NULL;
33031 l_adr_value_segment_code      := NULL;
33032 
33033 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
33034 l_bflow_class_code           := '';    -- 4219869 Business Flow
33035 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33036 l_budgetary_control_flag     := 'N';
33037 
33038 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33039 l_bflow_applied_to_amt       := NULL; -- 5132302
33040 l_entered_amt_idx            := NULL;          -- 4262811
33041 l_accted_amt_idx             := NULL;          -- 4262811
33042 l_acc_rev_flag               := NULL;          -- 4262811
33043 l_accrual_line_num           := NULL;          -- 4262811
33044 l_tmp_amt                    := NULL;          -- 4262811
33045 --
33046  
33047 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33048     l_balance_type_code <> 'B' THEN
33049 IF NVL(p_source_38,'
33050 ') =  'ISSUE_ISSUE' AND 
33051 (NVL(p_source_110,'
33052 ') =  'Y' AND 
33053 NVL(p_source_4,'
33054 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
33055 p_source_111 IS NULL AND 
33056 NVL(p_source_39,'
33057 ') =  'CASH' AND 
33058 NVL(p_source_60,'
33059 ') =  'R'
33060  THEN 
33061 
33062    --
33063    XLA_AE_LINES_PKG.SetNewLine;
33064 
33065    p_balance_type_code          := l_balance_type_code;
33066    -- set the flag so later we will know whether the gain loss line needs to be created
33067    
33068    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33069      p_actual_flag :='A';
33070    END IF;
33071 
33072    --
33073    -- bulk performance
33074    --
33075    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33076                                       p_header_num   => 0); -- 4262811
33077    --
33078    -- set accounting line options
33079    --
33080    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33081            p_natural_side_code          => 'C'
33082          , p_gain_or_loss_flag          => 'N'
33083          , p_gl_transfer_mode_code      => 'S'
33084          , p_acct_entry_type_code       => 'A'
33085          , p_switch_side_flag           => 'Y'
33086          , p_merge_duplicate_code       => 'A'
33087          );
33088    --
33089    l_acc_rev_natural_side_code := 'D';  -- 4262811
33090    -- 
33091    --
33092    -- set accounting line type info
33093    --
33094    xla_ae_lines_pkg.SetAcctLineType
33095       (p_component_type             => l_component_type
33096       ,p_event_type_code            => l_event_type_code
33097       ,p_line_definition_owner_code => l_line_definition_owner_code
33098       ,p_line_definition_code       => l_line_definition_code
33099       ,p_accounting_line_code       => l_component_code
33100       ,p_accounting_line_type_code  => l_component_type_code
33101       ,p_accounting_line_appl_id    => l_component_appl_id
33102       ,p_amb_context_code           => l_amb_context_code
33103       ,p_entity_code                => l_entity_code
33104       ,p_event_class_code           => l_event_class_code);
33105    --
33106    -- set accounting class
33107    --
33108    xla_ae_lines_pkg.SetAcctClass(
33109            p_accounting_class_code  => 'CASH'
33110          , p_ae_header_id           => l_ae_header_id
33111          );
33112 
33113    --
33114    -- set rounding class
33115    --
33116    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33117                       'CASH';
33118 
33119    --
33120    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33121    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33122    --
33123    -- bulk performance
33124    --
33125    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33126 
33127    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33128       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33129 
33130    -- 4955764
33131    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33132       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33133 
33134    -- 4458381 Public Sector Enh
33135    
33136    --
33137    -- set accounting attributes for the line type
33138    --
33139    l_entered_amt_idx := 9;
33140    l_accted_amt_idx  := 14;
33141    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33145    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
33142    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33143    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
33144    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33146    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33147    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
33148    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33149    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
33150    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33151    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
33152    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33153    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
33154    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33155    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
33156    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33157    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
33158    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33159    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
33160    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33161    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
33162    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33163    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
33164    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33165    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
33166    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33167    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
33168    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33169    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
33170    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33171    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
33172    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33173    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
33174    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33175    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
33176    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33177    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
33178    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33179    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
33180    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33181    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
33182    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33183    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
33184    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33185    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
33186    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33187    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
33188 
33189    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33190    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33191 
33192    ---------------------------------------------------------------------------------------------------------------
33193    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33194    ---------------------------------------------------------------------------------------------------------------
33195    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33196 
33197    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33198    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33199 
33200    IF xla_accounting_cache_pkg.GetValueChar
33201          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33202          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33203    AND l_bflow_method_code = 'PRIOR_ENTRY'
33204 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33205    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33206          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33207        )
33208    THEN
33209          xla_ae_lines_pkg.BflowUpgEntry
33210            (p_business_method_code    => l_bflow_method_code
33211            ,p_business_class_code     => l_bflow_class_code
33212            ,p_balance_type            => l_balance_type_code);
33213    ELSE
33214       NULL;
33215 XLA_AE_LINES_PKG.business_flow_validation(
33216                                 p_business_method_code     => l_bflow_method_code
33217                                ,p_business_class_code      => l_bflow_class_code
33218                                ,p_inherit_description_flag => l_inherit_desc_flag);
33219    END IF;
33220 
33221    --
33222    -- call analytical criteria
33223    --
33224    
33225    --
33226    -- call description
33227    --
33228    -- No description or it is inherited.
33229    --
33230    -- call ADRs
33231    -- Bug 4922099
33232    --
33233    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33234         (NVL(l_actual_upg_option, 'N') = 'O') OR
33235         (NVL(l_enc_upg_option, 'N') = 'O')
33236       )
33237    THEN
33238    NULL;
33239    --
33240    --
33241    
33245    , p_transaction_coa_id       => null
33242    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
33243      p_code_combination_id      => TO_NUMBER(C_NUM)
33244    , p_value_type_code          => NULL
33246    , p_accounting_coa_id        => null
33247    , p_adr_code                 => NULL
33248    , p_adr_type_code            => NULL
33249    , p_component_type           => l_component_type
33250    , p_component_code           => l_component_code
33251    , p_component_type_code      => l_component_type_code
33252    , p_component_appl_id        => l_component_appl_id
33253    , p_amb_context_code         => l_amb_context_code
33254    , p_side                     => NULL
33255    );
33256 
33257    
33258   -- initialise segments
33259   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33260   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33261   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33262   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33263   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33264   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33265   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33266   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33267   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33268   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33269   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33270   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33271   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33272   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33273   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33274   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33275   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33276   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33277   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33278   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33279   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33280   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33281   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33282   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33283   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33284   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33285   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33286   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33287   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33288   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33289   --
33290 
33291    --
33292 
33293 
33294    l_segment := AcctDerRule_1(
33295            p_application_id           => p_application_id
33296          , p_ae_header_id             => l_ae_header_id 
33297 , p_source_1 => p_source_1
33298          , x_transaction_coa_id       => l_adr_transaction_coa_id
33299          , x_accounting_coa_id        => l_adr_accounting_coa_id
33300          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
33301          , x_flex_value_set_id        => l_adr_flex_value_set_id
33302          , x_value_type_code          => l_adr_value_type_code
33303          , x_value_combination_id     => l_adr_value_combination_id
33304          , x_value_segment_code       => l_adr_value_segment_code
33305          , p_side                     => 'NA'
33306          , p_override_seg_flag        => 'Y'
33307    );
33308 
33309    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
33310 
33311       xla_ae_lines_pkg.set_segment(
33312           p_to_segment_code         => 'GL_ACCOUNT'
33313         , p_segment_value           => l_segment
33314         , p_from_segment_code       => l_adr_value_segment_code
33315         , p_from_combination_id     => l_adr_value_combination_id
33316         , p_value_type_code         => l_adr_value_type_code
33317         , p_transaction_coa_id      => l_adr_transaction_coa_id
33318         , p_accounting_coa_id       => l_adr_accounting_coa_id
33319         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
33320         , p_flex_value_set_id       => l_adr_flex_value_set_id
33321         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
33322         , p_adr_type_code           => 'S'
33323         , p_component_type          => l_component_type
33324         , p_component_code          => l_component_code
33325         , p_component_type_code     => l_component_type_code
33326         , p_component_appl_id       => l_component_appl_id
33327         , p_amb_context_code        => l_amb_context_code
33328         , p_entity_code             => 'AP_PAYMENTS'
33329         , p_event_class_code        => 'REFUNDS'
33330         , p_side                    => 'NA'
33331         );
33332 
33333   END IF;
33334 
33338    --
33335    --
33336    --
33337    END IF;
33339    -- Bug 4922099
33340    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33341           (NVL(l_enc_upg_option, 'N') = 'O')
33342         ) AND
33343         (l_bflow_method_code = 'PRIOR_ENTRY')
33344       )
33345    THEN
33346       IF
33347       --
33348       1 = 2
33349       --
33350       THEN
33351       xla_accounting_err_pkg.build_message
33352                                     (p_appli_s_name            => 'XLA'
33353                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33354                                     ,p_token_1                 => 'LINE_NUMBER'
33355                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33356                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33357                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33358                                                                              l_component_type
33359                                                                             ,l_component_code
33360                                                                             ,l_component_type_code
33361                                                                             ,l_component_appl_id
33362                                                                             ,l_amb_context_code
33363                                                                             ,l_entity_code
33364                                                                             ,l_event_class_code
33365                                                                            )
33366                                     ,p_token_3                 => 'OWNER'
33367                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33368                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33369                                                                           ,p_lookup_code    => l_component_type_code
33370                                                                          )
33371                                     ,p_token_4                 => 'PRODUCT_NAME'
33372                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33373                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33374                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33375                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33376                                     ,p_ae_header_id            =>  NULL
33377                                        );
33378 
33379         IF (C_LEVEL_ERROR>= g_log_level) THEN
33380                  trace
33381                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33382                       ,p_level    => C_LEVEL_ERROR
33383                       ,p_module   => l_log_module);
33384         END IF;
33385       END IF;
33386    END IF;
33387    --
33388    --
33389    ------------------------------------------------------------------------------------------------
33390    -- 4219869 Business Flow
33391    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33392    -- Prior Entry.  Currently, the following code is always generated.
33393    ------------------------------------------------------------------------------------------------
33394    XLA_AE_LINES_PKG.ValidateCurrentLine;
33395 
33396    ------------------------------------------------------------------------------------
33397    -- 4219869 Business Flow
33398    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33399    ------------------------------------------------------------------------------------
33400    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33401 
33402    ----------------------------------------------------------------------------------
33403    -- 4219869 Business Flow
33404    -- Update journal entry status -- Need to generate this within IF <condition>
33405    ----------------------------------------------------------------------------------
33406    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33407          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33408          ,p_balance_type_code => l_balance_type_code
33409          );
33410 
33411    -------------------------------------------------------------------------------------------
33412    -- 4262811 - Generate the Accrual Reversal lines
33413    -------------------------------------------------------------------------------------------
33414    BEGIN
33415       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33416                               (g_array_event(p_event_id).array_value_num('header_index'));
33417       IF l_acc_rev_flag IS NULL THEN
33418          l_acc_rev_flag := 'N';
33419       END IF;
33420    EXCEPTION
33421       WHEN OTHERS THEN
33422          l_acc_rev_flag := 'N';
33423    END;
33424    --
33425    IF (l_acc_rev_flag = 'Y') THEN
33426 
33427        -- 4645092  ------------------------------------------------------------------------------
33428        -- To allow MPA report to determine if it should generate report process
33429        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33433        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33430        ------------------------------------------------------------------------------------------
33431 
33432        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33434    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
33435    -- call ADRs
33436    -- Bug 4922099
33437    --
33438    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33439         (NVL(l_actual_upg_option, 'N') = 'O') OR
33440         (NVL(l_enc_upg_option, 'N') = 'O')
33441       )
33442    THEN
33443    NULL;
33444    --
33445    --
33446    
33447    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
33448      p_code_combination_id      => TO_NUMBER(C_NUM)
33449    , p_value_type_code          => NULL
33450    , p_transaction_coa_id       => null
33451    , p_accounting_coa_id        => null
33452    , p_adr_code                 => NULL
33453    , p_adr_type_code            => NULL
33454    , p_component_type           => l_component_type
33455    , p_component_code           => l_component_code
33456    , p_component_type_code      => l_component_type_code
33457    , p_component_appl_id        => l_component_appl_id
33458    , p_amb_context_code         => l_amb_context_code
33459    , p_side                     => NULL
33460    );
33461 
33462    
33463   -- initialise segments
33464   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33465   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33466   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33467   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33468   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33469   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33470   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33471   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33472   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33473   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33474   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33475   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33476   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33477   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33478   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33479   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33480   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33481   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33482   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33483   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33484   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33485   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33486   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33487   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33488   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33489   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33490   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33491   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33492   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33493   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33494   --
33495 
33496    --
33497 
33498 
33499    l_segment := AcctDerRule_1(
33500            p_application_id           => p_application_id
33501          , p_ae_header_id             => l_ae_header_id 
33502 , p_source_1 => p_source_1
33503          , x_transaction_coa_id       => l_adr_transaction_coa_id
33504          , x_accounting_coa_id        => l_adr_accounting_coa_id
33505          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
33506          , x_flex_value_set_id        => l_adr_flex_value_set_id
33507          , x_value_type_code          => l_adr_value_type_code
33508          , x_value_combination_id     => l_adr_value_combination_id
33509          , x_value_segment_code       => l_adr_value_segment_code
33510          , p_side                     => 'NA'
33511          , p_override_seg_flag        => 'Y'
33512    );
33513 
33514    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
33515 
33516       xla_ae_lines_pkg.set_segment(
33517           p_to_segment_code         => 'GL_ACCOUNT'
33518         , p_segment_value           => l_segment
33519         , p_from_segment_code       => l_adr_value_segment_code
33520         , p_from_combination_id     => l_adr_value_combination_id
33521         , p_value_type_code         => l_adr_value_type_code
33522         , p_transaction_coa_id      => l_adr_transaction_coa_id
33523         , p_accounting_coa_id       => l_adr_accounting_coa_id
33527         , p_adr_type_code           => 'S'
33524         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
33525         , p_flex_value_set_id       => l_adr_flex_value_set_id
33526         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
33528         , p_component_type          => l_component_type
33529         , p_component_code          => l_component_code
33530         , p_component_type_code     => l_component_type_code
33531         , p_component_appl_id       => l_component_appl_id
33532         , p_amb_context_code        => l_amb_context_code
33533         , p_entity_code             => 'AP_PAYMENTS'
33534         , p_event_class_code        => 'REFUNDS'
33535         , p_side                    => 'NA'
33536         );
33537 
33538   END IF;
33539 
33540    --
33541    --
33542    END IF;
33543 
33544        --
33545        -- Update the line information that should be overwritten
33546        --
33547        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33548                                          p_header_num   => 1);
33549        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
33550 
33551        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33552 
33553        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
33554           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33555        END IF;
33556 
33557       --
33558       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33559       --
33560       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33561           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
33562       ELSE
33563           ---------------------------------------------------------------------------------------------------
33564           -- 4262811a Switch Sign
33565           ---------------------------------------------------------------------------------------------------
33566           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
33567           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33568                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33569           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33570                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33571           -- 5132302
33572           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33573                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33574 
33575       END IF;
33576 
33577       -- 4955764
33578       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33579       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33580 
33581 
33582       XLA_AE_LINES_PKG.ValidateCurrentLine;
33583       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33584 
33585       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33586                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33587                ,p_balance_type_code => l_balance_type_code);
33588 
33589    END IF;
33590 
33591    -----------------------------------------------------------------------------------------
33592    -- 4262811 Multiperiod Accounting
33593    -----------------------------------------------------------------------------------------
33594      -- No MPA option is assigned.
33595 
33596 
33597 END IF;
33598 END IF;
33599 --
33600 
33601 --
33602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33603    trace
33604       (p_msg      => 'END of AcctLineType_76'
33605       ,p_level    => C_LEVEL_PROCEDURE
33606       ,p_module   => l_log_module);
33607 END IF;
33608 --
33609 EXCEPTION
33610   WHEN xla_exceptions_pkg.application_exception THEN
33611       RAISE;
33612   WHEN OTHERS THEN
33613        xla_exceptions_pkg.raise_message
33614            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_76');
33615 END AcctLineType_76;
33616 --
33617 
33618 ---------------------------------------
33619 --
33620 -- PRIVATE FUNCTION
33621 --         AcctLineType_77
33622 --
33623 ---------------------------------------
33624 PROCEDURE AcctLineType_77 (
33625   p_application_id        IN NUMBER
33626  ,p_event_id              IN NUMBER
33627  ,p_calculate_acctd_flag  IN VARCHAR2
33628  ,p_calculate_g_l_flag    IN VARCHAR2
33629  ,p_actual_flag           IN OUT VARCHAR2
33630  ,p_balance_type_code     OUT VARCHAR2
33631  ,p_gain_or_loss_ref      OUT VARCHAR2
33632  
33633 --Bank Cash Account
33634  , p_source_1            IN NUMBER
33635 --Automatic Offsets Value
33636  , p_source_4            IN VARCHAR2
33637  , p_source_4_meaning    IN VARCHAR2
33638 --Payment Distribution (Payment Rate) Ledger Amount
33639  , p_source_9            IN NUMBER
33640 --When to Account for Payment Option
33641  , p_source_38            IN VARCHAR2
33642 --Payment Distribution Type
33643  , p_source_39            IN VARCHAR2
33644  , p_source_39_meaning    IN VARCHAR2
33648  , p_source_41            IN NUMBER
33645 --Accounting Reversal Indicator
33646  , p_source_40            IN VARCHAR2
33647 --Payment Distribution Amount
33649 --Business Flow Accounts Payable Application Identifier
33650  , p_source_42            IN NUMBER
33651 --Payment Distribution Identifier
33652  , p_source_47            IN NUMBER
33653 --Distribution Link Type
33654  , p_source_48            IN VARCHAR2
33655 --Payment Currency Code
33656  , p_source_49            IN VARCHAR2
33657 --Override Accounted Amount Indicator
33658  , p_source_53            IN VARCHAR2
33659  , p_source_53_meaning    IN VARCHAR2
33660 --Payment Supplier Identifier
33661  , p_source_54            IN NUMBER
33662 --Payment Supplier Site Identifier
33663  , p_source_55            IN NUMBER
33664 --Third Party Type
33665  , p_source_56            IN VARCHAR2
33666 --Payment Distribution Reversed Identifier
33667  , p_source_57            IN NUMBER
33668 --Invoice Distribution Tax Line Identifier
33669  , p_source_58            IN NUMBER
33670 --Invoice Distribution Summary Tax Line Identifier
33671  , p_source_59            IN NUMBER
33672 --Payment Type
33673  , p_source_60            IN VARCHAR2
33674  , p_source_60_meaning    IN VARCHAR2
33675 --Business Flow Invoice Distribution Type
33676  , p_source_62            IN VARCHAR2
33677 --Business Flow Invoice Entity Code
33678  , p_source_63            IN VARCHAR2
33679 --Business Flow Invoice Distribution Identifier
33680  , p_source_64            IN NUMBER
33681 --Business Flow Invoice Identifier
33682  , p_source_65            IN NUMBER
33683 --Invoice Distribution Tax Distribution Identifier from Tax
33684  , p_source_66            IN NUMBER
33685 --Pooled Bank Account Option
33686  , p_source_110            IN VARCHAR2
33687  , p_source_110_meaning    IN VARCHAR2
33688 --Payment Maturity Date
33689  , p_source_111            IN DATE
33690 --Payment Exchange Date
33691  , p_source_114            IN DATE
33692 --Payment Exchange Rate
33693  , p_source_115            IN NUMBER
33694 --Payment Exchange Rate Type
33695  , p_source_116            IN VARCHAR2
33696 )
33697 IS
33698 
33699 l_component_type              VARCHAR2(80);
33700 l_component_code              VARCHAR2(30);
33701 l_component_type_code         VARCHAR2(1);
33702 l_component_appl_id           INTEGER;
33703 l_amb_context_code            VARCHAR2(30);
33704 l_entity_code                 VARCHAR2(30);
33705 l_event_class_code            VARCHAR2(30);
33706 l_ae_header_id                NUMBER;
33707 l_event_type_code             VARCHAR2(30);
33708 l_line_definition_code        VARCHAR2(30);
33709 l_line_definition_owner_code  VARCHAR2(1);
33710 --
33711 -- adr variables
33712 l_segment                     VARCHAR2(30);
33713 l_ccid                        NUMBER;
33714 l_adr_transaction_coa_id      NUMBER;
33715 l_adr_accounting_coa_id       NUMBER;
33716 l_adr_flexfield_segment_code  VARCHAR2(30);
33717 l_adr_flex_value_set_id       NUMBER;
33718 l_adr_value_type_code         VARCHAR2(30);
33719 l_adr_value_combination_id    NUMBER;
33720 l_adr_value_segment_code      VARCHAR2(30);
33721 
33722 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
33723 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
33724 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
33725 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
33726 
33727 -- 4262811 Variables ------------------------------------------------------------------------------------------
33728 l_entered_amt_idx             NUMBER;
33729 l_accted_amt_idx              NUMBER;
33730 l_acc_rev_flag                VARCHAR2(1);
33731 l_accrual_line_num            NUMBER;
33732 l_tmp_amt                     NUMBER;
33733 l_acc_rev_natural_side_code   VARCHAR2(1);
33734 
33735 l_num_entries                 NUMBER;
33736 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
33737 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
33738 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
33739 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
33740 l_recog_line_1                NUMBER;
33741 l_recog_line_2                NUMBER;
33742 
33743 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
33744 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
33745 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
33746 
33747 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33748 
33749 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
33750 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
33751 
33752 ---------------------------------------------------------------------------------------------------------------
33753 
33754 
33755 --
33756 -- bulk performance
33757 --
33758 l_balance_type_code           VARCHAR2(1);
33759 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33760 l_log_module                  VARCHAR2(240);
33761 
33762 --
33763 -- Upgrade strategy
33764 --
33765 l_actual_upg_option           VARCHAR2(1);
33766 l_enc_upg_option           VARCHAR2(1);
33767 
33768 --
33769 BEGIN
33770 --
33771 IF g_log_enabled THEN
33772       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
33773 END IF;
33774 --
33775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33776 
33780          ,p_module   => l_log_module);
33777       trace
33778          (p_msg      => 'BEGIN of AcctLineType_77'
33779          ,p_level    => C_LEVEL_PROCEDURE
33781 
33782 END IF;
33783 --
33784 l_component_type             := 'AMB_JLT';
33785 l_component_code             := 'AP_CASH_REF_AOS_BS';
33786 l_component_type_code        := 'S';
33787 l_component_appl_id          :=  200;
33788 l_amb_context_code           := 'DEFAULT';
33789 l_entity_code                := 'AP_PAYMENTS';
33790 l_event_class_code           := 'REFUNDS';
33791 l_event_type_code            := 'REFUNDS_ALL';
33792 l_line_definition_owner_code := 'S';
33793 l_line_definition_code       := 'CASH_REFUNDS_ALL';
33794 --
33795 l_balance_type_code          := 'A';
33796 l_segment                     := NULL;
33797 l_ccid                        := NULL;
33798 l_adr_transaction_coa_id      := NULL;
33799 l_adr_accounting_coa_id       := NULL;
33800 l_adr_flexfield_segment_code  := NULL;
33801 l_adr_flex_value_set_id       := NULL;
33802 l_adr_value_type_code         := NULL;
33803 l_adr_value_combination_id    := NULL;
33804 l_adr_value_segment_code      := NULL;
33805 
33806 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
33807 l_bflow_class_code           := '';    -- 4219869 Business Flow
33808 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33809 l_budgetary_control_flag     := 'N';
33810 
33811 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33812 l_bflow_applied_to_amt       := NULL; -- 5132302
33813 l_entered_amt_idx            := NULL;          -- 4262811
33814 l_accted_amt_idx             := NULL;          -- 4262811
33815 l_acc_rev_flag               := NULL;          -- 4262811
33816 l_accrual_line_num           := NULL;          -- 4262811
33817 l_tmp_amt                    := NULL;          -- 4262811
33818 --
33819  
33820 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33821     l_balance_type_code <> 'B' THEN
33822 IF NVL(p_source_38,'
33823 ') =  'ISSUE_ISSUE' AND 
33824 (NVL(p_source_110,'
33825 ') =  'Y' AND 
33826 NVL(p_source_4,'
33827 ') =  'BALANCING_SEGMENT') AND 
33828 p_source_111 IS NULL AND 
33829 NVL(p_source_39,'
33830 ') =  'CASH' AND 
33831 NVL(p_source_60,'
33832 ') =  'R'
33833  THEN 
33834 
33835    --
33836    XLA_AE_LINES_PKG.SetNewLine;
33837 
33838    p_balance_type_code          := l_balance_type_code;
33839    -- set the flag so later we will know whether the gain loss line needs to be created
33840    
33841    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33842      p_actual_flag :='A';
33843    END IF;
33844 
33845    --
33846    -- bulk performance
33847    --
33848    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33849                                       p_header_num   => 0); -- 4262811
33850    --
33851    -- set accounting line options
33852    --
33853    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33854            p_natural_side_code          => 'C'
33855          , p_gain_or_loss_flag          => 'N'
33856          , p_gl_transfer_mode_code      => 'S'
33857          , p_acct_entry_type_code       => 'A'
33858          , p_switch_side_flag           => 'Y'
33859          , p_merge_duplicate_code       => 'A'
33860          );
33861    --
33862    l_acc_rev_natural_side_code := 'D';  -- 4262811
33863    -- 
33864    --
33865    -- set accounting line type info
33866    --
33867    xla_ae_lines_pkg.SetAcctLineType
33868       (p_component_type             => l_component_type
33869       ,p_event_type_code            => l_event_type_code
33870       ,p_line_definition_owner_code => l_line_definition_owner_code
33871       ,p_line_definition_code       => l_line_definition_code
33872       ,p_accounting_line_code       => l_component_code
33873       ,p_accounting_line_type_code  => l_component_type_code
33874       ,p_accounting_line_appl_id    => l_component_appl_id
33875       ,p_amb_context_code           => l_amb_context_code
33876       ,p_entity_code                => l_entity_code
33877       ,p_event_class_code           => l_event_class_code);
33878    --
33879    -- set accounting class
33880    --
33881    xla_ae_lines_pkg.SetAcctClass(
33882            p_accounting_class_code  => 'CASH'
33883          , p_ae_header_id           => l_ae_header_id
33884          );
33885 
33886    --
33887    -- set rounding class
33888    --
33889    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33890                       'CASH';
33891 
33892    --
33893    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33894    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33895    --
33896    -- bulk performance
33897    --
33898    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33899 
33900    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33901       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33902 
33903    -- 4955764
33904    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33905       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33906 
33907    -- 4458381 Public Sector Enh
33908    
33912    l_entered_amt_idx := 9;
33909    --
33910    -- set accounting attributes for the line type
33911    --
33913    l_accted_amt_idx  := 14;
33914    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33915    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33916    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
33917    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33918    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
33919    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33920    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
33921    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33922    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
33923    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33924    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
33925    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33926    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
33927    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33928    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
33929    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33930    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
33931    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33932    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
33933    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33934    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
33935    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33936    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
33937    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33938    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
33939    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33940    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
33941    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33942    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
33943    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33944    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
33945    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33946    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
33947    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33948    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
33949    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33950    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
33951    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33952    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
33953    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33954    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
33955    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33956    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
33957    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33958    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
33959    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33960    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
33961 
33962    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33963    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33964 
33965    ---------------------------------------------------------------------------------------------------------------
33966    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33967    ---------------------------------------------------------------------------------------------------------------
33968    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33969 
33970    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33971    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33972 
33973    IF xla_accounting_cache_pkg.GetValueChar
33974          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33975          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33976    AND l_bflow_method_code = 'PRIOR_ENTRY'
33977 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33978    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33979          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33980        )
33981    THEN
33982          xla_ae_lines_pkg.BflowUpgEntry
33983            (p_business_method_code    => l_bflow_method_code
33984            ,p_business_class_code     => l_bflow_class_code
33985            ,p_balance_type            => l_balance_type_code);
33986    ELSE
33987       NULL;
33988 XLA_AE_LINES_PKG.business_flow_validation(
33989                                 p_business_method_code     => l_bflow_method_code
33990                                ,p_business_class_code      => l_bflow_class_code
33991                                ,p_inherit_description_flag => l_inherit_desc_flag);
33992    END IF;
33993 
33994    --
33995    -- call analytical criteria
33996    --
33997    
33998    --
33999    -- call description
34000    --
34001    -- No description or it is inherited.
34002    --
34003    -- call ADRs
34004    -- Bug 4922099
34005    --
34006    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34010    THEN
34007         (NVL(l_actual_upg_option, 'N') = 'O') OR
34008         (NVL(l_enc_upg_option, 'N') = 'O')
34009       )
34011    NULL;
34012    --
34013    --
34014    
34015   l_ccid := AcctDerRule_20(
34016            p_application_id           => p_application_id
34017          , p_ae_header_id             => l_ae_header_id 
34018 , p_source_1 => p_source_1
34019          , x_transaction_coa_id       => l_adr_transaction_coa_id
34020          , x_accounting_coa_id        => l_adr_accounting_coa_id
34021          , x_value_type_code          => l_adr_value_type_code
34022          , p_side                     => 'NA'
34023    );
34024 
34025    xla_ae_lines_pkg.set_ccid(
34026     p_code_combination_id          => l_ccid
34027   , p_value_type_code              => l_adr_value_type_code
34028   , p_transaction_coa_id           => l_adr_transaction_coa_id
34029   , p_accounting_coa_id            => l_adr_accounting_coa_id
34030   , p_adr_code                     => 'AP_CASH'
34031   , p_adr_type_code                => 'S'
34032   , p_component_type               => l_component_type
34033   , p_component_code               => l_component_code
34034   , p_component_type_code          => l_component_type_code
34035   , p_component_appl_id            => l_component_appl_id
34036   , p_amb_context_code             => l_amb_context_code
34037   , p_side                         => 'NA'
34038   );
34039 
34040 
34041    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
34042      p_to_segment_code         => 'GL_BALANCING'
34043    , p_segment_value           => C_CHAR
34044    , p_from_segment_code       => NULL
34045    , p_from_combination_id     => NULL
34046    , p_value_type_code         => NULL
34047    , p_transaction_coa_id      => null
34048    , p_accounting_coa_id       => null
34049    , p_flexfield_segment_code  => NULL
34050    , p_flex_value_set_id       => NULL
34051    , p_adr_code                => NULL
34052    , p_adr_type_code           => NULL
34053    , p_component_type          => l_component_type
34054    , p_component_code          => l_component_code
34055    , p_component_type_code     => l_component_type_code
34056    , p_component_appl_id       => l_component_appl_id
34057    , p_amb_context_code        => l_amb_context_code
34058    , p_entity_code             => 'AP_PAYMENTS'
34059    , p_event_class_code        => 'REFUNDS'
34060    , p_side                    => 'NA'
34061    );
34062    --
34063 
34064 
34065    --
34066    --
34067    END IF;
34068    --
34069    -- Bug 4922099
34070    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34071           (NVL(l_enc_upg_option, 'N') = 'O')
34072         ) AND
34073         (l_bflow_method_code = 'PRIOR_ENTRY')
34074       )
34075    THEN
34076       IF
34077       --
34078       1 = 2
34079       --
34080       THEN
34081       xla_accounting_err_pkg.build_message
34082                                     (p_appli_s_name            => 'XLA'
34083                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34084                                     ,p_token_1                 => 'LINE_NUMBER'
34085                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34086                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34087                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34088                                                                              l_component_type
34089                                                                             ,l_component_code
34090                                                                             ,l_component_type_code
34091                                                                             ,l_component_appl_id
34092                                                                             ,l_amb_context_code
34093                                                                             ,l_entity_code
34094                                                                             ,l_event_class_code
34095                                                                            )
34096                                     ,p_token_3                 => 'OWNER'
34097                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34098                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34099                                                                           ,p_lookup_code    => l_component_type_code
34100                                                                          )
34101                                     ,p_token_4                 => 'PRODUCT_NAME'
34102                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34103                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34104                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34105                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34106                                     ,p_ae_header_id            =>  NULL
34107                                        );
34108 
34109         IF (C_LEVEL_ERROR>= g_log_level) THEN
34110                  trace
34111                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34115       END IF;
34112                       ,p_level    => C_LEVEL_ERROR
34113                       ,p_module   => l_log_module);
34114         END IF;
34116    END IF;
34117    --
34118    --
34119    ------------------------------------------------------------------------------------------------
34120    -- 4219869 Business Flow
34121    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34122    -- Prior Entry.  Currently, the following code is always generated.
34123    ------------------------------------------------------------------------------------------------
34124    XLA_AE_LINES_PKG.ValidateCurrentLine;
34125 
34126    ------------------------------------------------------------------------------------
34127    -- 4219869 Business Flow
34128    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34129    ------------------------------------------------------------------------------------
34130    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34131 
34132    ----------------------------------------------------------------------------------
34133    -- 4219869 Business Flow
34134    -- Update journal entry status -- Need to generate this within IF <condition>
34135    ----------------------------------------------------------------------------------
34136    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34137          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34138          ,p_balance_type_code => l_balance_type_code
34139          );
34140 
34141    -------------------------------------------------------------------------------------------
34142    -- 4262811 - Generate the Accrual Reversal lines
34143    -------------------------------------------------------------------------------------------
34144    BEGIN
34145       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34146                               (g_array_event(p_event_id).array_value_num('header_index'));
34147       IF l_acc_rev_flag IS NULL THEN
34148          l_acc_rev_flag := 'N';
34149       END IF;
34150    EXCEPTION
34151       WHEN OTHERS THEN
34152          l_acc_rev_flag := 'N';
34153    END;
34154    --
34155    IF (l_acc_rev_flag = 'Y') THEN
34156 
34157        -- 4645092  ------------------------------------------------------------------------------
34158        -- To allow MPA report to determine if it should generate report process
34159        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34160        ------------------------------------------------------------------------------------------
34161 
34162        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34163        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34164    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34165    -- call ADRs
34166    -- Bug 4922099
34167    --
34168    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34169         (NVL(l_actual_upg_option, 'N') = 'O') OR
34170         (NVL(l_enc_upg_option, 'N') = 'O')
34171       )
34172    THEN
34173    NULL;
34174    --
34175    --
34176    
34177   l_ccid := AcctDerRule_20(
34178            p_application_id           => p_application_id
34179          , p_ae_header_id             => l_ae_header_id 
34180 , p_source_1 => p_source_1
34181          , x_transaction_coa_id       => l_adr_transaction_coa_id
34182          , x_accounting_coa_id        => l_adr_accounting_coa_id
34183          , x_value_type_code          => l_adr_value_type_code
34184          , p_side                     => 'NA'
34185    );
34186 
34187    xla_ae_lines_pkg.set_ccid(
34188     p_code_combination_id          => l_ccid
34189   , p_value_type_code              => l_adr_value_type_code
34190   , p_transaction_coa_id           => l_adr_transaction_coa_id
34191   , p_accounting_coa_id            => l_adr_accounting_coa_id
34192   , p_adr_code                     => 'AP_CASH'
34193   , p_adr_type_code                => 'S'
34194   , p_component_type               => l_component_type
34195   , p_component_code               => l_component_code
34196   , p_component_type_code          => l_component_type_code
34197   , p_component_appl_id            => l_component_appl_id
34198   , p_amb_context_code             => l_amb_context_code
34199   , p_side                         => 'NA'
34200   );
34201 
34202 
34203    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
34204      p_to_segment_code         => 'GL_BALANCING'
34205    , p_segment_value           => C_CHAR
34206    , p_from_segment_code       => NULL
34207    , p_from_combination_id     => NULL
34208    , p_value_type_code         => NULL
34209    , p_transaction_coa_id      => null
34210    , p_accounting_coa_id       => null
34211    , p_flexfield_segment_code  => NULL
34212    , p_flex_value_set_id       => NULL
34213    , p_adr_code                => NULL
34214    , p_adr_type_code           => NULL
34215    , p_component_type          => l_component_type
34216    , p_component_code          => l_component_code
34217    , p_component_type_code     => l_component_type_code
34218    , p_component_appl_id       => l_component_appl_id
34219    , p_amb_context_code        => l_amb_context_code
34220    , p_entity_code             => 'AP_PAYMENTS'
34221    , p_event_class_code        => 'REFUNDS'
34222    , p_side                    => 'NA'
34223    );
34224    --
34225 
34226 
34227    --
34228    --
34232        -- Update the line information that should be overwritten
34229    END IF;
34230 
34231        --
34233        --
34234        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34235                                          p_header_num   => 1);
34236        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
34237 
34238        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34239 
34240        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
34241           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34242        END IF;
34243 
34244       --
34245       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34246       --
34247       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34248           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
34249       ELSE
34250           ---------------------------------------------------------------------------------------------------
34251           -- 4262811a Switch Sign
34252           ---------------------------------------------------------------------------------------------------
34253           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
34254           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34255                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34256           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34257                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34258           -- 5132302
34259           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34260                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34261 
34262       END IF;
34263 
34264       -- 4955764
34265       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34266       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34267 
34268 
34269       XLA_AE_LINES_PKG.ValidateCurrentLine;
34270       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34271 
34272       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34273                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34274                ,p_balance_type_code => l_balance_type_code);
34275 
34276    END IF;
34277 
34278    -----------------------------------------------------------------------------------------
34279    -- 4262811 Multiperiod Accounting
34280    -----------------------------------------------------------------------------------------
34281      -- No MPA option is assigned.
34282 
34283 
34284 END IF;
34285 END IF;
34286 --
34287 
34288 --
34289 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34290    trace
34291       (p_msg      => 'END of AcctLineType_77'
34292       ,p_level    => C_LEVEL_PROCEDURE
34293       ,p_module   => l_log_module);
34294 END IF;
34295 --
34296 EXCEPTION
34297   WHEN xla_exceptions_pkg.application_exception THEN
34298       RAISE;
34299   WHEN OTHERS THEN
34300        xla_exceptions_pkg.raise_message
34301            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_77');
34302 END AcctLineType_77;
34303 --
34304 
34305 ---------------------------------------
34306 --
34307 -- PRIVATE FUNCTION
34308 --         AcctLineType_78
34309 --
34310 ---------------------------------------
34311 PROCEDURE AcctLineType_78 (
34312   p_application_id        IN NUMBER
34313  ,p_event_id              IN NUMBER
34314  ,p_calculate_acctd_flag  IN VARCHAR2
34315  ,p_calculate_g_l_flag    IN VARCHAR2
34316  ,p_actual_flag           IN OUT VARCHAR2
34317  ,p_balance_type_code     OUT VARCHAR2
34318  ,p_gain_or_loss_ref      OUT VARCHAR2
34319  
34320 --System Discount Account
34321  , p_source_2            IN NUMBER
34322 --Discount Distribution Method
34323  , p_source_3            IN VARCHAR2
34324  , p_source_3_meaning    IN VARCHAR2
34325 --Automatic Offsets Value
34326  , p_source_4            IN VARCHAR2
34327  , p_source_4_meaning    IN VARCHAR2
34328 --Payment Distribution (Payment Rate) Ledger Amount
34329  , p_source_9            IN NUMBER
34330 --Invoice Distribution Account
34331  , p_source_17            IN NUMBER
34332 --Invoice Distribution Type
34333  , p_source_20            IN VARCHAR2
34334  , p_source_20_meaning    IN VARCHAR2
34335 --Discount Account
34336  , p_source_27            IN NUMBER
34337 --Purchase Order Charge Account
34338  , p_source_28            IN NUMBER
34339 --Purchase Order Variance Account
34340  , p_source_29            IN NUMBER
34341 --When to Account for Payment Option
34342  , p_source_38            IN VARCHAR2
34343 --Payment Distribution Type
34344  , p_source_39            IN VARCHAR2
34345  , p_source_39_meaning    IN VARCHAR2
34346 --Accounting Reversal Indicator
34347  , p_source_40            IN VARCHAR2
34348 --Payment Distribution Amount
34349  , p_source_41            IN NUMBER
34350 --Business Flow Accounts Payable Application Identifier
34351  , p_source_42            IN NUMBER
34352 --Business Flow Payment Distribution Type
34356 --Business Flow Payment Distribution Identifier
34353  , p_source_43            IN VARCHAR2
34354 --Business Flow Payment Entity Code
34355  , p_source_44            IN VARCHAR2
34357  , p_source_45            IN NUMBER
34358 --Business Flow Payment Identifier
34359  , p_source_46            IN NUMBER
34360 --Payment Distribution Identifier
34361  , p_source_47            IN NUMBER
34362 --Distribution Link Type
34363  , p_source_48            IN VARCHAR2
34364 --Payment Currency Code
34365  , p_source_49            IN VARCHAR2
34366 --Override Accounted Amount Indicator
34367  , p_source_53            IN VARCHAR2
34368  , p_source_53_meaning    IN VARCHAR2
34369 --Payment Supplier Identifier
34370  , p_source_54            IN NUMBER
34371 --Payment Supplier Site Identifier
34372  , p_source_55            IN NUMBER
34373 --Third Party Type
34374  , p_source_56            IN VARCHAR2
34375 --Payment Distribution Reversed Identifier
34376  , p_source_57            IN NUMBER
34377 --Invoice Distribution Tax Line Identifier
34378  , p_source_58            IN NUMBER
34379 --Invoice Distribution Summary Tax Line Identifier
34380  , p_source_59            IN NUMBER
34381 --Payment Exchange Date
34382  , p_source_114            IN DATE
34383 --Payment Exchange Rate
34384  , p_source_115            IN NUMBER
34385 --Payment Exchange Rate Type
34386  , p_source_116            IN VARCHAR2
34387 )
34388 IS
34389 
34390 l_component_type              VARCHAR2(80);
34391 l_component_code              VARCHAR2(30);
34392 l_component_type_code         VARCHAR2(1);
34393 l_component_appl_id           INTEGER;
34394 l_amb_context_code            VARCHAR2(30);
34395 l_entity_code                 VARCHAR2(30);
34396 l_event_class_code            VARCHAR2(30);
34397 l_ae_header_id                NUMBER;
34398 l_event_type_code             VARCHAR2(30);
34399 l_line_definition_code        VARCHAR2(30);
34400 l_line_definition_owner_code  VARCHAR2(1);
34401 --
34402 -- adr variables
34403 l_segment                     VARCHAR2(30);
34404 l_ccid                        NUMBER;
34405 l_adr_transaction_coa_id      NUMBER;
34406 l_adr_accounting_coa_id       NUMBER;
34407 l_adr_flexfield_segment_code  VARCHAR2(30);
34408 l_adr_flex_value_set_id       NUMBER;
34409 l_adr_value_type_code         VARCHAR2(30);
34410 l_adr_value_combination_id    NUMBER;
34411 l_adr_value_segment_code      VARCHAR2(30);
34412 
34413 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34414 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34415 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34416 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34417 
34418 -- 4262811 Variables ------------------------------------------------------------------------------------------
34419 l_entered_amt_idx             NUMBER;
34420 l_accted_amt_idx              NUMBER;
34421 l_acc_rev_flag                VARCHAR2(1);
34422 l_accrual_line_num            NUMBER;
34423 l_tmp_amt                     NUMBER;
34424 l_acc_rev_natural_side_code   VARCHAR2(1);
34425 
34426 l_num_entries                 NUMBER;
34427 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34428 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34429 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34430 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34431 l_recog_line_1                NUMBER;
34432 l_recog_line_2                NUMBER;
34433 
34434 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
34435 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
34436 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
34437 
34438 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34439 
34440 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
34441 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
34442 
34443 ---------------------------------------------------------------------------------------------------------------
34444 
34445 
34446 --
34447 -- bulk performance
34448 --
34449 l_balance_type_code           VARCHAR2(1);
34450 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
34451 l_log_module                  VARCHAR2(240);
34452 
34453 --
34454 -- Upgrade strategy
34455 --
34456 l_actual_upg_option           VARCHAR2(1);
34457 l_enc_upg_option           VARCHAR2(1);
34458 
34459 --
34460 BEGIN
34461 --
34462 IF g_log_enabled THEN
34463       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
34464 END IF;
34465 --
34466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34467 
34468       trace
34469          (p_msg      => 'BEGIN of AcctLineType_78'
34470          ,p_level    => C_LEVEL_PROCEDURE
34471          ,p_module   => l_log_module);
34472 
34473 END IF;
34474 --
34475 l_component_type             := 'AMB_JLT';
34476 l_component_code             := 'AP_DISCOUNT_CASH_CLEAR';
34477 l_component_type_code        := 'S';
34478 l_component_appl_id          :=  200;
34479 l_amb_context_code           := 'DEFAULT';
34480 l_entity_code                := 'AP_PAYMENTS';
34481 l_event_class_code           := 'RECONCILED PAYMENTS';
34482 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
34483 l_line_definition_owner_code := 'S';
34487 l_segment                     := NULL;
34484 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
34485 --
34486 l_balance_type_code          := 'A';
34488 l_ccid                        := NULL;
34489 l_adr_transaction_coa_id      := NULL;
34490 l_adr_accounting_coa_id       := NULL;
34491 l_adr_flexfield_segment_code  := NULL;
34492 l_adr_flex_value_set_id       := NULL;
34493 l_adr_value_type_code         := NULL;
34494 l_adr_value_combination_id    := NULL;
34495 l_adr_value_segment_code      := NULL;
34496 
34497 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
34498 l_bflow_class_code           := '';    -- 4219869 Business Flow
34499 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
34500 l_budgetary_control_flag     := 'N';
34501 
34502 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
34503 l_bflow_applied_to_amt       := NULL; -- 5132302
34504 l_entered_amt_idx            := NULL;          -- 4262811
34505 l_accted_amt_idx             := NULL;          -- 4262811
34506 l_acc_rev_flag               := NULL;          -- 4262811
34507 l_accrual_line_num           := NULL;          -- 4262811
34508 l_tmp_amt                    := NULL;          -- 4262811
34509 --
34510  
34511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34512     l_balance_type_code <> 'B' THEN
34513 IF NVL(p_source_38,'
34514 ') =  'CLEAR_CLEAR' AND 
34515 NVL(p_source_39,'
34516 ') =  'DISCOUNT' AND 
34517 (NVL(p_source_20,'
34518 ') =  'ITEM' OR 
34519 NVL(p_source_20,'
34520 ') =  'MISCELLANEOUS' OR 
34521 NVL(p_source_20,'
34522 ') =  'FREIGHT' OR 
34523 NVL(p_source_20,'
34524 ') =  'REC_TAX' OR 
34525 NVL(p_source_20,'
34526 ') =  'NONREC_TAX' OR 
34527 NVL(p_source_20,'
34528 ') =  'TIPV' OR 
34529 NVL(p_source_20,'
34530 ') =  'TRV' OR 
34531 NVL(p_source_20,'
34532 ') =  'IPV' OR 
34533 NVL(p_source_20,'
34534 ') =  'ACCRUAL' OR 
34535 NVL(p_source_20,'
34536 ') =  'RETROACCRUAL' OR 
34537 NVL(p_source_20,'
34538 ') =  'RETROEXPENSE')
34539  THEN 
34540 
34541    --
34542    XLA_AE_LINES_PKG.SetNewLine;
34543 
34544    p_balance_type_code          := l_balance_type_code;
34545    -- set the flag so later we will know whether the gain loss line needs to be created
34546    
34547    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34548      p_actual_flag :='A';
34549    END IF;
34550 
34551    --
34552    -- bulk performance
34553    --
34554    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34555                                       p_header_num   => 0); -- 4262811
34556    --
34557    -- set accounting line options
34558    --
34559    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34560            p_natural_side_code          => 'C'
34561          , p_gain_or_loss_flag          => 'N'
34562          , p_gl_transfer_mode_code      => 'S'
34563          , p_acct_entry_type_code       => 'A'
34564          , p_switch_side_flag           => 'Y'
34565          , p_merge_duplicate_code       => 'A'
34566          );
34567    --
34568    l_acc_rev_natural_side_code := 'D';  -- 4262811
34569    -- 
34570    --
34571    -- set accounting line type info
34572    --
34573    xla_ae_lines_pkg.SetAcctLineType
34574       (p_component_type             => l_component_type
34575       ,p_event_type_code            => l_event_type_code
34576       ,p_line_definition_owner_code => l_line_definition_owner_code
34577       ,p_line_definition_code       => l_line_definition_code
34578       ,p_accounting_line_code       => l_component_code
34579       ,p_accounting_line_type_code  => l_component_type_code
34580       ,p_accounting_line_appl_id    => l_component_appl_id
34581       ,p_amb_context_code           => l_amb_context_code
34582       ,p_entity_code                => l_entity_code
34583       ,p_event_class_code           => l_event_class_code);
34584    --
34585    -- set accounting class
34586    --
34587    xla_ae_lines_pkg.SetAcctClass(
34588            p_accounting_class_code  => 'DISCOUNT'
34589          , p_ae_header_id           => l_ae_header_id
34590          );
34591 
34592    --
34593    -- set rounding class
34594    --
34595    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34596                       'DISCOUNT';
34597 
34598    --
34599    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34600    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34601    --
34602    -- bulk performance
34603    --
34604    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34605 
34606    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34607       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34608 
34609    -- 4955764
34610    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34611       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34612 
34613    -- 4458381 Public Sector Enh
34614    
34615    --
34616    -- set accounting attributes for the line type
34617    --
34618    l_entered_amt_idx := 10;
34619    l_accted_amt_idx  := 15;
34623    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
34620    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
34621    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34622    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
34624    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
34625    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
34626    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
34627    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34628    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
34629    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
34630    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
34631    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
34632    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
34633    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34634    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
34635    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
34636    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
34637    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
34638    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
34639    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
34640    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
34641    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
34642    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
34643    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
34644    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
34645    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
34646    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
34647    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
34648    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
34649    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
34650    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
34651    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
34652    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
34653    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
34654    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
34655    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
34656    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
34657    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
34658    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
34659    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
34660    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
34661    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
34662    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
34663    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
34664    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
34665    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
34666    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
34667    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
34668    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
34669 
34670    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34671    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34672 
34673    ---------------------------------------------------------------------------------------------------------------
34674    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34675    ---------------------------------------------------------------------------------------------------------------
34676    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34677 
34678    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34679    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34680 
34681    IF xla_accounting_cache_pkg.GetValueChar
34682          (p_source_code         => 'LEDGER_CATEGORY_CODE'
34683          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34684    AND l_bflow_method_code = 'PRIOR_ENTRY'
34685 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34686    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34687          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34688        )
34689    THEN
34690          xla_ae_lines_pkg.BflowUpgEntry
34691            (p_business_method_code    => l_bflow_method_code
34692            ,p_business_class_code     => l_bflow_class_code
34693            ,p_balance_type            => l_balance_type_code);
34694    ELSE
34695       NULL;
34696 -- No business flow processing for business flow method of NONE.
34697    END IF;
34698 
34699    --
34700    -- call analytical criteria
34701    --
34702    
34703    --
34704    -- call description
34705    --
34706    -- No description or it is inherited.
34707    --
34708    -- call ADRs
34709    -- Bug 4922099
34710    --
34711    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34712         (NVL(l_actual_upg_option, 'N') = 'O') OR
34713         (NVL(l_enc_upg_option, 'N') = 'O')
34714       )
34715    THEN
34716    NULL;
34717    --
34718    --
34719    
34723 , p_source_2 => p_source_2
34720   l_ccid := AcctDerRule_21(
34721            p_application_id           => p_application_id
34722          , p_ae_header_id             => l_ae_header_id 
34724 , p_source_3 => p_source_3
34725 , p_source_3_meaning => p_source_3_meaning
34726 , p_source_4 => p_source_4
34727 , p_source_4_meaning => p_source_4_meaning
34728 , p_source_17 => p_source_17
34729 , p_source_20 => p_source_20
34730 , p_source_20_meaning => p_source_20_meaning
34731 , p_source_27 => p_source_27
34732 , p_source_28 => p_source_28
34733 , p_source_29 => p_source_29
34734          , x_transaction_coa_id       => l_adr_transaction_coa_id
34735          , x_accounting_coa_id        => l_adr_accounting_coa_id
34736          , x_value_type_code          => l_adr_value_type_code
34737          , p_side                     => 'NA'
34738    );
34739 
34740    xla_ae_lines_pkg.set_ccid(
34741     p_code_combination_id          => l_ccid
34742   , p_value_type_code              => l_adr_value_type_code
34743   , p_transaction_coa_id           => l_adr_transaction_coa_id
34744   , p_accounting_coa_id            => l_adr_accounting_coa_id
34745   , p_adr_code                     => 'AP_DISCOUNT'
34746   , p_adr_type_code                => 'S'
34747   , p_component_type               => l_component_type
34748   , p_component_code               => l_component_code
34749   , p_component_type_code          => l_component_type_code
34750   , p_component_appl_id            => l_component_appl_id
34751   , p_amb_context_code             => l_amb_context_code
34752   , p_side                         => 'NA'
34753   );
34754 
34755 
34756    l_segment := AcctDerRule_2(
34757            p_application_id           => p_application_id
34758          , p_ae_header_id             => l_ae_header_id 
34759 , p_source_2 => p_source_2
34760 , p_source_3 => p_source_3
34761 , p_source_3_meaning => p_source_3_meaning
34762 , p_source_4 => p_source_4
34763 , p_source_4_meaning => p_source_4_meaning
34764          , x_transaction_coa_id       => l_adr_transaction_coa_id
34765          , x_accounting_coa_id        => l_adr_accounting_coa_id
34766          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34767          , x_flex_value_set_id        => l_adr_flex_value_set_id
34768          , x_value_type_code          => l_adr_value_type_code
34769          , x_value_combination_id     => l_adr_value_combination_id
34770          , x_value_segment_code       => l_adr_value_segment_code
34771          , p_side                     => 'NA'
34772          , p_override_seg_flag        => 'Y'
34773    );
34774 
34775    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34776 
34777       xla_ae_lines_pkg.set_segment(
34778           p_to_segment_code         => 'GL_ACCOUNT'
34779         , p_segment_value           => l_segment
34780         , p_from_segment_code       => l_adr_value_segment_code
34781         , p_from_combination_id     => l_adr_value_combination_id
34782         , p_value_type_code         => l_adr_value_type_code
34783         , p_transaction_coa_id      => l_adr_transaction_coa_id
34784         , p_accounting_coa_id       => l_adr_accounting_coa_id
34785         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34786         , p_flex_value_set_id       => l_adr_flex_value_set_id
34787         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
34788         , p_adr_type_code           => 'S'
34789         , p_component_type          => l_component_type
34790         , p_component_code          => l_component_code
34791         , p_component_type_code     => l_component_type_code
34792         , p_component_appl_id       => l_component_appl_id
34793         , p_amb_context_code        => l_amb_context_code
34794         , p_entity_code             => 'AP_PAYMENTS'
34795         , p_event_class_code        => 'RECONCILED PAYMENTS'
34796         , p_side                    => 'NA'
34797         );
34798 
34799   END IF;
34800 
34801    l_segment := AcctDerRule_14(
34802            p_application_id           => p_application_id
34803          , p_ae_header_id             => l_ae_header_id 
34804 , p_source_4 => p_source_4
34805 , p_source_4_meaning => p_source_4_meaning
34806 , p_source_17 => p_source_17
34807          , x_transaction_coa_id       => l_adr_transaction_coa_id
34808          , x_accounting_coa_id        => l_adr_accounting_coa_id
34809          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34810          , x_flex_value_set_id        => l_adr_flex_value_set_id
34811          , x_value_type_code          => l_adr_value_type_code
34812          , x_value_combination_id     => l_adr_value_combination_id
34813          , x_value_segment_code       => l_adr_value_segment_code
34814          , p_side                     => 'NA'
34815          , p_override_seg_flag        => 'Y'
34816    );
34817 
34818    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34819 
34820       xla_ae_lines_pkg.set_segment(
34821           p_to_segment_code         => 'GL_BALANCING'
34822         , p_segment_value           => l_segment
34823         , p_from_segment_code       => l_adr_value_segment_code
34824         , p_from_combination_id     => l_adr_value_combination_id
34825         , p_value_type_code         => l_adr_value_type_code
34826         , p_transaction_coa_id      => l_adr_transaction_coa_id
34827         , p_accounting_coa_id       => l_adr_accounting_coa_id
34828         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34829         , p_flex_value_set_id       => l_adr_flex_value_set_id
34833         , p_component_code          => l_component_code
34830         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
34831         , p_adr_type_code           => 'S'
34832         , p_component_type          => l_component_type
34834         , p_component_type_code     => l_component_type_code
34835         , p_component_appl_id       => l_component_appl_id
34836         , p_amb_context_code        => l_amb_context_code
34837         , p_entity_code             => 'AP_PAYMENTS'
34838         , p_event_class_code        => 'RECONCILED PAYMENTS'
34839         , p_side                    => 'NA'
34840         );
34841 
34842   END IF;
34843 
34844    --
34845    --
34846    END IF;
34847    --
34848    -- Bug 4922099
34849    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34850           (NVL(l_enc_upg_option, 'N') = 'O')
34851         ) AND
34852         (l_bflow_method_code = 'PRIOR_ENTRY')
34853       )
34854    THEN
34855       IF
34856       --
34857       1 = 2
34858       --
34859       THEN
34860       xla_accounting_err_pkg.build_message
34861                                     (p_appli_s_name            => 'XLA'
34862                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34863                                     ,p_token_1                 => 'LINE_NUMBER'
34864                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34865                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34866                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34867                                                                              l_component_type
34868                                                                             ,l_component_code
34869                                                                             ,l_component_type_code
34870                                                                             ,l_component_appl_id
34871                                                                             ,l_amb_context_code
34872                                                                             ,l_entity_code
34873                                                                             ,l_event_class_code
34874                                                                            )
34875                                     ,p_token_3                 => 'OWNER'
34876                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34877                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34878                                                                           ,p_lookup_code    => l_component_type_code
34879                                                                          )
34880                                     ,p_token_4                 => 'PRODUCT_NAME'
34881                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34882                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34883                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34884                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34885                                     ,p_ae_header_id            =>  NULL
34886                                        );
34887 
34888         IF (C_LEVEL_ERROR>= g_log_level) THEN
34889                  trace
34890                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34891                       ,p_level    => C_LEVEL_ERROR
34892                       ,p_module   => l_log_module);
34893         END IF;
34894       END IF;
34895    END IF;
34896    --
34897    --
34898    ------------------------------------------------------------------------------------------------
34899    -- 4219869 Business Flow
34900    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34901    -- Prior Entry.  Currently, the following code is always generated.
34902    ------------------------------------------------------------------------------------------------
34903    XLA_AE_LINES_PKG.ValidateCurrentLine;
34904 
34905    ------------------------------------------------------------------------------------
34906    -- 4219869 Business Flow
34907    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34908    ------------------------------------------------------------------------------------
34909    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34910 
34911    ----------------------------------------------------------------------------------
34912    -- 4219869 Business Flow
34913    -- Update journal entry status -- Need to generate this within IF <condition>
34914    ----------------------------------------------------------------------------------
34915    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34916          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34917          ,p_balance_type_code => l_balance_type_code
34918          );
34919 
34920    -------------------------------------------------------------------------------------------
34921    -- 4262811 - Generate the Accrual Reversal lines
34922    -------------------------------------------------------------------------------------------
34923    BEGIN
34924       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34925                               (g_array_event(p_event_id).array_value_num('header_index'));
34929    EXCEPTION
34926       IF l_acc_rev_flag IS NULL THEN
34927          l_acc_rev_flag := 'N';
34928       END IF;
34930       WHEN OTHERS THEN
34931          l_acc_rev_flag := 'N';
34932    END;
34933    --
34934    IF (l_acc_rev_flag = 'Y') THEN
34935 
34936        -- 4645092  ------------------------------------------------------------------------------
34937        -- To allow MPA report to determine if it should generate report process
34938        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34939        ------------------------------------------------------------------------------------------
34940 
34941        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34942        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34943    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34944    -- call ADRs
34945    -- Bug 4922099
34946    --
34947    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34948         (NVL(l_actual_upg_option, 'N') = 'O') OR
34949         (NVL(l_enc_upg_option, 'N') = 'O')
34950       )
34951    THEN
34952    NULL;
34953    --
34954    --
34955    
34956   l_ccid := AcctDerRule_21(
34957            p_application_id           => p_application_id
34958          , p_ae_header_id             => l_ae_header_id 
34959 , p_source_2 => p_source_2
34960 , p_source_3 => p_source_3
34961 , p_source_3_meaning => p_source_3_meaning
34962 , p_source_4 => p_source_4
34963 , p_source_4_meaning => p_source_4_meaning
34964 , p_source_17 => p_source_17
34965 , p_source_20 => p_source_20
34966 , p_source_20_meaning => p_source_20_meaning
34967 , p_source_27 => p_source_27
34968 , p_source_28 => p_source_28
34969 , p_source_29 => p_source_29
34970          , x_transaction_coa_id       => l_adr_transaction_coa_id
34971          , x_accounting_coa_id        => l_adr_accounting_coa_id
34972          , x_value_type_code          => l_adr_value_type_code
34973          , p_side                     => 'NA'
34974    );
34975 
34976    xla_ae_lines_pkg.set_ccid(
34977     p_code_combination_id          => l_ccid
34978   , p_value_type_code              => l_adr_value_type_code
34979   , p_transaction_coa_id           => l_adr_transaction_coa_id
34980   , p_accounting_coa_id            => l_adr_accounting_coa_id
34981   , p_adr_code                     => 'AP_DISCOUNT'
34982   , p_adr_type_code                => 'S'
34983   , p_component_type               => l_component_type
34984   , p_component_code               => l_component_code
34985   , p_component_type_code          => l_component_type_code
34986   , p_component_appl_id            => l_component_appl_id
34987   , p_amb_context_code             => l_amb_context_code
34988   , p_side                         => 'NA'
34989   );
34990 
34991 
34992    l_segment := AcctDerRule_2(
34993            p_application_id           => p_application_id
34994          , p_ae_header_id             => l_ae_header_id 
34995 , p_source_2 => p_source_2
34996 , p_source_3 => p_source_3
34997 , p_source_3_meaning => p_source_3_meaning
34998 , p_source_4 => p_source_4
34999 , p_source_4_meaning => p_source_4_meaning
35000          , x_transaction_coa_id       => l_adr_transaction_coa_id
35001          , x_accounting_coa_id        => l_adr_accounting_coa_id
35002          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35003          , x_flex_value_set_id        => l_adr_flex_value_set_id
35004          , x_value_type_code          => l_adr_value_type_code
35005          , x_value_combination_id     => l_adr_value_combination_id
35006          , x_value_segment_code       => l_adr_value_segment_code
35007          , p_side                     => 'NA'
35008          , p_override_seg_flag        => 'Y'
35009    );
35010 
35011    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35012 
35013       xla_ae_lines_pkg.set_segment(
35014           p_to_segment_code         => 'GL_ACCOUNT'
35015         , p_segment_value           => l_segment
35016         , p_from_segment_code       => l_adr_value_segment_code
35017         , p_from_combination_id     => l_adr_value_combination_id
35018         , p_value_type_code         => l_adr_value_type_code
35019         , p_transaction_coa_id      => l_adr_transaction_coa_id
35020         , p_accounting_coa_id       => l_adr_accounting_coa_id
35021         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35022         , p_flex_value_set_id       => l_adr_flex_value_set_id
35023         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
35024         , p_adr_type_code           => 'S'
35025         , p_component_type          => l_component_type
35026         , p_component_code          => l_component_code
35027         , p_component_type_code     => l_component_type_code
35028         , p_component_appl_id       => l_component_appl_id
35029         , p_amb_context_code        => l_amb_context_code
35030         , p_entity_code             => 'AP_PAYMENTS'
35031         , p_event_class_code        => 'RECONCILED PAYMENTS'
35032         , p_side                    => 'NA'
35033         );
35034 
35035   END IF;
35036 
35037    l_segment := AcctDerRule_14(
35038            p_application_id           => p_application_id
35039          , p_ae_header_id             => l_ae_header_id 
35040 , p_source_4 => p_source_4
35041 , p_source_4_meaning => p_source_4_meaning
35042 , p_source_17 => p_source_17
35043          , x_transaction_coa_id       => l_adr_transaction_coa_id
35044          , x_accounting_coa_id        => l_adr_accounting_coa_id
35048          , x_value_combination_id     => l_adr_value_combination_id
35045          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35046          , x_flex_value_set_id        => l_adr_flex_value_set_id
35047          , x_value_type_code          => l_adr_value_type_code
35049          , x_value_segment_code       => l_adr_value_segment_code
35050          , p_side                     => 'NA'
35051          , p_override_seg_flag        => 'Y'
35052    );
35053 
35054    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35055 
35056       xla_ae_lines_pkg.set_segment(
35057           p_to_segment_code         => 'GL_BALANCING'
35058         , p_segment_value           => l_segment
35059         , p_from_segment_code       => l_adr_value_segment_code
35060         , p_from_combination_id     => l_adr_value_combination_id
35061         , p_value_type_code         => l_adr_value_type_code
35062         , p_transaction_coa_id      => l_adr_transaction_coa_id
35063         , p_accounting_coa_id       => l_adr_accounting_coa_id
35064         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35065         , p_flex_value_set_id       => l_adr_flex_value_set_id
35066         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
35067         , p_adr_type_code           => 'S'
35068         , p_component_type          => l_component_type
35069         , p_component_code          => l_component_code
35070         , p_component_type_code     => l_component_type_code
35071         , p_component_appl_id       => l_component_appl_id
35072         , p_amb_context_code        => l_amb_context_code
35073         , p_entity_code             => 'AP_PAYMENTS'
35074         , p_event_class_code        => 'RECONCILED PAYMENTS'
35075         , p_side                    => 'NA'
35076         );
35077 
35078   END IF;
35079 
35080    --
35081    --
35082    END IF;
35083 
35084        --
35085        -- Update the line information that should be overwritten
35086        --
35087        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35088                                          p_header_num   => 1);
35089        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35090 
35091        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35092 
35093        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35094           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35095        END IF;
35096 
35097       --
35098       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35099       --
35100       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35101           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35102       ELSE
35103           ---------------------------------------------------------------------------------------------------
35104           -- 4262811a Switch Sign
35105           ---------------------------------------------------------------------------------------------------
35106           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35107           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35108                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35109           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35110                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35111           -- 5132302
35112           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35113                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35114 
35115       END IF;
35116 
35117       -- 4955764
35118       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35119       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35120 
35121 
35122       XLA_AE_LINES_PKG.ValidateCurrentLine;
35123       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35124 
35125       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35126                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35127                ,p_balance_type_code => l_balance_type_code);
35128 
35129    END IF;
35130 
35131    -----------------------------------------------------------------------------------------
35132    -- 4262811 Multiperiod Accounting
35133    -----------------------------------------------------------------------------------------
35134      -- No MPA option is assigned.
35135 
35136 
35137 END IF;
35138 END IF;
35139 --
35140 
35141 --
35142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35143    trace
35144       (p_msg      => 'END of AcctLineType_78'
35145       ,p_level    => C_LEVEL_PROCEDURE
35146       ,p_module   => l_log_module);
35147 END IF;
35148 --
35149 EXCEPTION
35150   WHEN xla_exceptions_pkg.application_exception THEN
35151       RAISE;
35152   WHEN OTHERS THEN
35153        xla_exceptions_pkg.raise_message
35154            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_78');
35155 END AcctLineType_78;
35156 --
35160 -- PRIVATE FUNCTION
35157 
35158 ---------------------------------------
35159 --
35161 --         AcctLineType_79
35162 --
35163 ---------------------------------------
35164 PROCEDURE AcctLineType_79 (
35165   p_application_id        IN NUMBER
35166  ,p_event_id              IN NUMBER
35167  ,p_calculate_acctd_flag  IN VARCHAR2
35168  ,p_calculate_g_l_flag    IN VARCHAR2
35169  ,p_actual_flag           IN OUT VARCHAR2
35170  ,p_balance_type_code     OUT VARCHAR2
35171  ,p_gain_or_loss_ref      OUT VARCHAR2
35172  
35173 --System Discount Account
35174  , p_source_2            IN NUMBER
35175 --Discount Distribution Method
35176  , p_source_3            IN VARCHAR2
35177  , p_source_3_meaning    IN VARCHAR2
35178 --Automatic Offsets Value
35179  , p_source_4            IN VARCHAR2
35180  , p_source_4_meaning    IN VARCHAR2
35181 --Payment Distribution (Payment Rate) Ledger Amount
35182  , p_source_9            IN NUMBER
35183 --Invoice Distribution Account
35184  , p_source_17            IN NUMBER
35185 --Invoice Distribution Type
35186  , p_source_20            IN VARCHAR2
35187  , p_source_20_meaning    IN VARCHAR2
35188 --Discount Account
35189  , p_source_27            IN NUMBER
35190 --Purchase Order Charge Account
35191  , p_source_28            IN NUMBER
35192 --Purchase Order Variance Account
35193  , p_source_29            IN NUMBER
35194 --When to Account for Payment Option
35195  , p_source_38            IN VARCHAR2
35196 --Payment Distribution Type
35197  , p_source_39            IN VARCHAR2
35198  , p_source_39_meaning    IN VARCHAR2
35199 --Accounting Reversal Indicator
35200  , p_source_40            IN VARCHAR2
35201 --Payment Distribution Amount
35202  , p_source_41            IN NUMBER
35203 --Business Flow Accounts Payable Application Identifier
35204  , p_source_42            IN NUMBER
35205 --Payment Distribution Identifier
35206  , p_source_47            IN NUMBER
35207 --Distribution Link Type
35208  , p_source_48            IN VARCHAR2
35209 --Payment Currency Code
35210  , p_source_49            IN VARCHAR2
35211 --Override Accounted Amount Indicator
35212  , p_source_53            IN VARCHAR2
35213  , p_source_53_meaning    IN VARCHAR2
35214 --Payment Supplier Identifier
35215  , p_source_54            IN NUMBER
35216 --Payment Supplier Site Identifier
35217  , p_source_55            IN NUMBER
35218 --Third Party Type
35219  , p_source_56            IN VARCHAR2
35220 --Payment Distribution Reversed Identifier
35221  , p_source_57            IN NUMBER
35222 --Invoice Distribution Tax Line Identifier
35223  , p_source_58            IN NUMBER
35224 --Invoice Distribution Summary Tax Line Identifier
35225  , p_source_59            IN NUMBER
35226 --Payment Type
35227  , p_source_60            IN VARCHAR2
35228  , p_source_60_meaning    IN VARCHAR2
35229 --Invoice Distribution Amount of the Payment Distribution
35230  , p_source_61            IN NUMBER
35231 --Business Flow Invoice Distribution Type
35232  , p_source_62            IN VARCHAR2
35233 --Business Flow Invoice Entity Code
35234  , p_source_63            IN VARCHAR2
35235 --Business Flow Invoice Distribution Identifier
35236  , p_source_64            IN NUMBER
35237 --Business Flow Invoice Identifier
35238  , p_source_65            IN NUMBER
35239 --Invoice Distribution Tax Distribution Identifier from Tax
35240  , p_source_66            IN NUMBER
35241 --Payment Exchange Date
35242  , p_source_114            IN DATE
35243 --Payment Exchange Rate
35244  , p_source_115            IN NUMBER
35245 --Payment Exchange Rate Type
35246  , p_source_116            IN VARCHAR2
35247 )
35248 IS
35249 
35250 l_component_type              VARCHAR2(80);
35251 l_component_code              VARCHAR2(30);
35252 l_component_type_code         VARCHAR2(1);
35253 l_component_appl_id           INTEGER;
35254 l_amb_context_code            VARCHAR2(30);
35255 l_entity_code                 VARCHAR2(30);
35256 l_event_class_code            VARCHAR2(30);
35257 l_ae_header_id                NUMBER;
35258 l_event_type_code             VARCHAR2(30);
35259 l_line_definition_code        VARCHAR2(30);
35260 l_line_definition_owner_code  VARCHAR2(1);
35261 --
35262 -- adr variables
35263 l_segment                     VARCHAR2(30);
35264 l_ccid                        NUMBER;
35265 l_adr_transaction_coa_id      NUMBER;
35266 l_adr_accounting_coa_id       NUMBER;
35267 l_adr_flexfield_segment_code  VARCHAR2(30);
35268 l_adr_flex_value_set_id       NUMBER;
35269 l_adr_value_type_code         VARCHAR2(30);
35270 l_adr_value_combination_id    NUMBER;
35271 l_adr_value_segment_code      VARCHAR2(30);
35272 
35273 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
35274 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
35275 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
35276 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
35277 
35278 -- 4262811 Variables ------------------------------------------------------------------------------------------
35279 l_entered_amt_idx             NUMBER;
35280 l_accted_amt_idx              NUMBER;
35281 l_acc_rev_flag                VARCHAR2(1);
35282 l_accrual_line_num            NUMBER;
35283 l_tmp_amt                     NUMBER;
35284 l_acc_rev_natural_side_code   VARCHAR2(1);
35285 
35286 l_num_entries                 NUMBER;
35290 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
35287 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
35288 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
35289 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
35291 l_recog_line_1                NUMBER;
35292 l_recog_line_2                NUMBER;
35293 
35294 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35295 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35296 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35297 
35298 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35299 
35300 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35301 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35302 
35303 ---------------------------------------------------------------------------------------------------------------
35304 
35305 
35306 --
35307 -- bulk performance
35308 --
35309 l_balance_type_code           VARCHAR2(1);
35310 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35311 l_log_module                  VARCHAR2(240);
35312 
35313 --
35314 -- Upgrade strategy
35315 --
35316 l_actual_upg_option           VARCHAR2(1);
35317 l_enc_upg_option           VARCHAR2(1);
35318 
35319 --
35320 BEGIN
35321 --
35322 IF g_log_enabled THEN
35323       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
35324 END IF;
35325 --
35326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35327 
35328       trace
35329          (p_msg      => 'BEGIN of AcctLineType_79'
35330          ,p_level    => C_LEVEL_PROCEDURE
35331          ,p_module   => l_log_module);
35332 
35333 END IF;
35334 --
35335 l_component_type             := 'AMB_JLT';
35336 l_component_code             := 'AP_DISCOUNT_CASH_PMT';
35337 l_component_type_code        := 'S';
35338 l_component_appl_id          :=  200;
35339 l_amb_context_code           := 'DEFAULT';
35340 l_entity_code                := 'AP_PAYMENTS';
35341 l_event_class_code           := 'PAYMENTS';
35342 l_event_type_code            := 'PAYMENTS_ALL';
35343 l_line_definition_owner_code := 'S';
35344 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
35345 --
35346 l_balance_type_code          := 'A';
35347 l_segment                     := NULL;
35348 l_ccid                        := NULL;
35349 l_adr_transaction_coa_id      := NULL;
35350 l_adr_accounting_coa_id       := NULL;
35351 l_adr_flexfield_segment_code  := NULL;
35352 l_adr_flex_value_set_id       := NULL;
35353 l_adr_value_type_code         := NULL;
35354 l_adr_value_combination_id    := NULL;
35355 l_adr_value_segment_code      := NULL;
35356 
35357 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
35358 l_bflow_class_code           := '';    -- 4219869 Business Flow
35359 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
35360 l_budgetary_control_flag     := 'N';
35361 
35362 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
35363 l_bflow_applied_to_amt       := NULL; -- 5132302
35364 l_entered_amt_idx            := NULL;          -- 4262811
35365 l_accted_amt_idx             := NULL;          -- 4262811
35366 l_acc_rev_flag               := NULL;          -- 4262811
35367 l_accrual_line_num           := NULL;          -- 4262811
35368 l_tmp_amt                    := NULL;          -- 4262811
35369 --
35370  
35371 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35372     l_balance_type_code <> 'B' THEN
35373 IF NVL(p_source_38,'
35374 ') <>  'CLEAR_CLEAR' AND 
35375 NVL(p_source_39,'
35376 ') =  'DISCOUNT' AND 
35377 NVL(p_source_60,'
35378 ') <>  'R'
35379  THEN 
35380 
35381    --
35382    XLA_AE_LINES_PKG.SetNewLine;
35383 
35384    p_balance_type_code          := l_balance_type_code;
35385    -- set the flag so later we will know whether the gain loss line needs to be created
35386    
35387    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35388      p_actual_flag :='A';
35389    END IF;
35390 
35391    --
35392    -- bulk performance
35393    --
35394    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35395                                       p_header_num   => 0); -- 4262811
35396    --
35397    -- set accounting line options
35398    --
35399    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35400            p_natural_side_code          => 'C'
35401          , p_gain_or_loss_flag          => 'N'
35402          , p_gl_transfer_mode_code      => 'S'
35403          , p_acct_entry_type_code       => 'A'
35404          , p_switch_side_flag           => 'Y'
35405          , p_merge_duplicate_code       => 'A'
35406          );
35407    --
35408    l_acc_rev_natural_side_code := 'D';  -- 4262811
35409    -- 
35410    --
35411    -- set accounting line type info
35412    --
35413    xla_ae_lines_pkg.SetAcctLineType
35414       (p_component_type             => l_component_type
35415       ,p_event_type_code            => l_event_type_code
35416       ,p_line_definition_owner_code => l_line_definition_owner_code
35417       ,p_line_definition_code       => l_line_definition_code
35418       ,p_accounting_line_code       => l_component_code
35422       ,p_entity_code                => l_entity_code
35419       ,p_accounting_line_type_code  => l_component_type_code
35420       ,p_accounting_line_appl_id    => l_component_appl_id
35421       ,p_amb_context_code           => l_amb_context_code
35423       ,p_event_class_code           => l_event_class_code);
35424    --
35425    -- set accounting class
35426    --
35427    xla_ae_lines_pkg.SetAcctClass(
35428            p_accounting_class_code  => 'DISCOUNT'
35429          , p_ae_header_id           => l_ae_header_id
35430          );
35431 
35432    --
35433    -- set rounding class
35434    --
35435    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35436                       'DISCOUNT';
35437 
35438    --
35439    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35440    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35441    --
35442    -- bulk performance
35443    --
35444    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35445 
35446    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35447       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35448 
35449    -- 4955764
35450    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35451       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35452 
35453    -- 4458381 Public Sector Enh
35454    
35455    --
35456    -- set accounting attributes for the line type
35457    --
35458    l_entered_amt_idx := 10;
35459    l_accted_amt_idx  := 15;
35460    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
35461    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35462    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
35463    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
35464    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
35465    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
35466    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
35467    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35468    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
35469    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
35470    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
35471    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
35472    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
35473    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35474    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
35475    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
35476    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
35477    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
35478    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
35479    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
35480    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
35481    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
35482    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
35483    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
35484    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
35485    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
35486    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
35487    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
35488    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
35489    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
35490    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
35491    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
35492    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
35493    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
35494    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
35495    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
35496    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
35497    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
35498    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
35499    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
35500    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
35501    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
35502    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
35503    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
35504    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
35505    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
35506    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
35507    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
35508    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
35509 
35510    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35511    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35512 
35513    ---------------------------------------------------------------------------------------------------------------
35514    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35515    ---------------------------------------------------------------------------------------------------------------
35519    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35516    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35517 
35518    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35520 
35521    IF xla_accounting_cache_pkg.GetValueChar
35522          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35523          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35524    AND l_bflow_method_code = 'PRIOR_ENTRY'
35525 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35526    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35527          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35528        )
35529    THEN
35530          xla_ae_lines_pkg.BflowUpgEntry
35531            (p_business_method_code    => l_bflow_method_code
35532            ,p_business_class_code     => l_bflow_class_code
35533            ,p_balance_type            => l_balance_type_code);
35534    ELSE
35535       NULL;
35536 -- No business flow processing for business flow method of NONE.
35537    END IF;
35538 
35539    --
35540    -- call analytical criteria
35541    --
35542    
35543    --
35544    -- call description
35545    --
35546    -- No description or it is inherited.
35547    --
35548    -- call ADRs
35549    -- Bug 4922099
35550    --
35551    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35552         (NVL(l_actual_upg_option, 'N') = 'O') OR
35553         (NVL(l_enc_upg_option, 'N') = 'O')
35554       )
35555    THEN
35556    NULL;
35557    --
35558    --
35559    
35560   l_ccid := AcctDerRule_21(
35561            p_application_id           => p_application_id
35562          , p_ae_header_id             => l_ae_header_id 
35563 , p_source_2 => p_source_2
35564 , p_source_3 => p_source_3
35565 , p_source_3_meaning => p_source_3_meaning
35566 , p_source_4 => p_source_4
35567 , p_source_4_meaning => p_source_4_meaning
35568 , p_source_17 => p_source_17
35569 , p_source_20 => p_source_20
35570 , p_source_20_meaning => p_source_20_meaning
35571 , p_source_27 => p_source_27
35572 , p_source_28 => p_source_28
35573 , p_source_29 => p_source_29
35574          , x_transaction_coa_id       => l_adr_transaction_coa_id
35575          , x_accounting_coa_id        => l_adr_accounting_coa_id
35576          , x_value_type_code          => l_adr_value_type_code
35577          , p_side                     => 'NA'
35578    );
35579 
35580    xla_ae_lines_pkg.set_ccid(
35581     p_code_combination_id          => l_ccid
35582   , p_value_type_code              => l_adr_value_type_code
35583   , p_transaction_coa_id           => l_adr_transaction_coa_id
35584   , p_accounting_coa_id            => l_adr_accounting_coa_id
35585   , p_adr_code                     => 'AP_DISCOUNT'
35586   , p_adr_type_code                => 'S'
35587   , p_component_type               => l_component_type
35588   , p_component_code               => l_component_code
35589   , p_component_type_code          => l_component_type_code
35590   , p_component_appl_id            => l_component_appl_id
35591   , p_amb_context_code             => l_amb_context_code
35592   , p_side                         => 'NA'
35593   );
35594 
35595 
35596    l_segment := AcctDerRule_13(
35597            p_application_id           => p_application_id
35598          , p_ae_header_id             => l_ae_header_id 
35599 , p_source_3 => p_source_3
35600 , p_source_3_meaning => p_source_3_meaning
35601 , p_source_4 => p_source_4
35602 , p_source_4_meaning => p_source_4_meaning
35603 , p_source_17 => p_source_17
35604          , x_transaction_coa_id       => l_adr_transaction_coa_id
35605          , x_accounting_coa_id        => l_adr_accounting_coa_id
35606          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35607          , x_flex_value_set_id        => l_adr_flex_value_set_id
35608          , x_value_type_code          => l_adr_value_type_code
35609          , x_value_combination_id     => l_adr_value_combination_id
35610          , x_value_segment_code       => l_adr_value_segment_code
35611          , p_side                     => 'NA'
35612          , p_override_seg_flag        => 'Y'
35613    );
35614 
35615    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35616 
35617       xla_ae_lines_pkg.set_segment(
35618           p_to_segment_code         => 'GL_BALANCING'
35619         , p_segment_value           => l_segment
35620         , p_from_segment_code       => l_adr_value_segment_code
35621         , p_from_combination_id     => l_adr_value_combination_id
35622         , p_value_type_code         => l_adr_value_type_code
35623         , p_transaction_coa_id      => l_adr_transaction_coa_id
35624         , p_accounting_coa_id       => l_adr_accounting_coa_id
35625         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35626         , p_flex_value_set_id       => l_adr_flex_value_set_id
35627         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
35628         , p_adr_type_code           => 'S'
35629         , p_component_type          => l_component_type
35630         , p_component_code          => l_component_code
35631         , p_component_type_code     => l_component_type_code
35632         , p_component_appl_id       => l_component_appl_id
35633         , p_amb_context_code        => l_amb_context_code
35634         , p_entity_code             => 'AP_PAYMENTS'
35638 
35635         , p_event_class_code        => 'PAYMENTS'
35636         , p_side                    => 'NA'
35637         );
35639   END IF;
35640 
35641    l_segment := AcctDerRule_2(
35642            p_application_id           => p_application_id
35643          , p_ae_header_id             => l_ae_header_id 
35644 , p_source_2 => p_source_2
35645 , p_source_3 => p_source_3
35646 , p_source_3_meaning => p_source_3_meaning
35647 , p_source_4 => p_source_4
35648 , p_source_4_meaning => p_source_4_meaning
35649          , x_transaction_coa_id       => l_adr_transaction_coa_id
35650          , x_accounting_coa_id        => l_adr_accounting_coa_id
35651          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35652          , x_flex_value_set_id        => l_adr_flex_value_set_id
35653          , x_value_type_code          => l_adr_value_type_code
35654          , x_value_combination_id     => l_adr_value_combination_id
35655          , x_value_segment_code       => l_adr_value_segment_code
35656          , p_side                     => 'NA'
35657          , p_override_seg_flag        => 'Y'
35658    );
35659 
35660    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35661 
35662       xla_ae_lines_pkg.set_segment(
35663           p_to_segment_code         => 'GL_ACCOUNT'
35664         , p_segment_value           => l_segment
35665         , p_from_segment_code       => l_adr_value_segment_code
35666         , p_from_combination_id     => l_adr_value_combination_id
35667         , p_value_type_code         => l_adr_value_type_code
35668         , p_transaction_coa_id      => l_adr_transaction_coa_id
35669         , p_accounting_coa_id       => l_adr_accounting_coa_id
35670         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35671         , p_flex_value_set_id       => l_adr_flex_value_set_id
35672         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
35673         , p_adr_type_code           => 'S'
35674         , p_component_type          => l_component_type
35675         , p_component_code          => l_component_code
35676         , p_component_type_code     => l_component_type_code
35677         , p_component_appl_id       => l_component_appl_id
35678         , p_amb_context_code        => l_amb_context_code
35679         , p_entity_code             => 'AP_PAYMENTS'
35680         , p_event_class_code        => 'PAYMENTS'
35681         , p_side                    => 'NA'
35682         );
35683 
35684   END IF;
35685 
35686    --
35687    --
35688    END IF;
35689    --
35690    -- Bug 4922099
35691    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35692           (NVL(l_enc_upg_option, 'N') = 'O')
35693         ) AND
35694         (l_bflow_method_code = 'PRIOR_ENTRY')
35695       )
35696    THEN
35697       IF
35698       --
35699       1 = 2
35700       --
35701       THEN
35702       xla_accounting_err_pkg.build_message
35703                                     (p_appli_s_name            => 'XLA'
35704                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35705                                     ,p_token_1                 => 'LINE_NUMBER'
35706                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35707                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35708                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35709                                                                              l_component_type
35710                                                                             ,l_component_code
35711                                                                             ,l_component_type_code
35712                                                                             ,l_component_appl_id
35713                                                                             ,l_amb_context_code
35714                                                                             ,l_entity_code
35715                                                                             ,l_event_class_code
35716                                                                            )
35717                                     ,p_token_3                 => 'OWNER'
35718                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35719                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35720                                                                           ,p_lookup_code    => l_component_type_code
35721                                                                          )
35722                                     ,p_token_4                 => 'PRODUCT_NAME'
35723                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35724                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35725                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35726                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35727                                     ,p_ae_header_id            =>  NULL
35728                                        );
35729 
35730         IF (C_LEVEL_ERROR>= g_log_level) THEN
35731                  trace
35732                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35736       END IF;
35733                       ,p_level    => C_LEVEL_ERROR
35734                       ,p_module   => l_log_module);
35735         END IF;
35737    END IF;
35738    --
35739    --
35740    ------------------------------------------------------------------------------------------------
35741    -- 4219869 Business Flow
35742    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35743    -- Prior Entry.  Currently, the following code is always generated.
35744    ------------------------------------------------------------------------------------------------
35745    XLA_AE_LINES_PKG.ValidateCurrentLine;
35746 
35747    ------------------------------------------------------------------------------------
35748    -- 4219869 Business Flow
35749    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35750    ------------------------------------------------------------------------------------
35751    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35752 
35753    ----------------------------------------------------------------------------------
35754    -- 4219869 Business Flow
35755    -- Update journal entry status -- Need to generate this within IF <condition>
35756    ----------------------------------------------------------------------------------
35757    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35758          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35759          ,p_balance_type_code => l_balance_type_code
35760          );
35761 
35762    -------------------------------------------------------------------------------------------
35763    -- 4262811 - Generate the Accrual Reversal lines
35764    -------------------------------------------------------------------------------------------
35765    BEGIN
35766       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35767                               (g_array_event(p_event_id).array_value_num('header_index'));
35768       IF l_acc_rev_flag IS NULL THEN
35769          l_acc_rev_flag := 'N';
35770       END IF;
35771    EXCEPTION
35772       WHEN OTHERS THEN
35773          l_acc_rev_flag := 'N';
35774    END;
35775    --
35776    IF (l_acc_rev_flag = 'Y') THEN
35777 
35778        -- 4645092  ------------------------------------------------------------------------------
35779        -- To allow MPA report to determine if it should generate report process
35780        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35781        ------------------------------------------------------------------------------------------
35782 
35783        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35784        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35785    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
35786    -- call ADRs
35787    -- Bug 4922099
35788    --
35789    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35790         (NVL(l_actual_upg_option, 'N') = 'O') OR
35791         (NVL(l_enc_upg_option, 'N') = 'O')
35792       )
35793    THEN
35794    NULL;
35795    --
35796    --
35797    
35798   l_ccid := AcctDerRule_21(
35799            p_application_id           => p_application_id
35800          , p_ae_header_id             => l_ae_header_id 
35801 , p_source_2 => p_source_2
35802 , p_source_3 => p_source_3
35803 , p_source_3_meaning => p_source_3_meaning
35804 , p_source_4 => p_source_4
35805 , p_source_4_meaning => p_source_4_meaning
35806 , p_source_17 => p_source_17
35807 , p_source_20 => p_source_20
35808 , p_source_20_meaning => p_source_20_meaning
35809 , p_source_27 => p_source_27
35810 , p_source_28 => p_source_28
35811 , p_source_29 => p_source_29
35812          , x_transaction_coa_id       => l_adr_transaction_coa_id
35813          , x_accounting_coa_id        => l_adr_accounting_coa_id
35814          , x_value_type_code          => l_adr_value_type_code
35815          , p_side                     => 'NA'
35816    );
35817 
35818    xla_ae_lines_pkg.set_ccid(
35819     p_code_combination_id          => l_ccid
35820   , p_value_type_code              => l_adr_value_type_code
35821   , p_transaction_coa_id           => l_adr_transaction_coa_id
35822   , p_accounting_coa_id            => l_adr_accounting_coa_id
35823   , p_adr_code                     => 'AP_DISCOUNT'
35824   , p_adr_type_code                => 'S'
35825   , p_component_type               => l_component_type
35826   , p_component_code               => l_component_code
35827   , p_component_type_code          => l_component_type_code
35828   , p_component_appl_id            => l_component_appl_id
35829   , p_amb_context_code             => l_amb_context_code
35830   , p_side                         => 'NA'
35831   );
35832 
35833 
35834    l_segment := AcctDerRule_13(
35835            p_application_id           => p_application_id
35836          , p_ae_header_id             => l_ae_header_id 
35837 , p_source_3 => p_source_3
35838 , p_source_3_meaning => p_source_3_meaning
35839 , p_source_4 => p_source_4
35840 , p_source_4_meaning => p_source_4_meaning
35841 , p_source_17 => p_source_17
35842          , x_transaction_coa_id       => l_adr_transaction_coa_id
35843          , x_accounting_coa_id        => l_adr_accounting_coa_id
35844          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35845          , x_flex_value_set_id        => l_adr_flex_value_set_id
35846          , x_value_type_code          => l_adr_value_type_code
35850          , p_override_seg_flag        => 'Y'
35847          , x_value_combination_id     => l_adr_value_combination_id
35848          , x_value_segment_code       => l_adr_value_segment_code
35849          , p_side                     => 'NA'
35851    );
35852 
35853    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35854 
35855       xla_ae_lines_pkg.set_segment(
35856           p_to_segment_code         => 'GL_BALANCING'
35857         , p_segment_value           => l_segment
35858         , p_from_segment_code       => l_adr_value_segment_code
35859         , p_from_combination_id     => l_adr_value_combination_id
35860         , p_value_type_code         => l_adr_value_type_code
35861         , p_transaction_coa_id      => l_adr_transaction_coa_id
35862         , p_accounting_coa_id       => l_adr_accounting_coa_id
35863         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35864         , p_flex_value_set_id       => l_adr_flex_value_set_id
35865         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
35866         , p_adr_type_code           => 'S'
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_entity_code             => 'AP_PAYMENTS'
35873         , p_event_class_code        => 'PAYMENTS'
35874         , p_side                    => 'NA'
35875         );
35876 
35877   END IF;
35878 
35879    l_segment := AcctDerRule_2(
35880            p_application_id           => p_application_id
35881          , p_ae_header_id             => l_ae_header_id 
35882 , p_source_2 => p_source_2
35883 , p_source_3 => p_source_3
35884 , p_source_3_meaning => p_source_3_meaning
35885 , p_source_4 => p_source_4
35886 , p_source_4_meaning => p_source_4_meaning
35887          , x_transaction_coa_id       => l_adr_transaction_coa_id
35888          , x_accounting_coa_id        => l_adr_accounting_coa_id
35889          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35890          , x_flex_value_set_id        => l_adr_flex_value_set_id
35891          , x_value_type_code          => l_adr_value_type_code
35892          , x_value_combination_id     => l_adr_value_combination_id
35893          , x_value_segment_code       => l_adr_value_segment_code
35894          , p_side                     => 'NA'
35895          , p_override_seg_flag        => 'Y'
35896    );
35897 
35898    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35899 
35900       xla_ae_lines_pkg.set_segment(
35901           p_to_segment_code         => 'GL_ACCOUNT'
35902         , p_segment_value           => l_segment
35903         , p_from_segment_code       => l_adr_value_segment_code
35904         , p_from_combination_id     => l_adr_value_combination_id
35905         , p_value_type_code         => l_adr_value_type_code
35906         , p_transaction_coa_id      => l_adr_transaction_coa_id
35907         , p_accounting_coa_id       => l_adr_accounting_coa_id
35908         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35909         , p_flex_value_set_id       => l_adr_flex_value_set_id
35910         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
35911         , p_adr_type_code           => 'S'
35912         , p_component_type          => l_component_type
35913         , p_component_code          => l_component_code
35914         , p_component_type_code     => l_component_type_code
35915         , p_component_appl_id       => l_component_appl_id
35916         , p_amb_context_code        => l_amb_context_code
35917         , p_entity_code             => 'AP_PAYMENTS'
35918         , p_event_class_code        => 'PAYMENTS'
35919         , p_side                    => 'NA'
35920         );
35921 
35922   END IF;
35923 
35924    --
35925    --
35926    END IF;
35927 
35928        --
35929        -- Update the line information that should be overwritten
35930        --
35931        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35932                                          p_header_num   => 1);
35933        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35934 
35935        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35936 
35937        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35938           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35939        END IF;
35940 
35941       --
35942       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35943       --
35944       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35945           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35946       ELSE
35947           ---------------------------------------------------------------------------------------------------
35948           -- 4262811a Switch Sign
35949           ---------------------------------------------------------------------------------------------------
35950           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35951           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35955           -- 5132302
35952                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35953           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35954                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35956           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35957                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35958 
35959       END IF;
35960 
35961       -- 4955764
35962       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35963       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35964 
35965 
35966       XLA_AE_LINES_PKG.ValidateCurrentLine;
35967       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35968 
35969       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35970                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35971                ,p_balance_type_code => l_balance_type_code);
35972 
35973    END IF;
35974 
35975    -----------------------------------------------------------------------------------------
35976    -- 4262811 Multiperiod Accounting
35977    -----------------------------------------------------------------------------------------
35978      -- No MPA option is assigned.
35979 
35980 
35981 END IF;
35982 END IF;
35983 --
35984 
35985 --
35986 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35987    trace
35988       (p_msg      => 'END of AcctLineType_79'
35989       ,p_level    => C_LEVEL_PROCEDURE
35990       ,p_module   => l_log_module);
35991 END IF;
35992 --
35993 EXCEPTION
35994   WHEN xla_exceptions_pkg.application_exception THEN
35995       RAISE;
35996   WHEN OTHERS THEN
35997        xla_exceptions_pkg.raise_message
35998            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_79');
35999 END AcctLineType_79;
36000 --
36001 
36002 ---------------------------------------
36003 --
36004 -- PRIVATE FUNCTION
36005 --         AcctLineType_80
36006 --
36007 ---------------------------------------
36008 PROCEDURE AcctLineType_80 (
36009   p_application_id        IN NUMBER
36010  ,p_event_id              IN NUMBER
36011  ,p_calculate_acctd_flag  IN VARCHAR2
36012  ,p_calculate_g_l_flag    IN VARCHAR2
36013  ,p_actual_flag           IN OUT VARCHAR2
36014  ,p_balance_type_code     OUT VARCHAR2
36015  ,p_gain_or_loss_ref      OUT VARCHAR2
36016  
36017 --System Discount Account
36018  , p_source_2            IN NUMBER
36019 --Discount Distribution Method
36020  , p_source_3            IN VARCHAR2
36021  , p_source_3_meaning    IN VARCHAR2
36022 --Automatic Offsets Value
36023  , p_source_4            IN VARCHAR2
36024  , p_source_4_meaning    IN VARCHAR2
36025 --Payment Distribution (Payment Rate) Ledger Amount
36026  , p_source_9            IN NUMBER
36027 --Invoice Distribution Account
36028  , p_source_17            IN NUMBER
36029 --Invoice Distribution Type
36030  , p_source_20            IN VARCHAR2
36031  , p_source_20_meaning    IN VARCHAR2
36032 --Discount Account
36033  , p_source_27            IN NUMBER
36034 --Purchase Order Charge Account
36035  , p_source_28            IN NUMBER
36036 --Purchase Order Variance Account
36037  , p_source_29            IN NUMBER
36038 --When to Account for Payment Option
36039  , p_source_38            IN VARCHAR2
36040 --Payment Distribution Type
36041  , p_source_39            IN VARCHAR2
36042  , p_source_39_meaning    IN VARCHAR2
36043 --Accounting Reversal Indicator
36044  , p_source_40            IN VARCHAR2
36045 --Payment Distribution Amount
36046  , p_source_41            IN NUMBER
36047 --Business Flow Accounts Payable Application Identifier
36048  , p_source_42            IN NUMBER
36049 --Payment Distribution Identifier
36050  , p_source_47            IN NUMBER
36051 --Distribution Link Type
36052  , p_source_48            IN VARCHAR2
36053 --Payment Currency Code
36054  , p_source_49            IN VARCHAR2
36055 --Override Accounted Amount Indicator
36056  , p_source_53            IN VARCHAR2
36057  , p_source_53_meaning    IN VARCHAR2
36058 --Payment Supplier Identifier
36059  , p_source_54            IN NUMBER
36060 --Payment Supplier Site Identifier
36061  , p_source_55            IN NUMBER
36062 --Third Party Type
36063  , p_source_56            IN VARCHAR2
36064 --Payment Distribution Reversed Identifier
36065  , p_source_57            IN NUMBER
36066 --Invoice Distribution Tax Line Identifier
36067  , p_source_58            IN NUMBER
36068 --Invoice Distribution Summary Tax Line Identifier
36069  , p_source_59            IN NUMBER
36070 --Payment Type
36071  , p_source_60            IN VARCHAR2
36072  , p_source_60_meaning    IN VARCHAR2
36073 --Business Flow Invoice Distribution Type
36074  , p_source_62            IN VARCHAR2
36075 --Business Flow Invoice Entity Code
36076  , p_source_63            IN VARCHAR2
36077 --Business Flow Invoice Distribution Identifier
36078  , p_source_64            IN NUMBER
36079 --Business Flow Invoice Identifier
36080  , p_source_65            IN NUMBER
36081 --Invoice Distribution Tax Distribution Identifier from Tax
36082  , p_source_66            IN NUMBER
36083 --Payment Exchange Date
36084  , p_source_114            IN DATE
36085 --Payment Exchange Rate
36089 )
36086  , p_source_115            IN NUMBER
36087 --Payment Exchange Rate Type
36088  , p_source_116            IN VARCHAR2
36090 IS
36091 
36092 l_component_type              VARCHAR2(80);
36093 l_component_code              VARCHAR2(30);
36094 l_component_type_code         VARCHAR2(1);
36095 l_component_appl_id           INTEGER;
36096 l_amb_context_code            VARCHAR2(30);
36097 l_entity_code                 VARCHAR2(30);
36098 l_event_class_code            VARCHAR2(30);
36099 l_ae_header_id                NUMBER;
36100 l_event_type_code             VARCHAR2(30);
36101 l_line_definition_code        VARCHAR2(30);
36102 l_line_definition_owner_code  VARCHAR2(1);
36103 --
36104 -- adr variables
36105 l_segment                     VARCHAR2(30);
36106 l_ccid                        NUMBER;
36107 l_adr_transaction_coa_id      NUMBER;
36108 l_adr_accounting_coa_id       NUMBER;
36109 l_adr_flexfield_segment_code  VARCHAR2(30);
36110 l_adr_flex_value_set_id       NUMBER;
36111 l_adr_value_type_code         VARCHAR2(30);
36112 l_adr_value_combination_id    NUMBER;
36113 l_adr_value_segment_code      VARCHAR2(30);
36114 
36115 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
36116 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
36117 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
36118 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
36119 
36120 -- 4262811 Variables ------------------------------------------------------------------------------------------
36121 l_entered_amt_idx             NUMBER;
36122 l_accted_amt_idx              NUMBER;
36123 l_acc_rev_flag                VARCHAR2(1);
36124 l_accrual_line_num            NUMBER;
36125 l_tmp_amt                     NUMBER;
36126 l_acc_rev_natural_side_code   VARCHAR2(1);
36127 
36128 l_num_entries                 NUMBER;
36129 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
36130 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
36131 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
36132 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
36133 l_recog_line_1                NUMBER;
36134 l_recog_line_2                NUMBER;
36135 
36136 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
36137 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
36138 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
36139 
36140 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36141 
36142 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
36143 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
36144 
36145 ---------------------------------------------------------------------------------------------------------------
36146 
36147 
36148 --
36149 -- bulk performance
36150 --
36151 l_balance_type_code           VARCHAR2(1);
36152 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
36153 l_log_module                  VARCHAR2(240);
36154 
36155 --
36156 -- Upgrade strategy
36157 --
36158 l_actual_upg_option           VARCHAR2(1);
36159 l_enc_upg_option           VARCHAR2(1);
36160 
36161 --
36162 BEGIN
36163 --
36164 IF g_log_enabled THEN
36165       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
36166 END IF;
36167 --
36168 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36169 
36170       trace
36171          (p_msg      => 'BEGIN of AcctLineType_80'
36172          ,p_level    => C_LEVEL_PROCEDURE
36173          ,p_module   => l_log_module);
36174 
36175 END IF;
36176 --
36177 l_component_type             := 'AMB_JLT';
36178 l_component_code             := 'AP_DISCOUNT_CASH_REF';
36179 l_component_type_code        := 'S';
36180 l_component_appl_id          :=  200;
36181 l_amb_context_code           := 'DEFAULT';
36182 l_entity_code                := 'AP_PAYMENTS';
36183 l_event_class_code           := 'REFUNDS';
36184 l_event_type_code            := 'REFUNDS_ALL';
36185 l_line_definition_owner_code := 'S';
36186 l_line_definition_code       := 'CASH_REFUNDS_ALL';
36187 --
36188 l_balance_type_code          := 'A';
36189 l_segment                     := NULL;
36190 l_ccid                        := NULL;
36191 l_adr_transaction_coa_id      := NULL;
36192 l_adr_accounting_coa_id       := NULL;
36193 l_adr_flexfield_segment_code  := NULL;
36194 l_adr_flex_value_set_id       := NULL;
36195 l_adr_value_type_code         := NULL;
36196 l_adr_value_combination_id    := NULL;
36197 l_adr_value_segment_code      := NULL;
36198 
36199 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
36200 l_bflow_class_code           := '';    -- 4219869 Business Flow
36201 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
36202 l_budgetary_control_flag     := 'N';
36203 
36204 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
36205 l_bflow_applied_to_amt       := NULL; -- 5132302
36206 l_entered_amt_idx            := NULL;          -- 4262811
36207 l_accted_amt_idx             := NULL;          -- 4262811
36208 l_acc_rev_flag               := NULL;          -- 4262811
36209 l_accrual_line_num           := NULL;          -- 4262811
36210 l_tmp_amt                    := NULL;          -- 4262811
36211 --
36212  
36213 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36214     l_balance_type_code <> 'B' THEN
36218 ') =  'DISCOUNT' AND 
36215 IF NVL(p_source_38,'
36216 ') <>  'CLEAR_CLEAR' AND 
36217 NVL(p_source_39,'
36219 NVL(p_source_60,'
36220 ') =  'R'
36221  THEN 
36222 
36223    --
36224    XLA_AE_LINES_PKG.SetNewLine;
36225 
36226    p_balance_type_code          := l_balance_type_code;
36227    -- set the flag so later we will know whether the gain loss line needs to be created
36228    
36229    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36230      p_actual_flag :='A';
36231    END IF;
36232 
36233    --
36234    -- bulk performance
36235    --
36236    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36237                                       p_header_num   => 0); -- 4262811
36238    --
36239    -- set accounting line options
36240    --
36241    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36242            p_natural_side_code          => 'C'
36243          , p_gain_or_loss_flag          => 'N'
36244          , p_gl_transfer_mode_code      => 'S'
36245          , p_acct_entry_type_code       => 'A'
36246          , p_switch_side_flag           => 'Y'
36247          , p_merge_duplicate_code       => 'A'
36248          );
36249    --
36250    l_acc_rev_natural_side_code := 'D';  -- 4262811
36251    -- 
36252    --
36253    -- set accounting line type info
36254    --
36255    xla_ae_lines_pkg.SetAcctLineType
36256       (p_component_type             => l_component_type
36257       ,p_event_type_code            => l_event_type_code
36258       ,p_line_definition_owner_code => l_line_definition_owner_code
36259       ,p_line_definition_code       => l_line_definition_code
36260       ,p_accounting_line_code       => l_component_code
36261       ,p_accounting_line_type_code  => l_component_type_code
36262       ,p_accounting_line_appl_id    => l_component_appl_id
36263       ,p_amb_context_code           => l_amb_context_code
36264       ,p_entity_code                => l_entity_code
36265       ,p_event_class_code           => l_event_class_code);
36266    --
36267    -- set accounting class
36268    --
36269    xla_ae_lines_pkg.SetAcctClass(
36270            p_accounting_class_code  => 'DISCOUNT'
36271          , p_ae_header_id           => l_ae_header_id
36272          );
36273 
36274    --
36275    -- set rounding class
36276    --
36277    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36278                       'DISCOUNT';
36279 
36280    --
36281    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36282    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36283    --
36284    -- bulk performance
36285    --
36286    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36287 
36288    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36289       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36290 
36291    -- 4955764
36292    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36293       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36294 
36295    -- 4458381 Public Sector Enh
36296    
36297    --
36298    -- set accounting attributes for the line type
36299    --
36300    l_entered_amt_idx := 9;
36301    l_accted_amt_idx  := 14;
36302    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
36303    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36304    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
36305    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
36306    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
36307    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36308    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
36309    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
36310    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
36311    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
36312    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
36313    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36314    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
36315    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
36316    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
36317    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
36318    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
36319    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
36320    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
36321    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
36322    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
36323    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
36324    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
36325    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
36326    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
36327    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
36328    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
36329    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
36330    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
36334    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
36331    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
36332    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
36333    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
36335    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
36336    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
36337    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
36338    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
36339    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
36340    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
36341    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
36342    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
36343    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
36344    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
36345    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
36346    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
36347    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
36348    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
36349 
36350    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36351    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36352 
36353    ---------------------------------------------------------------------------------------------------------------
36354    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36355    ---------------------------------------------------------------------------------------------------------------
36356    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36357 
36358    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36359    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36360 
36361    IF xla_accounting_cache_pkg.GetValueChar
36362          (p_source_code         => 'LEDGER_CATEGORY_CODE'
36363          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36364    AND l_bflow_method_code = 'PRIOR_ENTRY'
36365 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36366    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36367          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36368        )
36369    THEN
36370          xla_ae_lines_pkg.BflowUpgEntry
36371            (p_business_method_code    => l_bflow_method_code
36372            ,p_business_class_code     => l_bflow_class_code
36373            ,p_balance_type            => l_balance_type_code);
36374    ELSE
36375       NULL;
36376 -- No business flow processing for business flow method of NONE.
36377    END IF;
36378 
36379    --
36380    -- call analytical criteria
36381    --
36382    
36383    --
36384    -- call description
36385    --
36386    -- No description or it is inherited.
36387    --
36388    -- call ADRs
36389    -- Bug 4922099
36390    --
36391    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36392         (NVL(l_actual_upg_option, 'N') = 'O') OR
36393         (NVL(l_enc_upg_option, 'N') = 'O')
36394       )
36395    THEN
36396    NULL;
36397    --
36398    --
36399    
36400   l_ccid := AcctDerRule_21(
36401            p_application_id           => p_application_id
36402          , p_ae_header_id             => l_ae_header_id 
36403 , p_source_2 => p_source_2
36404 , p_source_3 => p_source_3
36405 , p_source_3_meaning => p_source_3_meaning
36406 , p_source_4 => p_source_4
36407 , p_source_4_meaning => p_source_4_meaning
36408 , p_source_17 => p_source_17
36409 , p_source_20 => p_source_20
36410 , p_source_20_meaning => p_source_20_meaning
36411 , p_source_27 => p_source_27
36412 , p_source_28 => p_source_28
36413 , p_source_29 => p_source_29
36414          , x_transaction_coa_id       => l_adr_transaction_coa_id
36415          , x_accounting_coa_id        => l_adr_accounting_coa_id
36416          , x_value_type_code          => l_adr_value_type_code
36417          , p_side                     => 'NA'
36418    );
36419 
36420    xla_ae_lines_pkg.set_ccid(
36421     p_code_combination_id          => l_ccid
36422   , p_value_type_code              => l_adr_value_type_code
36423   , p_transaction_coa_id           => l_adr_transaction_coa_id
36424   , p_accounting_coa_id            => l_adr_accounting_coa_id
36425   , p_adr_code                     => 'AP_DISCOUNT'
36426   , p_adr_type_code                => 'S'
36427   , p_component_type               => l_component_type
36428   , p_component_code               => l_component_code
36429   , p_component_type_code          => l_component_type_code
36430   , p_component_appl_id            => l_component_appl_id
36431   , p_amb_context_code             => l_amb_context_code
36432   , p_side                         => 'NA'
36433   );
36434 
36435 
36436    l_segment := AcctDerRule_13(
36437            p_application_id           => p_application_id
36438          , p_ae_header_id             => l_ae_header_id 
36439 , p_source_3 => p_source_3
36440 , p_source_3_meaning => p_source_3_meaning
36441 , p_source_4 => p_source_4
36442 , p_source_4_meaning => p_source_4_meaning
36443 , p_source_17 => p_source_17
36444          , x_transaction_coa_id       => l_adr_transaction_coa_id
36448          , x_value_type_code          => l_adr_value_type_code
36445          , x_accounting_coa_id        => l_adr_accounting_coa_id
36446          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36447          , x_flex_value_set_id        => l_adr_flex_value_set_id
36449          , x_value_combination_id     => l_adr_value_combination_id
36450          , x_value_segment_code       => l_adr_value_segment_code
36451          , p_side                     => 'NA'
36452          , p_override_seg_flag        => 'Y'
36453    );
36454 
36455    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36456 
36457       xla_ae_lines_pkg.set_segment(
36458           p_to_segment_code         => 'GL_BALANCING'
36459         , p_segment_value           => l_segment
36460         , p_from_segment_code       => l_adr_value_segment_code
36461         , p_from_combination_id     => l_adr_value_combination_id
36462         , p_value_type_code         => l_adr_value_type_code
36463         , p_transaction_coa_id      => l_adr_transaction_coa_id
36464         , p_accounting_coa_id       => l_adr_accounting_coa_id
36465         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36466         , p_flex_value_set_id       => l_adr_flex_value_set_id
36467         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
36468         , p_adr_type_code           => 'S'
36469         , p_component_type          => l_component_type
36470         , p_component_code          => l_component_code
36471         , p_component_type_code     => l_component_type_code
36472         , p_component_appl_id       => l_component_appl_id
36473         , p_amb_context_code        => l_amb_context_code
36474         , p_entity_code             => 'AP_PAYMENTS'
36475         , p_event_class_code        => 'REFUNDS'
36476         , p_side                    => 'NA'
36477         );
36478 
36479   END IF;
36480 
36481    l_segment := AcctDerRule_2(
36482            p_application_id           => p_application_id
36483          , p_ae_header_id             => l_ae_header_id 
36484 , p_source_2 => p_source_2
36485 , p_source_3 => p_source_3
36486 , p_source_3_meaning => p_source_3_meaning
36487 , p_source_4 => p_source_4
36488 , p_source_4_meaning => p_source_4_meaning
36489          , x_transaction_coa_id       => l_adr_transaction_coa_id
36490          , x_accounting_coa_id        => l_adr_accounting_coa_id
36491          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36492          , x_flex_value_set_id        => l_adr_flex_value_set_id
36493          , x_value_type_code          => l_adr_value_type_code
36494          , x_value_combination_id     => l_adr_value_combination_id
36495          , x_value_segment_code       => l_adr_value_segment_code
36496          , p_side                     => 'NA'
36497          , p_override_seg_flag        => 'Y'
36498    );
36499 
36500    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36501 
36502       xla_ae_lines_pkg.set_segment(
36503           p_to_segment_code         => 'GL_ACCOUNT'
36504         , p_segment_value           => l_segment
36505         , p_from_segment_code       => l_adr_value_segment_code
36506         , p_from_combination_id     => l_adr_value_combination_id
36507         , p_value_type_code         => l_adr_value_type_code
36508         , p_transaction_coa_id      => l_adr_transaction_coa_id
36509         , p_accounting_coa_id       => l_adr_accounting_coa_id
36510         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36511         , p_flex_value_set_id       => l_adr_flex_value_set_id
36512         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
36513         , p_adr_type_code           => 'S'
36514         , p_component_type          => l_component_type
36515         , p_component_code          => l_component_code
36516         , p_component_type_code     => l_component_type_code
36517         , p_component_appl_id       => l_component_appl_id
36518         , p_amb_context_code        => l_amb_context_code
36519         , p_entity_code             => 'AP_PAYMENTS'
36520         , p_event_class_code        => 'REFUNDS'
36521         , p_side                    => 'NA'
36522         );
36523 
36524   END IF;
36525 
36526    --
36527    --
36528    END IF;
36529    --
36530    -- Bug 4922099
36531    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36532           (NVL(l_enc_upg_option, 'N') = 'O')
36533         ) AND
36534         (l_bflow_method_code = 'PRIOR_ENTRY')
36535       )
36536    THEN
36537       IF
36538       --
36539       1 = 2
36540       --
36541       THEN
36542       xla_accounting_err_pkg.build_message
36543                                     (p_appli_s_name            => 'XLA'
36544                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36545                                     ,p_token_1                 => 'LINE_NUMBER'
36546                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36547                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36548                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36549                                                                              l_component_type
36550                                                                             ,l_component_code
36551                                                                             ,l_component_type_code
36552                                                                             ,l_component_appl_id
36556                                                                            )
36553                                                                             ,l_amb_context_code
36554                                                                             ,l_entity_code
36555                                                                             ,l_event_class_code
36557                                     ,p_token_3                 => 'OWNER'
36558                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36559                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36560                                                                           ,p_lookup_code    => l_component_type_code
36561                                                                          )
36562                                     ,p_token_4                 => 'PRODUCT_NAME'
36563                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36564                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36565                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36566                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36567                                     ,p_ae_header_id            =>  NULL
36568                                        );
36569 
36570         IF (C_LEVEL_ERROR>= g_log_level) THEN
36571                  trace
36572                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36573                       ,p_level    => C_LEVEL_ERROR
36574                       ,p_module   => l_log_module);
36575         END IF;
36576       END IF;
36577    END IF;
36578    --
36579    --
36580    ------------------------------------------------------------------------------------------------
36581    -- 4219869 Business Flow
36582    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36583    -- Prior Entry.  Currently, the following code is always generated.
36584    ------------------------------------------------------------------------------------------------
36585    XLA_AE_LINES_PKG.ValidateCurrentLine;
36586 
36587    ------------------------------------------------------------------------------------
36588    -- 4219869 Business Flow
36589    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36590    ------------------------------------------------------------------------------------
36591    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36592 
36593    ----------------------------------------------------------------------------------
36594    -- 4219869 Business Flow
36595    -- Update journal entry status -- Need to generate this within IF <condition>
36596    ----------------------------------------------------------------------------------
36597    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36598          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36599          ,p_balance_type_code => l_balance_type_code
36600          );
36601 
36602    -------------------------------------------------------------------------------------------
36603    -- 4262811 - Generate the Accrual Reversal lines
36604    -------------------------------------------------------------------------------------------
36605    BEGIN
36606       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36607                               (g_array_event(p_event_id).array_value_num('header_index'));
36608       IF l_acc_rev_flag IS NULL THEN
36609          l_acc_rev_flag := 'N';
36610       END IF;
36611    EXCEPTION
36612       WHEN OTHERS THEN
36613          l_acc_rev_flag := 'N';
36614    END;
36615    --
36616    IF (l_acc_rev_flag = 'Y') THEN
36617 
36618        -- 4645092  ------------------------------------------------------------------------------
36619        -- To allow MPA report to determine if it should generate report process
36620        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36621        ------------------------------------------------------------------------------------------
36622 
36623        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36624        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36625    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
36626    -- call ADRs
36627    -- Bug 4922099
36628    --
36629    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36630         (NVL(l_actual_upg_option, 'N') = 'O') OR
36631         (NVL(l_enc_upg_option, 'N') = 'O')
36632       )
36633    THEN
36634    NULL;
36635    --
36636    --
36637    
36638   l_ccid := AcctDerRule_21(
36639            p_application_id           => p_application_id
36640          , p_ae_header_id             => l_ae_header_id 
36641 , p_source_2 => p_source_2
36642 , p_source_3 => p_source_3
36643 , p_source_3_meaning => p_source_3_meaning
36644 , p_source_4 => p_source_4
36645 , p_source_4_meaning => p_source_4_meaning
36646 , p_source_17 => p_source_17
36647 , p_source_20 => p_source_20
36648 , p_source_20_meaning => p_source_20_meaning
36649 , p_source_27 => p_source_27
36650 , p_source_28 => p_source_28
36651 , p_source_29 => p_source_29
36652          , x_transaction_coa_id       => l_adr_transaction_coa_id
36653          , x_accounting_coa_id        => l_adr_accounting_coa_id
36654          , x_value_type_code          => l_adr_value_type_code
36658    xla_ae_lines_pkg.set_ccid(
36655          , p_side                     => 'NA'
36656    );
36657 
36659     p_code_combination_id          => l_ccid
36660   , p_value_type_code              => l_adr_value_type_code
36661   , p_transaction_coa_id           => l_adr_transaction_coa_id
36662   , p_accounting_coa_id            => l_adr_accounting_coa_id
36663   , p_adr_code                     => 'AP_DISCOUNT'
36664   , p_adr_type_code                => 'S'
36665   , p_component_type               => l_component_type
36666   , p_component_code               => l_component_code
36667   , p_component_type_code          => l_component_type_code
36668   , p_component_appl_id            => l_component_appl_id
36669   , p_amb_context_code             => l_amb_context_code
36670   , p_side                         => 'NA'
36671   );
36672 
36673 
36674    l_segment := AcctDerRule_13(
36675            p_application_id           => p_application_id
36676          , p_ae_header_id             => l_ae_header_id 
36677 , p_source_3 => p_source_3
36678 , p_source_3_meaning => p_source_3_meaning
36679 , p_source_4 => p_source_4
36680 , p_source_4_meaning => p_source_4_meaning
36681 , p_source_17 => p_source_17
36682          , x_transaction_coa_id       => l_adr_transaction_coa_id
36683          , x_accounting_coa_id        => l_adr_accounting_coa_id
36684          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36685          , x_flex_value_set_id        => l_adr_flex_value_set_id
36686          , x_value_type_code          => l_adr_value_type_code
36687          , x_value_combination_id     => l_adr_value_combination_id
36688          , x_value_segment_code       => l_adr_value_segment_code
36689          , p_side                     => 'NA'
36690          , p_override_seg_flag        => 'Y'
36691    );
36692 
36693    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36694 
36695       xla_ae_lines_pkg.set_segment(
36696           p_to_segment_code         => 'GL_BALANCING'
36697         , p_segment_value           => l_segment
36698         , p_from_segment_code       => l_adr_value_segment_code
36699         , p_from_combination_id     => l_adr_value_combination_id
36700         , p_value_type_code         => l_adr_value_type_code
36701         , p_transaction_coa_id      => l_adr_transaction_coa_id
36702         , p_accounting_coa_id       => l_adr_accounting_coa_id
36703         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36704         , p_flex_value_set_id       => l_adr_flex_value_set_id
36705         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
36706         , p_adr_type_code           => 'S'
36707         , p_component_type          => l_component_type
36708         , p_component_code          => l_component_code
36709         , p_component_type_code     => l_component_type_code
36710         , p_component_appl_id       => l_component_appl_id
36711         , p_amb_context_code        => l_amb_context_code
36712         , p_entity_code             => 'AP_PAYMENTS'
36713         , p_event_class_code        => 'REFUNDS'
36714         , p_side                    => 'NA'
36715         );
36716 
36717   END IF;
36718 
36719    l_segment := AcctDerRule_2(
36720            p_application_id           => p_application_id
36721          , p_ae_header_id             => l_ae_header_id 
36722 , p_source_2 => p_source_2
36723 , p_source_3 => p_source_3
36724 , p_source_3_meaning => p_source_3_meaning
36725 , p_source_4 => p_source_4
36726 , p_source_4_meaning => p_source_4_meaning
36727          , x_transaction_coa_id       => l_adr_transaction_coa_id
36728          , x_accounting_coa_id        => l_adr_accounting_coa_id
36729          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36730          , x_flex_value_set_id        => l_adr_flex_value_set_id
36731          , x_value_type_code          => l_adr_value_type_code
36732          , x_value_combination_id     => l_adr_value_combination_id
36733          , x_value_segment_code       => l_adr_value_segment_code
36734          , p_side                     => 'NA'
36735          , p_override_seg_flag        => 'Y'
36736    );
36737 
36738    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36739 
36740       xla_ae_lines_pkg.set_segment(
36741           p_to_segment_code         => 'GL_ACCOUNT'
36742         , p_segment_value           => l_segment
36743         , p_from_segment_code       => l_adr_value_segment_code
36744         , p_from_combination_id     => l_adr_value_combination_id
36745         , p_value_type_code         => l_adr_value_type_code
36746         , p_transaction_coa_id      => l_adr_transaction_coa_id
36747         , p_accounting_coa_id       => l_adr_accounting_coa_id
36748         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36749         , p_flex_value_set_id       => l_adr_flex_value_set_id
36750         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
36751         , p_adr_type_code           => 'S'
36752         , p_component_type          => l_component_type
36753         , p_component_code          => l_component_code
36754         , p_component_type_code     => l_component_type_code
36755         , p_component_appl_id       => l_component_appl_id
36756         , p_amb_context_code        => l_amb_context_code
36757         , p_entity_code             => 'AP_PAYMENTS'
36758         , p_event_class_code        => 'REFUNDS'
36759         , p_side                    => 'NA'
36760         );
36761 
36762   END IF;
36763 
36764    --
36765    --
36766    END IF;
36767 
36768        --
36769        -- Update the line information that should be overwritten
36773        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36770        --
36771        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36772                                          p_header_num   => 1);
36774 
36775        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36776 
36777        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36778           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36779        END IF;
36780 
36781       --
36782       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36783       --
36784       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36785           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36786       ELSE
36787           ---------------------------------------------------------------------------------------------------
36788           -- 4262811a Switch Sign
36789           ---------------------------------------------------------------------------------------------------
36790           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36791           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36792                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36793           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36794                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36795           -- 5132302
36796           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36797                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36798 
36799       END IF;
36800 
36801       -- 4955764
36802       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36803       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36804 
36805 
36806       XLA_AE_LINES_PKG.ValidateCurrentLine;
36807       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36808 
36809       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36810                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36811                ,p_balance_type_code => l_balance_type_code);
36812 
36813    END IF;
36814 
36815    -----------------------------------------------------------------------------------------
36816    -- 4262811 Multiperiod Accounting
36817    -----------------------------------------------------------------------------------------
36818      -- No MPA option is assigned.
36819 
36820 
36821 END IF;
36822 END IF;
36823 --
36824 
36825 --
36826 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36827    trace
36828       (p_msg      => 'END of AcctLineType_80'
36829       ,p_level    => C_LEVEL_PROCEDURE
36830       ,p_module   => l_log_module);
36831 END IF;
36832 --
36833 EXCEPTION
36834   WHEN xla_exceptions_pkg.application_exception THEN
36835       RAISE;
36836   WHEN OTHERS THEN
36837        xla_exceptions_pkg.raise_message
36838            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_80');
36839 END AcctLineType_80;
36840 --
36841 
36842 ---------------------------------------
36843 --
36844 -- PRIVATE FUNCTION
36845 --         AcctLineType_81
36846 --
36847 ---------------------------------------
36848 PROCEDURE AcctLineType_81 (
36849   p_application_id        IN NUMBER
36850  ,p_event_id              IN NUMBER
36851  ,p_calculate_acctd_flag  IN VARCHAR2
36852  ,p_calculate_g_l_flag    IN VARCHAR2
36853  ,p_actual_flag           IN OUT VARCHAR2
36854  ,p_balance_type_code     OUT VARCHAR2
36855  ,p_gain_or_loss_ref      OUT VARCHAR2
36856  
36857 --Automatic Offsets Value
36858  , p_source_4            IN VARCHAR2
36859  , p_source_4_meaning    IN VARCHAR2
36860 --Purchase Order Rate Variance Gain Account
36861  , p_source_5            IN NUMBER
36862 --Destination Type of the PO Distribution
36863  , p_source_7            IN VARCHAR2
36864  , p_source_7_meaning    IN VARCHAR2
36865 --Purchase Order Rate Variance Loss Account
36866  , p_source_8            IN NUMBER
36867 --Payment Distribution (Payment Rate) Ledger Amount
36868  , p_source_9            IN NUMBER
36869 --Payment Distribution (Cleared Rate) Ledger Amount
36870  , p_source_10            IN NUMBER
36871 --Invoice Distribution Account
36872  , p_source_17            IN NUMBER
36873 --Automatic Offsets Flag
36874  , p_source_30            IN VARCHAR2
36875  , p_source_30_meaning    IN VARCHAR2
36876 --When to Account for Payment Option
36877  , p_source_38            IN VARCHAR2
36878 --Payment Distribution Type
36879  , p_source_39            IN VARCHAR2
36880  , p_source_39_meaning    IN VARCHAR2
36881 --Accounting Reversal Indicator
36882  , p_source_40            IN VARCHAR2
36883 --Payment Distribution Amount
36884  , p_source_41            IN NUMBER
36885 --Business Flow Accounts Payable Application Identifier
36886  , p_source_42            IN NUMBER
36887 --Business Flow Payment Distribution Type
36891 --Business Flow Payment Distribution Identifier
36888  , p_source_43            IN VARCHAR2
36889 --Business Flow Payment Entity Code
36890  , p_source_44            IN VARCHAR2
36892  , p_source_45            IN NUMBER
36893 --Business Flow Payment Identifier
36894  , p_source_46            IN NUMBER
36895 --Payment Distribution Identifier
36896  , p_source_47            IN NUMBER
36897 --Distribution Link Type
36898  , p_source_48            IN VARCHAR2
36899 --Payment Currency Code
36900  , p_source_49            IN VARCHAR2
36901 --Override Accounted Amount Indicator
36902  , p_source_53            IN VARCHAR2
36903  , p_source_53_meaning    IN VARCHAR2
36904 --Payment Supplier Identifier
36905  , p_source_54            IN NUMBER
36906 --Payment Supplier Site Identifier
36907  , p_source_55            IN NUMBER
36908 --Third Party Type
36909  , p_source_56            IN VARCHAR2
36910 --Payment Distribution Reversed Identifier
36911  , p_source_57            IN NUMBER
36912 --Invoice Distribution Tax Line Identifier
36913  , p_source_58            IN NUMBER
36914 --Invoice Distribution Summary Tax Line Identifier
36915  , p_source_59            IN NUMBER
36916 --Accrue on Receipt Option
36917  , p_source_100            IN VARCHAR2
36918  , p_source_100_meaning    IN VARCHAR2
36919 --Cleared Exchange Date
36920  , p_source_107            IN DATE
36921 --Cleared Exchange Rate
36922  , p_source_108            IN NUMBER
36923 --Cleared Exchange Rate Type
36924  , p_source_109            IN VARCHAR2
36925 )
36926 IS
36927 
36928 l_component_type              VARCHAR2(80);
36929 l_component_code              VARCHAR2(30);
36930 l_component_type_code         VARCHAR2(1);
36931 l_component_appl_id           INTEGER;
36932 l_amb_context_code            VARCHAR2(30);
36933 l_entity_code                 VARCHAR2(30);
36934 l_event_class_code            VARCHAR2(30);
36935 l_ae_header_id                NUMBER;
36936 l_event_type_code             VARCHAR2(30);
36937 l_line_definition_code        VARCHAR2(30);
36938 l_line_definition_owner_code  VARCHAR2(1);
36939 --
36940 -- adr variables
36941 l_segment                     VARCHAR2(30);
36942 l_ccid                        NUMBER;
36943 l_adr_transaction_coa_id      NUMBER;
36944 l_adr_accounting_coa_id       NUMBER;
36945 l_adr_flexfield_segment_code  VARCHAR2(30);
36946 l_adr_flex_value_set_id       NUMBER;
36947 l_adr_value_type_code         VARCHAR2(30);
36948 l_adr_value_combination_id    NUMBER;
36949 l_adr_value_segment_code      VARCHAR2(30);
36950 
36951 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
36952 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
36953 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
36954 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
36955 
36956 -- 4262811 Variables ------------------------------------------------------------------------------------------
36957 l_entered_amt_idx             NUMBER;
36958 l_accted_amt_idx              NUMBER;
36959 l_acc_rev_flag                VARCHAR2(1);
36960 l_accrual_line_num            NUMBER;
36961 l_tmp_amt                     NUMBER;
36962 l_acc_rev_natural_side_code   VARCHAR2(1);
36963 
36964 l_num_entries                 NUMBER;
36965 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
36966 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
36967 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
36968 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
36969 l_recog_line_1                NUMBER;
36970 l_recog_line_2                NUMBER;
36971 
36972 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
36973 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
36974 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
36975 
36976 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36977 
36978 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
36979 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
36980 
36981 ---------------------------------------------------------------------------------------------------------------
36982 
36983 
36984 --
36985 -- bulk performance
36986 --
36987 l_balance_type_code           VARCHAR2(1);
36988 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
36989 l_log_module                  VARCHAR2(240);
36990 
36991 --
36992 -- Upgrade strategy
36993 --
36994 l_actual_upg_option           VARCHAR2(1);
36995 l_enc_upg_option           VARCHAR2(1);
36996 
36997 --
36998 BEGIN
36999 --
37000 IF g_log_enabled THEN
37001       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
37002 END IF;
37003 --
37004 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37005 
37006       trace
37007          (p_msg      => 'BEGIN of AcctLineType_81'
37008          ,p_level    => C_LEVEL_PROCEDURE
37009          ,p_module   => l_log_module);
37010 
37011 END IF;
37012 --
37013 l_component_type             := 'AMB_JLT';
37014 l_component_code             := 'AP_EX_RATE_VAR_CLEAR';
37015 l_component_type_code        := 'S';
37016 l_component_appl_id          :=  200;
37017 l_amb_context_code           := 'DEFAULT';
37018 l_entity_code                := 'AP_PAYMENTS';
37022 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
37019 l_event_class_code           := 'RECONCILED PAYMENTS';
37020 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
37021 l_line_definition_owner_code := 'S';
37023 --
37024 l_balance_type_code          := 'A';
37025 l_segment                     := NULL;
37026 l_ccid                        := NULL;
37027 l_adr_transaction_coa_id      := NULL;
37028 l_adr_accounting_coa_id       := NULL;
37029 l_adr_flexfield_segment_code  := NULL;
37030 l_adr_flex_value_set_id       := NULL;
37031 l_adr_value_type_code         := NULL;
37032 l_adr_value_combination_id    := NULL;
37033 l_adr_value_segment_code      := NULL;
37034 
37035 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
37036 l_bflow_class_code           := '';    -- 4219869 Business Flow
37037 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37038 l_budgetary_control_flag     := 'N';
37039 
37040 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37041 l_bflow_applied_to_amt       := NULL; -- 5132302
37042 l_entered_amt_idx            := NULL;          -- 4262811
37043 l_accted_amt_idx             := NULL;          -- 4262811
37044 l_acc_rev_flag               := NULL;          -- 4262811
37045 l_accrual_line_num           := NULL;          -- 4262811
37046 l_tmp_amt                    := NULL;          -- 4262811
37047 --
37048 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
37049             (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
37050                return;
37051   END IF;
37052   
37053 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37054     l_balance_type_code <> 'B' THEN
37055 IF NVL(p_source_38,'
37056 ') =  'CLEAR_CLEAR' AND 
37057 NVL(p_source_39,'
37058 ') =  'EXCHANGE RATE VARIANCE' AND 
37059 NVL(p_source_100,'
37060 ') =  'Y'
37061  THEN 
37062 
37063    --
37064    XLA_AE_LINES_PKG.SetNewLine;
37065 
37066    p_balance_type_code          := l_balance_type_code;
37067    -- set the flag so later we will know whether the gain loss line needs to be created
37068    
37069    IF(l_balance_type_code = 'A' ) THEN
37070      p_actual_flag :='G';
37071    END IF;
37072 
37073    --
37074    -- bulk performance
37075    --
37076    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37077                                       p_header_num   => 0); -- 4262811
37078    --
37079    -- set accounting line options
37080    --
37081    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37082            p_natural_side_code          => 'D'
37083          , p_gain_or_loss_flag          => 'Y'
37084          , p_gl_transfer_mode_code      => 'S'
37085          , p_acct_entry_type_code       => 'A'
37086          , p_switch_side_flag           => 'Y'
37087          , p_merge_duplicate_code       => 'A'
37088          );
37089    --
37090    l_acc_rev_natural_side_code := 'C';  -- 4262811
37091    -- 
37092    --
37093    -- set accounting line type info
37094    --
37095    xla_ae_lines_pkg.SetAcctLineType
37096       (p_component_type             => l_component_type
37097       ,p_event_type_code            => l_event_type_code
37098       ,p_line_definition_owner_code => l_line_definition_owner_code
37099       ,p_line_definition_code       => l_line_definition_code
37100       ,p_accounting_line_code       => l_component_code
37101       ,p_accounting_line_type_code  => l_component_type_code
37102       ,p_accounting_line_appl_id    => l_component_appl_id
37103       ,p_amb_context_code           => l_amb_context_code
37104       ,p_entity_code                => l_entity_code
37105       ,p_event_class_code           => l_event_class_code);
37106    --
37107    -- set accounting class
37108    --
37109    xla_ae_lines_pkg.SetAcctClass(
37110            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
37111          , p_ae_header_id           => l_ae_header_id
37112          );
37113 
37114    --
37115    -- set rounding class
37116    --
37117    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37118                       'EXCHANGE_RATE_VARIANCE';
37119 
37120    --
37121    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37122    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37123    --
37124    -- bulk performance
37125    --
37126    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37127 
37128    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37129       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37130 
37131    -- 4955764
37132    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37133       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37134 
37135    -- 4458381 Public Sector Enh
37136    
37137    --
37138    -- set accounting attributes for the line type
37139    --
37140    l_entered_amt_idx := 10;
37141    l_accted_amt_idx  := 15;
37142    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
37143    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37147    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
37144    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
37145    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
37146    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
37148    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
37149    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37150    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
37151    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
37152    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
37153    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
37154    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
37155    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37156    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
37157    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
37158    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
37159    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
37160    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
37161    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
37162    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
37163    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
37164    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
37165    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
37166    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
37167    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
37168    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
37169    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
37170    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
37171    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
37172    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
37173    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
37174    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
37175    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
37176    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
37177    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
37178    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
37179    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
37180    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
37181    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
37182    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
37183    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
37184    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
37185    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
37186    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
37187    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
37188    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
37189    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
37190    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
37191 
37192    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37193    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37194 
37195    ---------------------------------------------------------------------------------------------------------------
37196    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37197    ---------------------------------------------------------------------------------------------------------------
37198    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37199 
37200    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37201    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37202 
37203    IF xla_accounting_cache_pkg.GetValueChar
37204          (p_source_code         => 'LEDGER_CATEGORY_CODE'
37205          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37206    AND l_bflow_method_code = 'PRIOR_ENTRY'
37207 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37208    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37209          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37210        )
37211    THEN
37212          xla_ae_lines_pkg.BflowUpgEntry
37213            (p_business_method_code    => l_bflow_method_code
37214            ,p_business_class_code     => l_bflow_class_code
37215            ,p_balance_type            => l_balance_type_code);
37216    ELSE
37217       NULL;
37218 -- No business flow processing for business flow method of NONE.
37219    END IF;
37220 
37221    --
37222    -- call analytical criteria
37223    --
37224    
37225    --
37226    -- call description
37227    --
37228    -- No description or it is inherited.
37229    --
37230    -- call ADRs
37231    -- Bug 4922099
37232    --
37233    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37234         (NVL(l_actual_upg_option, 'N') = 'O') OR
37235         (NVL(l_enc_upg_option, 'N') = 'O')
37236       )
37237    THEN
37238    NULL;
37239    --
37240    --
37241    
37242   l_ccid := AcctDerRule_22(
37243            p_application_id           => p_application_id
37244          , p_ae_header_id             => l_ae_header_id 
37245 , p_source_4 => p_source_4
37249 , p_source_7_meaning => p_source_7_meaning
37246 , p_source_4_meaning => p_source_4_meaning
37247 , p_source_5 => p_source_5
37248 , p_source_7 => p_source_7
37250 , p_source_8 => p_source_8
37251 , p_source_9 => p_source_9
37252 , p_source_10 => p_source_10
37253 , p_source_17 => p_source_17
37254 , p_source_30 => p_source_30
37255 , p_source_30_meaning => p_source_30_meaning
37256          , x_transaction_coa_id       => l_adr_transaction_coa_id
37257          , x_accounting_coa_id        => l_adr_accounting_coa_id
37258          , x_value_type_code          => l_adr_value_type_code
37259          , p_side                     => 'NA'
37260    );
37261 
37262    xla_ae_lines_pkg.set_ccid(
37263     p_code_combination_id          => l_ccid
37264   , p_value_type_code              => l_adr_value_type_code
37265   , p_transaction_coa_id           => l_adr_transaction_coa_id
37266   , p_accounting_coa_id            => l_adr_accounting_coa_id
37267   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
37268   , p_adr_type_code                => 'S'
37269   , p_component_type               => l_component_type
37270   , p_component_code               => l_component_code
37271   , p_component_type_code          => l_component_type_code
37272   , p_component_appl_id            => l_component_appl_id
37273   , p_amb_context_code             => l_amb_context_code
37274   , p_side                         => 'NA'
37275   );
37276 
37277 
37278    l_segment := AcctDerRule_4(
37279            p_application_id           => p_application_id
37280          , p_ae_header_id             => l_ae_header_id 
37281 , p_source_4 => p_source_4
37282 , p_source_4_meaning => p_source_4_meaning
37283 , p_source_5 => p_source_5
37284 , p_source_7 => p_source_7
37285 , p_source_7_meaning => p_source_7_meaning
37286 , p_source_8 => p_source_8
37287 , p_source_9 => p_source_9
37288 , p_source_10 => p_source_10
37289          , x_transaction_coa_id       => l_adr_transaction_coa_id
37290          , x_accounting_coa_id        => l_adr_accounting_coa_id
37291          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37292          , x_flex_value_set_id        => l_adr_flex_value_set_id
37293          , x_value_type_code          => l_adr_value_type_code
37294          , x_value_combination_id     => l_adr_value_combination_id
37295          , x_value_segment_code       => l_adr_value_segment_code
37296          , p_side                     => 'NA'
37297          , p_override_seg_flag        => 'Y'
37298    );
37299 
37300    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37301 
37302       xla_ae_lines_pkg.set_segment(
37303           p_to_segment_code         => 'GL_ACCOUNT'
37304         , p_segment_value           => l_segment
37305         , p_from_segment_code       => l_adr_value_segment_code
37306         , p_from_combination_id     => l_adr_value_combination_id
37307         , p_value_type_code         => l_adr_value_type_code
37308         , p_transaction_coa_id      => l_adr_transaction_coa_id
37309         , p_accounting_coa_id       => l_adr_accounting_coa_id
37310         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37311         , p_flex_value_set_id       => l_adr_flex_value_set_id
37312         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
37313         , p_adr_type_code           => 'S'
37314         , p_component_type          => l_component_type
37315         , p_component_code          => l_component_code
37316         , p_component_type_code     => l_component_type_code
37317         , p_component_appl_id       => l_component_appl_id
37318         , p_amb_context_code        => l_amb_context_code
37319         , p_entity_code             => 'AP_PAYMENTS'
37320         , p_event_class_code        => 'RECONCILED PAYMENTS'
37321         , p_side                    => 'NA'
37322         );
37323 
37324   END IF;
37325 
37326    l_segment := AcctDerRule_15(
37327            p_application_id           => p_application_id
37328          , p_ae_header_id             => l_ae_header_id 
37329 , p_source_4 => p_source_4
37330 , p_source_4_meaning => p_source_4_meaning
37331 , p_source_7 => p_source_7
37332 , p_source_7_meaning => p_source_7_meaning
37333 , p_source_17 => p_source_17
37334          , x_transaction_coa_id       => l_adr_transaction_coa_id
37335          , x_accounting_coa_id        => l_adr_accounting_coa_id
37336          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37337          , x_flex_value_set_id        => l_adr_flex_value_set_id
37338          , x_value_type_code          => l_adr_value_type_code
37339          , x_value_combination_id     => l_adr_value_combination_id
37340          , x_value_segment_code       => l_adr_value_segment_code
37341          , p_side                     => 'NA'
37342          , p_override_seg_flag        => 'Y'
37343    );
37344 
37345    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37346 
37347       xla_ae_lines_pkg.set_segment(
37348           p_to_segment_code         => 'GL_BALANCING'
37349         , p_segment_value           => l_segment
37350         , p_from_segment_code       => l_adr_value_segment_code
37351         , p_from_combination_id     => l_adr_value_combination_id
37352         , p_value_type_code         => l_adr_value_type_code
37353         , p_transaction_coa_id      => l_adr_transaction_coa_id
37354         , p_accounting_coa_id       => l_adr_accounting_coa_id
37355         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37356         , p_flex_value_set_id       => l_adr_flex_value_set_id
37360         , p_component_code          => l_component_code
37357         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
37358         , p_adr_type_code           => 'S'
37359         , p_component_type          => l_component_type
37361         , p_component_type_code     => l_component_type_code
37362         , p_component_appl_id       => l_component_appl_id
37363         , p_amb_context_code        => l_amb_context_code
37364         , p_entity_code             => 'AP_PAYMENTS'
37365         , p_event_class_code        => 'RECONCILED PAYMENTS'
37366         , p_side                    => 'NA'
37367         );
37368 
37369   END IF;
37370 
37371    --
37372    --
37373    END IF;
37374    --
37375    -- Bug 4922099
37376    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37377           (NVL(l_enc_upg_option, 'N') = 'O')
37378         ) AND
37379         (l_bflow_method_code = 'PRIOR_ENTRY')
37380       )
37381    THEN
37382       IF
37383       --
37384       1 = 2
37385       --
37386       THEN
37387       xla_accounting_err_pkg.build_message
37388                                     (p_appli_s_name            => 'XLA'
37389                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37390                                     ,p_token_1                 => 'LINE_NUMBER'
37391                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
37392                                     ,p_token_2                 => 'LINE_TYPE_NAME'
37393                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
37394                                                                              l_component_type
37395                                                                             ,l_component_code
37396                                                                             ,l_component_type_code
37397                                                                             ,l_component_appl_id
37398                                                                             ,l_amb_context_code
37399                                                                             ,l_entity_code
37400                                                                             ,l_event_class_code
37401                                                                            )
37402                                     ,p_token_3                 => 'OWNER'
37403                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
37404                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
37405                                                                           ,p_lookup_code    => l_component_type_code
37406                                                                          )
37407                                     ,p_token_4                 => 'PRODUCT_NAME'
37408                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37409                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37410                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37411                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37412                                     ,p_ae_header_id            =>  NULL
37413                                        );
37414 
37415         IF (C_LEVEL_ERROR>= g_log_level) THEN
37416                  trace
37417                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37418                       ,p_level    => C_LEVEL_ERROR
37419                       ,p_module   => l_log_module);
37420         END IF;
37421       END IF;
37422    END IF;
37423    --
37424    --
37425    ------------------------------------------------------------------------------------------------
37426    -- 4219869 Business Flow
37427    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37428    -- Prior Entry.  Currently, the following code is always generated.
37429    ------------------------------------------------------------------------------------------------
37430    XLA_AE_LINES_PKG.ValidateCurrentLine;
37431 
37432    ------------------------------------------------------------------------------------
37433    -- 4219869 Business Flow
37434    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37435    ------------------------------------------------------------------------------------
37436    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37437 
37438    ----------------------------------------------------------------------------------
37439    -- 4219869 Business Flow
37440    -- Update journal entry status -- Need to generate this within IF <condition>
37441    ----------------------------------------------------------------------------------
37442    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37443          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37444          ,p_balance_type_code => l_balance_type_code
37445          );
37446 
37447    -------------------------------------------------------------------------------------------
37448    -- 4262811 - Generate the Accrual Reversal lines
37449    -------------------------------------------------------------------------------------------
37450    BEGIN
37454          l_acc_rev_flag := 'N';
37451       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37452                               (g_array_event(p_event_id).array_value_num('header_index'));
37453       IF l_acc_rev_flag IS NULL THEN
37455       END IF;
37456    EXCEPTION
37457       WHEN OTHERS THEN
37458          l_acc_rev_flag := 'N';
37459    END;
37460    --
37461    IF (l_acc_rev_flag = 'Y') THEN
37462 
37463        -- 4645092  ------------------------------------------------------------------------------
37464        -- To allow MPA report to determine if it should generate report process
37465        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37466        ------------------------------------------------------------------------------------------
37467 
37468        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37469        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37470    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37471    -- call ADRs
37472    -- Bug 4922099
37473    --
37474    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37475         (NVL(l_actual_upg_option, 'N') = 'O') OR
37476         (NVL(l_enc_upg_option, 'N') = 'O')
37477       )
37478    THEN
37479    NULL;
37480    --
37481    --
37482    
37483   l_ccid := AcctDerRule_22(
37484            p_application_id           => p_application_id
37485          , p_ae_header_id             => l_ae_header_id 
37486 , p_source_4 => p_source_4
37487 , p_source_4_meaning => p_source_4_meaning
37488 , p_source_5 => p_source_5
37489 , p_source_7 => p_source_7
37490 , p_source_7_meaning => p_source_7_meaning
37491 , p_source_8 => p_source_8
37492 , p_source_9 => p_source_9
37493 , p_source_10 => p_source_10
37494 , p_source_17 => p_source_17
37495 , p_source_30 => p_source_30
37496 , p_source_30_meaning => p_source_30_meaning
37497          , x_transaction_coa_id       => l_adr_transaction_coa_id
37498          , x_accounting_coa_id        => l_adr_accounting_coa_id
37499          , x_value_type_code          => l_adr_value_type_code
37500          , p_side                     => 'NA'
37501    );
37502 
37503    xla_ae_lines_pkg.set_ccid(
37504     p_code_combination_id          => l_ccid
37505   , p_value_type_code              => l_adr_value_type_code
37506   , p_transaction_coa_id           => l_adr_transaction_coa_id
37507   , p_accounting_coa_id            => l_adr_accounting_coa_id
37508   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
37509   , p_adr_type_code                => 'S'
37510   , p_component_type               => l_component_type
37511   , p_component_code               => l_component_code
37512   , p_component_type_code          => l_component_type_code
37513   , p_component_appl_id            => l_component_appl_id
37514   , p_amb_context_code             => l_amb_context_code
37515   , p_side                         => 'NA'
37516   );
37517 
37518 
37519    l_segment := AcctDerRule_4(
37520            p_application_id           => p_application_id
37521          , p_ae_header_id             => l_ae_header_id 
37522 , p_source_4 => p_source_4
37523 , p_source_4_meaning => p_source_4_meaning
37524 , p_source_5 => p_source_5
37525 , p_source_7 => p_source_7
37526 , p_source_7_meaning => p_source_7_meaning
37527 , p_source_8 => p_source_8
37528 , p_source_9 => p_source_9
37529 , p_source_10 => p_source_10
37530          , x_transaction_coa_id       => l_adr_transaction_coa_id
37531          , x_accounting_coa_id        => l_adr_accounting_coa_id
37532          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37533          , x_flex_value_set_id        => l_adr_flex_value_set_id
37534          , x_value_type_code          => l_adr_value_type_code
37535          , x_value_combination_id     => l_adr_value_combination_id
37536          , x_value_segment_code       => l_adr_value_segment_code
37537          , p_side                     => 'NA'
37538          , p_override_seg_flag        => 'Y'
37539    );
37540 
37541    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37542 
37543       xla_ae_lines_pkg.set_segment(
37544           p_to_segment_code         => 'GL_ACCOUNT'
37545         , p_segment_value           => l_segment
37546         , p_from_segment_code       => l_adr_value_segment_code
37547         , p_from_combination_id     => l_adr_value_combination_id
37548         , p_value_type_code         => l_adr_value_type_code
37549         , p_transaction_coa_id      => l_adr_transaction_coa_id
37550         , p_accounting_coa_id       => l_adr_accounting_coa_id
37551         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37552         , p_flex_value_set_id       => l_adr_flex_value_set_id
37553         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
37554         , p_adr_type_code           => 'S'
37555         , p_component_type          => l_component_type
37556         , p_component_code          => l_component_code
37557         , p_component_type_code     => l_component_type_code
37558         , p_component_appl_id       => l_component_appl_id
37559         , p_amb_context_code        => l_amb_context_code
37560         , p_entity_code             => 'AP_PAYMENTS'
37561         , p_event_class_code        => 'RECONCILED PAYMENTS'
37562         , p_side                    => 'NA'
37563         );
37564 
37565   END IF;
37566 
37567    l_segment := AcctDerRule_15(
37568            p_application_id           => p_application_id
37572 , p_source_7 => p_source_7
37569          , p_ae_header_id             => l_ae_header_id 
37570 , p_source_4 => p_source_4
37571 , p_source_4_meaning => p_source_4_meaning
37573 , p_source_7_meaning => p_source_7_meaning
37574 , p_source_17 => p_source_17
37575          , x_transaction_coa_id       => l_adr_transaction_coa_id
37576          , x_accounting_coa_id        => l_adr_accounting_coa_id
37577          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37578          , x_flex_value_set_id        => l_adr_flex_value_set_id
37579          , x_value_type_code          => l_adr_value_type_code
37580          , x_value_combination_id     => l_adr_value_combination_id
37581          , x_value_segment_code       => l_adr_value_segment_code
37582          , p_side                     => 'NA'
37583          , p_override_seg_flag        => 'Y'
37584    );
37585 
37586    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37587 
37588       xla_ae_lines_pkg.set_segment(
37589           p_to_segment_code         => 'GL_BALANCING'
37590         , p_segment_value           => l_segment
37591         , p_from_segment_code       => l_adr_value_segment_code
37592         , p_from_combination_id     => l_adr_value_combination_id
37593         , p_value_type_code         => l_adr_value_type_code
37594         , p_transaction_coa_id      => l_adr_transaction_coa_id
37595         , p_accounting_coa_id       => l_adr_accounting_coa_id
37596         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37597         , p_flex_value_set_id       => l_adr_flex_value_set_id
37598         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
37599         , p_adr_type_code           => 'S'
37600         , p_component_type          => l_component_type
37601         , p_component_code          => l_component_code
37602         , p_component_type_code     => l_component_type_code
37603         , p_component_appl_id       => l_component_appl_id
37604         , p_amb_context_code        => l_amb_context_code
37605         , p_entity_code             => 'AP_PAYMENTS'
37606         , p_event_class_code        => 'RECONCILED PAYMENTS'
37607         , p_side                    => 'NA'
37608         );
37609 
37610   END IF;
37611 
37612    --
37613    --
37614    END IF;
37615 
37616        --
37617        -- Update the line information that should be overwritten
37618        --
37619        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37620                                          p_header_num   => 1);
37621        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
37622 
37623        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37624 
37625        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
37626           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37627        END IF;
37628 
37629       --
37630       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37631       --
37632       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37633           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
37634       ELSE
37635           ---------------------------------------------------------------------------------------------------
37636           -- 4262811a Switch Sign
37637           ---------------------------------------------------------------------------------------------------
37638           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
37639           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37640                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37641           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37642                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37643           -- 5132302
37644           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37645                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37646 
37647       END IF;
37648 
37649       -- 4955764
37650       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37651       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37652 
37653 
37654       XLA_AE_LINES_PKG.ValidateCurrentLine;
37655       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37656 
37657       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37658                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37659                ,p_balance_type_code => l_balance_type_code);
37660 
37661    END IF;
37662 
37663    -----------------------------------------------------------------------------------------
37664    -- 4262811 Multiperiod Accounting
37665    -----------------------------------------------------------------------------------------
37666      -- No MPA option is assigned.
37667 
37668 
37669 END IF;
37670 END IF;
37671 --
37672 
37673 --
37674 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37675    trace
37676       (p_msg      => 'END of AcctLineType_81'
37677       ,p_level    => C_LEVEL_PROCEDURE
37678       ,p_module   => l_log_module);
37679 END IF;
37680 --
37684   WHEN OTHERS THEN
37681 EXCEPTION
37682   WHEN xla_exceptions_pkg.application_exception THEN
37683       RAISE;
37685        xla_exceptions_pkg.raise_message
37686            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_81');
37687 END AcctLineType_81;
37688 --
37689 
37690 ---------------------------------------
37691 --
37692 -- PRIVATE FUNCTION
37693 --         AcctLineType_82
37694 --
37695 ---------------------------------------
37696 PROCEDURE AcctLineType_82 (
37697   p_application_id        IN NUMBER
37698  ,p_event_id              IN NUMBER
37699  ,p_calculate_acctd_flag  IN VARCHAR2
37700  ,p_calculate_g_l_flag    IN VARCHAR2
37701  ,p_actual_flag           IN OUT VARCHAR2
37702  ,p_balance_type_code     OUT VARCHAR2
37703  ,p_gain_or_loss_ref      OUT VARCHAR2
37704  
37705 --Payment Distribution (Payment Rate) Ledger Amount
37706  , p_source_9            IN NUMBER
37707 --When to Account for Payment Option
37708  , p_source_38            IN VARCHAR2
37709 --Payment Distribution Type
37710  , p_source_39            IN VARCHAR2
37711  , p_source_39_meaning    IN VARCHAR2
37712 --Accounting Reversal Indicator
37713  , p_source_40            IN VARCHAR2
37714 --Payment Distribution Amount
37715  , p_source_41            IN NUMBER
37716 --Business Flow Accounts Payable Application Identifier
37717  , p_source_42            IN NUMBER
37718 --Payment Distribution Identifier
37719  , p_source_47            IN NUMBER
37720 --Distribution Link Type
37721  , p_source_48            IN VARCHAR2
37722 --Payment Currency Code
37723  , p_source_49            IN VARCHAR2
37724 --Override Accounted Amount Indicator
37725  , p_source_53            IN VARCHAR2
37726  , p_source_53_meaning    IN VARCHAR2
37727 --Third Party Type
37728  , p_source_56            IN VARCHAR2
37729 --Payment Distribution Reversed Identifier
37730  , p_source_57            IN NUMBER
37731 --Invoice Distribution Tax Line Identifier
37732  , p_source_58            IN NUMBER
37733 --Invoice Distribution Summary Tax Line Identifier
37734  , p_source_59            IN NUMBER
37735 --Business Flow Invoice Distribution Type
37736  , p_source_62            IN VARCHAR2
37737 --Business Flow Invoice Entity Code
37738  , p_source_63            IN VARCHAR2
37739 --Business Flow Invoice Distribution Identifier
37740  , p_source_64            IN NUMBER
37741 --Business Flow Invoice Identifier
37742  , p_source_65            IN NUMBER
37743 --Purchasing Encumbrance Option
37744  , p_source_102            IN VARCHAR2
37745  , p_source_102_meaning    IN VARCHAR2
37746 --Invoice Encumbered Option
37747  , p_source_104            IN VARCHAR2
37748  , p_source_104_meaning    IN VARCHAR2
37749 )
37750 IS
37751 
37752 l_component_type              VARCHAR2(80);
37753 l_component_code              VARCHAR2(30);
37754 l_component_type_code         VARCHAR2(1);
37755 l_component_appl_id           INTEGER;
37756 l_amb_context_code            VARCHAR2(30);
37757 l_entity_code                 VARCHAR2(30);
37758 l_event_class_code            VARCHAR2(30);
37759 l_ae_header_id                NUMBER;
37760 l_event_type_code             VARCHAR2(30);
37761 l_line_definition_code        VARCHAR2(30);
37762 l_line_definition_owner_code  VARCHAR2(1);
37763 --
37764 -- adr variables
37765 l_segment                     VARCHAR2(30);
37766 l_ccid                        NUMBER;
37767 l_adr_transaction_coa_id      NUMBER;
37768 l_adr_accounting_coa_id       NUMBER;
37769 l_adr_flexfield_segment_code  VARCHAR2(30);
37770 l_adr_flex_value_set_id       NUMBER;
37771 l_adr_value_type_code         VARCHAR2(30);
37772 l_adr_value_combination_id    NUMBER;
37773 l_adr_value_segment_code      VARCHAR2(30);
37774 
37775 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
37776 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
37777 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
37778 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
37779 
37780 -- 4262811 Variables ------------------------------------------------------------------------------------------
37781 l_entered_amt_idx             NUMBER;
37782 l_accted_amt_idx              NUMBER;
37783 l_acc_rev_flag                VARCHAR2(1);
37784 l_accrual_line_num            NUMBER;
37785 l_tmp_amt                     NUMBER;
37786 l_acc_rev_natural_side_code   VARCHAR2(1);
37787 
37788 l_num_entries                 NUMBER;
37789 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
37790 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
37791 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
37792 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
37793 l_recog_line_1                NUMBER;
37794 l_recog_line_2                NUMBER;
37795 
37796 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
37797 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
37798 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
37799 
37800 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37801 
37802 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
37803 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
37804 
37805 ---------------------------------------------------------------------------------------------------------------
37806 
37810 --
37807 
37808 --
37809 -- bulk performance
37811 l_balance_type_code           VARCHAR2(1);
37812 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
37813 l_log_module                  VARCHAR2(240);
37814 
37815 --
37816 -- Upgrade strategy
37817 --
37818 l_actual_upg_option           VARCHAR2(1);
37819 l_enc_upg_option           VARCHAR2(1);
37820 
37821 --
37822 BEGIN
37823 --
37824 IF g_log_enabled THEN
37825       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
37826 END IF;
37827 --
37828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37829 
37830       trace
37831          (p_msg      => 'BEGIN of AcctLineType_82'
37832          ,p_level    => C_LEVEL_PROCEDURE
37833          ,p_module   => l_log_module);
37834 
37835 END IF;
37836 --
37837 l_component_type             := 'AMB_JLT';
37838 l_component_code             := 'AP_EX_RATE_VAR_CLR_ENC';
37839 l_component_type_code        := 'S';
37840 l_component_appl_id          :=  200;
37841 l_amb_context_code           := 'DEFAULT';
37842 l_entity_code                := 'AP_PAYMENTS';
37843 l_event_class_code           := 'RECONCILED PAYMENTS';
37844 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
37845 l_line_definition_owner_code := 'S';
37846 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
37847 --
37848 l_balance_type_code          := 'E';
37849 l_segment                     := NULL;
37850 l_ccid                        := NULL;
37851 l_adr_transaction_coa_id      := NULL;
37852 l_adr_accounting_coa_id       := NULL;
37853 l_adr_flexfield_segment_code  := NULL;
37854 l_adr_flex_value_set_id       := NULL;
37855 l_adr_value_type_code         := NULL;
37856 l_adr_value_combination_id    := NULL;
37857 l_adr_value_segment_code      := NULL;
37858 
37859 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
37860 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
37861 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37862 l_budgetary_control_flag     := 'N';
37863 
37864 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37865 l_bflow_applied_to_amt       := NULL; -- 5132302
37866 l_entered_amt_idx            := NULL;          -- 4262811
37867 l_accted_amt_idx             := NULL;          -- 4262811
37868 l_acc_rev_flag               := NULL;          -- 4262811
37869 l_accrual_line_num           := NULL;          -- 4262811
37870 l_tmp_amt                    := NULL;          -- 4262811
37871 --
37872 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
37873             (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
37874                return;
37875   END IF;
37876   
37877 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37878     l_balance_type_code <> 'B' THEN
37879 IF NVL(p_source_38,'
37880 ') =  'CLEAR_CLEAR' AND 
37881 NVL(p_source_39,'
37882 ') =  'EXCHANGE RATE VARIANCE' AND 
37883 NVL(p_source_102,'
37884 ') =  'Y' AND 
37885 NVL(p_source_104,'
37886 ') =  'Y'
37887  THEN 
37888 
37889    --
37890    XLA_AE_LINES_PKG.SetNewLine;
37891 
37892    p_balance_type_code          := l_balance_type_code;
37893    -- set the flag so later we will know whether the gain loss line needs to be created
37894    
37895    IF(l_balance_type_code = 'A' ) THEN
37896      p_actual_flag :='G';
37897    END IF;
37898 
37899    --
37900    -- bulk performance
37901    --
37902    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37903                                       p_header_num   => 0); -- 4262811
37904    --
37905    -- set accounting line options
37906    --
37907    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37908            p_natural_side_code          => 'C'
37909          , p_gain_or_loss_flag          => 'Y'
37910          , p_gl_transfer_mode_code      => 'S'
37911          , p_acct_entry_type_code       => 'E'
37912          , p_switch_side_flag           => 'Y'
37913          , p_merge_duplicate_code       => 'A'
37914          );
37915    --
37916    l_acc_rev_natural_side_code := 'D';  -- 4262811
37917    -- 
37918    --
37919    -- set accounting line type info
37920    --
37921    xla_ae_lines_pkg.SetAcctLineType
37922       (p_component_type             => l_component_type
37923       ,p_event_type_code            => l_event_type_code
37924       ,p_line_definition_owner_code => l_line_definition_owner_code
37925       ,p_line_definition_code       => l_line_definition_code
37926       ,p_accounting_line_code       => l_component_code
37927       ,p_accounting_line_type_code  => l_component_type_code
37928       ,p_accounting_line_appl_id    => l_component_appl_id
37929       ,p_amb_context_code           => l_amb_context_code
37930       ,p_entity_code                => l_entity_code
37931       ,p_event_class_code           => l_event_class_code);
37932    --
37933    -- set accounting class
37934    --
37935    xla_ae_lines_pkg.SetAcctClass(
37936            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
37937          , p_ae_header_id           => l_ae_header_id
37938          );
37939 
37940    --
37941    -- set rounding class
37942    --
37943    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37944                       'EXCHANGE_RATE_VARIANCE';
37948    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37945 
37946    --
37947    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37949    --
37950    -- bulk performance
37951    --
37952    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37953 
37954    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37955       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37956 
37957    -- 4955764
37958    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37959       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37960 
37961    -- 4458381 Public Sector Enh
37962    
37963    --
37964    -- set accounting attributes for the line type
37965    --
37966    l_entered_amt_idx := 10;
37967    l_accted_amt_idx  := 12;
37968    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
37969    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37970    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
37971    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
37972    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
37973    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
37974    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
37975    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37976    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
37977    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
37978    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
37979    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
37980    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
37981    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37982    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
37983    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
37984    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
37985    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
37986    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
37987    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
37988    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
37989    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
37990    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
37991    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
37992    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
37993    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
37994    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
37995    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
37996    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
37997    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
37998    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
37999    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
38000    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
38001    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
38002    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
38003    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
38004    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
38005    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
38006    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
38007 
38008    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38009    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38010 
38011    ---------------------------------------------------------------------------------------------------------------
38012    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38013    ---------------------------------------------------------------------------------------------------------------
38014    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38015 
38016    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38017    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38018 
38019    IF xla_accounting_cache_pkg.GetValueChar
38020          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38021          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38022    AND l_bflow_method_code = 'PRIOR_ENTRY'
38023 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38024    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38025          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38026        )
38027    THEN
38028          xla_ae_lines_pkg.BflowUpgEntry
38029            (p_business_method_code    => l_bflow_method_code
38030            ,p_business_class_code     => l_bflow_class_code
38031            ,p_balance_type            => l_balance_type_code);
38032    ELSE
38033       NULL;
38034 XLA_AE_LINES_PKG.business_flow_validation(
38035                                 p_business_method_code     => l_bflow_method_code
38039 
38036                                ,p_business_class_code      => l_bflow_class_code
38037                                ,p_inherit_description_flag => l_inherit_desc_flag);
38038    END IF;
38040    --
38041    -- call analytical criteria
38042    --
38043    -- Inherited Analytical Criteria for business flow method of Prior Entry.
38044    --
38045    -- call description
38046    --
38047    -- No description or it is inherited.
38048    --
38049    -- call ADRs
38050    -- Bug 4922099
38051    --
38052    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38053         (NVL(l_actual_upg_option, 'N') = 'O') OR
38054         (NVL(l_enc_upg_option, 'N') = 'O')
38055       )
38056    THEN
38057    NULL;
38058    --
38059    --
38060    
38061    --
38062    --
38063    END IF;
38064    --
38065    -- Bug 4922099
38066    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38067           (NVL(l_enc_upg_option, 'N') = 'O')
38068         ) AND
38069         (l_bflow_method_code = 'PRIOR_ENTRY')
38070       )
38071    THEN
38072       IF
38073       --
38074       1 = 1
38075       --
38076       THEN
38077       xla_accounting_err_pkg.build_message
38078                                     (p_appli_s_name            => 'XLA'
38079                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38080                                     ,p_token_1                 => 'LINE_NUMBER'
38081                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
38082                                     ,p_token_2                 => 'LINE_TYPE_NAME'
38083                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
38084                                                                              l_component_type
38085                                                                             ,l_component_code
38086                                                                             ,l_component_type_code
38087                                                                             ,l_component_appl_id
38088                                                                             ,l_amb_context_code
38089                                                                             ,l_entity_code
38090                                                                             ,l_event_class_code
38091                                                                            )
38092                                     ,p_token_3                 => 'OWNER'
38093                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
38094                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
38095                                                                           ,p_lookup_code    => l_component_type_code
38096                                                                          )
38097                                     ,p_token_4                 => 'PRODUCT_NAME'
38098                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38099                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38100                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38101                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38102                                     ,p_ae_header_id            =>  NULL
38103                                        );
38104 
38105         IF (C_LEVEL_ERROR>= g_log_level) THEN
38106                  trace
38107                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38108                       ,p_level    => C_LEVEL_ERROR
38109                       ,p_module   => l_log_module);
38110         END IF;
38111       END IF;
38112    END IF;
38113    --
38114    --
38115    ------------------------------------------------------------------------------------------------
38116    -- 4219869 Business Flow
38117    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38118    -- Prior Entry.  Currently, the following code is always generated.
38119    ------------------------------------------------------------------------------------------------
38120    -- No ValidateCurrentLine for business flow method of Prior Entry
38121 
38122    ------------------------------------------------------------------------------------
38123    -- 4219869 Business Flow
38124    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38125    ------------------------------------------------------------------------------------
38126    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38127 
38128    ----------------------------------------------------------------------------------
38129    -- 4219869 Business Flow
38130    -- Update journal entry status -- Need to generate this within IF <condition>
38131    ----------------------------------------------------------------------------------
38132    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38133          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38134          ,p_balance_type_code => l_balance_type_code
38135          );
38136 
38137    -------------------------------------------------------------------------------------------
38138    -- 4262811 - Generate the Accrual Reversal lines
38142                               (g_array_event(p_event_id).array_value_num('header_index'));
38139    -------------------------------------------------------------------------------------------
38140    BEGIN
38141       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38143       IF l_acc_rev_flag IS NULL THEN
38144          l_acc_rev_flag := 'N';
38145       END IF;
38146    EXCEPTION
38147       WHEN OTHERS THEN
38148          l_acc_rev_flag := 'N';
38149    END;
38150    --
38151    IF (l_acc_rev_flag = 'Y') THEN
38152 
38153        -- 4645092  ------------------------------------------------------------------------------
38154        -- To allow MPA report to determine if it should generate report process
38155        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38156        ------------------------------------------------------------------------------------------
38157 
38158        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38159        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38160    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
38161    -- call ADRs
38162    -- Bug 4922099
38163    --
38164    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38165         (NVL(l_actual_upg_option, 'N') = 'O') OR
38166         (NVL(l_enc_upg_option, 'N') = 'O')
38167       )
38168    THEN
38169    NULL;
38170    --
38171    --
38172    
38173    --
38174    --
38175    END IF;
38176 
38177        --
38178        -- Update the line information that should be overwritten
38179        --
38180        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38181                                          p_header_num   => 1);
38182        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
38183 
38184        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38185 
38186        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
38187           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38188        END IF;
38189 
38190       --
38191       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38192       --
38193       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38194           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
38195       ELSE
38196           ---------------------------------------------------------------------------------------------------
38197           -- 4262811a Switch Sign
38198           ---------------------------------------------------------------------------------------------------
38199           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
38200           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38201                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38202           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38203                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38204           -- 5132302
38205           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38206                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38207 
38208       END IF;
38209 
38210       -- 4955764
38211       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38212       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38213 
38214 
38215       XLA_AE_LINES_PKG.ValidateCurrentLine;
38216       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38217 
38218       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38219                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38220                ,p_balance_type_code => l_balance_type_code);
38221 
38222    END IF;
38223 
38224    -----------------------------------------------------------------------------------------
38225    -- 4262811 Multiperiod Accounting
38226    -----------------------------------------------------------------------------------------
38227      -- No MPA option is assigned.
38228 
38229 
38230 END IF;
38231 END IF;
38232 --
38233 
38234 --
38235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38236    trace
38237       (p_msg      => 'END of AcctLineType_82'
38238       ,p_level    => C_LEVEL_PROCEDURE
38239       ,p_module   => l_log_module);
38240 END IF;
38241 --
38242 EXCEPTION
38243   WHEN xla_exceptions_pkg.application_exception THEN
38244       RAISE;
38245   WHEN OTHERS THEN
38246        xla_exceptions_pkg.raise_message
38247            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_82');
38248 END AcctLineType_82;
38249 --
38250 
38251 ---------------------------------------
38252 --
38253 -- PRIVATE FUNCTION
38254 --         AcctLineType_83
38255 --
38256 ---------------------------------------
38257 PROCEDURE AcctLineType_83 (
38258   p_application_id        IN NUMBER
38259  ,p_event_id              IN NUMBER
38260  ,p_calculate_acctd_flag  IN VARCHAR2
38261  ,p_calculate_g_l_flag    IN VARCHAR2
38265  
38262  ,p_actual_flag           IN OUT VARCHAR2
38263  ,p_balance_type_code     OUT VARCHAR2
38264  ,p_gain_or_loss_ref      OUT VARCHAR2
38266 --Automatic Offsets Value
38267  , p_source_4            IN VARCHAR2
38268  , p_source_4_meaning    IN VARCHAR2
38269 --Purchase Order Rate Variance Gain Account
38270  , p_source_5            IN NUMBER
38271 --Invoice Distribution Ledger Amount
38272  , p_source_6            IN NUMBER
38273 --Destination Type of the PO Distribution
38274  , p_source_7            IN VARCHAR2
38275  , p_source_7_meaning    IN VARCHAR2
38276 --Purchase Order Rate Variance Loss Account
38277  , p_source_8            IN NUMBER
38278 --Invoice Distribution Account
38279  , p_source_17            IN NUMBER
38280 --Automatic Offsets Flag
38281  , p_source_30            IN VARCHAR2
38282  , p_source_30_meaning    IN VARCHAR2
38283 --When to Account for Payment Option
38284  , p_source_38            IN VARCHAR2
38285 --Accounting Reversal Indicator
38286  , p_source_40            IN VARCHAR2
38287 --Business Flow Accounts Payable Application Identifier
38288  , p_source_42            IN NUMBER
38289 --Distribution Link Type
38290  , p_source_48            IN VARCHAR2
38291 --Override Accounted Amount Indicator
38292  , p_source_53            IN VARCHAR2
38293  , p_source_53_meaning    IN VARCHAR2
38294 --Third Party Type
38295  , p_source_56            IN VARCHAR2
38296 --Invoice Distribution Tax Line Identifier
38297  , p_source_58            IN NUMBER
38298 --Invoice Distribution Summary Tax Line Identifier
38299  , p_source_59            IN NUMBER
38300 --Invoice Distribution Tax Distribution Identifier from Tax
38301  , p_source_66            IN NUMBER
38302 --Prepayment Distribution Type
38303  , p_source_67            IN VARCHAR2
38304 --Recipient Invoice Distribution Type
38305  , p_source_68            IN VARCHAR2
38306  , p_source_68_meaning    IN VARCHAR2
38307 --Prepayment Application Distribution Identifier
38308  , p_source_71            IN NUMBER
38309 --Invoice Identifier
38310  , p_source_72            IN NUMBER
38311 --Business Flow Prepayment Invoice Distribution Type
38312  , p_source_73            IN VARCHAR2
38313 --Business Flow Prepayment Invoice Entity Code
38314  , p_source_74            IN VARCHAR2
38315 --Business Flow Prepayment Invoice Distribution Identifier
38316  , p_source_75            IN NUMBER
38317 --Business Flow Prepayment Invoice Identifier
38318  , p_source_76            IN NUMBER
38319 --Upgrade Encumbrance Credit Account Class
38320  , p_source_77            IN VARCHAR2
38321 --Payables Encumbrance Upgrade Credit Account
38322  , p_source_78            IN NUMBER
38323 --Payables Encumbrance Upgrade Credit Amount
38324  , p_source_79            IN NUMBER
38325 --Invoice Currency Code
38326  , p_source_80            IN VARCHAR2
38327 --Payables Encumbrance Upgrade Credit Base Amount
38328  , p_source_81            IN NUMBER
38329 --Upgrade Encumbrance Debit Account Class
38330  , p_source_82            IN VARCHAR2
38331 --Payables Encumbrance Upgrade Debit Account
38332  , p_source_83            IN NUMBER
38333 --Payables Encumbrance Upgrade Debit Amount
38334  , p_source_84            IN NUMBER
38335 --Payables Encumbrance Upgrade Debit Base Amount
38336  , p_source_85            IN NUMBER
38337 --Payables Encumbrance Upgrade Option
38338  , p_source_86            IN VARCHAR2
38339 --Prepayment Distribution Amount
38340  , p_source_87            IN NUMBER
38341 --Prepayment Clearing Currency Code
38342  , p_source_88            IN VARCHAR2
38343 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
38344  , p_source_89            IN NUMBER
38345 --Deferred Accounting End Date
38346  , p_source_90            IN DATE
38347 --Deferred Accounting Option
38348  , p_source_91            IN VARCHAR2
38349 --Deferred Accounting Start Date
38350  , p_source_92            IN DATE
38351 --Invoice Supplier Identifier
38352  , p_source_93            IN NUMBER
38353 --Invoice Supplier Site Identifier
38354  , p_source_94            IN NUMBER
38355 --Identifier of the Prepayment Application Reversed
38356  , p_source_95            IN NUMBER
38357 --Payables Upgrade Credit Encumbrance Type Identifier
38358  , p_source_96            IN NUMBER
38359 --Payables Upgrade Debit Encumbrance Type Identifier
38360  , p_source_97            IN NUMBER
38361 --Accrue on Receipt Option
38362  , p_source_100            IN VARCHAR2
38363  , p_source_100_meaning    IN VARCHAR2
38364 --Prepayment Clearing Exchange Date
38365  , p_source_118            IN DATE
38366 --Prepayment Clearing Exchange Rate
38367  , p_source_119            IN NUMBER
38368 --Prepayment Clearing Exchange Rate Type
38369  , p_source_120            IN VARCHAR2
38370 )
38371 IS
38372 
38373 l_component_type              VARCHAR2(80);
38374 l_component_code              VARCHAR2(30);
38375 l_component_type_code         VARCHAR2(1);
38376 l_component_appl_id           INTEGER;
38377 l_amb_context_code            VARCHAR2(30);
38378 l_entity_code                 VARCHAR2(30);
38379 l_event_class_code            VARCHAR2(30);
38380 l_ae_header_id                NUMBER;
38381 l_event_type_code             VARCHAR2(30);
38382 l_line_definition_code        VARCHAR2(30);
38383 l_line_definition_owner_code  VARCHAR2(1);
38384 --
38385 -- adr variables
38386 l_segment                     VARCHAR2(30);
38387 l_ccid                        NUMBER;
38388 l_adr_transaction_coa_id      NUMBER;
38389 l_adr_accounting_coa_id       NUMBER;
38393 l_adr_value_combination_id    NUMBER;
38390 l_adr_flexfield_segment_code  VARCHAR2(30);
38391 l_adr_flex_value_set_id       NUMBER;
38392 l_adr_value_type_code         VARCHAR2(30);
38394 l_adr_value_segment_code      VARCHAR2(30);
38395 
38396 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38397 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38398 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38399 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38400 
38401 -- 4262811 Variables ------------------------------------------------------------------------------------------
38402 l_entered_amt_idx             NUMBER;
38403 l_accted_amt_idx              NUMBER;
38404 l_acc_rev_flag                VARCHAR2(1);
38405 l_accrual_line_num            NUMBER;
38406 l_tmp_amt                     NUMBER;
38407 l_acc_rev_natural_side_code   VARCHAR2(1);
38408 
38409 l_num_entries                 NUMBER;
38410 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38411 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38412 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38413 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38414 l_recog_line_1                NUMBER;
38415 l_recog_line_2                NUMBER;
38416 
38417 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38418 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38419 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38420 
38421 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38422 
38423 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38424 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38425 
38426 ---------------------------------------------------------------------------------------------------------------
38427 
38428 
38429 --
38430 -- bulk performance
38431 --
38432 l_balance_type_code           VARCHAR2(1);
38433 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38434 l_log_module                  VARCHAR2(240);
38435 
38436 --
38437 -- Upgrade strategy
38438 --
38439 l_actual_upg_option           VARCHAR2(1);
38440 l_enc_upg_option           VARCHAR2(1);
38441 
38442 --
38443 BEGIN
38444 --
38445 IF g_log_enabled THEN
38446       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
38447 END IF;
38448 --
38449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38450 
38451       trace
38452          (p_msg      => 'BEGIN of AcctLineType_83'
38453          ,p_level    => C_LEVEL_PROCEDURE
38454          ,p_module   => l_log_module);
38455 
38456 END IF;
38457 --
38458 l_component_type             := 'AMB_JLT';
38459 l_component_code             := 'AP_EX_RATE_VAR_CLR_RATE';
38460 l_component_type_code        := 'S';
38461 l_component_appl_id          :=  200;
38462 l_amb_context_code           := 'DEFAULT';
38463 l_entity_code                := 'AP_INVOICES';
38464 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
38465 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
38466 l_line_definition_owner_code := 'S';
38467 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
38468 --
38469 l_balance_type_code          := 'A';
38470 l_segment                     := NULL;
38471 l_ccid                        := NULL;
38472 l_adr_transaction_coa_id      := NULL;
38473 l_adr_accounting_coa_id       := NULL;
38474 l_adr_flexfield_segment_code  := NULL;
38475 l_adr_flex_value_set_id       := NULL;
38476 l_adr_value_type_code         := NULL;
38477 l_adr_value_combination_id    := NULL;
38478 l_adr_value_segment_code      := NULL;
38479 
38480 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
38481 l_bflow_class_code           := '';    -- 4219869 Business Flow
38482 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
38483 l_budgetary_control_flag     := 'N';
38484 
38485 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
38486 l_bflow_applied_to_amt       := NULL; -- 5132302
38487 l_entered_amt_idx            := NULL;          -- 4262811
38488 l_accted_amt_idx             := NULL;          -- 4262811
38489 l_acc_rev_flag               := NULL;          -- 4262811
38490 l_accrual_line_num           := NULL;          -- 4262811
38491 l_tmp_amt                    := NULL;          -- 4262811
38492 --
38493 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
38494             (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
38495                return;
38496   END IF;
38497   
38498 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38499     l_balance_type_code <> 'B' THEN
38500 IF NVL(p_source_38,'
38501 ') =  'CLEAR_CLEAR' AND 
38502 (NVL(p_source_67,'
38503 ') =  'PREPAY APPL' OR 
38504 NVL(p_source_67,'
38505 ') =  'PREPAY APPL NONREC TAX' OR 
38506 NVL(p_source_67,'
38507 ') =  'PREPAY APPL REC TAX') AND 
38508 NVL(p_source_68,'
38509 ') =  'ERV' AND 
38510 NVL(p_source_100,'
38511 ') =  'Y'
38512  THEN 
38513 
38514    --
38515    XLA_AE_LINES_PKG.SetNewLine;
38516 
38517    p_balance_type_code          := l_balance_type_code;
38521      p_actual_flag :='G';
38518    -- set the flag so later we will know whether the gain loss line needs to be created
38519    
38520    IF(l_balance_type_code = 'A' ) THEN
38522    END IF;
38523 
38524    --
38525    -- bulk performance
38526    --
38527    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38528                                       p_header_num   => 0); -- 4262811
38529    --
38530    -- set accounting line options
38531    --
38532    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38533            p_natural_side_code          => 'C'
38534          , p_gain_or_loss_flag          => 'Y'
38535          , p_gl_transfer_mode_code      => 'S'
38536          , p_acct_entry_type_code       => 'A'
38537          , p_switch_side_flag           => 'Y'
38538          , p_merge_duplicate_code       => 'A'
38539          );
38540    --
38541    l_acc_rev_natural_side_code := 'D';  -- 4262811
38542    -- 
38543    --
38544    -- set accounting line type info
38545    --
38546    xla_ae_lines_pkg.SetAcctLineType
38547       (p_component_type             => l_component_type
38548       ,p_event_type_code            => l_event_type_code
38549       ,p_line_definition_owner_code => l_line_definition_owner_code
38550       ,p_line_definition_code       => l_line_definition_code
38551       ,p_accounting_line_code       => l_component_code
38552       ,p_accounting_line_type_code  => l_component_type_code
38553       ,p_accounting_line_appl_id    => l_component_appl_id
38554       ,p_amb_context_code           => l_amb_context_code
38555       ,p_entity_code                => l_entity_code
38556       ,p_event_class_code           => l_event_class_code);
38557    --
38558    -- set accounting class
38559    --
38560    xla_ae_lines_pkg.SetAcctClass(
38561            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
38562          , p_ae_header_id           => l_ae_header_id
38563          );
38564 
38565    --
38566    -- set rounding class
38567    --
38568    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38569                       'EXCHANGE_RATE_VARIANCE';
38570 
38571    --
38572    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38573    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38574    --
38575    -- bulk performance
38576    --
38577    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38578 
38579    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38580       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38581 
38582    -- 4955764
38583    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38584       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38585 
38586    -- 4458381 Public Sector Enh
38587    
38588    --
38589    -- set accounting attributes for the line type
38590    --
38591    l_entered_amt_idx := 25;
38592    l_accted_amt_idx  := 30;
38593    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
38594    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38595    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
38596    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
38597    l_rec_acct_attrs.array_num_value(2)  := 
38598 xla_ae_sources_pkg.GetSystemSourceNum(
38599    p_source_code           => 'XLA_EVENT_APPL_ID'
38600  , p_source_type_code      => 'Y'
38601  , p_source_application_id =>  602
38602 );
38603    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
38604    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
38605    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
38606    l_rec_acct_attrs.array_char_value(4)  := 
38607 xla_ae_sources_pkg.GetSystemSourceChar(
38608    p_source_code           => 'XLA_ENTITY_CODE'
38609  , p_source_type_code      => 'Y'
38610  , p_source_application_id =>  602
38611 );
38612    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
38613    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
38614    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
38615    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
38616    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
38617    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
38618    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38619    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
38620    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
38621    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
38622    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
38623    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
38624    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38625    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
38626    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
38627    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
38628    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
38629    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
38633    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
38630    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
38631    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
38632    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
38634    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
38635    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
38636    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
38637    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
38638    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
38639    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
38640    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
38641    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
38642    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
38643    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
38644    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
38645    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
38646    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
38647    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
38648    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
38649    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
38650    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
38651    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
38652    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
38653    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
38654    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
38655    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
38656    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
38657    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
38658    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
38659    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
38660    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
38661    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
38662    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
38663    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
38664    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
38665    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
38666    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
38667    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
38668    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
38669    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
38670    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
38671    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
38672    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
38673    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
38674    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
38675    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
38676    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
38677    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
38678    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
38679    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
38680    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
38681    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
38682    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
38683    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
38684    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
38685    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
38686    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
38687    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
38688    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
38689    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
38690    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
38691    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
38692 
38693    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38694    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38695 
38696    ---------------------------------------------------------------------------------------------------------------
38697    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38698    ---------------------------------------------------------------------------------------------------------------
38699    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38700 
38701    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38702    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38703 
38704    IF xla_accounting_cache_pkg.GetValueChar
38705          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38706          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38707    AND l_bflow_method_code = 'PRIOR_ENTRY'
38708 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38709    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38710          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38711        )
38712    THEN
38713          xla_ae_lines_pkg.BflowUpgEntry
38717    ELSE
38714            (p_business_method_code    => l_bflow_method_code
38715            ,p_business_class_code     => l_bflow_class_code
38716            ,p_balance_type            => l_balance_type_code);
38718       NULL;
38719 -- No business flow processing for business flow method of NONE.
38720    END IF;
38721 
38722    --
38723    -- call analytical criteria
38724    --
38725    
38726    --
38727    -- call description
38728    --
38729    -- No description or it is inherited.
38730    --
38731    -- call ADRs
38732    -- Bug 4922099
38733    --
38734    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38735         (NVL(l_actual_upg_option, 'N') = 'O') OR
38736         (NVL(l_enc_upg_option, 'N') = 'O')
38737       )
38738    THEN
38739    NULL;
38740    --
38741    --
38742    
38743   l_ccid := AcctDerRule_23(
38744            p_application_id           => p_application_id
38745          , p_ae_header_id             => l_ae_header_id 
38746 , p_source_4 => p_source_4
38747 , p_source_4_meaning => p_source_4_meaning
38748 , p_source_5 => p_source_5
38749 , p_source_6 => p_source_6
38750 , p_source_7 => p_source_7
38751 , p_source_7_meaning => p_source_7_meaning
38752 , p_source_8 => p_source_8
38753 , p_source_17 => p_source_17
38754 , p_source_30 => p_source_30
38755 , p_source_30_meaning => p_source_30_meaning
38756          , x_transaction_coa_id       => l_adr_transaction_coa_id
38757          , x_accounting_coa_id        => l_adr_accounting_coa_id
38758          , x_value_type_code          => l_adr_value_type_code
38759          , p_side                     => 'NA'
38760    );
38761 
38762    xla_ae_lines_pkg.set_ccid(
38763     p_code_combination_id          => l_ccid
38764   , p_value_type_code              => l_adr_value_type_code
38765   , p_transaction_coa_id           => l_adr_transaction_coa_id
38766   , p_accounting_coa_id            => l_adr_accounting_coa_id
38767   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
38768   , p_adr_type_code                => 'S'
38769   , p_component_type               => l_component_type
38770   , p_component_code               => l_component_code
38771   , p_component_type_code          => l_component_type_code
38772   , p_component_appl_id            => l_component_appl_id
38773   , p_amb_context_code             => l_amb_context_code
38774   , p_side                         => 'NA'
38775   );
38776 
38777 
38778    l_segment := AcctDerRule_3(
38779            p_application_id           => p_application_id
38780          , p_ae_header_id             => l_ae_header_id 
38781 , p_source_4 => p_source_4
38782 , p_source_4_meaning => p_source_4_meaning
38783 , p_source_5 => p_source_5
38784 , p_source_6 => p_source_6
38785 , p_source_7 => p_source_7
38786 , p_source_7_meaning => p_source_7_meaning
38787 , p_source_8 => p_source_8
38788          , x_transaction_coa_id       => l_adr_transaction_coa_id
38789          , x_accounting_coa_id        => l_adr_accounting_coa_id
38790          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38791          , x_flex_value_set_id        => l_adr_flex_value_set_id
38792          , x_value_type_code          => l_adr_value_type_code
38793          , x_value_combination_id     => l_adr_value_combination_id
38794          , x_value_segment_code       => l_adr_value_segment_code
38795          , p_side                     => 'NA'
38796          , p_override_seg_flag        => 'Y'
38797    );
38798 
38799    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38800 
38801       xla_ae_lines_pkg.set_segment(
38802           p_to_segment_code         => 'GL_ACCOUNT'
38803         , p_segment_value           => l_segment
38804         , p_from_segment_code       => l_adr_value_segment_code
38805         , p_from_combination_id     => l_adr_value_combination_id
38806         , p_value_type_code         => l_adr_value_type_code
38807         , p_transaction_coa_id      => l_adr_transaction_coa_id
38808         , p_accounting_coa_id       => l_adr_accounting_coa_id
38809         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38810         , p_flex_value_set_id       => l_adr_flex_value_set_id
38811         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
38812         , p_adr_type_code           => 'S'
38813         , p_component_type          => l_component_type
38814         , p_component_code          => l_component_code
38815         , p_component_type_code     => l_component_type_code
38816         , p_component_appl_id       => l_component_appl_id
38817         , p_amb_context_code        => l_amb_context_code
38818         , p_entity_code             => 'AP_INVOICES'
38819         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
38820         , p_side                    => 'NA'
38821         );
38822 
38823   END IF;
38824 
38825    l_segment := AcctDerRule_15(
38826            p_application_id           => p_application_id
38827          , p_ae_header_id             => l_ae_header_id 
38828 , p_source_4 => p_source_4
38829 , p_source_4_meaning => p_source_4_meaning
38830 , p_source_7 => p_source_7
38831 , p_source_7_meaning => p_source_7_meaning
38832 , p_source_17 => p_source_17
38833          , x_transaction_coa_id       => l_adr_transaction_coa_id
38834          , x_accounting_coa_id        => l_adr_accounting_coa_id
38835          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38836          , x_flex_value_set_id        => l_adr_flex_value_set_id
38837          , x_value_type_code          => l_adr_value_type_code
38841          , p_override_seg_flag        => 'Y'
38838          , x_value_combination_id     => l_adr_value_combination_id
38839          , x_value_segment_code       => l_adr_value_segment_code
38840          , p_side                     => 'NA'
38842    );
38843 
38844    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38845 
38846       xla_ae_lines_pkg.set_segment(
38847           p_to_segment_code         => 'GL_BALANCING'
38848         , p_segment_value           => l_segment
38849         , p_from_segment_code       => l_adr_value_segment_code
38850         , p_from_combination_id     => l_adr_value_combination_id
38851         , p_value_type_code         => l_adr_value_type_code
38852         , p_transaction_coa_id      => l_adr_transaction_coa_id
38853         , p_accounting_coa_id       => l_adr_accounting_coa_id
38854         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38855         , p_flex_value_set_id       => l_adr_flex_value_set_id
38856         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
38857         , p_adr_type_code           => 'S'
38858         , p_component_type          => l_component_type
38859         , p_component_code          => l_component_code
38860         , p_component_type_code     => l_component_type_code
38861         , p_component_appl_id       => l_component_appl_id
38862         , p_amb_context_code        => l_amb_context_code
38863         , p_entity_code             => 'AP_INVOICES'
38864         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
38865         , p_side                    => 'NA'
38866         );
38867 
38868   END IF;
38869 
38870    --
38871    --
38872    END IF;
38873    --
38874    -- Bug 4922099
38875    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38876           (NVL(l_enc_upg_option, 'N') = 'O')
38877         ) AND
38878         (l_bflow_method_code = 'PRIOR_ENTRY')
38879       )
38880    THEN
38881       IF
38882       --
38883       1 = 2
38884       --
38885       THEN
38886       xla_accounting_err_pkg.build_message
38887                                     (p_appli_s_name            => 'XLA'
38888                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38889                                     ,p_token_1                 => 'LINE_NUMBER'
38890                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
38891                                     ,p_token_2                 => 'LINE_TYPE_NAME'
38892                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
38893                                                                              l_component_type
38894                                                                             ,l_component_code
38895                                                                             ,l_component_type_code
38896                                                                             ,l_component_appl_id
38897                                                                             ,l_amb_context_code
38898                                                                             ,l_entity_code
38899                                                                             ,l_event_class_code
38900                                                                            )
38901                                     ,p_token_3                 => 'OWNER'
38902                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
38903                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
38904                                                                           ,p_lookup_code    => l_component_type_code
38905                                                                          )
38906                                     ,p_token_4                 => 'PRODUCT_NAME'
38907                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38908                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38909                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38910                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38911                                     ,p_ae_header_id            =>  NULL
38912                                        );
38913 
38914         IF (C_LEVEL_ERROR>= g_log_level) THEN
38915                  trace
38916                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38917                       ,p_level    => C_LEVEL_ERROR
38918                       ,p_module   => l_log_module);
38919         END IF;
38920       END IF;
38921    END IF;
38922    --
38923    --
38924    ------------------------------------------------------------------------------------------------
38925    -- 4219869 Business Flow
38926    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38927    -- Prior Entry.  Currently, the following code is always generated.
38928    ------------------------------------------------------------------------------------------------
38929    XLA_AE_LINES_PKG.ValidateCurrentLine;
38930 
38931    ------------------------------------------------------------------------------------
38932    -- 4219869 Business Flow
38933    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38934    ------------------------------------------------------------------------------------
38938    -- 4219869 Business Flow
38935    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38936 
38937    ----------------------------------------------------------------------------------
38939    -- Update journal entry status -- Need to generate this within IF <condition>
38940    ----------------------------------------------------------------------------------
38941    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38942          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38943          ,p_balance_type_code => l_balance_type_code
38944          );
38945 
38946    -------------------------------------------------------------------------------------------
38947    -- 4262811 - Generate the Accrual Reversal lines
38948    -------------------------------------------------------------------------------------------
38949    BEGIN
38950       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38951                               (g_array_event(p_event_id).array_value_num('header_index'));
38952       IF l_acc_rev_flag IS NULL THEN
38953          l_acc_rev_flag := 'N';
38954       END IF;
38955    EXCEPTION
38956       WHEN OTHERS THEN
38957          l_acc_rev_flag := 'N';
38958    END;
38959    --
38960    IF (l_acc_rev_flag = 'Y') THEN
38961 
38962        -- 4645092  ------------------------------------------------------------------------------
38963        -- To allow MPA report to determine if it should generate report process
38964        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38965        ------------------------------------------------------------------------------------------
38966 
38967        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38968        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38969    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
38970    -- call ADRs
38971    -- Bug 4922099
38972    --
38973    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38974         (NVL(l_actual_upg_option, 'N') = 'O') OR
38975         (NVL(l_enc_upg_option, 'N') = 'O')
38976       )
38977    THEN
38978    NULL;
38979    --
38980    --
38981    
38982   l_ccid := AcctDerRule_23(
38983            p_application_id           => p_application_id
38984          , p_ae_header_id             => l_ae_header_id 
38985 , p_source_4 => p_source_4
38986 , p_source_4_meaning => p_source_4_meaning
38987 , p_source_5 => p_source_5
38988 , p_source_6 => p_source_6
38989 , p_source_7 => p_source_7
38990 , p_source_7_meaning => p_source_7_meaning
38991 , p_source_8 => p_source_8
38992 , p_source_17 => p_source_17
38993 , p_source_30 => p_source_30
38994 , p_source_30_meaning => p_source_30_meaning
38995          , x_transaction_coa_id       => l_adr_transaction_coa_id
38996          , x_accounting_coa_id        => l_adr_accounting_coa_id
38997          , x_value_type_code          => l_adr_value_type_code
38998          , p_side                     => 'NA'
38999    );
39000 
39001    xla_ae_lines_pkg.set_ccid(
39002     p_code_combination_id          => l_ccid
39003   , p_value_type_code              => l_adr_value_type_code
39004   , p_transaction_coa_id           => l_adr_transaction_coa_id
39005   , p_accounting_coa_id            => l_adr_accounting_coa_id
39006   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
39007   , p_adr_type_code                => 'S'
39008   , p_component_type               => l_component_type
39009   , p_component_code               => l_component_code
39010   , p_component_type_code          => l_component_type_code
39011   , p_component_appl_id            => l_component_appl_id
39012   , p_amb_context_code             => l_amb_context_code
39013   , p_side                         => 'NA'
39014   );
39015 
39016 
39017    l_segment := AcctDerRule_3(
39018            p_application_id           => p_application_id
39019          , p_ae_header_id             => l_ae_header_id 
39020 , p_source_4 => p_source_4
39021 , p_source_4_meaning => p_source_4_meaning
39022 , p_source_5 => p_source_5
39023 , p_source_6 => p_source_6
39024 , p_source_7 => p_source_7
39025 , p_source_7_meaning => p_source_7_meaning
39026 , p_source_8 => p_source_8
39027          , x_transaction_coa_id       => l_adr_transaction_coa_id
39028          , x_accounting_coa_id        => l_adr_accounting_coa_id
39029          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39030          , x_flex_value_set_id        => l_adr_flex_value_set_id
39031          , x_value_type_code          => l_adr_value_type_code
39032          , x_value_combination_id     => l_adr_value_combination_id
39033          , x_value_segment_code       => l_adr_value_segment_code
39034          , p_side                     => 'NA'
39035          , p_override_seg_flag        => 'Y'
39036    );
39037 
39038    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39039 
39040       xla_ae_lines_pkg.set_segment(
39041           p_to_segment_code         => 'GL_ACCOUNT'
39042         , p_segment_value           => l_segment
39043         , p_from_segment_code       => l_adr_value_segment_code
39044         , p_from_combination_id     => l_adr_value_combination_id
39045         , p_value_type_code         => l_adr_value_type_code
39046         , p_transaction_coa_id      => l_adr_transaction_coa_id
39047         , p_accounting_coa_id       => l_adr_accounting_coa_id
39048         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39049         , p_flex_value_set_id       => l_adr_flex_value_set_id
39050         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
39054         , p_component_type_code     => l_component_type_code
39051         , p_adr_type_code           => 'S'
39052         , p_component_type          => l_component_type
39053         , p_component_code          => l_component_code
39055         , p_component_appl_id       => l_component_appl_id
39056         , p_amb_context_code        => l_amb_context_code
39057         , p_entity_code             => 'AP_INVOICES'
39058         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
39059         , p_side                    => 'NA'
39060         );
39061 
39062   END IF;
39063 
39064    l_segment := AcctDerRule_15(
39065            p_application_id           => p_application_id
39066          , p_ae_header_id             => l_ae_header_id 
39067 , p_source_4 => p_source_4
39068 , p_source_4_meaning => p_source_4_meaning
39069 , p_source_7 => p_source_7
39070 , p_source_7_meaning => p_source_7_meaning
39071 , p_source_17 => p_source_17
39072          , x_transaction_coa_id       => l_adr_transaction_coa_id
39073          , x_accounting_coa_id        => l_adr_accounting_coa_id
39074          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39075          , x_flex_value_set_id        => l_adr_flex_value_set_id
39076          , x_value_type_code          => l_adr_value_type_code
39077          , x_value_combination_id     => l_adr_value_combination_id
39078          , x_value_segment_code       => l_adr_value_segment_code
39079          , p_side                     => 'NA'
39080          , p_override_seg_flag        => 'Y'
39081    );
39082 
39083    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39084 
39085       xla_ae_lines_pkg.set_segment(
39086           p_to_segment_code         => 'GL_BALANCING'
39087         , p_segment_value           => l_segment
39088         , p_from_segment_code       => l_adr_value_segment_code
39089         , p_from_combination_id     => l_adr_value_combination_id
39090         , p_value_type_code         => l_adr_value_type_code
39091         , p_transaction_coa_id      => l_adr_transaction_coa_id
39092         , p_accounting_coa_id       => l_adr_accounting_coa_id
39093         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39094         , p_flex_value_set_id       => l_adr_flex_value_set_id
39095         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
39096         , p_adr_type_code           => 'S'
39097         , p_component_type          => l_component_type
39098         , p_component_code          => l_component_code
39099         , p_component_type_code     => l_component_type_code
39100         , p_component_appl_id       => l_component_appl_id
39101         , p_amb_context_code        => l_amb_context_code
39102         , p_entity_code             => 'AP_INVOICES'
39103         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
39104         , p_side                    => 'NA'
39105         );
39106 
39107   END IF;
39108 
39109    --
39110    --
39111    END IF;
39112 
39113        --
39114        -- Update the line information that should be overwritten
39115        --
39116        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39117                                          p_header_num   => 1);
39118        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39119 
39120        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39121 
39122        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39123           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39124        END IF;
39125 
39126       --
39127       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39128       --
39129       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39130           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39131       ELSE
39132           ---------------------------------------------------------------------------------------------------
39133           -- 4262811a Switch Sign
39134           ---------------------------------------------------------------------------------------------------
39135           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39136           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39137                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39138           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39139                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39140           -- 5132302
39141           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39142                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39143 
39144       END IF;
39145 
39146       -- 4955764
39147       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39148       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39149 
39150 
39151       XLA_AE_LINES_PKG.ValidateCurrentLine;
39152       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39153 
39157 
39154       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39155                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39156                ,p_balance_type_code => l_balance_type_code);
39158    END IF;
39159 
39160    -----------------------------------------------------------------------------------------
39161    -- 4262811 Multiperiod Accounting
39162    -----------------------------------------------------------------------------------------
39163      -- No MPA option is assigned.
39164 
39165 
39166 END IF;
39167 END IF;
39168 --
39169 
39170 --
39171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39172    trace
39173       (p_msg      => 'END of AcctLineType_83'
39174       ,p_level    => C_LEVEL_PROCEDURE
39175       ,p_module   => l_log_module);
39176 END IF;
39177 --
39178 EXCEPTION
39179   WHEN xla_exceptions_pkg.application_exception THEN
39180       RAISE;
39181   WHEN OTHERS THEN
39182        xla_exceptions_pkg.raise_message
39183            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_83');
39184 END AcctLineType_83;
39185 --
39186 
39187 ---------------------------------------
39188 --
39189 -- PRIVATE FUNCTION
39190 --         AcctLineType_84
39191 --
39192 ---------------------------------------
39193 PROCEDURE AcctLineType_84 (
39194   p_application_id        IN NUMBER
39195  ,p_event_id              IN NUMBER
39196  ,p_calculate_acctd_flag  IN VARCHAR2
39197  ,p_calculate_g_l_flag    IN VARCHAR2
39198  ,p_actual_flag           IN OUT VARCHAR2
39199  ,p_balance_type_code     OUT VARCHAR2
39200  ,p_gain_or_loss_ref      OUT VARCHAR2
39201  
39202 --Automatic Offsets Value
39203  , p_source_4            IN VARCHAR2
39204  , p_source_4_meaning    IN VARCHAR2
39205 --Purchase Order Rate Variance Gain Account
39206  , p_source_5            IN NUMBER
39207 --Destination Type of the PO Distribution
39208  , p_source_7            IN VARCHAR2
39209  , p_source_7_meaning    IN VARCHAR2
39210 --Purchase Order Rate Variance Loss Account
39211  , p_source_8            IN NUMBER
39212 --Payment Distribution (Payment Rate) Ledger Amount
39213  , p_source_9            IN NUMBER
39214 --Payment Distribution (Cleared Rate) Ledger Amount
39215  , p_source_10            IN NUMBER
39216 --Invoice Distribution Account
39217  , p_source_17            IN NUMBER
39218 --Automatic Offsets Flag
39219  , p_source_30            IN VARCHAR2
39220  , p_source_30_meaning    IN VARCHAR2
39221 --When to Account for Payment Option
39222  , p_source_38            IN VARCHAR2
39223 --Payment Distribution Type
39224  , p_source_39            IN VARCHAR2
39225  , p_source_39_meaning    IN VARCHAR2
39226 --Accounting Reversal Indicator
39227  , p_source_40            IN VARCHAR2
39228 --Payment Distribution Amount
39229  , p_source_41            IN NUMBER
39230 --Business Flow Accounts Payable Application Identifier
39231  , p_source_42            IN NUMBER
39232 --Payment Distribution Identifier
39233  , p_source_47            IN NUMBER
39234 --Distribution Link Type
39235  , p_source_48            IN VARCHAR2
39236 --Payment Currency Code
39237  , p_source_49            IN VARCHAR2
39238 --Override Accounted Amount Indicator
39239  , p_source_53            IN VARCHAR2
39240  , p_source_53_meaning    IN VARCHAR2
39241 --Payment Supplier Identifier
39242  , p_source_54            IN NUMBER
39243 --Payment Supplier Site Identifier
39244  , p_source_55            IN NUMBER
39245 --Third Party Type
39246  , p_source_56            IN VARCHAR2
39247 --Payment Distribution Reversed Identifier
39248  , p_source_57            IN NUMBER
39249 --Invoice Distribution Tax Line Identifier
39250  , p_source_58            IN NUMBER
39251 --Invoice Distribution Summary Tax Line Identifier
39252  , p_source_59            IN NUMBER
39253 --Payment Type
39254  , p_source_60            IN VARCHAR2
39255  , p_source_60_meaning    IN VARCHAR2
39256 --Invoice Distribution Amount of the Payment Distribution
39257  , p_source_61            IN NUMBER
39258 --Business Flow Invoice Distribution Type
39259  , p_source_62            IN VARCHAR2
39260 --Business Flow Invoice Entity Code
39261  , p_source_63            IN VARCHAR2
39262 --Business Flow Invoice Distribution Identifier
39263  , p_source_64            IN NUMBER
39264 --Business Flow Invoice Identifier
39265  , p_source_65            IN NUMBER
39266 --Invoice Distribution Tax Distribution Identifier from Tax
39267  , p_source_66            IN NUMBER
39268 --Accrue on Receipt Option
39269  , p_source_100            IN VARCHAR2
39270  , p_source_100_meaning    IN VARCHAR2
39271 --Payment Exchange Date
39272  , p_source_114            IN DATE
39273 --Payment Exchange Rate
39274  , p_source_115            IN NUMBER
39275 --Payment Exchange Rate Type
39276  , p_source_116            IN VARCHAR2
39277 )
39278 IS
39279 
39280 l_component_type              VARCHAR2(80);
39281 l_component_code              VARCHAR2(30);
39282 l_component_type_code         VARCHAR2(1);
39283 l_component_appl_id           INTEGER;
39284 l_amb_context_code            VARCHAR2(30);
39285 l_entity_code                 VARCHAR2(30);
39286 l_event_class_code            VARCHAR2(30);
39287 l_ae_header_id                NUMBER;
39288 l_event_type_code             VARCHAR2(30);
39289 l_line_definition_code        VARCHAR2(30);
39290 l_line_definition_owner_code  VARCHAR2(1);
39294 l_ccid                        NUMBER;
39291 --
39292 -- adr variables
39293 l_segment                     VARCHAR2(30);
39295 l_adr_transaction_coa_id      NUMBER;
39296 l_adr_accounting_coa_id       NUMBER;
39297 l_adr_flexfield_segment_code  VARCHAR2(30);
39298 l_adr_flex_value_set_id       NUMBER;
39299 l_adr_value_type_code         VARCHAR2(30);
39300 l_adr_value_combination_id    NUMBER;
39301 l_adr_value_segment_code      VARCHAR2(30);
39302 
39303 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
39304 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
39305 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
39306 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
39307 
39308 -- 4262811 Variables ------------------------------------------------------------------------------------------
39309 l_entered_amt_idx             NUMBER;
39310 l_accted_amt_idx              NUMBER;
39311 l_acc_rev_flag                VARCHAR2(1);
39312 l_accrual_line_num            NUMBER;
39313 l_tmp_amt                     NUMBER;
39314 l_acc_rev_natural_side_code   VARCHAR2(1);
39315 
39316 l_num_entries                 NUMBER;
39317 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
39318 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
39319 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
39320 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
39321 l_recog_line_1                NUMBER;
39322 l_recog_line_2                NUMBER;
39323 
39324 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
39325 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
39326 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
39327 
39328 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39329 
39330 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
39331 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
39332 
39333 ---------------------------------------------------------------------------------------------------------------
39334 
39335 
39336 --
39337 -- bulk performance
39338 --
39339 l_balance_type_code           VARCHAR2(1);
39340 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
39341 l_log_module                  VARCHAR2(240);
39342 
39343 --
39344 -- Upgrade strategy
39345 --
39346 l_actual_upg_option           VARCHAR2(1);
39347 l_enc_upg_option           VARCHAR2(1);
39348 
39349 --
39350 BEGIN
39351 --
39352 IF g_log_enabled THEN
39353       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
39354 END IF;
39355 --
39356 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39357 
39358       trace
39359          (p_msg      => 'BEGIN of AcctLineType_84'
39360          ,p_level    => C_LEVEL_PROCEDURE
39361          ,p_module   => l_log_module);
39362 
39363 END IF;
39364 --
39365 l_component_type             := 'AMB_JLT';
39366 l_component_code             := 'AP_EX_RATE_VAR_PMT';
39367 l_component_type_code        := 'S';
39368 l_component_appl_id          :=  200;
39369 l_amb_context_code           := 'DEFAULT';
39370 l_entity_code                := 'AP_PAYMENTS';
39371 l_event_class_code           := 'PAYMENTS';
39372 l_event_type_code            := 'PAYMENTS_ALL';
39373 l_line_definition_owner_code := 'S';
39374 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
39375 --
39376 l_balance_type_code          := 'A';
39377 l_segment                     := NULL;
39378 l_ccid                        := NULL;
39379 l_adr_transaction_coa_id      := NULL;
39380 l_adr_accounting_coa_id       := NULL;
39381 l_adr_flexfield_segment_code  := NULL;
39382 l_adr_flex_value_set_id       := NULL;
39383 l_adr_value_type_code         := NULL;
39384 l_adr_value_combination_id    := NULL;
39385 l_adr_value_segment_code      := NULL;
39386 
39387 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
39388 l_bflow_class_code           := '';    -- 4219869 Business Flow
39389 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39390 l_budgetary_control_flag     := 'N';
39391 
39392 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39393 l_bflow_applied_to_amt       := NULL; -- 5132302
39394 l_entered_amt_idx            := NULL;          -- 4262811
39395 l_accted_amt_idx             := NULL;          -- 4262811
39396 l_acc_rev_flag               := NULL;          -- 4262811
39397 l_accrual_line_num           := NULL;          -- 4262811
39398 l_tmp_amt                    := NULL;          -- 4262811
39399 --
39400 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
39401             (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
39402                return;
39403   END IF;
39404   
39405 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39406     l_balance_type_code <> 'B' THEN
39407 IF NVL(p_source_38,'
39408 ') <>  'CLEAR_CLEAR' AND 
39409 NVL(p_source_39,'
39410 ') =  'EXCHANGE RATE VARIANCE' AND 
39411 NVL(p_source_100,'
39412 ') =  'Y' AND 
39413 NVL(p_source_60,'
39414 ') <>  'R'
39415  THEN 
39416 
39417    --
39418    XLA_AE_LINES_PKG.SetNewLine;
39422    
39419 
39420    p_balance_type_code          := l_balance_type_code;
39421    -- set the flag so later we will know whether the gain loss line needs to be created
39423    IF(l_balance_type_code = 'A' ) THEN
39424      p_actual_flag :='G';
39425    END IF;
39426 
39427    --
39428    -- bulk performance
39429    --
39430    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39431                                       p_header_num   => 0); -- 4262811
39432    --
39433    -- set accounting line options
39434    --
39435    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39436            p_natural_side_code          => 'D'
39437          , p_gain_or_loss_flag          => 'Y'
39438          , p_gl_transfer_mode_code      => 'S'
39439          , p_acct_entry_type_code       => 'A'
39440          , p_switch_side_flag           => 'Y'
39441          , p_merge_duplicate_code       => 'A'
39442          );
39443    --
39444    l_acc_rev_natural_side_code := 'C';  -- 4262811
39445    -- 
39446    --
39447    -- set accounting line type info
39448    --
39449    xla_ae_lines_pkg.SetAcctLineType
39450       (p_component_type             => l_component_type
39451       ,p_event_type_code            => l_event_type_code
39452       ,p_line_definition_owner_code => l_line_definition_owner_code
39453       ,p_line_definition_code       => l_line_definition_code
39454       ,p_accounting_line_code       => l_component_code
39455       ,p_accounting_line_type_code  => l_component_type_code
39456       ,p_accounting_line_appl_id    => l_component_appl_id
39457       ,p_amb_context_code           => l_amb_context_code
39458       ,p_entity_code                => l_entity_code
39459       ,p_event_class_code           => l_event_class_code);
39460    --
39461    -- set accounting class
39462    --
39463    xla_ae_lines_pkg.SetAcctClass(
39464            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
39465          , p_ae_header_id           => l_ae_header_id
39466          );
39467 
39468    --
39469    -- set rounding class
39470    --
39471    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39472                       'EXCHANGE_RATE_VARIANCE';
39473 
39474    --
39475    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39476    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39477    --
39478    -- bulk performance
39479    --
39480    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39481 
39482    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39483       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39484 
39485    -- 4955764
39486    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39487       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39488 
39489    -- 4458381 Public Sector Enh
39490    
39491    --
39492    -- set accounting attributes for the line type
39493    --
39494    l_entered_amt_idx := 10;
39495    l_accted_amt_idx  := 15;
39496    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
39497    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39498    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
39499    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
39500    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
39501    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
39502    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
39503    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39504    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
39505    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
39506    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
39507    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
39508    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
39509    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39510    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
39511    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
39512    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
39513    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
39514    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
39515    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
39516    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
39517    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
39518    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
39519    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
39520    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
39521    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
39522    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
39523    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
39524    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
39525    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
39526    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
39527    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
39528    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
39529    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
39530    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
39534    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
39531    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
39532    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
39533    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
39535    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
39536    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
39537    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
39538    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
39539    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
39540    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
39541    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
39542    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
39543    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
39544    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
39545 
39546    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39547    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39548 
39549    ---------------------------------------------------------------------------------------------------------------
39550    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39551    ---------------------------------------------------------------------------------------------------------------
39552    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39553 
39554    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39555    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39556 
39557    IF xla_accounting_cache_pkg.GetValueChar
39558          (p_source_code         => 'LEDGER_CATEGORY_CODE'
39559          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39560    AND l_bflow_method_code = 'PRIOR_ENTRY'
39561 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39562    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39563          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39564        )
39565    THEN
39566          xla_ae_lines_pkg.BflowUpgEntry
39567            (p_business_method_code    => l_bflow_method_code
39568            ,p_business_class_code     => l_bflow_class_code
39569            ,p_balance_type            => l_balance_type_code);
39570    ELSE
39571       NULL;
39572 -- No business flow processing for business flow method of NONE.
39573    END IF;
39574 
39575    --
39576    -- call analytical criteria
39577    --
39578    
39579    --
39580    -- call description
39581    --
39582    -- No description or it is inherited.
39583    --
39584    -- call ADRs
39585    -- Bug 4922099
39586    --
39587    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39588         (NVL(l_actual_upg_option, 'N') = 'O') OR
39589         (NVL(l_enc_upg_option, 'N') = 'O')
39590       )
39591    THEN
39592    NULL;
39593    --
39594    --
39595    
39596   l_ccid := AcctDerRule_22(
39597            p_application_id           => p_application_id
39598          , p_ae_header_id             => l_ae_header_id 
39599 , p_source_4 => p_source_4
39600 , p_source_4_meaning => p_source_4_meaning
39601 , p_source_5 => p_source_5
39602 , p_source_7 => p_source_7
39603 , p_source_7_meaning => p_source_7_meaning
39604 , p_source_8 => p_source_8
39605 , p_source_9 => p_source_9
39606 , p_source_10 => p_source_10
39607 , p_source_17 => p_source_17
39608 , p_source_30 => p_source_30
39609 , p_source_30_meaning => p_source_30_meaning
39610          , x_transaction_coa_id       => l_adr_transaction_coa_id
39611          , x_accounting_coa_id        => l_adr_accounting_coa_id
39612          , x_value_type_code          => l_adr_value_type_code
39613          , p_side                     => 'NA'
39614    );
39615 
39616    xla_ae_lines_pkg.set_ccid(
39617     p_code_combination_id          => l_ccid
39618   , p_value_type_code              => l_adr_value_type_code
39619   , p_transaction_coa_id           => l_adr_transaction_coa_id
39620   , p_accounting_coa_id            => l_adr_accounting_coa_id
39621   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
39622   , p_adr_type_code                => 'S'
39623   , p_component_type               => l_component_type
39624   , p_component_code               => l_component_code
39625   , p_component_type_code          => l_component_type_code
39626   , p_component_appl_id            => l_component_appl_id
39627   , p_amb_context_code             => l_amb_context_code
39628   , p_side                         => 'NA'
39629   );
39630 
39631 
39632    l_segment := AcctDerRule_4(
39633            p_application_id           => p_application_id
39634          , p_ae_header_id             => l_ae_header_id 
39635 , p_source_4 => p_source_4
39636 , p_source_4_meaning => p_source_4_meaning
39637 , p_source_5 => p_source_5
39638 , p_source_7 => p_source_7
39639 , p_source_7_meaning => p_source_7_meaning
39640 , p_source_8 => p_source_8
39641 , p_source_9 => p_source_9
39642 , p_source_10 => p_source_10
39643          , x_transaction_coa_id       => l_adr_transaction_coa_id
39644          , x_accounting_coa_id        => l_adr_accounting_coa_id
39648          , x_value_combination_id     => l_adr_value_combination_id
39645          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39646          , x_flex_value_set_id        => l_adr_flex_value_set_id
39647          , x_value_type_code          => l_adr_value_type_code
39649          , x_value_segment_code       => l_adr_value_segment_code
39650          , p_side                     => 'NA'
39651          , p_override_seg_flag        => 'Y'
39652    );
39653 
39654    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39655 
39656       xla_ae_lines_pkg.set_segment(
39657           p_to_segment_code         => 'GL_ACCOUNT'
39658         , p_segment_value           => l_segment
39659         , p_from_segment_code       => l_adr_value_segment_code
39660         , p_from_combination_id     => l_adr_value_combination_id
39661         , p_value_type_code         => l_adr_value_type_code
39662         , p_transaction_coa_id      => l_adr_transaction_coa_id
39663         , p_accounting_coa_id       => l_adr_accounting_coa_id
39664         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39665         , p_flex_value_set_id       => l_adr_flex_value_set_id
39666         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
39667         , p_adr_type_code           => 'S'
39668         , p_component_type          => l_component_type
39669         , p_component_code          => l_component_code
39670         , p_component_type_code     => l_component_type_code
39671         , p_component_appl_id       => l_component_appl_id
39672         , p_amb_context_code        => l_amb_context_code
39673         , p_entity_code             => 'AP_PAYMENTS'
39674         , p_event_class_code        => 'PAYMENTS'
39675         , p_side                    => 'NA'
39676         );
39677 
39678   END IF;
39679 
39680    l_segment := AcctDerRule_15(
39681            p_application_id           => p_application_id
39682          , p_ae_header_id             => l_ae_header_id 
39683 , p_source_4 => p_source_4
39684 , p_source_4_meaning => p_source_4_meaning
39685 , p_source_7 => p_source_7
39686 , p_source_7_meaning => p_source_7_meaning
39687 , p_source_17 => p_source_17
39688          , x_transaction_coa_id       => l_adr_transaction_coa_id
39689          , x_accounting_coa_id        => l_adr_accounting_coa_id
39690          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39691          , x_flex_value_set_id        => l_adr_flex_value_set_id
39692          , x_value_type_code          => l_adr_value_type_code
39693          , x_value_combination_id     => l_adr_value_combination_id
39694          , x_value_segment_code       => l_adr_value_segment_code
39695          , p_side                     => 'NA'
39696          , p_override_seg_flag        => 'Y'
39697    );
39698 
39699    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39700 
39701       xla_ae_lines_pkg.set_segment(
39702           p_to_segment_code         => 'GL_BALANCING'
39703         , p_segment_value           => l_segment
39704         , p_from_segment_code       => l_adr_value_segment_code
39705         , p_from_combination_id     => l_adr_value_combination_id
39706         , p_value_type_code         => l_adr_value_type_code
39707         , p_transaction_coa_id      => l_adr_transaction_coa_id
39708         , p_accounting_coa_id       => l_adr_accounting_coa_id
39709         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39710         , p_flex_value_set_id       => l_adr_flex_value_set_id
39711         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
39712         , p_adr_type_code           => 'S'
39713         , p_component_type          => l_component_type
39714         , p_component_code          => l_component_code
39715         , p_component_type_code     => l_component_type_code
39716         , p_component_appl_id       => l_component_appl_id
39717         , p_amb_context_code        => l_amb_context_code
39718         , p_entity_code             => 'AP_PAYMENTS'
39719         , p_event_class_code        => 'PAYMENTS'
39720         , p_side                    => 'NA'
39721         );
39722 
39723   END IF;
39724 
39725    --
39726    --
39727    END IF;
39728    --
39729    -- Bug 4922099
39730    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39731           (NVL(l_enc_upg_option, 'N') = 'O')
39732         ) AND
39733         (l_bflow_method_code = 'PRIOR_ENTRY')
39734       )
39735    THEN
39736       IF
39737       --
39738       1 = 2
39739       --
39740       THEN
39741       xla_accounting_err_pkg.build_message
39742                                     (p_appli_s_name            => 'XLA'
39743                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39744                                     ,p_token_1                 => 'LINE_NUMBER'
39745                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39746                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39747                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39748                                                                              l_component_type
39749                                                                             ,l_component_code
39750                                                                             ,l_component_type_code
39751                                                                             ,l_component_appl_id
39752                                                                             ,l_amb_context_code
39756                                     ,p_token_3                 => 'OWNER'
39753                                                                             ,l_entity_code
39754                                                                             ,l_event_class_code
39755                                                                            )
39757                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39758                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39759                                                                           ,p_lookup_code    => l_component_type_code
39760                                                                          )
39761                                     ,p_token_4                 => 'PRODUCT_NAME'
39762                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39763                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39764                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39765                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39766                                     ,p_ae_header_id            =>  NULL
39767                                        );
39768 
39769         IF (C_LEVEL_ERROR>= g_log_level) THEN
39770                  trace
39771                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39772                       ,p_level    => C_LEVEL_ERROR
39773                       ,p_module   => l_log_module);
39774         END IF;
39775       END IF;
39776    END IF;
39777    --
39778    --
39779    ------------------------------------------------------------------------------------------------
39780    -- 4219869 Business Flow
39781    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39782    -- Prior Entry.  Currently, the following code is always generated.
39783    ------------------------------------------------------------------------------------------------
39784    XLA_AE_LINES_PKG.ValidateCurrentLine;
39785 
39786    ------------------------------------------------------------------------------------
39787    -- 4219869 Business Flow
39788    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39789    ------------------------------------------------------------------------------------
39790    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39791 
39792    ----------------------------------------------------------------------------------
39793    -- 4219869 Business Flow
39794    -- Update journal entry status -- Need to generate this within IF <condition>
39795    ----------------------------------------------------------------------------------
39796    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39797          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39798          ,p_balance_type_code => l_balance_type_code
39799          );
39800 
39801    -------------------------------------------------------------------------------------------
39802    -- 4262811 - Generate the Accrual Reversal lines
39803    -------------------------------------------------------------------------------------------
39804    BEGIN
39805       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39806                               (g_array_event(p_event_id).array_value_num('header_index'));
39807       IF l_acc_rev_flag IS NULL THEN
39808          l_acc_rev_flag := 'N';
39809       END IF;
39810    EXCEPTION
39811       WHEN OTHERS THEN
39812          l_acc_rev_flag := 'N';
39813    END;
39814    --
39815    IF (l_acc_rev_flag = 'Y') THEN
39816 
39817        -- 4645092  ------------------------------------------------------------------------------
39818        -- To allow MPA report to determine if it should generate report process
39819        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39820        ------------------------------------------------------------------------------------------
39821 
39822        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39823        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39824    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39825    -- call ADRs
39826    -- Bug 4922099
39827    --
39828    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39829         (NVL(l_actual_upg_option, 'N') = 'O') OR
39830         (NVL(l_enc_upg_option, 'N') = 'O')
39831       )
39832    THEN
39833    NULL;
39834    --
39835    --
39836    
39837   l_ccid := AcctDerRule_22(
39838            p_application_id           => p_application_id
39839          , p_ae_header_id             => l_ae_header_id 
39840 , p_source_4 => p_source_4
39841 , p_source_4_meaning => p_source_4_meaning
39842 , p_source_5 => p_source_5
39843 , p_source_7 => p_source_7
39844 , p_source_7_meaning => p_source_7_meaning
39845 , p_source_8 => p_source_8
39846 , p_source_9 => p_source_9
39847 , p_source_10 => p_source_10
39848 , p_source_17 => p_source_17
39849 , p_source_30 => p_source_30
39850 , p_source_30_meaning => p_source_30_meaning
39851          , x_transaction_coa_id       => l_adr_transaction_coa_id
39852          , x_accounting_coa_id        => l_adr_accounting_coa_id
39853          , x_value_type_code          => l_adr_value_type_code
39854          , p_side                     => 'NA'
39858     p_code_combination_id          => l_ccid
39855    );
39856 
39857    xla_ae_lines_pkg.set_ccid(
39859   , p_value_type_code              => l_adr_value_type_code
39860   , p_transaction_coa_id           => l_adr_transaction_coa_id
39861   , p_accounting_coa_id            => l_adr_accounting_coa_id
39862   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
39863   , p_adr_type_code                => 'S'
39864   , p_component_type               => l_component_type
39865   , p_component_code               => l_component_code
39866   , p_component_type_code          => l_component_type_code
39867   , p_component_appl_id            => l_component_appl_id
39868   , p_amb_context_code             => l_amb_context_code
39869   , p_side                         => 'NA'
39870   );
39871 
39872 
39873    l_segment := AcctDerRule_4(
39874            p_application_id           => p_application_id
39875          , p_ae_header_id             => l_ae_header_id 
39876 , p_source_4 => p_source_4
39877 , p_source_4_meaning => p_source_4_meaning
39878 , p_source_5 => p_source_5
39879 , p_source_7 => p_source_7
39880 , p_source_7_meaning => p_source_7_meaning
39881 , p_source_8 => p_source_8
39882 , p_source_9 => p_source_9
39883 , p_source_10 => p_source_10
39884          , x_transaction_coa_id       => l_adr_transaction_coa_id
39885          , x_accounting_coa_id        => l_adr_accounting_coa_id
39886          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39887          , x_flex_value_set_id        => l_adr_flex_value_set_id
39888          , x_value_type_code          => l_adr_value_type_code
39889          , x_value_combination_id     => l_adr_value_combination_id
39890          , x_value_segment_code       => l_adr_value_segment_code
39891          , p_side                     => 'NA'
39892          , p_override_seg_flag        => 'Y'
39893    );
39894 
39895    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39896 
39897       xla_ae_lines_pkg.set_segment(
39898           p_to_segment_code         => 'GL_ACCOUNT'
39899         , p_segment_value           => l_segment
39900         , p_from_segment_code       => l_adr_value_segment_code
39901         , p_from_combination_id     => l_adr_value_combination_id
39902         , p_value_type_code         => l_adr_value_type_code
39903         , p_transaction_coa_id      => l_adr_transaction_coa_id
39904         , p_accounting_coa_id       => l_adr_accounting_coa_id
39905         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39906         , p_flex_value_set_id       => l_adr_flex_value_set_id
39907         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
39908         , p_adr_type_code           => 'S'
39909         , p_component_type          => l_component_type
39910         , p_component_code          => l_component_code
39911         , p_component_type_code     => l_component_type_code
39912         , p_component_appl_id       => l_component_appl_id
39913         , p_amb_context_code        => l_amb_context_code
39914         , p_entity_code             => 'AP_PAYMENTS'
39915         , p_event_class_code        => 'PAYMENTS'
39916         , p_side                    => 'NA'
39917         );
39918 
39919   END IF;
39920 
39921    l_segment := AcctDerRule_15(
39922            p_application_id           => p_application_id
39923          , p_ae_header_id             => l_ae_header_id 
39924 , p_source_4 => p_source_4
39925 , p_source_4_meaning => p_source_4_meaning
39926 , p_source_7 => p_source_7
39927 , p_source_7_meaning => p_source_7_meaning
39928 , p_source_17 => p_source_17
39929          , x_transaction_coa_id       => l_adr_transaction_coa_id
39930          , x_accounting_coa_id        => l_adr_accounting_coa_id
39931          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39932          , x_flex_value_set_id        => l_adr_flex_value_set_id
39933          , x_value_type_code          => l_adr_value_type_code
39934          , x_value_combination_id     => l_adr_value_combination_id
39935          , x_value_segment_code       => l_adr_value_segment_code
39936          , p_side                     => 'NA'
39937          , p_override_seg_flag        => 'Y'
39938    );
39939 
39940    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39941 
39942       xla_ae_lines_pkg.set_segment(
39943           p_to_segment_code         => 'GL_BALANCING'
39944         , p_segment_value           => l_segment
39945         , p_from_segment_code       => l_adr_value_segment_code
39946         , p_from_combination_id     => l_adr_value_combination_id
39947         , p_value_type_code         => l_adr_value_type_code
39948         , p_transaction_coa_id      => l_adr_transaction_coa_id
39949         , p_accounting_coa_id       => l_adr_accounting_coa_id
39950         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39951         , p_flex_value_set_id       => l_adr_flex_value_set_id
39952         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
39953         , p_adr_type_code           => 'S'
39954         , p_component_type          => l_component_type
39955         , p_component_code          => l_component_code
39956         , p_component_type_code     => l_component_type_code
39957         , p_component_appl_id       => l_component_appl_id
39958         , p_amb_context_code        => l_amb_context_code
39959         , p_entity_code             => 'AP_PAYMENTS'
39960         , p_event_class_code        => 'PAYMENTS'
39961         , p_side                    => 'NA'
39962         );
39963 
39964   END IF;
39965 
39966    --
39970        --
39967    --
39968    END IF;
39969 
39971        -- Update the line information that should be overwritten
39972        --
39973        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39974                                          p_header_num   => 1);
39975        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39976 
39977        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39978 
39979        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39980           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39981        END IF;
39982 
39983       --
39984       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39985       --
39986       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39987           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39988       ELSE
39989           ---------------------------------------------------------------------------------------------------
39990           -- 4262811a Switch Sign
39991           ---------------------------------------------------------------------------------------------------
39992           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39993           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39994                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39995           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39996                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39997           -- 5132302
39998           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39999                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40000 
40001       END IF;
40002 
40003       -- 4955764
40004       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40005       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40006 
40007 
40008       XLA_AE_LINES_PKG.ValidateCurrentLine;
40009       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40010 
40011       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40012                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40013                ,p_balance_type_code => l_balance_type_code);
40014 
40015    END IF;
40016 
40017    -----------------------------------------------------------------------------------------
40018    -- 4262811 Multiperiod Accounting
40019    -----------------------------------------------------------------------------------------
40020      -- No MPA option is assigned.
40021 
40022 
40023 END IF;
40024 END IF;
40025 --
40026 
40027 --
40028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40029    trace
40030       (p_msg      => 'END of AcctLineType_84'
40031       ,p_level    => C_LEVEL_PROCEDURE
40032       ,p_module   => l_log_module);
40033 END IF;
40034 --
40035 EXCEPTION
40036   WHEN xla_exceptions_pkg.application_exception THEN
40037       RAISE;
40038   WHEN OTHERS THEN
40039        xla_exceptions_pkg.raise_message
40040            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_84');
40041 END AcctLineType_84;
40042 --
40043 
40044 ---------------------------------------
40045 --
40046 -- PRIVATE FUNCTION
40047 --         AcctLineType_85
40048 --
40049 ---------------------------------------
40050 PROCEDURE AcctLineType_85 (
40051   p_application_id        IN NUMBER
40052  ,p_event_id              IN NUMBER
40053  ,p_calculate_acctd_flag  IN VARCHAR2
40054  ,p_calculate_g_l_flag    IN VARCHAR2
40055  ,p_actual_flag           IN OUT VARCHAR2
40056  ,p_balance_type_code     OUT VARCHAR2
40057  ,p_gain_or_loss_ref      OUT VARCHAR2
40058  
40059 --Payment Distribution (Payment Rate) Ledger Amount
40060  , p_source_9            IN NUMBER
40061 --When to Account for Payment Option
40062  , p_source_38            IN VARCHAR2
40063 --Payment Distribution Type
40064  , p_source_39            IN VARCHAR2
40065  , p_source_39_meaning    IN VARCHAR2
40066 --Accounting Reversal Indicator
40067  , p_source_40            IN VARCHAR2
40068 --Payment Distribution Amount
40069  , p_source_41            IN NUMBER
40070 --Business Flow Accounts Payable Application Identifier
40071  , p_source_42            IN NUMBER
40072 --Payment Distribution Identifier
40073  , p_source_47            IN NUMBER
40074 --Distribution Link Type
40075  , p_source_48            IN VARCHAR2
40076 --Payment Currency Code
40077  , p_source_49            IN VARCHAR2
40078 --Override Accounted Amount Indicator
40079  , p_source_53            IN VARCHAR2
40080  , p_source_53_meaning    IN VARCHAR2
40081 --Third Party Type
40082  , p_source_56            IN VARCHAR2
40083 --Payment Distribution Reversed Identifier
40084  , p_source_57            IN NUMBER
40085 --Invoice Distribution Tax Line Identifier
40086  , p_source_58            IN NUMBER
40087 --Invoice Distribution Summary Tax Line Identifier
40088  , p_source_59            IN NUMBER
40089 --Payment Type
40093  , p_source_61            IN NUMBER
40090  , p_source_60            IN VARCHAR2
40091  , p_source_60_meaning    IN VARCHAR2
40092 --Invoice Distribution Amount of the Payment Distribution
40094 --Business Flow Invoice Distribution Type
40095  , p_source_62            IN VARCHAR2
40096 --Business Flow Invoice Entity Code
40097  , p_source_63            IN VARCHAR2
40098 --Business Flow Invoice Distribution Identifier
40099  , p_source_64            IN NUMBER
40100 --Business Flow Invoice Identifier
40101  , p_source_65            IN NUMBER
40102 --Invoice Distribution Tax Distribution Identifier from Tax
40103  , p_source_66            IN NUMBER
40104 --Purchasing Encumbrance Option
40105  , p_source_102            IN VARCHAR2
40106  , p_source_102_meaning    IN VARCHAR2
40107 --Invoice Encumbered Option
40108  , p_source_104            IN VARCHAR2
40109  , p_source_104_meaning    IN VARCHAR2
40110 )
40111 IS
40112 
40113 l_component_type              VARCHAR2(80);
40114 l_component_code              VARCHAR2(30);
40115 l_component_type_code         VARCHAR2(1);
40116 l_component_appl_id           INTEGER;
40117 l_amb_context_code            VARCHAR2(30);
40118 l_entity_code                 VARCHAR2(30);
40119 l_event_class_code            VARCHAR2(30);
40120 l_ae_header_id                NUMBER;
40121 l_event_type_code             VARCHAR2(30);
40122 l_line_definition_code        VARCHAR2(30);
40123 l_line_definition_owner_code  VARCHAR2(1);
40124 --
40125 -- adr variables
40126 l_segment                     VARCHAR2(30);
40127 l_ccid                        NUMBER;
40128 l_adr_transaction_coa_id      NUMBER;
40129 l_adr_accounting_coa_id       NUMBER;
40130 l_adr_flexfield_segment_code  VARCHAR2(30);
40131 l_adr_flex_value_set_id       NUMBER;
40132 l_adr_value_type_code         VARCHAR2(30);
40133 l_adr_value_combination_id    NUMBER;
40134 l_adr_value_segment_code      VARCHAR2(30);
40135 
40136 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40137 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40138 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40139 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40140 
40141 -- 4262811 Variables ------------------------------------------------------------------------------------------
40142 l_entered_amt_idx             NUMBER;
40143 l_accted_amt_idx              NUMBER;
40144 l_acc_rev_flag                VARCHAR2(1);
40145 l_accrual_line_num            NUMBER;
40146 l_tmp_amt                     NUMBER;
40147 l_acc_rev_natural_side_code   VARCHAR2(1);
40148 
40149 l_num_entries                 NUMBER;
40150 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40151 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40152 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40153 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40154 l_recog_line_1                NUMBER;
40155 l_recog_line_2                NUMBER;
40156 
40157 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40158 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40159 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40160 
40161 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40162 
40163 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40164 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40165 
40166 ---------------------------------------------------------------------------------------------------------------
40167 
40168 
40169 --
40170 -- bulk performance
40171 --
40172 l_balance_type_code           VARCHAR2(1);
40173 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40174 l_log_module                  VARCHAR2(240);
40175 
40176 --
40177 -- Upgrade strategy
40178 --
40179 l_actual_upg_option           VARCHAR2(1);
40180 l_enc_upg_option           VARCHAR2(1);
40181 
40182 --
40183 BEGIN
40184 --
40185 IF g_log_enabled THEN
40186       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
40187 END IF;
40188 --
40189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40190 
40191       trace
40192          (p_msg      => 'BEGIN of AcctLineType_85'
40193          ,p_level    => C_LEVEL_PROCEDURE
40194          ,p_module   => l_log_module);
40195 
40196 END IF;
40197 --
40198 l_component_type             := 'AMB_JLT';
40199 l_component_code             := 'AP_EX_RATE_VAR_PMT_ENC';
40200 l_component_type_code        := 'S';
40201 l_component_appl_id          :=  200;
40202 l_amb_context_code           := 'DEFAULT';
40203 l_entity_code                := 'AP_PAYMENTS';
40204 l_event_class_code           := 'PAYMENTS';
40205 l_event_type_code            := 'PAYMENTS_ALL';
40206 l_line_definition_owner_code := 'S';
40207 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
40208 --
40209 l_balance_type_code          := 'E';
40210 l_segment                     := NULL;
40211 l_ccid                        := NULL;
40212 l_adr_transaction_coa_id      := NULL;
40213 l_adr_accounting_coa_id       := NULL;
40214 l_adr_flexfield_segment_code  := NULL;
40215 l_adr_flex_value_set_id       := NULL;
40216 l_adr_value_type_code         := NULL;
40217 l_adr_value_combination_id    := NULL;
40218 l_adr_value_segment_code      := NULL;
40219 
40223 l_budgetary_control_flag     := 'N';
40220 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
40221 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
40222 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40224 
40225 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40226 l_bflow_applied_to_amt       := NULL; -- 5132302
40227 l_entered_amt_idx            := NULL;          -- 4262811
40228 l_accted_amt_idx             := NULL;          -- 4262811
40229 l_acc_rev_flag               := NULL;          -- 4262811
40230 l_accrual_line_num           := NULL;          -- 4262811
40231 l_tmp_amt                    := NULL;          -- 4262811
40232 --
40233 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
40234             (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
40235                return;
40236   END IF;
40237   
40238 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40239     l_balance_type_code <> 'B' THEN
40240 IF NVL(p_source_38,'
40241 ') <>  'CLEAR_CLEAR' AND 
40242 NVL(p_source_39,'
40243 ') =  'EXCHANGE RATE VARIANCE' AND 
40244 NVL(p_source_60,'
40245 ') <>  'R' AND 
40246 NVL(p_source_102,'
40247 ') =  'Y' AND 
40248 NVL(p_source_104,'
40249 ') =  'Y'
40250  THEN 
40251 
40252    --
40253    XLA_AE_LINES_PKG.SetNewLine;
40254 
40255    p_balance_type_code          := l_balance_type_code;
40256    -- set the flag so later we will know whether the gain loss line needs to be created
40257    
40258    IF(l_balance_type_code = 'A' ) THEN
40259      p_actual_flag :='G';
40260    END IF;
40261 
40262    --
40263    -- bulk performance
40264    --
40265    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40266                                       p_header_num   => 0); -- 4262811
40267    --
40268    -- set accounting line options
40269    --
40270    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40271            p_natural_side_code          => 'C'
40272          , p_gain_or_loss_flag          => 'Y'
40273          , p_gl_transfer_mode_code      => 'S'
40274          , p_acct_entry_type_code       => 'E'
40275          , p_switch_side_flag           => 'Y'
40276          , p_merge_duplicate_code       => 'A'
40277          );
40278    --
40279    l_acc_rev_natural_side_code := 'D';  -- 4262811
40280    -- 
40281    --
40282    -- set accounting line type info
40283    --
40284    xla_ae_lines_pkg.SetAcctLineType
40285       (p_component_type             => l_component_type
40286       ,p_event_type_code            => l_event_type_code
40287       ,p_line_definition_owner_code => l_line_definition_owner_code
40288       ,p_line_definition_code       => l_line_definition_code
40289       ,p_accounting_line_code       => l_component_code
40290       ,p_accounting_line_type_code  => l_component_type_code
40291       ,p_accounting_line_appl_id    => l_component_appl_id
40292       ,p_amb_context_code           => l_amb_context_code
40293       ,p_entity_code                => l_entity_code
40294       ,p_event_class_code           => l_event_class_code);
40295    --
40296    -- set accounting class
40297    --
40298    xla_ae_lines_pkg.SetAcctClass(
40299            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
40300          , p_ae_header_id           => l_ae_header_id
40301          );
40302 
40303    --
40304    -- set rounding class
40305    --
40306    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40307                       'EXCHANGE_RATE_VARIANCE';
40308 
40309    --
40310    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40311    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40312    --
40313    -- bulk performance
40314    --
40315    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40316 
40317    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40318       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40319 
40320    -- 4955764
40321    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40322       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40323 
40324    -- 4458381 Public Sector Enh
40325    
40326    --
40327    -- set accounting attributes for the line type
40328    --
40329    l_entered_amt_idx := 10;
40330    l_accted_amt_idx  := 12;
40331    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
40332    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40333    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
40334    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
40335    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
40336    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
40337    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
40338    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40339    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
40340    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
40344    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40341    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
40342    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
40343    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
40345    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
40346    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
40347    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
40348    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
40349    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
40350    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
40351    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
40352    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
40353    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
40354    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
40355    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
40356    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
40357    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
40358    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
40359    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
40360    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
40361    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
40362    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
40363    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
40364    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
40365    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
40366    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
40367    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
40368    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
40369    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
40370 
40371    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40372    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40373 
40374    ---------------------------------------------------------------------------------------------------------------
40375    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40376    ---------------------------------------------------------------------------------------------------------------
40377    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40378 
40379    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40380    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40381 
40382    IF xla_accounting_cache_pkg.GetValueChar
40383          (p_source_code         => 'LEDGER_CATEGORY_CODE'
40384          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40385    AND l_bflow_method_code = 'PRIOR_ENTRY'
40386 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40387    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40388          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40389        )
40390    THEN
40391          xla_ae_lines_pkg.BflowUpgEntry
40392            (p_business_method_code    => l_bflow_method_code
40393            ,p_business_class_code     => l_bflow_class_code
40394            ,p_balance_type            => l_balance_type_code);
40395    ELSE
40396       NULL;
40397 XLA_AE_LINES_PKG.business_flow_validation(
40398                                 p_business_method_code     => l_bflow_method_code
40399                                ,p_business_class_code      => l_bflow_class_code
40400                                ,p_inherit_description_flag => l_inherit_desc_flag);
40401    END IF;
40402 
40403    --
40404    -- call analytical criteria
40405    --
40406    -- Inherited Analytical Criteria for business flow method of Prior Entry.
40407    --
40408    -- call description
40409    --
40410    -- No description or it is inherited.
40411    --
40412    -- call ADRs
40413    -- Bug 4922099
40414    --
40415    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40416         (NVL(l_actual_upg_option, 'N') = 'O') OR
40417         (NVL(l_enc_upg_option, 'N') = 'O')
40418       )
40419    THEN
40420    NULL;
40421    --
40422    --
40423    
40424    --
40425    --
40426    END IF;
40427    --
40428    -- Bug 4922099
40429    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40430           (NVL(l_enc_upg_option, 'N') = 'O')
40431         ) AND
40432         (l_bflow_method_code = 'PRIOR_ENTRY')
40433       )
40434    THEN
40435       IF
40436       --
40437       1 = 1
40438       --
40439       THEN
40440       xla_accounting_err_pkg.build_message
40441                                     (p_appli_s_name            => 'XLA'
40442                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40443                                     ,p_token_1                 => 'LINE_NUMBER'
40444                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
40445                                     ,p_token_2                 => 'LINE_TYPE_NAME'
40446                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
40447                                                                              l_component_type
40451                                                                             ,l_amb_context_code
40448                                                                             ,l_component_code
40449                                                                             ,l_component_type_code
40450                                                                             ,l_component_appl_id
40452                                                                             ,l_entity_code
40453                                                                             ,l_event_class_code
40454                                                                            )
40455                                     ,p_token_3                 => 'OWNER'
40456                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
40457                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
40458                                                                           ,p_lookup_code    => l_component_type_code
40459                                                                          )
40460                                     ,p_token_4                 => 'PRODUCT_NAME'
40461                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40462                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40463                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40464                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40465                                     ,p_ae_header_id            =>  NULL
40466                                        );
40467 
40468         IF (C_LEVEL_ERROR>= g_log_level) THEN
40469                  trace
40470                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40471                       ,p_level    => C_LEVEL_ERROR
40472                       ,p_module   => l_log_module);
40473         END IF;
40474       END IF;
40475    END IF;
40476    --
40477    --
40478    ------------------------------------------------------------------------------------------------
40479    -- 4219869 Business Flow
40480    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40481    -- Prior Entry.  Currently, the following code is always generated.
40482    ------------------------------------------------------------------------------------------------
40483    -- No ValidateCurrentLine for business flow method of Prior Entry
40484 
40485    ------------------------------------------------------------------------------------
40486    -- 4219869 Business Flow
40487    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40488    ------------------------------------------------------------------------------------
40489    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40490 
40491    ----------------------------------------------------------------------------------
40492    -- 4219869 Business Flow
40493    -- Update journal entry status -- Need to generate this within IF <condition>
40494    ----------------------------------------------------------------------------------
40495    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40496          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40497          ,p_balance_type_code => l_balance_type_code
40498          );
40499 
40500    -------------------------------------------------------------------------------------------
40501    -- 4262811 - Generate the Accrual Reversal lines
40502    -------------------------------------------------------------------------------------------
40503    BEGIN
40504       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40505                               (g_array_event(p_event_id).array_value_num('header_index'));
40506       IF l_acc_rev_flag IS NULL THEN
40507          l_acc_rev_flag := 'N';
40508       END IF;
40509    EXCEPTION
40510       WHEN OTHERS THEN
40511          l_acc_rev_flag := 'N';
40512    END;
40513    --
40514    IF (l_acc_rev_flag = 'Y') THEN
40515 
40516        -- 4645092  ------------------------------------------------------------------------------
40517        -- To allow MPA report to determine if it should generate report process
40518        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40519        ------------------------------------------------------------------------------------------
40520 
40521        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40522        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40523    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
40524    -- call ADRs
40525    -- Bug 4922099
40526    --
40527    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40528         (NVL(l_actual_upg_option, 'N') = 'O') OR
40529         (NVL(l_enc_upg_option, 'N') = 'O')
40530       )
40531    THEN
40532    NULL;
40533    --
40534    --
40535    
40536    --
40537    --
40538    END IF;
40539 
40540        --
40541        -- Update the line information that should be overwritten
40542        --
40543        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40544                                          p_header_num   => 1);
40545        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40546 
40550           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40547        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40548 
40549        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40551        END IF;
40552 
40553       --
40554       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40555       --
40556       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40557           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
40558       ELSE
40559           ---------------------------------------------------------------------------------------------------
40560           -- 4262811a Switch Sign
40561           ---------------------------------------------------------------------------------------------------
40562           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
40563           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40564                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40565           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40566                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40567           -- 5132302
40568           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40569                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40570 
40571       END IF;
40572 
40573       -- 4955764
40574       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40575       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40576 
40577 
40578       XLA_AE_LINES_PKG.ValidateCurrentLine;
40579       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40580 
40581       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40582                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40583                ,p_balance_type_code => l_balance_type_code);
40584 
40585    END IF;
40586 
40587    -----------------------------------------------------------------------------------------
40588    -- 4262811 Multiperiod Accounting
40589    -----------------------------------------------------------------------------------------
40590      -- No MPA option is assigned.
40591 
40592 
40593 END IF;
40594 END IF;
40595 --
40596 
40597 --
40598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40599    trace
40600       (p_msg      => 'END of AcctLineType_85'
40601       ,p_level    => C_LEVEL_PROCEDURE
40602       ,p_module   => l_log_module);
40603 END IF;
40604 --
40605 EXCEPTION
40606   WHEN xla_exceptions_pkg.application_exception THEN
40607       RAISE;
40608   WHEN OTHERS THEN
40609        xla_exceptions_pkg.raise_message
40610            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_85');
40611 END AcctLineType_85;
40612 --
40613 
40614 ---------------------------------------
40615 --
40616 -- PRIVATE FUNCTION
40617 --         AcctLineType_86
40618 --
40619 ---------------------------------------
40620 PROCEDURE AcctLineType_86 (
40621   p_application_id        IN NUMBER
40622  ,p_event_id              IN NUMBER
40623  ,p_calculate_acctd_flag  IN VARCHAR2
40624  ,p_calculate_g_l_flag    IN VARCHAR2
40625  ,p_actual_flag           IN OUT VARCHAR2
40626  ,p_balance_type_code     OUT VARCHAR2
40627  ,p_gain_or_loss_ref      OUT VARCHAR2
40628  
40629 --Automatic Offsets Value
40630  , p_source_4            IN VARCHAR2
40631  , p_source_4_meaning    IN VARCHAR2
40632 --Purchase Order Rate Variance Gain Account
40633  , p_source_5            IN NUMBER
40634 --Invoice Distribution Ledger Amount
40635  , p_source_6            IN NUMBER
40636 --Destination Type of the PO Distribution
40637  , p_source_7            IN VARCHAR2
40638  , p_source_7_meaning    IN VARCHAR2
40639 --Purchase Order Rate Variance Loss Account
40640  , p_source_8            IN NUMBER
40641 --Invoice Distribution Account
40642  , p_source_17            IN NUMBER
40643 --Automatic Offsets Flag
40644  , p_source_30            IN VARCHAR2
40645  , p_source_30_meaning    IN VARCHAR2
40646 --When to Account for Payment Option
40647  , p_source_38            IN VARCHAR2
40648 --Accounting Reversal Indicator
40649  , p_source_40            IN VARCHAR2
40650 --Business Flow Accounts Payable Application Identifier
40651  , p_source_42            IN NUMBER
40652 --Distribution Link Type
40653  , p_source_48            IN VARCHAR2
40654 --Override Accounted Amount Indicator
40655  , p_source_53            IN VARCHAR2
40656  , p_source_53_meaning    IN VARCHAR2
40657 --Third Party Type
40658  , p_source_56            IN VARCHAR2
40659 --Invoice Distribution Tax Line Identifier
40660  , p_source_58            IN NUMBER
40661 --Invoice Distribution Summary Tax Line Identifier
40662  , p_source_59            IN NUMBER
40663 --Invoice Distribution Tax Distribution Identifier from Tax
40664  , p_source_66            IN NUMBER
40665 --Prepayment Distribution Type
40666  , p_source_67            IN VARCHAR2
40667 --Recipient Invoice Distribution Type
40671  , p_source_71            IN NUMBER
40668  , p_source_68            IN VARCHAR2
40669  , p_source_68_meaning    IN VARCHAR2
40670 --Prepayment Application Distribution Identifier
40672 --Invoice Identifier
40673  , p_source_72            IN NUMBER
40674 --Business Flow Prepayment Invoice Distribution Type
40675  , p_source_73            IN VARCHAR2
40676 --Business Flow Prepayment Invoice Entity Code
40677  , p_source_74            IN VARCHAR2
40678 --Business Flow Prepayment Invoice Distribution Identifier
40679  , p_source_75            IN NUMBER
40680 --Business Flow Prepayment Invoice Identifier
40681  , p_source_76            IN NUMBER
40682 --Upgrade Encumbrance Credit Account Class
40683  , p_source_77            IN VARCHAR2
40684 --Payables Encumbrance Upgrade Credit Account
40685  , p_source_78            IN NUMBER
40686 --Payables Encumbrance Upgrade Credit Amount
40687  , p_source_79            IN NUMBER
40688 --Invoice Currency Code
40689  , p_source_80            IN VARCHAR2
40690 --Payables Encumbrance Upgrade Credit Base Amount
40691  , p_source_81            IN NUMBER
40692 --Upgrade Encumbrance Debit Account Class
40693  , p_source_82            IN VARCHAR2
40694 --Payables Encumbrance Upgrade Debit Account
40695  , p_source_83            IN NUMBER
40696 --Payables Encumbrance Upgrade Debit Amount
40697  , p_source_84            IN NUMBER
40698 --Payables Encumbrance Upgrade Debit Base Amount
40699  , p_source_85            IN NUMBER
40700 --Payables Encumbrance Upgrade Option
40701  , p_source_86            IN VARCHAR2
40702 --Prepayment Distribution Amount
40703  , p_source_87            IN NUMBER
40704 --Deferred Accounting End Date
40705  , p_source_90            IN DATE
40706 --Deferred Accounting Option
40707  , p_source_91            IN VARCHAR2
40708 --Deferred Accounting Start Date
40709  , p_source_92            IN DATE
40710 --Invoice Supplier Identifier
40711  , p_source_93            IN NUMBER
40712 --Invoice Supplier Site Identifier
40713  , p_source_94            IN NUMBER
40714 --Identifier of the Prepayment Application Reversed
40715  , p_source_95            IN NUMBER
40716 --Payables Upgrade Credit Encumbrance Type Identifier
40717  , p_source_96            IN NUMBER
40718 --Payables Upgrade Debit Encumbrance Type Identifier
40719  , p_source_97            IN NUMBER
40720 --Prepayment Payment Currency Code
40721  , p_source_98            IN VARCHAR2
40722 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
40723  , p_source_99            IN NUMBER
40724 --Accrue on Receipt Option
40725  , p_source_100            IN VARCHAR2
40726  , p_source_100_meaning    IN VARCHAR2
40727 --Prepayment Payment Exchange Date
40728  , p_source_121            IN DATE
40729 --Prepayment Payment Exchange Rate
40730  , p_source_122            IN NUMBER
40731 --Prepayment Payment Exchange Rate Type
40732  , p_source_123            IN VARCHAR2
40733 )
40734 IS
40735 
40736 l_component_type              VARCHAR2(80);
40737 l_component_code              VARCHAR2(30);
40738 l_component_type_code         VARCHAR2(1);
40739 l_component_appl_id           INTEGER;
40740 l_amb_context_code            VARCHAR2(30);
40741 l_entity_code                 VARCHAR2(30);
40742 l_event_class_code            VARCHAR2(30);
40743 l_ae_header_id                NUMBER;
40744 l_event_type_code             VARCHAR2(30);
40745 l_line_definition_code        VARCHAR2(30);
40746 l_line_definition_owner_code  VARCHAR2(1);
40747 --
40748 -- adr variables
40749 l_segment                     VARCHAR2(30);
40750 l_ccid                        NUMBER;
40751 l_adr_transaction_coa_id      NUMBER;
40752 l_adr_accounting_coa_id       NUMBER;
40753 l_adr_flexfield_segment_code  VARCHAR2(30);
40754 l_adr_flex_value_set_id       NUMBER;
40755 l_adr_value_type_code         VARCHAR2(30);
40756 l_adr_value_combination_id    NUMBER;
40757 l_adr_value_segment_code      VARCHAR2(30);
40758 
40759 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40760 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40761 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40762 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40763 
40764 -- 4262811 Variables ------------------------------------------------------------------------------------------
40765 l_entered_amt_idx             NUMBER;
40766 l_accted_amt_idx              NUMBER;
40767 l_acc_rev_flag                VARCHAR2(1);
40768 l_accrual_line_num            NUMBER;
40769 l_tmp_amt                     NUMBER;
40770 l_acc_rev_natural_side_code   VARCHAR2(1);
40771 
40772 l_num_entries                 NUMBER;
40773 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40774 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40775 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40776 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40777 l_recog_line_1                NUMBER;
40778 l_recog_line_2                NUMBER;
40779 
40780 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40781 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40782 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40783 
40784 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40785 
40786 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40790 
40787 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40788 
40789 ---------------------------------------------------------------------------------------------------------------
40791 
40792 --
40793 -- bulk performance
40794 --
40795 l_balance_type_code           VARCHAR2(1);
40796 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40797 l_log_module                  VARCHAR2(240);
40798 
40799 --
40800 -- Upgrade strategy
40801 --
40802 l_actual_upg_option           VARCHAR2(1);
40803 l_enc_upg_option           VARCHAR2(1);
40804 
40805 --
40806 BEGIN
40807 --
40808 IF g_log_enabled THEN
40809       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
40810 END IF;
40811 --
40812 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40813 
40814       trace
40815          (p_msg      => 'BEGIN of AcctLineType_86'
40816          ,p_level    => C_LEVEL_PROCEDURE
40817          ,p_module   => l_log_module);
40818 
40819 END IF;
40820 --
40821 l_component_type             := 'AMB_JLT';
40822 l_component_code             := 'AP_EX_RATE_VAR_PREPAY_PAY_RATE';
40823 l_component_type_code        := 'S';
40824 l_component_appl_id          :=  200;
40825 l_amb_context_code           := 'DEFAULT';
40826 l_entity_code                := 'AP_INVOICES';
40827 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
40828 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
40829 l_line_definition_owner_code := 'S';
40830 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
40831 --
40832 l_balance_type_code          := 'A';
40833 l_segment                     := NULL;
40834 l_ccid                        := NULL;
40835 l_adr_transaction_coa_id      := NULL;
40836 l_adr_accounting_coa_id       := NULL;
40837 l_adr_flexfield_segment_code  := NULL;
40838 l_adr_flex_value_set_id       := NULL;
40839 l_adr_value_type_code         := NULL;
40840 l_adr_value_combination_id    := NULL;
40841 l_adr_value_segment_code      := NULL;
40842 
40843 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
40844 l_bflow_class_code           := '';    -- 4219869 Business Flow
40845 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40846 l_budgetary_control_flag     := 'N';
40847 
40848 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40849 l_bflow_applied_to_amt       := NULL; -- 5132302
40850 l_entered_amt_idx            := NULL;          -- 4262811
40851 l_accted_amt_idx             := NULL;          -- 4262811
40852 l_acc_rev_flag               := NULL;          -- 4262811
40853 l_accrual_line_num           := NULL;          -- 4262811
40854 l_tmp_amt                    := NULL;          -- 4262811
40855 --
40856 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
40857             (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
40858                return;
40859   END IF;
40860   
40861 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40862     l_balance_type_code <> 'B' THEN
40863 IF NVL(p_source_38,'
40864 ') <>  'CLEAR_CLEAR' AND 
40865 (NVL(p_source_67,'
40866 ') =  'PREPAY APPL' OR 
40867 NVL(p_source_67,'
40868 ') =  'PREPAY APPL NONREC TAX' OR 
40869 NVL(p_source_67,'
40870 ') =  'PREPAY APPL REC TAX') AND 
40871 NVL(p_source_68,'
40872 ') =  'ERV' AND 
40873 NVL(p_source_100,'
40874 ') =  'Y'
40875  THEN 
40876 
40877    --
40878    XLA_AE_LINES_PKG.SetNewLine;
40879 
40880    p_balance_type_code          := l_balance_type_code;
40881    -- set the flag so later we will know whether the gain loss line needs to be created
40882    
40883    IF(l_balance_type_code = 'A' ) THEN
40884      p_actual_flag :='G';
40885    END IF;
40886 
40887    --
40888    -- bulk performance
40889    --
40890    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40891                                       p_header_num   => 0); -- 4262811
40892    --
40893    -- set accounting line options
40894    --
40895    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40896            p_natural_side_code          => 'C'
40897          , p_gain_or_loss_flag          => 'Y'
40898          , p_gl_transfer_mode_code      => 'S'
40899          , p_acct_entry_type_code       => 'A'
40900          , p_switch_side_flag           => 'Y'
40901          , p_merge_duplicate_code       => 'A'
40902          );
40903    --
40904    l_acc_rev_natural_side_code := 'D';  -- 4262811
40905    -- 
40906    --
40907    -- set accounting line type info
40908    --
40909    xla_ae_lines_pkg.SetAcctLineType
40910       (p_component_type             => l_component_type
40911       ,p_event_type_code            => l_event_type_code
40912       ,p_line_definition_owner_code => l_line_definition_owner_code
40913       ,p_line_definition_code       => l_line_definition_code
40914       ,p_accounting_line_code       => l_component_code
40915       ,p_accounting_line_type_code  => l_component_type_code
40916       ,p_accounting_line_appl_id    => l_component_appl_id
40917       ,p_amb_context_code           => l_amb_context_code
40918       ,p_entity_code                => l_entity_code
40919       ,p_event_class_code           => l_event_class_code);
40920    --
40921    -- set accounting class
40922    --
40923    xla_ae_lines_pkg.SetAcctClass(
40927 
40924            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
40925          , p_ae_header_id           => l_ae_header_id
40926          );
40928    --
40929    -- set rounding class
40930    --
40931    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40932                       'EXCHANGE_RATE_VARIANCE';
40933 
40934    --
40935    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40936    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40937    --
40938    -- bulk performance
40939    --
40940    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40941 
40942    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40943       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40944 
40945    -- 4955764
40946    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40947       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40948 
40949    -- 4458381 Public Sector Enh
40950    
40951    --
40952    -- set accounting attributes for the line type
40953    --
40954    l_entered_amt_idx := 25;
40955    l_accted_amt_idx  := 30;
40956    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
40957    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40958    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
40959    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
40960    l_rec_acct_attrs.array_num_value(2)  := 
40961 xla_ae_sources_pkg.GetSystemSourceNum(
40962    p_source_code           => 'XLA_EVENT_APPL_ID'
40963  , p_source_type_code      => 'Y'
40964  , p_source_application_id =>  602
40965 );
40966    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
40967    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
40968    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
40969    l_rec_acct_attrs.array_char_value(4)  := 
40970 xla_ae_sources_pkg.GetSystemSourceChar(
40971    p_source_code           => 'XLA_ENTITY_CODE'
40972  , p_source_type_code      => 'Y'
40973  , p_source_application_id =>  602
40974 );
40975    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
40976    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
40977    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
40978    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
40979    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
40980    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
40981    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40982    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
40983    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
40984    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
40985    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
40986    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
40987    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40988    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
40989    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
40990    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
40991    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
40992    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
40993    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
40994    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
40995    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
40996    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
40997    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
40998    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
40999    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
41000    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
41001    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
41002    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
41003    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
41004    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
41005    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
41006    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
41007    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
41008    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
41009    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
41010    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
41011    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
41012    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
41013    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
41014    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
41015    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
41016    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
41017    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
41018    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
41019    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
41020    l_rec_acct_attrs.array_date_value(27)  := p_source_121;
41021    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
41025    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
41022    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
41023    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
41024    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
41026    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
41027    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
41028    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
41029    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
41030    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
41031    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
41032    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
41033    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
41034    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
41035    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
41036    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
41037    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
41038    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
41039    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
41040    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
41041    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
41042    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
41043    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
41044    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
41045    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
41046    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
41047    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
41048    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
41049    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
41050    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
41051    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
41052    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
41053    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
41054    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
41055 
41056    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41057    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41058 
41059    ---------------------------------------------------------------------------------------------------------------
41060    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41061    ---------------------------------------------------------------------------------------------------------------
41062    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41063 
41064    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41065    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41066 
41067    IF xla_accounting_cache_pkg.GetValueChar
41068          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41069          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41070    AND l_bflow_method_code = 'PRIOR_ENTRY'
41071 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41072    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41073          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41074        )
41075    THEN
41076          xla_ae_lines_pkg.BflowUpgEntry
41077            (p_business_method_code    => l_bflow_method_code
41078            ,p_business_class_code     => l_bflow_class_code
41079            ,p_balance_type            => l_balance_type_code);
41080    ELSE
41081       NULL;
41082 -- No business flow processing for business flow method of NONE.
41083    END IF;
41084 
41085    --
41086    -- call analytical criteria
41087    --
41088    
41089    --
41090    -- call description
41091    --
41092    -- No description or it is inherited.
41093    --
41094    -- call ADRs
41095    -- Bug 4922099
41096    --
41097    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41098         (NVL(l_actual_upg_option, 'N') = 'O') OR
41099         (NVL(l_enc_upg_option, 'N') = 'O')
41100       )
41101    THEN
41102    NULL;
41103    --
41104    --
41105    
41106   l_ccid := AcctDerRule_23(
41107            p_application_id           => p_application_id
41108          , p_ae_header_id             => l_ae_header_id 
41109 , p_source_4 => p_source_4
41110 , p_source_4_meaning => p_source_4_meaning
41111 , p_source_5 => p_source_5
41112 , p_source_6 => p_source_6
41113 , p_source_7 => p_source_7
41114 , p_source_7_meaning => p_source_7_meaning
41115 , p_source_8 => p_source_8
41116 , p_source_17 => p_source_17
41117 , p_source_30 => p_source_30
41118 , p_source_30_meaning => p_source_30_meaning
41119          , x_transaction_coa_id       => l_adr_transaction_coa_id
41120          , x_accounting_coa_id        => l_adr_accounting_coa_id
41121          , x_value_type_code          => l_adr_value_type_code
41122          , p_side                     => 'NA'
41123    );
41124 
41125    xla_ae_lines_pkg.set_ccid(
41126     p_code_combination_id          => l_ccid
41127   , p_value_type_code              => l_adr_value_type_code
41128   , p_transaction_coa_id           => l_adr_transaction_coa_id
41129   , p_accounting_coa_id            => l_adr_accounting_coa_id
41133   , p_component_code               => l_component_code
41130   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
41131   , p_adr_type_code                => 'S'
41132   , p_component_type               => l_component_type
41134   , p_component_type_code          => l_component_type_code
41135   , p_component_appl_id            => l_component_appl_id
41136   , p_amb_context_code             => l_amb_context_code
41137   , p_side                         => 'NA'
41138   );
41139 
41140 
41141    l_segment := AcctDerRule_3(
41142            p_application_id           => p_application_id
41143          , p_ae_header_id             => l_ae_header_id 
41144 , p_source_4 => p_source_4
41145 , p_source_4_meaning => p_source_4_meaning
41146 , p_source_5 => p_source_5
41147 , p_source_6 => p_source_6
41148 , p_source_7 => p_source_7
41149 , p_source_7_meaning => p_source_7_meaning
41150 , p_source_8 => p_source_8
41151          , x_transaction_coa_id       => l_adr_transaction_coa_id
41152          , x_accounting_coa_id        => l_adr_accounting_coa_id
41153          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
41154          , x_flex_value_set_id        => l_adr_flex_value_set_id
41155          , x_value_type_code          => l_adr_value_type_code
41156          , x_value_combination_id     => l_adr_value_combination_id
41157          , x_value_segment_code       => l_adr_value_segment_code
41158          , p_side                     => 'NA'
41159          , p_override_seg_flag        => 'Y'
41160    );
41161 
41162    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
41163 
41164       xla_ae_lines_pkg.set_segment(
41165           p_to_segment_code         => 'GL_ACCOUNT'
41166         , p_segment_value           => l_segment
41167         , p_from_segment_code       => l_adr_value_segment_code
41168         , p_from_combination_id     => l_adr_value_combination_id
41169         , p_value_type_code         => l_adr_value_type_code
41170         , p_transaction_coa_id      => l_adr_transaction_coa_id
41171         , p_accounting_coa_id       => l_adr_accounting_coa_id
41172         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
41173         , p_flex_value_set_id       => l_adr_flex_value_set_id
41174         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
41175         , p_adr_type_code           => 'S'
41176         , p_component_type          => l_component_type
41177         , p_component_code          => l_component_code
41178         , p_component_type_code     => l_component_type_code
41179         , p_component_appl_id       => l_component_appl_id
41180         , p_amb_context_code        => l_amb_context_code
41181         , p_entity_code             => 'AP_INVOICES'
41182         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
41183         , p_side                    => 'NA'
41184         );
41185 
41186   END IF;
41187 
41188    l_segment := AcctDerRule_15(
41189            p_application_id           => p_application_id
41190          , p_ae_header_id             => l_ae_header_id 
41191 , p_source_4 => p_source_4
41192 , p_source_4_meaning => p_source_4_meaning
41193 , p_source_7 => p_source_7
41194 , p_source_7_meaning => p_source_7_meaning
41195 , p_source_17 => p_source_17
41196          , x_transaction_coa_id       => l_adr_transaction_coa_id
41197          , x_accounting_coa_id        => l_adr_accounting_coa_id
41198          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
41199          , x_flex_value_set_id        => l_adr_flex_value_set_id
41200          , x_value_type_code          => l_adr_value_type_code
41201          , x_value_combination_id     => l_adr_value_combination_id
41202          , x_value_segment_code       => l_adr_value_segment_code
41203          , p_side                     => 'NA'
41204          , p_override_seg_flag        => 'Y'
41205    );
41206 
41207    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
41208 
41209       xla_ae_lines_pkg.set_segment(
41210           p_to_segment_code         => 'GL_BALANCING'
41211         , p_segment_value           => l_segment
41212         , p_from_segment_code       => l_adr_value_segment_code
41213         , p_from_combination_id     => l_adr_value_combination_id
41214         , p_value_type_code         => l_adr_value_type_code
41215         , p_transaction_coa_id      => l_adr_transaction_coa_id
41216         , p_accounting_coa_id       => l_adr_accounting_coa_id
41217         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
41218         , p_flex_value_set_id       => l_adr_flex_value_set_id
41219         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
41220         , p_adr_type_code           => 'S'
41221         , p_component_type          => l_component_type
41222         , p_component_code          => l_component_code
41223         , p_component_type_code     => l_component_type_code
41224         , p_component_appl_id       => l_component_appl_id
41225         , p_amb_context_code        => l_amb_context_code
41226         , p_entity_code             => 'AP_INVOICES'
41227         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
41228         , p_side                    => 'NA'
41229         );
41230 
41231   END IF;
41232 
41233    --
41234    --
41235    END IF;
41236    --
41237    -- Bug 4922099
41238    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41239           (NVL(l_enc_upg_option, 'N') = 'O')
41240         ) AND
41241         (l_bflow_method_code = 'PRIOR_ENTRY')
41242       )
41243    THEN
41244       IF
41245       --
41249       xla_accounting_err_pkg.build_message
41246       1 = 2
41247       --
41248       THEN
41250                                     (p_appli_s_name            => 'XLA'
41251                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41252                                     ,p_token_1                 => 'LINE_NUMBER'
41253                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41254                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41255                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41256                                                                              l_component_type
41257                                                                             ,l_component_code
41258                                                                             ,l_component_type_code
41259                                                                             ,l_component_appl_id
41260                                                                             ,l_amb_context_code
41261                                                                             ,l_entity_code
41262                                                                             ,l_event_class_code
41263                                                                            )
41264                                     ,p_token_3                 => 'OWNER'
41265                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41266                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41267                                                                           ,p_lookup_code    => l_component_type_code
41268                                                                          )
41269                                     ,p_token_4                 => 'PRODUCT_NAME'
41270                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41271                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41272                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41273                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41274                                     ,p_ae_header_id            =>  NULL
41275                                        );
41276 
41277         IF (C_LEVEL_ERROR>= g_log_level) THEN
41278                  trace
41279                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41280                       ,p_level    => C_LEVEL_ERROR
41281                       ,p_module   => l_log_module);
41282         END IF;
41283       END IF;
41284    END IF;
41285    --
41286    --
41287    ------------------------------------------------------------------------------------------------
41288    -- 4219869 Business Flow
41289    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41290    -- Prior Entry.  Currently, the following code is always generated.
41291    ------------------------------------------------------------------------------------------------
41292    XLA_AE_LINES_PKG.ValidateCurrentLine;
41293 
41294    ------------------------------------------------------------------------------------
41295    -- 4219869 Business Flow
41296    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41297    ------------------------------------------------------------------------------------
41298    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41299 
41300    ----------------------------------------------------------------------------------
41301    -- 4219869 Business Flow
41302    -- Update journal entry status -- Need to generate this within IF <condition>
41303    ----------------------------------------------------------------------------------
41304    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41305          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41306          ,p_balance_type_code => l_balance_type_code
41307          );
41308 
41309    -------------------------------------------------------------------------------------------
41310    -- 4262811 - Generate the Accrual Reversal lines
41311    -------------------------------------------------------------------------------------------
41312    BEGIN
41313       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41314                               (g_array_event(p_event_id).array_value_num('header_index'));
41315       IF l_acc_rev_flag IS NULL THEN
41316          l_acc_rev_flag := 'N';
41317       END IF;
41318    EXCEPTION
41319       WHEN OTHERS THEN
41320          l_acc_rev_flag := 'N';
41321    END;
41322    --
41323    IF (l_acc_rev_flag = 'Y') THEN
41324 
41325        -- 4645092  ------------------------------------------------------------------------------
41326        -- To allow MPA report to determine if it should generate report process
41327        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41328        ------------------------------------------------------------------------------------------
41329 
41330        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41331        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41332    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
41333    -- call ADRs
41334    -- Bug 4922099
41338         (NVL(l_enc_upg_option, 'N') = 'O')
41335    --
41336    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41337         (NVL(l_actual_upg_option, 'N') = 'O') OR
41339       )
41340    THEN
41341    NULL;
41342    --
41343    --
41344    
41345   l_ccid := AcctDerRule_23(
41346            p_application_id           => p_application_id
41347          , p_ae_header_id             => l_ae_header_id 
41348 , p_source_4 => p_source_4
41349 , p_source_4_meaning => p_source_4_meaning
41350 , p_source_5 => p_source_5
41351 , p_source_6 => p_source_6
41352 , p_source_7 => p_source_7
41353 , p_source_7_meaning => p_source_7_meaning
41354 , p_source_8 => p_source_8
41355 , p_source_17 => p_source_17
41356 , p_source_30 => p_source_30
41357 , p_source_30_meaning => p_source_30_meaning
41358          , x_transaction_coa_id       => l_adr_transaction_coa_id
41359          , x_accounting_coa_id        => l_adr_accounting_coa_id
41360          , x_value_type_code          => l_adr_value_type_code
41361          , p_side                     => 'NA'
41362    );
41363 
41364    xla_ae_lines_pkg.set_ccid(
41365     p_code_combination_id          => l_ccid
41366   , p_value_type_code              => l_adr_value_type_code
41367   , p_transaction_coa_id           => l_adr_transaction_coa_id
41368   , p_accounting_coa_id            => l_adr_accounting_coa_id
41369   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
41370   , p_adr_type_code                => 'S'
41371   , p_component_type               => l_component_type
41372   , p_component_code               => l_component_code
41373   , p_component_type_code          => l_component_type_code
41374   , p_component_appl_id            => l_component_appl_id
41375   , p_amb_context_code             => l_amb_context_code
41376   , p_side                         => 'NA'
41377   );
41378 
41379 
41380    l_segment := AcctDerRule_3(
41381            p_application_id           => p_application_id
41382          , p_ae_header_id             => l_ae_header_id 
41383 , p_source_4 => p_source_4
41384 , p_source_4_meaning => p_source_4_meaning
41385 , p_source_5 => p_source_5
41386 , p_source_6 => p_source_6
41387 , p_source_7 => p_source_7
41388 , p_source_7_meaning => p_source_7_meaning
41389 , p_source_8 => p_source_8
41390          , x_transaction_coa_id       => l_adr_transaction_coa_id
41391          , x_accounting_coa_id        => l_adr_accounting_coa_id
41392          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
41393          , x_flex_value_set_id        => l_adr_flex_value_set_id
41394          , x_value_type_code          => l_adr_value_type_code
41395          , x_value_combination_id     => l_adr_value_combination_id
41396          , x_value_segment_code       => l_adr_value_segment_code
41397          , p_side                     => 'NA'
41398          , p_override_seg_flag        => 'Y'
41399    );
41400 
41401    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
41402 
41403       xla_ae_lines_pkg.set_segment(
41404           p_to_segment_code         => 'GL_ACCOUNT'
41405         , p_segment_value           => l_segment
41406         , p_from_segment_code       => l_adr_value_segment_code
41407         , p_from_combination_id     => l_adr_value_combination_id
41408         , p_value_type_code         => l_adr_value_type_code
41409         , p_transaction_coa_id      => l_adr_transaction_coa_id
41410         , p_accounting_coa_id       => l_adr_accounting_coa_id
41411         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
41412         , p_flex_value_set_id       => l_adr_flex_value_set_id
41413         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
41414         , p_adr_type_code           => 'S'
41415         , p_component_type          => l_component_type
41416         , p_component_code          => l_component_code
41417         , p_component_type_code     => l_component_type_code
41418         , p_component_appl_id       => l_component_appl_id
41419         , p_amb_context_code        => l_amb_context_code
41420         , p_entity_code             => 'AP_INVOICES'
41421         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
41422         , p_side                    => 'NA'
41423         );
41424 
41425   END IF;
41426 
41427    l_segment := AcctDerRule_15(
41428            p_application_id           => p_application_id
41429          , p_ae_header_id             => l_ae_header_id 
41430 , p_source_4 => p_source_4
41431 , p_source_4_meaning => p_source_4_meaning
41432 , p_source_7 => p_source_7
41433 , p_source_7_meaning => p_source_7_meaning
41434 , p_source_17 => p_source_17
41435          , x_transaction_coa_id       => l_adr_transaction_coa_id
41436          , x_accounting_coa_id        => l_adr_accounting_coa_id
41437          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
41438          , x_flex_value_set_id        => l_adr_flex_value_set_id
41439          , x_value_type_code          => l_adr_value_type_code
41440          , x_value_combination_id     => l_adr_value_combination_id
41441          , x_value_segment_code       => l_adr_value_segment_code
41442          , p_side                     => 'NA'
41443          , p_override_seg_flag        => 'Y'
41444    );
41445 
41446    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
41447 
41448       xla_ae_lines_pkg.set_segment(
41449           p_to_segment_code         => 'GL_BALANCING'
41450         , p_segment_value           => l_segment
41454         , p_transaction_coa_id      => l_adr_transaction_coa_id
41451         , p_from_segment_code       => l_adr_value_segment_code
41452         , p_from_combination_id     => l_adr_value_combination_id
41453         , p_value_type_code         => l_adr_value_type_code
41455         , p_accounting_coa_id       => l_adr_accounting_coa_id
41456         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
41457         , p_flex_value_set_id       => l_adr_flex_value_set_id
41458         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
41459         , p_adr_type_code           => 'S'
41460         , p_component_type          => l_component_type
41461         , p_component_code          => l_component_code
41462         , p_component_type_code     => l_component_type_code
41463         , p_component_appl_id       => l_component_appl_id
41464         , p_amb_context_code        => l_amb_context_code
41465         , p_entity_code             => 'AP_INVOICES'
41466         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
41467         , p_side                    => 'NA'
41468         );
41469 
41470   END IF;
41471 
41472    --
41473    --
41474    END IF;
41475 
41476        --
41477        -- Update the line information that should be overwritten
41478        --
41479        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41480                                          p_header_num   => 1);
41481        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
41482 
41483        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41484 
41485        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
41486           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41487        END IF;
41488 
41489       --
41490       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41491       --
41492       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41493           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
41494       ELSE
41495           ---------------------------------------------------------------------------------------------------
41496           -- 4262811a Switch Sign
41497           ---------------------------------------------------------------------------------------------------
41498           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
41499           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41500                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41501           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41502                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41503           -- 5132302
41504           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41505                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41506 
41507       END IF;
41508 
41509       -- 4955764
41510       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41511       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41512 
41513 
41514       XLA_AE_LINES_PKG.ValidateCurrentLine;
41515       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41516 
41517       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41518                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41519                ,p_balance_type_code => l_balance_type_code);
41520 
41521    END IF;
41522 
41523    -----------------------------------------------------------------------------------------
41524    -- 4262811 Multiperiod Accounting
41525    -----------------------------------------------------------------------------------------
41526      -- No MPA option is assigned.
41527 
41528 
41529 END IF;
41530 END IF;
41531 --
41532 
41533 --
41534 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41535    trace
41536       (p_msg      => 'END of AcctLineType_86'
41537       ,p_level    => C_LEVEL_PROCEDURE
41538       ,p_module   => l_log_module);
41539 END IF;
41540 --
41541 EXCEPTION
41542   WHEN xla_exceptions_pkg.application_exception THEN
41543       RAISE;
41544   WHEN OTHERS THEN
41545        xla_exceptions_pkg.raise_message
41546            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_86');
41547 END AcctLineType_86;
41548 --
41549 
41550 ---------------------------------------
41551 --
41552 -- PRIVATE FUNCTION
41553 --         AcctLineType_87
41554 --
41555 ---------------------------------------
41556 PROCEDURE AcctLineType_87 (
41557   p_application_id        IN NUMBER
41558  ,p_event_id              IN NUMBER
41559  ,p_calculate_acctd_flag  IN VARCHAR2
41560  ,p_calculate_g_l_flag    IN VARCHAR2
41561  ,p_actual_flag           IN OUT VARCHAR2
41562  ,p_balance_type_code     OUT VARCHAR2
41563  ,p_gain_or_loss_ref      OUT VARCHAR2
41564  
41565 --Automatic Offsets Value
41566  , p_source_4            IN VARCHAR2
41567  , p_source_4_meaning    IN VARCHAR2
41568 --Purchase Order Rate Variance Gain Account
41569  , p_source_5            IN NUMBER
41570 --Destination Type of the PO Distribution
41574  , p_source_8            IN NUMBER
41571  , p_source_7            IN VARCHAR2
41572  , p_source_7_meaning    IN VARCHAR2
41573 --Purchase Order Rate Variance Loss Account
41575 --Payment Distribution (Payment Rate) Ledger Amount
41576  , p_source_9            IN NUMBER
41577 --Payment Distribution (Cleared Rate) Ledger Amount
41578  , p_source_10            IN NUMBER
41579 --Invoice Distribution Account
41580  , p_source_17            IN NUMBER
41581 --Automatic Offsets Flag
41582  , p_source_30            IN VARCHAR2
41583  , p_source_30_meaning    IN VARCHAR2
41584 --When to Account for Payment Option
41585  , p_source_38            IN VARCHAR2
41586 --Payment Distribution Type
41587  , p_source_39            IN VARCHAR2
41588  , p_source_39_meaning    IN VARCHAR2
41589 --Accounting Reversal Indicator
41590  , p_source_40            IN VARCHAR2
41591 --Payment Distribution Amount
41592  , p_source_41            IN NUMBER
41593 --Business Flow Accounts Payable Application Identifier
41594  , p_source_42            IN NUMBER
41595 --Payment Distribution Identifier
41596  , p_source_47            IN NUMBER
41597 --Distribution Link Type
41598  , p_source_48            IN VARCHAR2
41599 --Payment Currency Code
41600  , p_source_49            IN VARCHAR2
41601 --Override Accounted Amount Indicator
41602  , p_source_53            IN VARCHAR2
41603  , p_source_53_meaning    IN VARCHAR2
41604 --Payment Supplier Identifier
41605  , p_source_54            IN NUMBER
41606 --Payment Supplier Site Identifier
41607  , p_source_55            IN NUMBER
41608 --Third Party Type
41609  , p_source_56            IN VARCHAR2
41610 --Payment Distribution Reversed Identifier
41611  , p_source_57            IN NUMBER
41612 --Invoice Distribution Tax Line Identifier
41613  , p_source_58            IN NUMBER
41614 --Invoice Distribution Summary Tax Line Identifier
41615  , p_source_59            IN NUMBER
41616 --Payment Type
41617  , p_source_60            IN VARCHAR2
41618  , p_source_60_meaning    IN VARCHAR2
41619 --Business Flow Invoice Distribution Type
41620  , p_source_62            IN VARCHAR2
41621 --Business Flow Invoice Entity Code
41622  , p_source_63            IN VARCHAR2
41623 --Business Flow Invoice Distribution Identifier
41624  , p_source_64            IN NUMBER
41625 --Business Flow Invoice Identifier
41626  , p_source_65            IN NUMBER
41627 --Invoice Distribution Tax Distribution Identifier from Tax
41628  , p_source_66            IN NUMBER
41629 --Accrue on Receipt Option
41630  , p_source_100            IN VARCHAR2
41631  , p_source_100_meaning    IN VARCHAR2
41632 --Payment Exchange Date
41633  , p_source_114            IN DATE
41634 --Payment Exchange Rate
41635  , p_source_115            IN NUMBER
41636 --Payment Exchange Rate Type
41637  , p_source_116            IN VARCHAR2
41638 )
41639 IS
41640 
41641 l_component_type              VARCHAR2(80);
41642 l_component_code              VARCHAR2(30);
41643 l_component_type_code         VARCHAR2(1);
41644 l_component_appl_id           INTEGER;
41645 l_amb_context_code            VARCHAR2(30);
41646 l_entity_code                 VARCHAR2(30);
41647 l_event_class_code            VARCHAR2(30);
41648 l_ae_header_id                NUMBER;
41649 l_event_type_code             VARCHAR2(30);
41650 l_line_definition_code        VARCHAR2(30);
41651 l_line_definition_owner_code  VARCHAR2(1);
41652 --
41653 -- adr variables
41654 l_segment                     VARCHAR2(30);
41655 l_ccid                        NUMBER;
41656 l_adr_transaction_coa_id      NUMBER;
41657 l_adr_accounting_coa_id       NUMBER;
41658 l_adr_flexfield_segment_code  VARCHAR2(30);
41659 l_adr_flex_value_set_id       NUMBER;
41660 l_adr_value_type_code         VARCHAR2(30);
41661 l_adr_value_combination_id    NUMBER;
41662 l_adr_value_segment_code      VARCHAR2(30);
41663 
41664 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
41665 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
41666 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
41667 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
41668 
41669 -- 4262811 Variables ------------------------------------------------------------------------------------------
41670 l_entered_amt_idx             NUMBER;
41671 l_accted_amt_idx              NUMBER;
41672 l_acc_rev_flag                VARCHAR2(1);
41673 l_accrual_line_num            NUMBER;
41674 l_tmp_amt                     NUMBER;
41675 l_acc_rev_natural_side_code   VARCHAR2(1);
41676 
41677 l_num_entries                 NUMBER;
41678 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
41679 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
41680 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
41681 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
41682 l_recog_line_1                NUMBER;
41683 l_recog_line_2                NUMBER;
41684 
41685 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
41686 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
41687 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
41688 
41689 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41690 
41691 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
41692 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
41693 
41697 --
41694 ---------------------------------------------------------------------------------------------------------------
41695 
41696 
41698 -- bulk performance
41699 --
41700 l_balance_type_code           VARCHAR2(1);
41701 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
41702 l_log_module                  VARCHAR2(240);
41703 
41704 --
41705 -- Upgrade strategy
41706 --
41707 l_actual_upg_option           VARCHAR2(1);
41708 l_enc_upg_option           VARCHAR2(1);
41709 
41710 --
41711 BEGIN
41712 --
41713 IF g_log_enabled THEN
41714       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
41715 END IF;
41716 --
41717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41718 
41719       trace
41720          (p_msg      => 'BEGIN of AcctLineType_87'
41721          ,p_level    => C_LEVEL_PROCEDURE
41722          ,p_module   => l_log_module);
41723 
41724 END IF;
41725 --
41726 l_component_type             := 'AMB_JLT';
41727 l_component_code             := 'AP_EX_RATE_VAR_REF';
41728 l_component_type_code        := 'S';
41729 l_component_appl_id          :=  200;
41730 l_amb_context_code           := 'DEFAULT';
41731 l_entity_code                := 'AP_PAYMENTS';
41732 l_event_class_code           := 'REFUNDS';
41733 l_event_type_code            := 'REFUNDS_ALL';
41734 l_line_definition_owner_code := 'S';
41735 l_line_definition_code       := 'CASH_REFUNDS_ALL';
41736 --
41737 l_balance_type_code          := 'A';
41738 l_segment                     := NULL;
41739 l_ccid                        := NULL;
41740 l_adr_transaction_coa_id      := NULL;
41741 l_adr_accounting_coa_id       := NULL;
41742 l_adr_flexfield_segment_code  := NULL;
41743 l_adr_flex_value_set_id       := NULL;
41744 l_adr_value_type_code         := NULL;
41745 l_adr_value_combination_id    := NULL;
41746 l_adr_value_segment_code      := NULL;
41747 
41748 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
41749 l_bflow_class_code           := '';    -- 4219869 Business Flow
41750 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41751 l_budgetary_control_flag     := 'N';
41752 
41753 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41754 l_bflow_applied_to_amt       := NULL; -- 5132302
41755 l_entered_amt_idx            := NULL;          -- 4262811
41756 l_accted_amt_idx             := NULL;          -- 4262811
41757 l_acc_rev_flag               := NULL;          -- 4262811
41758 l_accrual_line_num           := NULL;          -- 4262811
41759 l_tmp_amt                    := NULL;          -- 4262811
41760 --
41761 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
41762             (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
41763                return;
41764   END IF;
41765   
41766 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41767     l_balance_type_code <> 'B' THEN
41768 IF NVL(p_source_38,'
41769 ') <>  'CLEAR_CLEAR' AND 
41770 NVL(p_source_39,'
41771 ') =  'EXCHANGE RATE VARIANCE' AND 
41772 NVL(p_source_100,'
41773 ') =  'Y' AND 
41774 NVL(p_source_60,'
41775 ') =  'R'
41776  THEN 
41777 
41778    --
41779    XLA_AE_LINES_PKG.SetNewLine;
41780 
41781    p_balance_type_code          := l_balance_type_code;
41782    -- set the flag so later we will know whether the gain loss line needs to be created
41783    
41784    IF(l_balance_type_code = 'A' ) THEN
41785      p_actual_flag :='G';
41786    END IF;
41787 
41788    --
41789    -- bulk performance
41790    --
41791    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41792                                       p_header_num   => 0); -- 4262811
41793    --
41794    -- set accounting line options
41795    --
41796    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41797            p_natural_side_code          => 'D'
41798          , p_gain_or_loss_flag          => 'Y'
41799          , p_gl_transfer_mode_code      => 'S'
41800          , p_acct_entry_type_code       => 'A'
41801          , p_switch_side_flag           => 'Y'
41802          , p_merge_duplicate_code       => 'A'
41803          );
41804    --
41805    l_acc_rev_natural_side_code := 'C';  -- 4262811
41806    -- 
41807    --
41808    -- set accounting line type info
41809    --
41810    xla_ae_lines_pkg.SetAcctLineType
41811       (p_component_type             => l_component_type
41812       ,p_event_type_code            => l_event_type_code
41813       ,p_line_definition_owner_code => l_line_definition_owner_code
41814       ,p_line_definition_code       => l_line_definition_code
41815       ,p_accounting_line_code       => l_component_code
41816       ,p_accounting_line_type_code  => l_component_type_code
41817       ,p_accounting_line_appl_id    => l_component_appl_id
41818       ,p_amb_context_code           => l_amb_context_code
41819       ,p_entity_code                => l_entity_code
41820       ,p_event_class_code           => l_event_class_code);
41821    --
41822    -- set accounting class
41823    --
41824    xla_ae_lines_pkg.SetAcctClass(
41825            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
41826          , p_ae_header_id           => l_ae_header_id
41827          );
41828 
41829    --
41833                       'EXCHANGE_RATE_VARIANCE';
41830    -- set rounding class
41831    --
41832    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41834 
41835    --
41836    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41837    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41838    --
41839    -- bulk performance
41840    --
41841    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41842 
41843    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41844       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41845 
41846    -- 4955764
41847    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41848       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41849 
41850    -- 4458381 Public Sector Enh
41851    
41852    --
41853    -- set accounting attributes for the line type
41854    --
41855    l_entered_amt_idx := 9;
41856    l_accted_amt_idx  := 14;
41857    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
41858    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41859    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
41860    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
41861    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
41862    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41863    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
41864    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
41865    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
41866    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
41867    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
41868    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41869    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
41870    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
41871    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
41872    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
41873    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
41874    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
41875    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
41876    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
41877    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
41878    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
41879    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
41880    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
41881    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
41882    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
41883    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
41884    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
41885    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
41886    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
41887    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
41888    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
41889    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
41890    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
41891    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
41892    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
41893    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
41894    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
41895    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
41896    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
41897    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
41898    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
41899    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
41900    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
41901    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
41902    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
41903    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
41904 
41905    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41906    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41907 
41908    ---------------------------------------------------------------------------------------------------------------
41909    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41910    ---------------------------------------------------------------------------------------------------------------
41911    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41912 
41913    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41914    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41915 
41916    IF xla_accounting_cache_pkg.GetValueChar
41917          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41918          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41919    AND l_bflow_method_code = 'PRIOR_ENTRY'
41920 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41924    THEN
41921    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41922          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41923        )
41925          xla_ae_lines_pkg.BflowUpgEntry
41926            (p_business_method_code    => l_bflow_method_code
41927            ,p_business_class_code     => l_bflow_class_code
41928            ,p_balance_type            => l_balance_type_code);
41929    ELSE
41930       NULL;
41931 -- No business flow processing for business flow method of NONE.
41932    END IF;
41933 
41934    --
41935    -- call analytical criteria
41936    --
41937    
41938    --
41939    -- call description
41940    --
41941    -- No description or it is inherited.
41942    --
41943    -- call ADRs
41944    -- Bug 4922099
41945    --
41946    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41947         (NVL(l_actual_upg_option, 'N') = 'O') OR
41948         (NVL(l_enc_upg_option, 'N') = 'O')
41949       )
41950    THEN
41951    NULL;
41952    --
41953    --
41954    
41955   l_ccid := AcctDerRule_22(
41956            p_application_id           => p_application_id
41957          , p_ae_header_id             => l_ae_header_id 
41958 , p_source_4 => p_source_4
41959 , p_source_4_meaning => p_source_4_meaning
41960 , p_source_5 => p_source_5
41961 , p_source_7 => p_source_7
41962 , p_source_7_meaning => p_source_7_meaning
41963 , p_source_8 => p_source_8
41964 , p_source_9 => p_source_9
41965 , p_source_10 => p_source_10
41966 , p_source_17 => p_source_17
41967 , p_source_30 => p_source_30
41968 , p_source_30_meaning => p_source_30_meaning
41969          , x_transaction_coa_id       => l_adr_transaction_coa_id
41970          , x_accounting_coa_id        => l_adr_accounting_coa_id
41971          , x_value_type_code          => l_adr_value_type_code
41972          , p_side                     => 'NA'
41973    );
41974 
41975    xla_ae_lines_pkg.set_ccid(
41976     p_code_combination_id          => l_ccid
41977   , p_value_type_code              => l_adr_value_type_code
41978   , p_transaction_coa_id           => l_adr_transaction_coa_id
41979   , p_accounting_coa_id            => l_adr_accounting_coa_id
41980   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
41981   , p_adr_type_code                => 'S'
41982   , p_component_type               => l_component_type
41983   , p_component_code               => l_component_code
41984   , p_component_type_code          => l_component_type_code
41985   , p_component_appl_id            => l_component_appl_id
41986   , p_amb_context_code             => l_amb_context_code
41987   , p_side                         => 'NA'
41988   );
41989 
41990 
41991    l_segment := AcctDerRule_4(
41992            p_application_id           => p_application_id
41993          , p_ae_header_id             => l_ae_header_id 
41994 , p_source_4 => p_source_4
41995 , p_source_4_meaning => p_source_4_meaning
41996 , p_source_5 => p_source_5
41997 , p_source_7 => p_source_7
41998 , p_source_7_meaning => p_source_7_meaning
41999 , p_source_8 => p_source_8
42000 , p_source_9 => p_source_9
42001 , p_source_10 => p_source_10
42002          , x_transaction_coa_id       => l_adr_transaction_coa_id
42003          , x_accounting_coa_id        => l_adr_accounting_coa_id
42004          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
42005          , x_flex_value_set_id        => l_adr_flex_value_set_id
42006          , x_value_type_code          => l_adr_value_type_code
42007          , x_value_combination_id     => l_adr_value_combination_id
42008          , x_value_segment_code       => l_adr_value_segment_code
42009          , p_side                     => 'NA'
42010          , p_override_seg_flag        => 'Y'
42011    );
42012 
42013    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
42014 
42015       xla_ae_lines_pkg.set_segment(
42016           p_to_segment_code         => 'GL_ACCOUNT'
42017         , p_segment_value           => l_segment
42018         , p_from_segment_code       => l_adr_value_segment_code
42019         , p_from_combination_id     => l_adr_value_combination_id
42020         , p_value_type_code         => l_adr_value_type_code
42021         , p_transaction_coa_id      => l_adr_transaction_coa_id
42022         , p_accounting_coa_id       => l_adr_accounting_coa_id
42023         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
42024         , p_flex_value_set_id       => l_adr_flex_value_set_id
42025         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
42026         , p_adr_type_code           => 'S'
42027         , p_component_type          => l_component_type
42028         , p_component_code          => l_component_code
42029         , p_component_type_code     => l_component_type_code
42030         , p_component_appl_id       => l_component_appl_id
42031         , p_amb_context_code        => l_amb_context_code
42032         , p_entity_code             => 'AP_PAYMENTS'
42033         , p_event_class_code        => 'REFUNDS'
42034         , p_side                    => 'NA'
42035         );
42036 
42037   END IF;
42038 
42039    l_segment := AcctDerRule_15(
42040            p_application_id           => p_application_id
42041          , p_ae_header_id             => l_ae_header_id 
42042 , p_source_4 => p_source_4
42043 , p_source_4_meaning => p_source_4_meaning
42044 , p_source_7 => p_source_7
42045 , p_source_7_meaning => p_source_7_meaning
42046 , p_source_17 => p_source_17
42050          , x_flex_value_set_id        => l_adr_flex_value_set_id
42047          , x_transaction_coa_id       => l_adr_transaction_coa_id
42048          , x_accounting_coa_id        => l_adr_accounting_coa_id
42049          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
42051          , x_value_type_code          => l_adr_value_type_code
42052          , x_value_combination_id     => l_adr_value_combination_id
42053          , x_value_segment_code       => l_adr_value_segment_code
42054          , p_side                     => 'NA'
42055          , p_override_seg_flag        => 'Y'
42056    );
42057 
42058    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
42059 
42060       xla_ae_lines_pkg.set_segment(
42061           p_to_segment_code         => 'GL_BALANCING'
42062         , p_segment_value           => l_segment
42063         , p_from_segment_code       => l_adr_value_segment_code
42064         , p_from_combination_id     => l_adr_value_combination_id
42065         , p_value_type_code         => l_adr_value_type_code
42066         , p_transaction_coa_id      => l_adr_transaction_coa_id
42067         , p_accounting_coa_id       => l_adr_accounting_coa_id
42068         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
42069         , p_flex_value_set_id       => l_adr_flex_value_set_id
42070         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
42071         , p_adr_type_code           => 'S'
42072         , p_component_type          => l_component_type
42073         , p_component_code          => l_component_code
42074         , p_component_type_code     => l_component_type_code
42075         , p_component_appl_id       => l_component_appl_id
42076         , p_amb_context_code        => l_amb_context_code
42077         , p_entity_code             => 'AP_PAYMENTS'
42078         , p_event_class_code        => 'REFUNDS'
42079         , p_side                    => 'NA'
42080         );
42081 
42082   END IF;
42083 
42084    --
42085    --
42086    END IF;
42087    --
42088    -- Bug 4922099
42089    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42090           (NVL(l_enc_upg_option, 'N') = 'O')
42091         ) AND
42092         (l_bflow_method_code = 'PRIOR_ENTRY')
42093       )
42094    THEN
42095       IF
42096       --
42097       1 = 2
42098       --
42099       THEN
42100       xla_accounting_err_pkg.build_message
42101                                     (p_appli_s_name            => 'XLA'
42102                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42103                                     ,p_token_1                 => 'LINE_NUMBER'
42104                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42105                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42106                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42107                                                                              l_component_type
42108                                                                             ,l_component_code
42109                                                                             ,l_component_type_code
42110                                                                             ,l_component_appl_id
42111                                                                             ,l_amb_context_code
42112                                                                             ,l_entity_code
42113                                                                             ,l_event_class_code
42114                                                                            )
42115                                     ,p_token_3                 => 'OWNER'
42116                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42117                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42118                                                                           ,p_lookup_code    => l_component_type_code
42119                                                                          )
42120                                     ,p_token_4                 => 'PRODUCT_NAME'
42121                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42122                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42123                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42124                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42125                                     ,p_ae_header_id            =>  NULL
42126                                        );
42127 
42128         IF (C_LEVEL_ERROR>= g_log_level) THEN
42129                  trace
42130                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42131                       ,p_level    => C_LEVEL_ERROR
42132                       ,p_module   => l_log_module);
42133         END IF;
42134       END IF;
42135    END IF;
42136    --
42137    --
42138    ------------------------------------------------------------------------------------------------
42139    -- 4219869 Business Flow
42140    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42141    -- Prior Entry.  Currently, the following code is always generated.
42142    ------------------------------------------------------------------------------------------------
42143    XLA_AE_LINES_PKG.ValidateCurrentLine;
42144 
42148    ------------------------------------------------------------------------------------
42145    ------------------------------------------------------------------------------------
42146    -- 4219869 Business Flow
42147    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42149    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42150 
42151    ----------------------------------------------------------------------------------
42152    -- 4219869 Business Flow
42153    -- Update journal entry status -- Need to generate this within IF <condition>
42154    ----------------------------------------------------------------------------------
42155    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42156          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42157          ,p_balance_type_code => l_balance_type_code
42158          );
42159 
42160    -------------------------------------------------------------------------------------------
42161    -- 4262811 - Generate the Accrual Reversal lines
42162    -------------------------------------------------------------------------------------------
42163    BEGIN
42164       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42165                               (g_array_event(p_event_id).array_value_num('header_index'));
42166       IF l_acc_rev_flag IS NULL THEN
42167          l_acc_rev_flag := 'N';
42168       END IF;
42169    EXCEPTION
42170       WHEN OTHERS THEN
42171          l_acc_rev_flag := 'N';
42172    END;
42173    --
42174    IF (l_acc_rev_flag = 'Y') THEN
42175 
42176        -- 4645092  ------------------------------------------------------------------------------
42177        -- To allow MPA report to determine if it should generate report process
42178        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42179        ------------------------------------------------------------------------------------------
42180 
42181        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42182        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42183    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42184    -- call ADRs
42185    -- Bug 4922099
42186    --
42187    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42188         (NVL(l_actual_upg_option, 'N') = 'O') OR
42189         (NVL(l_enc_upg_option, 'N') = 'O')
42190       )
42191    THEN
42192    NULL;
42193    --
42194    --
42195    
42196   l_ccid := AcctDerRule_22(
42197            p_application_id           => p_application_id
42198          , p_ae_header_id             => l_ae_header_id 
42199 , p_source_4 => p_source_4
42200 , p_source_4_meaning => p_source_4_meaning
42201 , p_source_5 => p_source_5
42202 , p_source_7 => p_source_7
42203 , p_source_7_meaning => p_source_7_meaning
42204 , p_source_8 => p_source_8
42205 , p_source_9 => p_source_9
42206 , p_source_10 => p_source_10
42207 , p_source_17 => p_source_17
42208 , p_source_30 => p_source_30
42209 , p_source_30_meaning => p_source_30_meaning
42210          , x_transaction_coa_id       => l_adr_transaction_coa_id
42211          , x_accounting_coa_id        => l_adr_accounting_coa_id
42212          , x_value_type_code          => l_adr_value_type_code
42213          , p_side                     => 'NA'
42214    );
42215 
42216    xla_ae_lines_pkg.set_ccid(
42217     p_code_combination_id          => l_ccid
42218   , p_value_type_code              => l_adr_value_type_code
42219   , p_transaction_coa_id           => l_adr_transaction_coa_id
42220   , p_accounting_coa_id            => l_adr_accounting_coa_id
42221   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
42222   , p_adr_type_code                => 'S'
42223   , p_component_type               => l_component_type
42224   , p_component_code               => l_component_code
42225   , p_component_type_code          => l_component_type_code
42226   , p_component_appl_id            => l_component_appl_id
42227   , p_amb_context_code             => l_amb_context_code
42228   , p_side                         => 'NA'
42229   );
42230 
42231 
42232    l_segment := AcctDerRule_4(
42233            p_application_id           => p_application_id
42234          , p_ae_header_id             => l_ae_header_id 
42235 , p_source_4 => p_source_4
42236 , p_source_4_meaning => p_source_4_meaning
42237 , p_source_5 => p_source_5
42238 , p_source_7 => p_source_7
42239 , p_source_7_meaning => p_source_7_meaning
42240 , p_source_8 => p_source_8
42241 , p_source_9 => p_source_9
42242 , p_source_10 => p_source_10
42243          , x_transaction_coa_id       => l_adr_transaction_coa_id
42244          , x_accounting_coa_id        => l_adr_accounting_coa_id
42245          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
42246          , x_flex_value_set_id        => l_adr_flex_value_set_id
42247          , x_value_type_code          => l_adr_value_type_code
42248          , x_value_combination_id     => l_adr_value_combination_id
42249          , x_value_segment_code       => l_adr_value_segment_code
42250          , p_side                     => 'NA'
42251          , p_override_seg_flag        => 'Y'
42252    );
42253 
42254    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
42255 
42256       xla_ae_lines_pkg.set_segment(
42257           p_to_segment_code         => 'GL_ACCOUNT'
42258         , p_segment_value           => l_segment
42259         , p_from_segment_code       => l_adr_value_segment_code
42260         , p_from_combination_id     => l_adr_value_combination_id
42264         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
42261         , p_value_type_code         => l_adr_value_type_code
42262         , p_transaction_coa_id      => l_adr_transaction_coa_id
42263         , p_accounting_coa_id       => l_adr_accounting_coa_id
42265         , p_flex_value_set_id       => l_adr_flex_value_set_id
42266         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
42267         , p_adr_type_code           => 'S'
42268         , p_component_type          => l_component_type
42269         , p_component_code          => l_component_code
42270         , p_component_type_code     => l_component_type_code
42271         , p_component_appl_id       => l_component_appl_id
42272         , p_amb_context_code        => l_amb_context_code
42273         , p_entity_code             => 'AP_PAYMENTS'
42274         , p_event_class_code        => 'REFUNDS'
42275         , p_side                    => 'NA'
42276         );
42277 
42278   END IF;
42279 
42280    l_segment := AcctDerRule_15(
42281            p_application_id           => p_application_id
42282          , p_ae_header_id             => l_ae_header_id 
42283 , p_source_4 => p_source_4
42284 , p_source_4_meaning => p_source_4_meaning
42285 , p_source_7 => p_source_7
42286 , p_source_7_meaning => p_source_7_meaning
42287 , p_source_17 => p_source_17
42288          , x_transaction_coa_id       => l_adr_transaction_coa_id
42289          , x_accounting_coa_id        => l_adr_accounting_coa_id
42290          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
42291          , x_flex_value_set_id        => l_adr_flex_value_set_id
42292          , x_value_type_code          => l_adr_value_type_code
42293          , x_value_combination_id     => l_adr_value_combination_id
42294          , x_value_segment_code       => l_adr_value_segment_code
42295          , p_side                     => 'NA'
42296          , p_override_seg_flag        => 'Y'
42297    );
42298 
42299    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
42300 
42301       xla_ae_lines_pkg.set_segment(
42302           p_to_segment_code         => 'GL_BALANCING'
42303         , p_segment_value           => l_segment
42304         , p_from_segment_code       => l_adr_value_segment_code
42305         , p_from_combination_id     => l_adr_value_combination_id
42306         , p_value_type_code         => l_adr_value_type_code
42307         , p_transaction_coa_id      => l_adr_transaction_coa_id
42308         , p_accounting_coa_id       => l_adr_accounting_coa_id
42309         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
42310         , p_flex_value_set_id       => l_adr_flex_value_set_id
42311         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
42312         , p_adr_type_code           => 'S'
42313         , p_component_type          => l_component_type
42314         , p_component_code          => l_component_code
42315         , p_component_type_code     => l_component_type_code
42316         , p_component_appl_id       => l_component_appl_id
42317         , p_amb_context_code        => l_amb_context_code
42318         , p_entity_code             => 'AP_PAYMENTS'
42319         , p_event_class_code        => 'REFUNDS'
42320         , p_side                    => 'NA'
42321         );
42322 
42323   END IF;
42324 
42325    --
42326    --
42327    END IF;
42328 
42329        --
42330        -- Update the line information that should be overwritten
42331        --
42332        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42333                                          p_header_num   => 1);
42334        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42335 
42336        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42337 
42338        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42339           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42340        END IF;
42341 
42342       --
42343       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42344       --
42345       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42346           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42347       ELSE
42348           ---------------------------------------------------------------------------------------------------
42349           -- 4262811a Switch Sign
42350           ---------------------------------------------------------------------------------------------------
42351           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42352           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42353                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42354           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42355                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42356           -- 5132302
42357           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42358                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42359 
42360       END IF;
42361 
42362       -- 4955764
42366 
42363       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42364       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42365 
42367       XLA_AE_LINES_PKG.ValidateCurrentLine;
42368       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42369 
42370       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42371                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42372                ,p_balance_type_code => l_balance_type_code);
42373 
42374    END IF;
42375 
42376    -----------------------------------------------------------------------------------------
42377    -- 4262811 Multiperiod Accounting
42378    -----------------------------------------------------------------------------------------
42379      -- No MPA option is assigned.
42380 
42381 
42382 END IF;
42383 END IF;
42384 --
42385 
42386 --
42387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42388    trace
42389       (p_msg      => 'END of AcctLineType_87'
42390       ,p_level    => C_LEVEL_PROCEDURE
42391       ,p_module   => l_log_module);
42392 END IF;
42393 --
42394 EXCEPTION
42395   WHEN xla_exceptions_pkg.application_exception THEN
42396       RAISE;
42397   WHEN OTHERS THEN
42398        xla_exceptions_pkg.raise_message
42399            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_87');
42400 END AcctLineType_87;
42401 --
42402 
42403 ---------------------------------------
42404 --
42405 -- PRIVATE FUNCTION
42406 --         AcctLineType_88
42407 --
42408 ---------------------------------------
42409 PROCEDURE AcctLineType_88 (
42410   p_application_id        IN NUMBER
42411  ,p_event_id              IN NUMBER
42412  ,p_calculate_acctd_flag  IN VARCHAR2
42413  ,p_calculate_g_l_flag    IN VARCHAR2
42414  ,p_actual_flag           IN OUT VARCHAR2
42415  ,p_balance_type_code     OUT VARCHAR2
42416  ,p_gain_or_loss_ref      OUT VARCHAR2
42417  
42418 --Payment Distribution (Payment Rate) Ledger Amount
42419  , p_source_9            IN NUMBER
42420 --Invoice Distribution Type
42421  , p_source_20            IN VARCHAR2
42422  , p_source_20_meaning    IN VARCHAR2
42423 --When to Account for Payment Option
42424  , p_source_38            IN VARCHAR2
42425 --Payment Distribution Type
42426  , p_source_39            IN VARCHAR2
42427  , p_source_39_meaning    IN VARCHAR2
42428 --Accounting Reversal Indicator
42429  , p_source_40            IN VARCHAR2
42430 --Payment Distribution Amount
42431  , p_source_41            IN NUMBER
42432 --Business Flow Accounts Payable Application Identifier
42433  , p_source_42            IN NUMBER
42434 --Payment Distribution Identifier
42435  , p_source_47            IN NUMBER
42436 --Distribution Link Type
42437  , p_source_48            IN VARCHAR2
42438 --Payment Currency Code
42439  , p_source_49            IN VARCHAR2
42440 --Override Accounted Amount Indicator
42441  , p_source_53            IN VARCHAR2
42442  , p_source_53_meaning    IN VARCHAR2
42443 --Third Party Type
42444  , p_source_56            IN VARCHAR2
42445 --Payment Distribution Reversed Identifier
42446  , p_source_57            IN NUMBER
42447 --Invoice Distribution Tax Line Identifier
42448  , p_source_58            IN NUMBER
42449 --Invoice Distribution Summary Tax Line Identifier
42450  , p_source_59            IN NUMBER
42451 --Payment Type
42452  , p_source_60            IN VARCHAR2
42453  , p_source_60_meaning    IN VARCHAR2
42454 --Business Flow Invoice Distribution Type
42455  , p_source_62            IN VARCHAR2
42456 --Business Flow Invoice Entity Code
42457  , p_source_63            IN VARCHAR2
42458 --Business Flow Invoice Distribution Identifier
42459  , p_source_64            IN NUMBER
42460 --Business Flow Invoice Identifier
42461  , p_source_65            IN NUMBER
42462 --Invoice Distribution Tax Distribution Identifier from Tax
42463  , p_source_66            IN NUMBER
42464 --Purchasing Encumbrance Option
42465  , p_source_102            IN VARCHAR2
42466  , p_source_102_meaning    IN VARCHAR2
42467 --Invoice Encumbered Option
42468  , p_source_104            IN VARCHAR2
42469  , p_source_104_meaning    IN VARCHAR2
42470 )
42471 IS
42472 
42473 l_component_type              VARCHAR2(80);
42474 l_component_code              VARCHAR2(30);
42475 l_component_type_code         VARCHAR2(1);
42476 l_component_appl_id           INTEGER;
42477 l_amb_context_code            VARCHAR2(30);
42478 l_entity_code                 VARCHAR2(30);
42479 l_event_class_code            VARCHAR2(30);
42480 l_ae_header_id                NUMBER;
42481 l_event_type_code             VARCHAR2(30);
42482 l_line_definition_code        VARCHAR2(30);
42483 l_line_definition_owner_code  VARCHAR2(1);
42484 --
42485 -- adr variables
42486 l_segment                     VARCHAR2(30);
42487 l_ccid                        NUMBER;
42488 l_adr_transaction_coa_id      NUMBER;
42489 l_adr_accounting_coa_id       NUMBER;
42490 l_adr_flexfield_segment_code  VARCHAR2(30);
42491 l_adr_flex_value_set_id       NUMBER;
42492 l_adr_value_type_code         VARCHAR2(30);
42493 l_adr_value_combination_id    NUMBER;
42494 l_adr_value_segment_code      VARCHAR2(30);
42495 
42496 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42497 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42501 -- 4262811 Variables ------------------------------------------------------------------------------------------
42498 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42499 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42500 
42502 l_entered_amt_idx             NUMBER;
42503 l_accted_amt_idx              NUMBER;
42504 l_acc_rev_flag                VARCHAR2(1);
42505 l_accrual_line_num            NUMBER;
42506 l_tmp_amt                     NUMBER;
42507 l_acc_rev_natural_side_code   VARCHAR2(1);
42508 
42509 l_num_entries                 NUMBER;
42510 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42511 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42512 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42513 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42514 l_recog_line_1                NUMBER;
42515 l_recog_line_2                NUMBER;
42516 
42517 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42518 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42519 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42520 
42521 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42522 
42523 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42524 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42525 
42526 ---------------------------------------------------------------------------------------------------------------
42527 
42528 
42529 --
42530 -- bulk performance
42531 --
42532 l_balance_type_code           VARCHAR2(1);
42533 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42534 l_log_module                  VARCHAR2(240);
42535 
42536 --
42537 -- Upgrade strategy
42538 --
42539 l_actual_upg_option           VARCHAR2(1);
42540 l_enc_upg_option           VARCHAR2(1);
42541 
42542 --
42543 BEGIN
42544 --
42545 IF g_log_enabled THEN
42546       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
42547 END IF;
42548 --
42549 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42550 
42551       trace
42552          (p_msg      => 'BEGIN of AcctLineType_88'
42553          ,p_level    => C_LEVEL_PROCEDURE
42554          ,p_module   => l_log_module);
42555 
42556 END IF;
42557 --
42558 l_component_type             := 'AMB_JLT';
42559 l_component_code             := 'AP_EX_RATE_VAR_REF_ENC';
42560 l_component_type_code        := 'S';
42561 l_component_appl_id          :=  200;
42562 l_amb_context_code           := 'DEFAULT';
42563 l_entity_code                := 'AP_PAYMENTS';
42564 l_event_class_code           := 'REFUNDS';
42565 l_event_type_code            := 'REFUNDS_ALL';
42566 l_line_definition_owner_code := 'S';
42567 l_line_definition_code       := 'ENC_REFUNDS_ALL';
42568 --
42569 l_balance_type_code          := 'E';
42570 l_segment                     := NULL;
42571 l_ccid                        := NULL;
42572 l_adr_transaction_coa_id      := NULL;
42573 l_adr_accounting_coa_id       := NULL;
42574 l_adr_flexfield_segment_code  := NULL;
42575 l_adr_flex_value_set_id       := NULL;
42576 l_adr_value_type_code         := NULL;
42577 l_adr_value_combination_id    := NULL;
42578 l_adr_value_segment_code      := NULL;
42579 
42580 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
42581 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
42582 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
42583 l_budgetary_control_flag     := 'N';
42584 
42585 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
42586 l_bflow_applied_to_amt       := NULL; -- 5132302
42587 l_entered_amt_idx            := NULL;          -- 4262811
42588 l_accted_amt_idx             := NULL;          -- 4262811
42589 l_acc_rev_flag               := NULL;          -- 4262811
42590 l_accrual_line_num           := NULL;          -- 4262811
42591 l_tmp_amt                    := NULL;          -- 4262811
42592 --
42593  
42594 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42595     l_balance_type_code <> 'B' THEN
42596 IF NVL(p_source_38,'
42597 ') <>  'CLEAR_CLEAR' AND 
42598 NVL(p_source_20,'
42599 ') =  'ERV' AND 
42600 (NVL(p_source_39,'
42601 ') =  'CASH' OR 
42602 NVL(p_source_39,'
42603 ') =  'DISCOUNT') AND 
42604 NVL(p_source_60,'
42605 ') =  'R' AND 
42606 NVL(p_source_102,'
42607 ') =  'Y' AND 
42608 NVL(p_source_104,'
42609 ') =  'Y'
42610  THEN 
42611 
42612    --
42613    XLA_AE_LINES_PKG.SetNewLine;
42614 
42615    p_balance_type_code          := l_balance_type_code;
42616    -- set the flag so later we will know whether the gain loss line needs to be created
42617    
42618    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42619      p_actual_flag :='A';
42620    END IF;
42621 
42622    --
42623    -- bulk performance
42624    --
42625    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42626                                       p_header_num   => 0); -- 4262811
42627    --
42628    -- set accounting line options
42629    --
42630    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42631            p_natural_side_code          => 'C'
42635          , p_switch_side_flag           => 'Y'
42632          , p_gain_or_loss_flag          => 'N'
42633          , p_gl_transfer_mode_code      => 'S'
42634          , p_acct_entry_type_code       => 'E'
42636          , p_merge_duplicate_code       => 'A'
42637          );
42638    --
42639    l_acc_rev_natural_side_code := 'D';  -- 4262811
42640    -- 
42641    --
42642    -- set accounting line type info
42643    --
42644    xla_ae_lines_pkg.SetAcctLineType
42645       (p_component_type             => l_component_type
42646       ,p_event_type_code            => l_event_type_code
42647       ,p_line_definition_owner_code => l_line_definition_owner_code
42648       ,p_line_definition_code       => l_line_definition_code
42649       ,p_accounting_line_code       => l_component_code
42650       ,p_accounting_line_type_code  => l_component_type_code
42651       ,p_accounting_line_appl_id    => l_component_appl_id
42652       ,p_amb_context_code           => l_amb_context_code
42653       ,p_entity_code                => l_entity_code
42654       ,p_event_class_code           => l_event_class_code);
42655    --
42656    -- set accounting class
42657    --
42658    xla_ae_lines_pkg.SetAcctClass(
42659            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
42660          , p_ae_header_id           => l_ae_header_id
42661          );
42662 
42663    --
42664    -- set rounding class
42665    --
42666    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42667                       'EXCHANGE_RATE_VARIANCE';
42668 
42669    --
42670    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42671    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42672    --
42673    -- bulk performance
42674    --
42675    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42676 
42677    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42678       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42679 
42680    -- 4955764
42681    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42682       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42683 
42684    -- 4458381 Public Sector Enh
42685    
42686    --
42687    -- set accounting attributes for the line type
42688    --
42689    l_entered_amt_idx := 9;
42690    l_accted_amt_idx  := 11;
42691    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
42692    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42693    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
42694    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
42695    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
42696    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42697    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
42698    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
42699    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
42700    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
42701    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
42702    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42703    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
42704    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
42705    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
42706    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
42707    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
42708    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
42709    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
42710    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
42711    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
42712    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
42713    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
42714    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
42715    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
42716    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
42717    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
42718    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
42719    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
42720    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
42721    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
42722    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
42723    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
42724    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
42725    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
42726    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
42727    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
42728 
42729    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42730    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42731 
42732    ---------------------------------------------------------------------------------------------------------------
42733    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42737    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42734    ---------------------------------------------------------------------------------------------------------------
42735    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42736 
42738    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42739 
42740    IF xla_accounting_cache_pkg.GetValueChar
42741          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42742          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42743    AND l_bflow_method_code = 'PRIOR_ENTRY'
42744 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42745    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42746          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42747        )
42748    THEN
42749          xla_ae_lines_pkg.BflowUpgEntry
42750            (p_business_method_code    => l_bflow_method_code
42751            ,p_business_class_code     => l_bflow_class_code
42752            ,p_balance_type            => l_balance_type_code);
42753    ELSE
42754       NULL;
42755 XLA_AE_LINES_PKG.business_flow_validation(
42756                                 p_business_method_code     => l_bflow_method_code
42757                                ,p_business_class_code      => l_bflow_class_code
42758                                ,p_inherit_description_flag => l_inherit_desc_flag);
42759    END IF;
42760 
42761    --
42762    -- call analytical criteria
42763    --
42764    -- Inherited Analytical Criteria for business flow method of Prior Entry.
42765    --
42766    -- call description
42767    --
42768    -- No description or it is inherited.
42769    --
42770    -- call ADRs
42771    -- Bug 4922099
42772    --
42773    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42774         (NVL(l_actual_upg_option, 'N') = 'O') OR
42775         (NVL(l_enc_upg_option, 'N') = 'O')
42776       )
42777    THEN
42778    NULL;
42779    --
42780    --
42781    
42782    --
42783    --
42784    END IF;
42785    --
42786    -- Bug 4922099
42787    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42788           (NVL(l_enc_upg_option, 'N') = 'O')
42789         ) AND
42790         (l_bflow_method_code = 'PRIOR_ENTRY')
42791       )
42792    THEN
42793       IF
42794       --
42795       1 = 1
42796       --
42797       THEN
42798       xla_accounting_err_pkg.build_message
42799                                     (p_appli_s_name            => 'XLA'
42800                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42801                                     ,p_token_1                 => 'LINE_NUMBER'
42802                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42803                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42804                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42805                                                                              l_component_type
42806                                                                             ,l_component_code
42807                                                                             ,l_component_type_code
42808                                                                             ,l_component_appl_id
42809                                                                             ,l_amb_context_code
42810                                                                             ,l_entity_code
42811                                                                             ,l_event_class_code
42812                                                                            )
42813                                     ,p_token_3                 => 'OWNER'
42814                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42815                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42816                                                                           ,p_lookup_code    => l_component_type_code
42817                                                                          )
42818                                     ,p_token_4                 => 'PRODUCT_NAME'
42819                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42820                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42821                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42822                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42823                                     ,p_ae_header_id            =>  NULL
42824                                        );
42825 
42826         IF (C_LEVEL_ERROR>= g_log_level) THEN
42827                  trace
42828                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42829                       ,p_level    => C_LEVEL_ERROR
42830                       ,p_module   => l_log_module);
42831         END IF;
42832       END IF;
42833    END IF;
42834    --
42835    --
42836    ------------------------------------------------------------------------------------------------
42837    -- 4219869 Business Flow
42838    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42842 
42839    -- Prior Entry.  Currently, the following code is always generated.
42840    ------------------------------------------------------------------------------------------------
42841    -- No ValidateCurrentLine for business flow method of Prior Entry
42843    ------------------------------------------------------------------------------------
42844    -- 4219869 Business Flow
42845    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42846    ------------------------------------------------------------------------------------
42847    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42848 
42849    ----------------------------------------------------------------------------------
42850    -- 4219869 Business Flow
42851    -- Update journal entry status -- Need to generate this within IF <condition>
42852    ----------------------------------------------------------------------------------
42853    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42854          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42855          ,p_balance_type_code => l_balance_type_code
42856          );
42857 
42858    -------------------------------------------------------------------------------------------
42859    -- 4262811 - Generate the Accrual Reversal lines
42860    -------------------------------------------------------------------------------------------
42861    BEGIN
42862       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42863                               (g_array_event(p_event_id).array_value_num('header_index'));
42864       IF l_acc_rev_flag IS NULL THEN
42865          l_acc_rev_flag := 'N';
42866       END IF;
42867    EXCEPTION
42868       WHEN OTHERS THEN
42869          l_acc_rev_flag := 'N';
42870    END;
42871    --
42872    IF (l_acc_rev_flag = 'Y') THEN
42873 
42874        -- 4645092  ------------------------------------------------------------------------------
42875        -- To allow MPA report to determine if it should generate report process
42876        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42877        ------------------------------------------------------------------------------------------
42878 
42879        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42880        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42881    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42882    -- call ADRs
42883    -- Bug 4922099
42884    --
42885    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42886         (NVL(l_actual_upg_option, 'N') = 'O') OR
42887         (NVL(l_enc_upg_option, 'N') = 'O')
42888       )
42889    THEN
42890    NULL;
42891    --
42892    --
42893    
42894    --
42895    --
42896    END IF;
42897 
42898        --
42899        -- Update the line information that should be overwritten
42900        --
42901        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42902                                          p_header_num   => 1);
42903        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42904 
42905        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42906 
42907        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42908           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42909        END IF;
42910 
42911       --
42912       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42913       --
42914       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42915           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42916       ELSE
42917           ---------------------------------------------------------------------------------------------------
42918           -- 4262811a Switch Sign
42919           ---------------------------------------------------------------------------------------------------
42920           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42921           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42922                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42923           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42924                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42925           -- 5132302
42926           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42927                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42928 
42929       END IF;
42930 
42931       -- 4955764
42932       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42933       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42934 
42935 
42936       XLA_AE_LINES_PKG.ValidateCurrentLine;
42937       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42938 
42939       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42940                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42941                ,p_balance_type_code => l_balance_type_code);
42942 
42943    END IF;
42944 
42948      -- No MPA option is assigned.
42945    -----------------------------------------------------------------------------------------
42946    -- 4262811 Multiperiod Accounting
42947    -----------------------------------------------------------------------------------------
42949 
42950 
42951 END IF;
42952 END IF;
42953 --
42954 
42955 --
42956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42957    trace
42958       (p_msg      => 'END of AcctLineType_88'
42959       ,p_level    => C_LEVEL_PROCEDURE
42960       ,p_module   => l_log_module);
42961 END IF;
42962 --
42963 EXCEPTION
42964   WHEN xla_exceptions_pkg.application_exception THEN
42965       RAISE;
42966   WHEN OTHERS THEN
42967        xla_exceptions_pkg.raise_message
42968            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_88');
42969 END AcctLineType_88;
42970 --
42971 
42972 ---------------------------------------
42973 --
42974 -- PRIVATE FUNCTION
42975 --         AcctLineType_89
42976 --
42977 ---------------------------------------
42978 PROCEDURE AcctLineType_89 (
42979   p_application_id        IN NUMBER
42980  ,p_event_id              IN NUMBER
42981  ,p_calculate_acctd_flag  IN VARCHAR2
42982  ,p_calculate_g_l_flag    IN VARCHAR2
42983  ,p_actual_flag           IN OUT VARCHAR2
42984  ,p_balance_type_code     OUT VARCHAR2
42985  ,p_gain_or_loss_ref      OUT VARCHAR2
42986  
42987 --Automatic Offsets Value
42988  , p_source_4            IN VARCHAR2
42989  , p_source_4_meaning    IN VARCHAR2
42990 --Invoice Distribution Account
42991  , p_source_17            IN NUMBER
42992 --Payables Options Rounding Account
42993  , p_source_37            IN NUMBER
42994 --When to Account for Payment Option
42995  , p_source_38            IN VARCHAR2
42996 --Accounting Reversal Indicator
42997  , p_source_40            IN VARCHAR2
42998 --Business Flow Accounts Payable Application Identifier
42999  , p_source_42            IN NUMBER
43000 --Distribution Link Type
43001  , p_source_48            IN VARCHAR2
43002 --Override Accounted Amount Indicator
43003  , p_source_53            IN VARCHAR2
43004  , p_source_53_meaning    IN VARCHAR2
43005 --Third Party Type
43006  , p_source_56            IN VARCHAR2
43007 --Invoice Distribution Tax Line Identifier
43008  , p_source_58            IN NUMBER
43009 --Invoice Distribution Summary Tax Line Identifier
43010  , p_source_59            IN NUMBER
43011 --Invoice Distribution Tax Distribution Identifier from Tax
43012  , p_source_66            IN NUMBER
43013 --Prepayment Distribution Type
43014  , p_source_67            IN VARCHAR2
43015 --Prepayment Application Distribution Identifier
43016  , p_source_71            IN NUMBER
43017 --Invoice Identifier
43018  , p_source_72            IN NUMBER
43019 --Business Flow Prepayment Invoice Distribution Type
43020  , p_source_73            IN VARCHAR2
43021 --Business Flow Prepayment Invoice Entity Code
43022  , p_source_74            IN VARCHAR2
43023 --Business Flow Prepayment Invoice Distribution Identifier
43024  , p_source_75            IN NUMBER
43025 --Business Flow Prepayment Invoice Identifier
43026  , p_source_76            IN NUMBER
43027 --Upgrade Encumbrance Credit Account Class
43028  , p_source_77            IN VARCHAR2
43029 --Payables Encumbrance Upgrade Credit Account
43030  , p_source_78            IN NUMBER
43031 --Payables Encumbrance Upgrade Credit Amount
43032  , p_source_79            IN NUMBER
43033 --Invoice Currency Code
43034  , p_source_80            IN VARCHAR2
43035 --Payables Encumbrance Upgrade Credit Base Amount
43036  , p_source_81            IN NUMBER
43037 --Upgrade Encumbrance Debit Account Class
43038  , p_source_82            IN VARCHAR2
43039 --Payables Encumbrance Upgrade Debit Account
43040  , p_source_83            IN NUMBER
43041 --Payables Encumbrance Upgrade Debit Amount
43042  , p_source_84            IN NUMBER
43043 --Payables Encumbrance Upgrade Debit Base Amount
43044  , p_source_85            IN NUMBER
43045 --Payables Encumbrance Upgrade Option
43046  , p_source_86            IN VARCHAR2
43047 --Prepayment Distribution Amount
43048  , p_source_87            IN NUMBER
43049 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
43050  , p_source_89            IN NUMBER
43051 --Deferred Accounting End Date
43052  , p_source_90            IN DATE
43053 --Deferred Accounting Option
43054  , p_source_91            IN VARCHAR2
43055 --Deferred Accounting Start Date
43056  , p_source_92            IN DATE
43057 --Invoice Supplier Identifier
43058  , p_source_93            IN NUMBER
43059 --Invoice Supplier Site Identifier
43060  , p_source_94            IN NUMBER
43061 --Identifier of the Prepayment Application Reversed
43062  , p_source_95            IN NUMBER
43063 --Payables Upgrade Credit Encumbrance Type Identifier
43064  , p_source_96            IN NUMBER
43065 --Payables Upgrade Debit Encumbrance Type Identifier
43066  , p_source_97            IN NUMBER
43067 --Invoice Exchange Date
43068  , p_source_124            IN DATE
43069 --Invoice Exchange Rate
43070  , p_source_125            IN NUMBER
43071 --Invoice Exchange Rate Type
43072  , p_source_126            IN VARCHAR2
43073 )
43074 IS
43075 
43076 l_component_type              VARCHAR2(80);
43077 l_component_code              VARCHAR2(30);
43078 l_component_type_code         VARCHAR2(1);
43079 l_component_appl_id           INTEGER;
43083 l_ae_header_id                NUMBER;
43080 l_amb_context_code            VARCHAR2(30);
43081 l_entity_code                 VARCHAR2(30);
43082 l_event_class_code            VARCHAR2(30);
43084 l_event_type_code             VARCHAR2(30);
43085 l_line_definition_code        VARCHAR2(30);
43086 l_line_definition_owner_code  VARCHAR2(1);
43087 --
43088 -- adr variables
43089 l_segment                     VARCHAR2(30);
43090 l_ccid                        NUMBER;
43091 l_adr_transaction_coa_id      NUMBER;
43092 l_adr_accounting_coa_id       NUMBER;
43093 l_adr_flexfield_segment_code  VARCHAR2(30);
43094 l_adr_flex_value_set_id       NUMBER;
43095 l_adr_value_type_code         VARCHAR2(30);
43096 l_adr_value_combination_id    NUMBER;
43097 l_adr_value_segment_code      VARCHAR2(30);
43098 
43099 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
43100 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
43101 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
43102 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
43103 
43104 -- 4262811 Variables ------------------------------------------------------------------------------------------
43105 l_entered_amt_idx             NUMBER;
43106 l_accted_amt_idx              NUMBER;
43107 l_acc_rev_flag                VARCHAR2(1);
43108 l_accrual_line_num            NUMBER;
43109 l_tmp_amt                     NUMBER;
43110 l_acc_rev_natural_side_code   VARCHAR2(1);
43111 
43112 l_num_entries                 NUMBER;
43113 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43114 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43115 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43116 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43117 l_recog_line_1                NUMBER;
43118 l_recog_line_2                NUMBER;
43119 
43120 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43121 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43122 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43123 
43124 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43125 
43126 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43127 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43128 
43129 ---------------------------------------------------------------------------------------------------------------
43130 
43131 
43132 --
43133 -- bulk performance
43134 --
43135 l_balance_type_code           VARCHAR2(1);
43136 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43137 l_log_module                  VARCHAR2(240);
43138 
43139 --
43140 -- Upgrade strategy
43141 --
43142 l_actual_upg_option           VARCHAR2(1);
43143 l_enc_upg_option           VARCHAR2(1);
43144 
43145 --
43146 BEGIN
43147 --
43148 IF g_log_enabled THEN
43149       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
43150 END IF;
43151 --
43152 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43153 
43154       trace
43155          (p_msg      => 'BEGIN of AcctLineType_89'
43156          ,p_level    => C_LEVEL_PROCEDURE
43157          ,p_module   => l_log_module);
43158 
43159 END IF;
43160 --
43161 l_component_type             := 'AMB_JLT';
43162 l_component_code             := 'AP_FINAL_APP_ROUND_PP_CLR_RATE';
43163 l_component_type_code        := 'S';
43164 l_component_appl_id          :=  200;
43165 l_amb_context_code           := 'DEFAULT';
43166 l_entity_code                := 'AP_INVOICES';
43167 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
43168 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
43169 l_line_definition_owner_code := 'S';
43170 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
43171 --
43172 l_balance_type_code          := 'A';
43173 l_segment                     := NULL;
43174 l_ccid                        := NULL;
43175 l_adr_transaction_coa_id      := NULL;
43176 l_adr_accounting_coa_id       := NULL;
43177 l_adr_flexfield_segment_code  := NULL;
43178 l_adr_flex_value_set_id       := NULL;
43179 l_adr_value_type_code         := NULL;
43180 l_adr_value_combination_id    := NULL;
43181 l_adr_value_segment_code      := NULL;
43182 
43183 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
43184 l_bflow_class_code           := '';    -- 4219869 Business Flow
43185 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43186 l_budgetary_control_flag     := 'N';
43187 
43188 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43189 l_bflow_applied_to_amt       := NULL; -- 5132302
43190 l_entered_amt_idx            := NULL;          -- 4262811
43191 l_accted_amt_idx             := NULL;          -- 4262811
43192 l_acc_rev_flag               := NULL;          -- 4262811
43193 l_accrual_line_num           := NULL;          -- 4262811
43194 l_tmp_amt                    := NULL;          -- 4262811
43195 --
43196  
43197 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43198     l_balance_type_code <> 'B' THEN
43199 IF NVL(p_source_38,'
43200 ') <>  'CLEAR_CLEAR' AND 
43201 NVL(p_source_67,'
43202 ') =  'FINAL APPLICATION ROUNDING'
43203  THEN 
43204 
43205    --
43206    XLA_AE_LINES_PKG.SetNewLine;
43207 
43211    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43208    p_balance_type_code          := l_balance_type_code;
43209    -- set the flag so later we will know whether the gain loss line needs to be created
43210    
43212      p_actual_flag :='A';
43213    END IF;
43214 
43215    --
43216    -- bulk performance
43217    --
43218    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43219                                       p_header_num   => 0); -- 4262811
43220    --
43221    -- set accounting line options
43222    --
43223    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43224            p_natural_side_code          => 'C'
43225          , p_gain_or_loss_flag          => 'N'
43226          , p_gl_transfer_mode_code      => 'S'
43227          , p_acct_entry_type_code       => 'A'
43228          , p_switch_side_flag           => 'Y'
43229          , p_merge_duplicate_code       => 'A'
43230          );
43231    --
43232    l_acc_rev_natural_side_code := 'D';  -- 4262811
43233    -- 
43234    --
43235    -- set accounting line type info
43236    --
43237    xla_ae_lines_pkg.SetAcctLineType
43238       (p_component_type             => l_component_type
43239       ,p_event_type_code            => l_event_type_code
43240       ,p_line_definition_owner_code => l_line_definition_owner_code
43241       ,p_line_definition_code       => l_line_definition_code
43242       ,p_accounting_line_code       => l_component_code
43243       ,p_accounting_line_type_code  => l_component_type_code
43244       ,p_accounting_line_appl_id    => l_component_appl_id
43245       ,p_amb_context_code           => l_amb_context_code
43246       ,p_entity_code                => l_entity_code
43247       ,p_event_class_code           => l_event_class_code);
43248    --
43249    -- set accounting class
43250    --
43251    xla_ae_lines_pkg.SetAcctClass(
43252            p_accounting_class_code  => 'ROUNDING'
43253          , p_ae_header_id           => l_ae_header_id
43254          );
43255 
43256    --
43257    -- set rounding class
43258    --
43259    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43260                       'ROUNDING';
43261 
43262    --
43263    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43264    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43265    --
43266    -- bulk performance
43267    --
43268    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43269 
43270    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43271       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43272 
43273    -- 4955764
43274    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43275       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43276 
43277    -- 4458381 Public Sector Enh
43278    
43279    --
43280    -- set accounting attributes for the line type
43281    --
43282    l_entered_amt_idx := 25;
43283    l_accted_amt_idx  := 30;
43284    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
43285    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43286    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
43287    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43288    l_rec_acct_attrs.array_num_value(2)  := 
43289 xla_ae_sources_pkg.GetSystemSourceNum(
43290    p_source_code           => 'XLA_EVENT_APPL_ID'
43291  , p_source_type_code      => 'Y'
43292  , p_source_application_id =>  602
43293 );
43294    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
43295    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
43296    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
43297    l_rec_acct_attrs.array_char_value(4)  := 
43298 xla_ae_sources_pkg.GetSystemSourceChar(
43299    p_source_code           => 'XLA_ENTITY_CODE'
43300  , p_source_type_code      => 'Y'
43301  , p_source_application_id =>  602
43302 );
43303    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
43304    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
43305    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
43306    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
43307    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
43308    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
43309    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43310    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
43311    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
43312    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
43313    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
43314    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
43315    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43316    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
43317    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
43318    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
43319    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
43320    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
43321    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
43325    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
43322    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
43323    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
43324    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
43326    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
43327    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
43328    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
43329    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
43330    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
43331    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
43332    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
43333    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
43334    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
43335    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
43336    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
43337    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
43338    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
43339    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
43340    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
43341    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
43342    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
43343    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
43344    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
43345    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
43346    l_rec_acct_attrs.array_char_value(26)  := p_source_80;
43347    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
43348    l_rec_acct_attrs.array_date_value(27)  := p_source_124;
43349    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
43350    l_rec_acct_attrs.array_num_value(28)  := p_source_125;
43351    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
43352    l_rec_acct_attrs.array_char_value(29)  := p_source_126;
43353    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
43354    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
43355    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
43356    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
43357    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
43358    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
43359    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
43360    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
43361    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
43362    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
43363    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
43364    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
43365    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
43366    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
43367    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
43368    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
43369    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
43370    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
43371    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
43372    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
43373    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
43374    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
43375    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
43376    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
43377    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
43378    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
43379    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
43380    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
43381    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
43382    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
43383 
43384    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43385    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43386 
43387    ---------------------------------------------------------------------------------------------------------------
43388    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43389    ---------------------------------------------------------------------------------------------------------------
43390    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43391 
43392    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43393    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43394 
43395    IF xla_accounting_cache_pkg.GetValueChar
43396          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43397          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43398    AND l_bflow_method_code = 'PRIOR_ENTRY'
43399 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43400    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43401          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43402        )
43403    THEN
43404          xla_ae_lines_pkg.BflowUpgEntry
43405            (p_business_method_code    => l_bflow_method_code
43406            ,p_business_class_code     => l_bflow_class_code
43410 -- No business flow processing for business flow method of NONE.
43407            ,p_balance_type            => l_balance_type_code);
43408    ELSE
43409       NULL;
43411    END IF;
43412 
43413    --
43414    -- call analytical criteria
43415    --
43416    
43417    --
43418    -- call description
43419    --
43420    -- No description or it is inherited.
43421    --
43422    -- call ADRs
43423    -- Bug 4922099
43424    --
43425    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43426         (NVL(l_actual_upg_option, 'N') = 'O') OR
43427         (NVL(l_enc_upg_option, 'N') = 'O')
43428       )
43429    THEN
43430    NULL;
43431    --
43432    --
43433    
43434   l_ccid := AcctDerRule_35(
43435            p_application_id           => p_application_id
43436          , p_ae_header_id             => l_ae_header_id 
43437 , p_source_4 => p_source_4
43438 , p_source_4_meaning => p_source_4_meaning
43439 , p_source_17 => p_source_17
43440 , p_source_37 => p_source_37
43441          , x_transaction_coa_id       => l_adr_transaction_coa_id
43442          , x_accounting_coa_id        => l_adr_accounting_coa_id
43443          , x_value_type_code          => l_adr_value_type_code
43444          , p_side                     => 'NA'
43445    );
43446 
43447    xla_ae_lines_pkg.set_ccid(
43448     p_code_combination_id          => l_ccid
43449   , p_value_type_code              => l_adr_value_type_code
43450   , p_transaction_coa_id           => l_adr_transaction_coa_id
43451   , p_accounting_coa_id            => l_adr_accounting_coa_id
43452   , p_adr_code                     => 'AP_ROUNDING'
43453   , p_adr_type_code                => 'S'
43454   , p_component_type               => l_component_type
43455   , p_component_code               => l_component_code
43456   , p_component_type_code          => l_component_type_code
43457   , p_component_appl_id            => l_component_appl_id
43458   , p_amb_context_code             => l_amb_context_code
43459   , p_side                         => 'NA'
43460   );
43461 
43462 
43463    --
43464    --
43465    END IF;
43466    --
43467    -- Bug 4922099
43468    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43469           (NVL(l_enc_upg_option, 'N') = 'O')
43470         ) AND
43471         (l_bflow_method_code = 'PRIOR_ENTRY')
43472       )
43473    THEN
43474       IF
43475       --
43476       1 = 2
43477       --
43478       THEN
43479       xla_accounting_err_pkg.build_message
43480                                     (p_appli_s_name            => 'XLA'
43481                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43482                                     ,p_token_1                 => 'LINE_NUMBER'
43483                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43484                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43485                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43486                                                                              l_component_type
43487                                                                             ,l_component_code
43488                                                                             ,l_component_type_code
43489                                                                             ,l_component_appl_id
43490                                                                             ,l_amb_context_code
43491                                                                             ,l_entity_code
43492                                                                             ,l_event_class_code
43493                                                                            )
43494                                     ,p_token_3                 => 'OWNER'
43495                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43496                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43497                                                                           ,p_lookup_code    => l_component_type_code
43498                                                                          )
43499                                     ,p_token_4                 => 'PRODUCT_NAME'
43500                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43501                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43502                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43503                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43504                                     ,p_ae_header_id            =>  NULL
43505                                        );
43506 
43507         IF (C_LEVEL_ERROR>= g_log_level) THEN
43508                  trace
43509                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43510                       ,p_level    => C_LEVEL_ERROR
43511                       ,p_module   => l_log_module);
43512         END IF;
43513       END IF;
43514    END IF;
43515    --
43516    --
43517    ------------------------------------------------------------------------------------------------
43518    -- 4219869 Business Flow
43522    XLA_AE_LINES_PKG.ValidateCurrentLine;
43519    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43520    -- Prior Entry.  Currently, the following code is always generated.
43521    ------------------------------------------------------------------------------------------------
43523 
43524    ------------------------------------------------------------------------------------
43525    -- 4219869 Business Flow
43526    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43527    ------------------------------------------------------------------------------------
43528    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43529 
43530    ----------------------------------------------------------------------------------
43531    -- 4219869 Business Flow
43532    -- Update journal entry status -- Need to generate this within IF <condition>
43533    ----------------------------------------------------------------------------------
43534    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43535          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43536          ,p_balance_type_code => l_balance_type_code
43537          );
43538 
43539    -------------------------------------------------------------------------------------------
43540    -- 4262811 - Generate the Accrual Reversal lines
43541    -------------------------------------------------------------------------------------------
43542    BEGIN
43543       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43544                               (g_array_event(p_event_id).array_value_num('header_index'));
43545       IF l_acc_rev_flag IS NULL THEN
43546          l_acc_rev_flag := 'N';
43547       END IF;
43548    EXCEPTION
43549       WHEN OTHERS THEN
43550          l_acc_rev_flag := 'N';
43551    END;
43552    --
43553    IF (l_acc_rev_flag = 'Y') THEN
43554 
43555        -- 4645092  ------------------------------------------------------------------------------
43556        -- To allow MPA report to determine if it should generate report process
43557        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43558        ------------------------------------------------------------------------------------------
43559 
43560        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43561        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43562    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43563    -- call ADRs
43564    -- Bug 4922099
43565    --
43566    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43567         (NVL(l_actual_upg_option, 'N') = 'O') OR
43568         (NVL(l_enc_upg_option, 'N') = 'O')
43569       )
43570    THEN
43571    NULL;
43572    --
43573    --
43574    
43575   l_ccid := AcctDerRule_35(
43576            p_application_id           => p_application_id
43577          , p_ae_header_id             => l_ae_header_id 
43578 , p_source_4 => p_source_4
43579 , p_source_4_meaning => p_source_4_meaning
43580 , p_source_17 => p_source_17
43581 , p_source_37 => p_source_37
43582          , x_transaction_coa_id       => l_adr_transaction_coa_id
43583          , x_accounting_coa_id        => l_adr_accounting_coa_id
43584          , x_value_type_code          => l_adr_value_type_code
43585          , p_side                     => 'NA'
43586    );
43587 
43588    xla_ae_lines_pkg.set_ccid(
43589     p_code_combination_id          => l_ccid
43590   , p_value_type_code              => l_adr_value_type_code
43591   , p_transaction_coa_id           => l_adr_transaction_coa_id
43592   , p_accounting_coa_id            => l_adr_accounting_coa_id
43593   , p_adr_code                     => 'AP_ROUNDING'
43594   , p_adr_type_code                => 'S'
43595   , p_component_type               => l_component_type
43596   , p_component_code               => l_component_code
43597   , p_component_type_code          => l_component_type_code
43598   , p_component_appl_id            => l_component_appl_id
43599   , p_amb_context_code             => l_amb_context_code
43600   , p_side                         => 'NA'
43601   );
43602 
43603 
43604    --
43605    --
43606    END IF;
43607 
43608        --
43609        -- Update the line information that should be overwritten
43610        --
43611        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43612                                          p_header_num   => 1);
43613        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43614 
43615        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43616 
43617        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43618           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43619        END IF;
43620 
43621       --
43622       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43623       --
43624       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43625           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43626       ELSE
43627           ---------------------------------------------------------------------------------------------------
43628           -- 4262811a Switch Sign
43632                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43629           ---------------------------------------------------------------------------------------------------
43630           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43631           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43633           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43634                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43635           -- 5132302
43636           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43637                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43638 
43639       END IF;
43640 
43641       -- 4955764
43642       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43643       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43644 
43645 
43646       XLA_AE_LINES_PKG.ValidateCurrentLine;
43647       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43648 
43649       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43650                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43651                ,p_balance_type_code => l_balance_type_code);
43652 
43653    END IF;
43654 
43655    -----------------------------------------------------------------------------------------
43656    -- 4262811 Multiperiod Accounting
43657    -----------------------------------------------------------------------------------------
43658      -- No MPA option is assigned.
43659 
43660 
43661 END IF;
43662 END IF;
43663 --
43664 
43665 --
43666 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43667    trace
43668       (p_msg      => 'END of AcctLineType_89'
43669       ,p_level    => C_LEVEL_PROCEDURE
43670       ,p_module   => l_log_module);
43671 END IF;
43672 --
43673 EXCEPTION
43674   WHEN xla_exceptions_pkg.application_exception THEN
43675       RAISE;
43676   WHEN OTHERS THEN
43677        xla_exceptions_pkg.raise_message
43678            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_89');
43679 END AcctLineType_89;
43680 --
43681 
43682 ---------------------------------------
43683 --
43684 -- PRIVATE FUNCTION
43685 --         AcctLineType_90
43686 --
43687 ---------------------------------------
43688 PROCEDURE AcctLineType_90 (
43689   p_application_id        IN NUMBER
43690  ,p_event_id              IN NUMBER
43691  ,p_calculate_acctd_flag  IN VARCHAR2
43692  ,p_calculate_g_l_flag    IN VARCHAR2
43693  ,p_actual_flag           IN OUT VARCHAR2
43694  ,p_balance_type_code     OUT VARCHAR2
43695  ,p_gain_or_loss_ref      OUT VARCHAR2
43696  
43697 --Automatic Offsets Value
43698  , p_source_4            IN VARCHAR2
43699  , p_source_4_meaning    IN VARCHAR2
43700 --Invoice Distribution Account
43701  , p_source_17            IN NUMBER
43702 --Payables Options Rounding Account
43703  , p_source_37            IN NUMBER
43704 --When to Account for Payment Option
43705  , p_source_38            IN VARCHAR2
43706 --Accounting Reversal Indicator
43707  , p_source_40            IN VARCHAR2
43708 --Business Flow Accounts Payable Application Identifier
43709  , p_source_42            IN NUMBER
43710 --Distribution Link Type
43711  , p_source_48            IN VARCHAR2
43712 --Override Accounted Amount Indicator
43713  , p_source_53            IN VARCHAR2
43714  , p_source_53_meaning    IN VARCHAR2
43715 --Third Party Type
43716  , p_source_56            IN VARCHAR2
43717 --Invoice Distribution Tax Line Identifier
43718  , p_source_58            IN NUMBER
43719 --Invoice Distribution Summary Tax Line Identifier
43720  , p_source_59            IN NUMBER
43721 --Invoice Distribution Tax Distribution Identifier from Tax
43722  , p_source_66            IN NUMBER
43723 --Prepayment Distribution Type
43724  , p_source_67            IN VARCHAR2
43725 --Prepayment Application Distribution Identifier
43726  , p_source_71            IN NUMBER
43727 --Invoice Identifier
43728  , p_source_72            IN NUMBER
43729 --Business Flow Prepayment Invoice Distribution Type
43730  , p_source_73            IN VARCHAR2
43731 --Business Flow Prepayment Invoice Entity Code
43732  , p_source_74            IN VARCHAR2
43733 --Business Flow Prepayment Invoice Distribution Identifier
43734  , p_source_75            IN NUMBER
43735 --Business Flow Prepayment Invoice Identifier
43736  , p_source_76            IN NUMBER
43737 --Upgrade Encumbrance Credit Account Class
43738  , p_source_77            IN VARCHAR2
43739 --Payables Encumbrance Upgrade Credit Account
43740  , p_source_78            IN NUMBER
43741 --Payables Encumbrance Upgrade Credit Amount
43742  , p_source_79            IN NUMBER
43743 --Invoice Currency Code
43744  , p_source_80            IN VARCHAR2
43745 --Payables Encumbrance Upgrade Credit Base Amount
43746  , p_source_81            IN NUMBER
43747 --Upgrade Encumbrance Debit Account Class
43748  , p_source_82            IN VARCHAR2
43749 --Payables Encumbrance Upgrade Debit Account
43750  , p_source_83            IN NUMBER
43751 --Payables Encumbrance Upgrade Debit Amount
43752  , p_source_84            IN NUMBER
43753 --Payables Encumbrance Upgrade Debit Base Amount
43754  , p_source_85            IN NUMBER
43755 --Payables Encumbrance Upgrade Option
43759 --Deferred Accounting End Date
43756  , p_source_86            IN VARCHAR2
43757 --Prepayment Distribution Amount
43758  , p_source_87            IN NUMBER
43760  , p_source_90            IN DATE
43761 --Deferred Accounting Option
43762  , p_source_91            IN VARCHAR2
43763 --Deferred Accounting Start Date
43764  , p_source_92            IN DATE
43765 --Invoice Supplier Identifier
43766  , p_source_93            IN NUMBER
43767 --Invoice Supplier Site Identifier
43768  , p_source_94            IN NUMBER
43769 --Identifier of the Prepayment Application Reversed
43770  , p_source_95            IN NUMBER
43771 --Payables Upgrade Credit Encumbrance Type Identifier
43772  , p_source_96            IN NUMBER
43773 --Payables Upgrade Debit Encumbrance Type Identifier
43774  , p_source_97            IN NUMBER
43775 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
43776  , p_source_99            IN NUMBER
43777 --Invoice Exchange Date
43778  , p_source_124            IN DATE
43779 --Invoice Exchange Rate
43780  , p_source_125            IN NUMBER
43781 --Invoice Exchange Rate Type
43782  , p_source_126            IN VARCHAR2
43783 )
43784 IS
43785 
43786 l_component_type              VARCHAR2(80);
43787 l_component_code              VARCHAR2(30);
43788 l_component_type_code         VARCHAR2(1);
43789 l_component_appl_id           INTEGER;
43790 l_amb_context_code            VARCHAR2(30);
43791 l_entity_code                 VARCHAR2(30);
43792 l_event_class_code            VARCHAR2(30);
43793 l_ae_header_id                NUMBER;
43794 l_event_type_code             VARCHAR2(30);
43795 l_line_definition_code        VARCHAR2(30);
43796 l_line_definition_owner_code  VARCHAR2(1);
43797 --
43798 -- adr variables
43799 l_segment                     VARCHAR2(30);
43800 l_ccid                        NUMBER;
43801 l_adr_transaction_coa_id      NUMBER;
43802 l_adr_accounting_coa_id       NUMBER;
43803 l_adr_flexfield_segment_code  VARCHAR2(30);
43804 l_adr_flex_value_set_id       NUMBER;
43805 l_adr_value_type_code         VARCHAR2(30);
43806 l_adr_value_combination_id    NUMBER;
43807 l_adr_value_segment_code      VARCHAR2(30);
43808 
43809 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
43810 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
43811 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
43812 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
43813 
43814 -- 4262811 Variables ------------------------------------------------------------------------------------------
43815 l_entered_amt_idx             NUMBER;
43816 l_accted_amt_idx              NUMBER;
43817 l_acc_rev_flag                VARCHAR2(1);
43818 l_accrual_line_num            NUMBER;
43819 l_tmp_amt                     NUMBER;
43820 l_acc_rev_natural_side_code   VARCHAR2(1);
43821 
43822 l_num_entries                 NUMBER;
43823 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43824 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43825 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43826 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43827 l_recog_line_1                NUMBER;
43828 l_recog_line_2                NUMBER;
43829 
43830 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43831 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43832 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43833 
43834 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43835 
43836 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43837 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43838 
43839 ---------------------------------------------------------------------------------------------------------------
43840 
43841 
43842 --
43843 -- bulk performance
43844 --
43845 l_balance_type_code           VARCHAR2(1);
43846 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43847 l_log_module                  VARCHAR2(240);
43848 
43849 --
43850 -- Upgrade strategy
43851 --
43852 l_actual_upg_option           VARCHAR2(1);
43853 l_enc_upg_option           VARCHAR2(1);
43854 
43855 --
43856 BEGIN
43857 --
43858 IF g_log_enabled THEN
43859       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
43860 END IF;
43861 --
43862 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43863 
43864       trace
43865          (p_msg      => 'BEGIN of AcctLineType_90'
43866          ,p_level    => C_LEVEL_PROCEDURE
43867          ,p_module   => l_log_module);
43868 
43869 END IF;
43870 --
43871 l_component_type             := 'AMB_JLT';
43872 l_component_code             := 'AP_FINAL_APP_ROUND_PP_PAY_RATE';
43873 l_component_type_code        := 'S';
43874 l_component_appl_id          :=  200;
43875 l_amb_context_code           := 'DEFAULT';
43876 l_entity_code                := 'AP_INVOICES';
43877 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
43878 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
43879 l_line_definition_owner_code := 'S';
43880 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
43881 --
43882 l_balance_type_code          := 'A';
43883 l_segment                     := NULL;
43884 l_ccid                        := NULL;
43885 l_adr_transaction_coa_id      := NULL;
43889 l_adr_value_type_code         := NULL;
43886 l_adr_accounting_coa_id       := NULL;
43887 l_adr_flexfield_segment_code  := NULL;
43888 l_adr_flex_value_set_id       := NULL;
43890 l_adr_value_combination_id    := NULL;
43891 l_adr_value_segment_code      := NULL;
43892 
43893 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
43894 l_bflow_class_code           := '';    -- 4219869 Business Flow
43895 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43896 l_budgetary_control_flag     := 'N';
43897 
43898 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43899 l_bflow_applied_to_amt       := NULL; -- 5132302
43900 l_entered_amt_idx            := NULL;          -- 4262811
43901 l_accted_amt_idx             := NULL;          -- 4262811
43902 l_acc_rev_flag               := NULL;          -- 4262811
43903 l_accrual_line_num           := NULL;          -- 4262811
43904 l_tmp_amt                    := NULL;          -- 4262811
43905 --
43906  
43907 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43908     l_balance_type_code <> 'B' THEN
43909 IF NVL(p_source_38,'
43910 ') <>  'CLEAR_CLEAR' AND 
43911 NVL(p_source_67,'
43912 ') =  'FINAL APPLICATION ROUNDING'
43913  THEN 
43914 
43915    --
43916    XLA_AE_LINES_PKG.SetNewLine;
43917 
43918    p_balance_type_code          := l_balance_type_code;
43919    -- set the flag so later we will know whether the gain loss line needs to be created
43920    
43921    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43922      p_actual_flag :='A';
43923    END IF;
43924 
43925    --
43926    -- bulk performance
43927    --
43928    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43929                                       p_header_num   => 0); -- 4262811
43930    --
43931    -- set accounting line options
43932    --
43933    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43934            p_natural_side_code          => 'C'
43935          , p_gain_or_loss_flag          => 'N'
43936          , p_gl_transfer_mode_code      => 'S'
43937          , p_acct_entry_type_code       => 'A'
43938          , p_switch_side_flag           => 'Y'
43939          , p_merge_duplicate_code       => 'A'
43940          );
43941    --
43942    l_acc_rev_natural_side_code := 'D';  -- 4262811
43943    -- 
43944    --
43945    -- set accounting line type info
43946    --
43947    xla_ae_lines_pkg.SetAcctLineType
43948       (p_component_type             => l_component_type
43949       ,p_event_type_code            => l_event_type_code
43950       ,p_line_definition_owner_code => l_line_definition_owner_code
43951       ,p_line_definition_code       => l_line_definition_code
43952       ,p_accounting_line_code       => l_component_code
43953       ,p_accounting_line_type_code  => l_component_type_code
43954       ,p_accounting_line_appl_id    => l_component_appl_id
43955       ,p_amb_context_code           => l_amb_context_code
43956       ,p_entity_code                => l_entity_code
43957       ,p_event_class_code           => l_event_class_code);
43958    --
43959    -- set accounting class
43960    --
43961    xla_ae_lines_pkg.SetAcctClass(
43962            p_accounting_class_code  => 'ROUNDING'
43963          , p_ae_header_id           => l_ae_header_id
43964          );
43965 
43966    --
43967    -- set rounding class
43968    --
43969    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43970                       'ROUNDING';
43971 
43972    --
43973    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43974    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43975    --
43976    -- bulk performance
43977    --
43978    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43979 
43980    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43981       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43982 
43983    -- 4955764
43984    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43985       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43986 
43987    -- 4458381 Public Sector Enh
43988    
43989    --
43990    -- set accounting attributes for the line type
43991    --
43992    l_entered_amt_idx := 25;
43993    l_accted_amt_idx  := 30;
43994    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
43995    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43996    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
43997    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43998    l_rec_acct_attrs.array_num_value(2)  := 
43999 xla_ae_sources_pkg.GetSystemSourceNum(
44000    p_source_code           => 'XLA_EVENT_APPL_ID'
44001  , p_source_type_code      => 'Y'
44002  , p_source_application_id =>  602
44003 );
44004    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44005    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
44006    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44007    l_rec_acct_attrs.array_char_value(4)  := 
44008 xla_ae_sources_pkg.GetSystemSourceChar(
44009    p_source_code           => 'XLA_ENTITY_CODE'
44010  , p_source_type_code      => 'Y'
44011  , p_source_application_id =>  602
44015    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44012 );
44013    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44014    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
44016    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
44017    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44018    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
44019    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44020    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
44021    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44022    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
44023    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44024    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
44025    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44026    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
44027    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44028    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
44029    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44030    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
44031    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
44032    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
44033    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
44034    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
44035    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
44036    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
44037    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
44038    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
44039    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
44040    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
44041    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
44042    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
44043    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
44044    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
44045    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
44046    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
44047    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
44048    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
44049    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
44050    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
44051    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
44052    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
44053    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
44054    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
44055    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
44056    l_rec_acct_attrs.array_char_value(26)  := p_source_80;
44057    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
44058    l_rec_acct_attrs.array_date_value(27)  := p_source_124;
44059    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
44060    l_rec_acct_attrs.array_num_value(28)  := p_source_125;
44061    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
44062    l_rec_acct_attrs.array_char_value(29)  := p_source_126;
44063    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
44064    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
44065    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
44066    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
44067    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
44068    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
44069    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
44070    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
44071    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
44072    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
44073    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
44074    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
44075    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
44076    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
44077    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
44078    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
44079    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
44080    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
44081    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
44082    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
44083    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
44084    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
44085    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
44086    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
44087    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
44088    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
44089    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
44090    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
44091    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
44092    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
44093 
44094    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44098    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44095    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44096 
44097    ---------------------------------------------------------------------------------------------------------------
44099    ---------------------------------------------------------------------------------------------------------------
44100    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44101 
44102    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44103    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44104 
44105    IF xla_accounting_cache_pkg.GetValueChar
44106          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44107          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44108    AND l_bflow_method_code = 'PRIOR_ENTRY'
44109 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44110    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44111          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44112        )
44113    THEN
44114          xla_ae_lines_pkg.BflowUpgEntry
44115            (p_business_method_code    => l_bflow_method_code
44116            ,p_business_class_code     => l_bflow_class_code
44117            ,p_balance_type            => l_balance_type_code);
44118    ELSE
44119       NULL;
44120 -- No business flow processing for business flow method of NONE.
44121    END IF;
44122 
44123    --
44124    -- call analytical criteria
44125    --
44126    
44127    --
44128    -- call description
44129    --
44130    -- No description or it is inherited.
44131    --
44132    -- call ADRs
44133    -- Bug 4922099
44134    --
44135    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44136         (NVL(l_actual_upg_option, 'N') = 'O') OR
44137         (NVL(l_enc_upg_option, 'N') = 'O')
44138       )
44139    THEN
44140    NULL;
44141    --
44142    --
44143    
44144   l_ccid := AcctDerRule_35(
44145            p_application_id           => p_application_id
44146          , p_ae_header_id             => l_ae_header_id 
44147 , p_source_4 => p_source_4
44148 , p_source_4_meaning => p_source_4_meaning
44149 , p_source_17 => p_source_17
44150 , p_source_37 => p_source_37
44151          , x_transaction_coa_id       => l_adr_transaction_coa_id
44152          , x_accounting_coa_id        => l_adr_accounting_coa_id
44153          , x_value_type_code          => l_adr_value_type_code
44154          , p_side                     => 'NA'
44155    );
44156 
44157    xla_ae_lines_pkg.set_ccid(
44158     p_code_combination_id          => l_ccid
44159   , p_value_type_code              => l_adr_value_type_code
44160   , p_transaction_coa_id           => l_adr_transaction_coa_id
44161   , p_accounting_coa_id            => l_adr_accounting_coa_id
44162   , p_adr_code                     => 'AP_ROUNDING'
44163   , p_adr_type_code                => 'S'
44164   , p_component_type               => l_component_type
44165   , p_component_code               => l_component_code
44166   , p_component_type_code          => l_component_type_code
44167   , p_component_appl_id            => l_component_appl_id
44168   , p_amb_context_code             => l_amb_context_code
44169   , p_side                         => 'NA'
44170   );
44171 
44172 
44173    --
44174    --
44175    END IF;
44176    --
44177    -- Bug 4922099
44178    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44179           (NVL(l_enc_upg_option, 'N') = 'O')
44180         ) AND
44181         (l_bflow_method_code = 'PRIOR_ENTRY')
44182       )
44183    THEN
44184       IF
44185       --
44186       1 = 2
44187       --
44188       THEN
44189       xla_accounting_err_pkg.build_message
44190                                     (p_appli_s_name            => 'XLA'
44191                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44192                                     ,p_token_1                 => 'LINE_NUMBER'
44193                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44194                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44195                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44196                                                                              l_component_type
44197                                                                             ,l_component_code
44198                                                                             ,l_component_type_code
44199                                                                             ,l_component_appl_id
44200                                                                             ,l_amb_context_code
44201                                                                             ,l_entity_code
44202                                                                             ,l_event_class_code
44203                                                                            )
44204                                     ,p_token_3                 => 'OWNER'
44205                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44209                                     ,p_token_4                 => 'PRODUCT_NAME'
44206                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44207                                                                           ,p_lookup_code    => l_component_type_code
44208                                                                          )
44210                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44211                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44212                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44213                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44214                                     ,p_ae_header_id            =>  NULL
44215                                        );
44216 
44217         IF (C_LEVEL_ERROR>= g_log_level) THEN
44218                  trace
44219                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44220                       ,p_level    => C_LEVEL_ERROR
44221                       ,p_module   => l_log_module);
44222         END IF;
44223       END IF;
44224    END IF;
44225    --
44226    --
44227    ------------------------------------------------------------------------------------------------
44228    -- 4219869 Business Flow
44229    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44230    -- Prior Entry.  Currently, the following code is always generated.
44231    ------------------------------------------------------------------------------------------------
44232    XLA_AE_LINES_PKG.ValidateCurrentLine;
44233 
44234    ------------------------------------------------------------------------------------
44235    -- 4219869 Business Flow
44236    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44237    ------------------------------------------------------------------------------------
44238    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44239 
44240    ----------------------------------------------------------------------------------
44241    -- 4219869 Business Flow
44242    -- Update journal entry status -- Need to generate this within IF <condition>
44243    ----------------------------------------------------------------------------------
44244    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44245          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44246          ,p_balance_type_code => l_balance_type_code
44247          );
44248 
44249    -------------------------------------------------------------------------------------------
44250    -- 4262811 - Generate the Accrual Reversal lines
44251    -------------------------------------------------------------------------------------------
44252    BEGIN
44253       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44254                               (g_array_event(p_event_id).array_value_num('header_index'));
44255       IF l_acc_rev_flag IS NULL THEN
44256          l_acc_rev_flag := 'N';
44257       END IF;
44258    EXCEPTION
44259       WHEN OTHERS THEN
44260          l_acc_rev_flag := 'N';
44261    END;
44262    --
44263    IF (l_acc_rev_flag = 'Y') THEN
44264 
44265        -- 4645092  ------------------------------------------------------------------------------
44266        -- To allow MPA report to determine if it should generate report process
44267        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44268        ------------------------------------------------------------------------------------------
44269 
44270        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44271        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44272    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
44273    -- call ADRs
44274    -- Bug 4922099
44275    --
44276    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44277         (NVL(l_actual_upg_option, 'N') = 'O') OR
44278         (NVL(l_enc_upg_option, 'N') = 'O')
44279       )
44280    THEN
44281    NULL;
44282    --
44283    --
44284    
44285   l_ccid := AcctDerRule_35(
44286            p_application_id           => p_application_id
44287          , p_ae_header_id             => l_ae_header_id 
44288 , p_source_4 => p_source_4
44289 , p_source_4_meaning => p_source_4_meaning
44290 , p_source_17 => p_source_17
44291 , p_source_37 => p_source_37
44292          , x_transaction_coa_id       => l_adr_transaction_coa_id
44293          , x_accounting_coa_id        => l_adr_accounting_coa_id
44294          , x_value_type_code          => l_adr_value_type_code
44295          , p_side                     => 'NA'
44296    );
44297 
44298    xla_ae_lines_pkg.set_ccid(
44299     p_code_combination_id          => l_ccid
44300   , p_value_type_code              => l_adr_value_type_code
44301   , p_transaction_coa_id           => l_adr_transaction_coa_id
44302   , p_accounting_coa_id            => l_adr_accounting_coa_id
44303   , p_adr_code                     => 'AP_ROUNDING'
44304   , p_adr_type_code                => 'S'
44305   , p_component_type               => l_component_type
44306   , p_component_code               => l_component_code
44307   , p_component_type_code          => l_component_type_code
44308   , p_component_appl_id            => l_component_appl_id
44309   , p_amb_context_code             => l_amb_context_code
44310   , p_side                         => 'NA'
44311   );
44312 
44313 
44314    --
44318        --
44315    --
44316    END IF;
44317 
44319        -- Update the line information that should be overwritten
44320        --
44321        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44322                                          p_header_num   => 1);
44323        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
44324 
44325        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44326 
44327        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
44328           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44329        END IF;
44330 
44331       --
44332       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44333       --
44334       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44335           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
44336       ELSE
44337           ---------------------------------------------------------------------------------------------------
44338           -- 4262811a Switch Sign
44339           ---------------------------------------------------------------------------------------------------
44340           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
44341           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44342                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44343           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44344                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44345           -- 5132302
44346           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44347                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44348 
44349       END IF;
44350 
44351       -- 4955764
44352       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44353       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44354 
44355 
44356       XLA_AE_LINES_PKG.ValidateCurrentLine;
44357       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44358 
44359       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44360                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44361                ,p_balance_type_code => l_balance_type_code);
44362 
44363    END IF;
44364 
44365    -----------------------------------------------------------------------------------------
44366    -- 4262811 Multiperiod Accounting
44367    -----------------------------------------------------------------------------------------
44368      -- No MPA option is assigned.
44369 
44370 
44371 END IF;
44372 END IF;
44373 --
44374 
44375 --
44376 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44377    trace
44378       (p_msg      => 'END of AcctLineType_90'
44379       ,p_level    => C_LEVEL_PROCEDURE
44380       ,p_module   => l_log_module);
44381 END IF;
44382 --
44383 EXCEPTION
44384   WHEN xla_exceptions_pkg.application_exception THEN
44385       RAISE;
44386   WHEN OTHERS THEN
44387        xla_exceptions_pkg.raise_message
44388            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_90');
44389 END AcctLineType_90;
44390 --
44391 
44392 ---------------------------------------
44393 --
44394 -- PRIVATE FUNCTION
44395 --         AcctLineType_91
44396 --
44397 ---------------------------------------
44398 PROCEDURE AcctLineType_91 (
44399   p_application_id        IN NUMBER
44400  ,p_event_id              IN NUMBER
44401  ,p_calculate_acctd_flag  IN VARCHAR2
44402  ,p_calculate_g_l_flag    IN VARCHAR2
44403  ,p_actual_flag           IN OUT VARCHAR2
44404  ,p_balance_type_code     OUT VARCHAR2
44405  ,p_gain_or_loss_ref      OUT VARCHAR2
44406  
44407 --Payment Distribution (Cleared Rate) Ledger Amount
44408  , p_source_10            IN NUMBER
44409 --Invoice Distribution Account
44410  , p_source_17            IN NUMBER
44411 --Invoice Distribution Type
44412  , p_source_20            IN VARCHAR2
44413  , p_source_20_meaning    IN VARCHAR2
44414 --When to Account for Payment Option
44415  , p_source_38            IN VARCHAR2
44416 --Payment Distribution Type
44417  , p_source_39            IN VARCHAR2
44418  , p_source_39_meaning    IN VARCHAR2
44419 --Accounting Reversal Indicator
44420  , p_source_40            IN VARCHAR2
44421 --Payment Distribution Amount
44422  , p_source_41            IN NUMBER
44423 --Business Flow Accounts Payable Application Identifier
44424  , p_source_42            IN NUMBER
44425 --Business Flow Payment Distribution Type
44426  , p_source_43            IN VARCHAR2
44427 --Business Flow Payment Entity Code
44428  , p_source_44            IN VARCHAR2
44429 --Business Flow Payment Distribution Identifier
44430  , p_source_45            IN NUMBER
44431 --Business Flow Payment Identifier
44432  , p_source_46            IN NUMBER
44433 --Payment Distribution Identifier
44434  , p_source_47            IN NUMBER
44435 --Distribution Link Type
44436  , p_source_48            IN VARCHAR2
44437 --Payment Currency Code
44438  , p_source_49            IN VARCHAR2
44442 --Payment Supplier Identifier
44439 --Override Accounted Amount Indicator
44440  , p_source_53            IN VARCHAR2
44441  , p_source_53_meaning    IN VARCHAR2
44443  , p_source_54            IN NUMBER
44444 --Payment Supplier Site Identifier
44445  , p_source_55            IN NUMBER
44446 --Third Party Type
44447  , p_source_56            IN VARCHAR2
44448 --Payment Distribution Reversed Identifier
44449  , p_source_57            IN NUMBER
44450 --Invoice Distribution Tax Line Identifier
44451  , p_source_58            IN NUMBER
44452 --Invoice Distribution Summary Tax Line Identifier
44453  , p_source_59            IN NUMBER
44454 --Cleared Exchange Date
44455  , p_source_107            IN DATE
44456 --Cleared Exchange Rate
44457  , p_source_108            IN NUMBER
44458 --Cleared Exchange Rate Type
44459  , p_source_109            IN VARCHAR2
44460 )
44461 IS
44462 
44463 l_component_type              VARCHAR2(80);
44464 l_component_code              VARCHAR2(30);
44465 l_component_type_code         VARCHAR2(1);
44466 l_component_appl_id           INTEGER;
44467 l_amb_context_code            VARCHAR2(30);
44468 l_entity_code                 VARCHAR2(30);
44469 l_event_class_code            VARCHAR2(30);
44470 l_ae_header_id                NUMBER;
44471 l_event_type_code             VARCHAR2(30);
44472 l_line_definition_code        VARCHAR2(30);
44473 l_line_definition_owner_code  VARCHAR2(1);
44474 --
44475 -- adr variables
44476 l_segment                     VARCHAR2(30);
44477 l_ccid                        NUMBER;
44478 l_adr_transaction_coa_id      NUMBER;
44479 l_adr_accounting_coa_id       NUMBER;
44480 l_adr_flexfield_segment_code  VARCHAR2(30);
44481 l_adr_flex_value_set_id       NUMBER;
44482 l_adr_value_type_code         VARCHAR2(30);
44483 l_adr_value_combination_id    NUMBER;
44484 l_adr_value_segment_code      VARCHAR2(30);
44485 
44486 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44487 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44488 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44489 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44490 
44491 -- 4262811 Variables ------------------------------------------------------------------------------------------
44492 l_entered_amt_idx             NUMBER;
44493 l_accted_amt_idx              NUMBER;
44494 l_acc_rev_flag                VARCHAR2(1);
44495 l_accrual_line_num            NUMBER;
44496 l_tmp_amt                     NUMBER;
44497 l_acc_rev_natural_side_code   VARCHAR2(1);
44498 
44499 l_num_entries                 NUMBER;
44500 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44501 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44502 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44503 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44504 l_recog_line_1                NUMBER;
44505 l_recog_line_2                NUMBER;
44506 
44507 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44508 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44509 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44510 
44511 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44512 
44513 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44514 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44515 
44516 ---------------------------------------------------------------------------------------------------------------
44517 
44518 
44519 --
44520 -- bulk performance
44521 --
44522 l_balance_type_code           VARCHAR2(1);
44523 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44524 l_log_module                  VARCHAR2(240);
44525 
44526 --
44527 -- Upgrade strategy
44528 --
44529 l_actual_upg_option           VARCHAR2(1);
44530 l_enc_upg_option           VARCHAR2(1);
44531 
44532 --
44533 BEGIN
44534 --
44535 IF g_log_enabled THEN
44536       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
44537 END IF;
44538 --
44539 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44540 
44541       trace
44542          (p_msg      => 'BEGIN of AcctLineType_91'
44543          ,p_level    => C_LEVEL_PROCEDURE
44544          ,p_module   => l_log_module);
44545 
44546 END IF;
44547 --
44548 l_component_type             := 'AMB_JLT';
44549 l_component_code             := 'AP_FREIGHT_EXPENSE_CLEAR';
44550 l_component_type_code        := 'S';
44551 l_component_appl_id          :=  200;
44552 l_amb_context_code           := 'DEFAULT';
44553 l_entity_code                := 'AP_PAYMENTS';
44554 l_event_class_code           := 'RECONCILED PAYMENTS';
44555 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
44556 l_line_definition_owner_code := 'S';
44557 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
44558 --
44559 l_balance_type_code          := 'A';
44560 l_segment                     := NULL;
44561 l_ccid                        := NULL;
44562 l_adr_transaction_coa_id      := NULL;
44563 l_adr_accounting_coa_id       := NULL;
44564 l_adr_flexfield_segment_code  := NULL;
44565 l_adr_flex_value_set_id       := NULL;
44566 l_adr_value_type_code         := NULL;
44567 l_adr_value_combination_id    := NULL;
44571 l_bflow_class_code           := '';    -- 4219869 Business Flow
44568 l_adr_value_segment_code      := NULL;
44569 
44570 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
44572 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44573 l_budgetary_control_flag     := 'N';
44574 
44575 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44576 l_bflow_applied_to_amt       := NULL; -- 5132302
44577 l_entered_amt_idx            := NULL;          -- 4262811
44578 l_accted_amt_idx             := NULL;          -- 4262811
44579 l_acc_rev_flag               := NULL;          -- 4262811
44580 l_accrual_line_num           := NULL;          -- 4262811
44581 l_tmp_amt                    := NULL;          -- 4262811
44582 --
44583  
44584 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44585     l_balance_type_code <> 'B' THEN
44586 IF NVL(p_source_38,'
44587 ') =  'CLEAR_CLEAR' AND 
44588 NVL(p_source_20,'
44589 ') =  'FREIGHT' AND 
44590 (NVL(p_source_39,'
44591 ') =  'CASH' OR 
44592 NVL(p_source_39,'
44593 ') =  'AWT' OR 
44594 NVL(p_source_39,'
44595 ') =  'DISCOUNT')
44596  THEN 
44597 
44598    --
44599    XLA_AE_LINES_PKG.SetNewLine;
44600 
44601    p_balance_type_code          := l_balance_type_code;
44602    -- set the flag so later we will know whether the gain loss line needs to be created
44603    
44604    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44605      p_actual_flag :='A';
44606    END IF;
44607 
44608    --
44609    -- bulk performance
44610    --
44611    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44612                                       p_header_num   => 0); -- 4262811
44613    --
44614    -- set accounting line options
44615    --
44616    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44617            p_natural_side_code          => 'D'
44618          , p_gain_or_loss_flag          => 'N'
44619          , p_gl_transfer_mode_code      => 'S'
44620          , p_acct_entry_type_code       => 'A'
44621          , p_switch_side_flag           => 'Y'
44622          , p_merge_duplicate_code       => 'A'
44623          );
44624    --
44625    l_acc_rev_natural_side_code := 'C';  -- 4262811
44626    -- 
44627    --
44628    -- set accounting line type info
44629    --
44630    xla_ae_lines_pkg.SetAcctLineType
44631       (p_component_type             => l_component_type
44632       ,p_event_type_code            => l_event_type_code
44633       ,p_line_definition_owner_code => l_line_definition_owner_code
44634       ,p_line_definition_code       => l_line_definition_code
44635       ,p_accounting_line_code       => l_component_code
44636       ,p_accounting_line_type_code  => l_component_type_code
44637       ,p_accounting_line_appl_id    => l_component_appl_id
44638       ,p_amb_context_code           => l_amb_context_code
44639       ,p_entity_code                => l_entity_code
44640       ,p_event_class_code           => l_event_class_code);
44641    --
44642    -- set accounting class
44643    --
44644    xla_ae_lines_pkg.SetAcctClass(
44645            p_accounting_class_code  => 'FREIGHT'
44646          , p_ae_header_id           => l_ae_header_id
44647          );
44648 
44649    --
44650    -- set rounding class
44651    --
44652    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44653                       'FREIGHT';
44654 
44655    --
44656    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44657    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44658    --
44659    -- bulk performance
44660    --
44661    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44662 
44663    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44664       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44665 
44666    -- 4955764
44667    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44668       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44669 
44670    -- 4458381 Public Sector Enh
44671    
44672    --
44673    -- set accounting attributes for the line type
44674    --
44675    l_entered_amt_idx := 10;
44676    l_accted_amt_idx  := 15;
44677    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
44678    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44679    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
44680    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
44681    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
44682    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
44683    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
44684    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44685    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
44686    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
44687    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
44688    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
44689    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
44690    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44694    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
44691    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
44692    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
44693    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
44695    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
44696    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
44697    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
44698    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
44699    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
44700    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
44701    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
44702    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
44703    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
44704    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
44705    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
44706    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
44707    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
44708    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
44709    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
44710    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
44711    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
44712    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
44713    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
44714    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
44715    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
44716    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
44717    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
44718    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
44719    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
44720    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
44721    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
44722    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
44723    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
44724    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
44725    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
44726 
44727    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44728    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44729 
44730    ---------------------------------------------------------------------------------------------------------------
44731    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44732    ---------------------------------------------------------------------------------------------------------------
44733    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44734 
44735    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44736    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44737 
44738    IF xla_accounting_cache_pkg.GetValueChar
44739          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44740          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44741    AND l_bflow_method_code = 'PRIOR_ENTRY'
44742 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44743    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44744          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44745        )
44746    THEN
44747          xla_ae_lines_pkg.BflowUpgEntry
44748            (p_business_method_code    => l_bflow_method_code
44749            ,p_business_class_code     => l_bflow_class_code
44750            ,p_balance_type            => l_balance_type_code);
44751    ELSE
44752       NULL;
44753 -- No business flow processing for business flow method of NONE.
44754    END IF;
44755 
44756    --
44757    -- call analytical criteria
44758    --
44759    
44760    --
44761    -- call description
44762    --
44763    -- No description or it is inherited.
44764    --
44765    -- call ADRs
44766    -- Bug 4922099
44767    --
44768    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44769         (NVL(l_actual_upg_option, 'N') = 'O') OR
44770         (NVL(l_enc_upg_option, 'N') = 'O')
44771       )
44772    THEN
44773    NULL;
44774    --
44775    --
44776    
44777   l_ccid := AcctDerRule_26(
44778            p_application_id           => p_application_id
44779          , p_ae_header_id             => l_ae_header_id 
44780 , p_source_17 => p_source_17
44781          , x_transaction_coa_id       => l_adr_transaction_coa_id
44782          , x_accounting_coa_id        => l_adr_accounting_coa_id
44783          , x_value_type_code          => l_adr_value_type_code
44784          , p_side                     => 'NA'
44785    );
44786 
44787    xla_ae_lines_pkg.set_ccid(
44788     p_code_combination_id          => l_ccid
44789   , p_value_type_code              => l_adr_value_type_code
44790   , p_transaction_coa_id           => l_adr_transaction_coa_id
44791   , p_accounting_coa_id            => l_adr_accounting_coa_id
44792   , p_adr_code                     => 'AP_INVOICE_DIST'
44793   , p_adr_type_code                => 'S'
44794   , p_component_type               => l_component_type
44798   , p_amb_context_code             => l_amb_context_code
44795   , p_component_code               => l_component_code
44796   , p_component_type_code          => l_component_type_code
44797   , p_component_appl_id            => l_component_appl_id
44799   , p_side                         => 'NA'
44800   );
44801 
44802 
44803    --
44804    --
44805    END IF;
44806    --
44807    -- Bug 4922099
44808    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44809           (NVL(l_enc_upg_option, 'N') = 'O')
44810         ) AND
44811         (l_bflow_method_code = 'PRIOR_ENTRY')
44812       )
44813    THEN
44814       IF
44815       --
44816       1 = 2
44817       --
44818       THEN
44819       xla_accounting_err_pkg.build_message
44820                                     (p_appli_s_name            => 'XLA'
44821                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44822                                     ,p_token_1                 => 'LINE_NUMBER'
44823                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44824                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44825                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44826                                                                              l_component_type
44827                                                                             ,l_component_code
44828                                                                             ,l_component_type_code
44829                                                                             ,l_component_appl_id
44830                                                                             ,l_amb_context_code
44831                                                                             ,l_entity_code
44832                                                                             ,l_event_class_code
44833                                                                            )
44834                                     ,p_token_3                 => 'OWNER'
44835                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44836                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44837                                                                           ,p_lookup_code    => l_component_type_code
44838                                                                          )
44839                                     ,p_token_4                 => 'PRODUCT_NAME'
44840                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44841                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44842                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44843                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44844                                     ,p_ae_header_id            =>  NULL
44845                                        );
44846 
44847         IF (C_LEVEL_ERROR>= g_log_level) THEN
44848                  trace
44849                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44850                       ,p_level    => C_LEVEL_ERROR
44851                       ,p_module   => l_log_module);
44852         END IF;
44853       END IF;
44854    END IF;
44855    --
44856    --
44857    ------------------------------------------------------------------------------------------------
44858    -- 4219869 Business Flow
44859    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44860    -- Prior Entry.  Currently, the following code is always generated.
44861    ------------------------------------------------------------------------------------------------
44862    XLA_AE_LINES_PKG.ValidateCurrentLine;
44863 
44864    ------------------------------------------------------------------------------------
44865    -- 4219869 Business Flow
44866    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44867    ------------------------------------------------------------------------------------
44868    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44869 
44870    ----------------------------------------------------------------------------------
44871    -- 4219869 Business Flow
44872    -- Update journal entry status -- Need to generate this within IF <condition>
44873    ----------------------------------------------------------------------------------
44874    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44875          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44876          ,p_balance_type_code => l_balance_type_code
44877          );
44878 
44879    -------------------------------------------------------------------------------------------
44880    -- 4262811 - Generate the Accrual Reversal lines
44881    -------------------------------------------------------------------------------------------
44882    BEGIN
44883       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44884                               (g_array_event(p_event_id).array_value_num('header_index'));
44885       IF l_acc_rev_flag IS NULL THEN
44886          l_acc_rev_flag := 'N';
44887       END IF;
44888    EXCEPTION
44889       WHEN OTHERS THEN
44890          l_acc_rev_flag := 'N';
44891    END;
44892    --
44893    IF (l_acc_rev_flag = 'Y') THEN
44894 
44898        ------------------------------------------------------------------------------------------
44895        -- 4645092  ------------------------------------------------------------------------------
44896        -- To allow MPA report to determine if it should generate report process
44897        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44899 
44900        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44901        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44902    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
44903    -- call ADRs
44904    -- Bug 4922099
44905    --
44906    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44907         (NVL(l_actual_upg_option, 'N') = 'O') OR
44908         (NVL(l_enc_upg_option, 'N') = 'O')
44909       )
44910    THEN
44911    NULL;
44912    --
44913    --
44914    
44915   l_ccid := AcctDerRule_26(
44916            p_application_id           => p_application_id
44917          , p_ae_header_id             => l_ae_header_id 
44918 , p_source_17 => p_source_17
44919          , x_transaction_coa_id       => l_adr_transaction_coa_id
44920          , x_accounting_coa_id        => l_adr_accounting_coa_id
44921          , x_value_type_code          => l_adr_value_type_code
44922          , p_side                     => 'NA'
44923    );
44924 
44925    xla_ae_lines_pkg.set_ccid(
44926     p_code_combination_id          => l_ccid
44927   , p_value_type_code              => l_adr_value_type_code
44928   , p_transaction_coa_id           => l_adr_transaction_coa_id
44929   , p_accounting_coa_id            => l_adr_accounting_coa_id
44930   , p_adr_code                     => 'AP_INVOICE_DIST'
44931   , p_adr_type_code                => 'S'
44932   , p_component_type               => l_component_type
44933   , p_component_code               => l_component_code
44934   , p_component_type_code          => l_component_type_code
44935   , p_component_appl_id            => l_component_appl_id
44936   , p_amb_context_code             => l_amb_context_code
44937   , p_side                         => 'NA'
44938   );
44939 
44940 
44941    --
44942    --
44943    END IF;
44944 
44945        --
44946        -- Update the line information that should be overwritten
44947        --
44948        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44949                                          p_header_num   => 1);
44950        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
44951 
44952        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44953 
44954        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
44955           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44956        END IF;
44957 
44958       --
44959       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44960       --
44961       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44962           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
44963       ELSE
44964           ---------------------------------------------------------------------------------------------------
44965           -- 4262811a Switch Sign
44966           ---------------------------------------------------------------------------------------------------
44967           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
44968           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44969                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44970           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44971                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44972           -- 5132302
44973           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44974                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44975 
44976       END IF;
44977 
44978       -- 4955764
44979       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44980       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44981 
44982 
44983       XLA_AE_LINES_PKG.ValidateCurrentLine;
44984       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44985 
44986       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44987                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44988                ,p_balance_type_code => l_balance_type_code);
44989 
44990    END IF;
44991 
44992    -----------------------------------------------------------------------------------------
44993    -- 4262811 Multiperiod Accounting
44994    -----------------------------------------------------------------------------------------
44995      -- No MPA option is assigned.
44996 
44997 
44998 END IF;
44999 END IF;
45000 --
45001 
45002 --
45003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45004    trace
45005       (p_msg      => 'END of AcctLineType_91'
45006       ,p_level    => C_LEVEL_PROCEDURE
45007       ,p_module   => l_log_module);
45008 END IF;
45009 --
45010 EXCEPTION
45011   WHEN xla_exceptions_pkg.application_exception THEN
45015            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_91');
45012       RAISE;
45013   WHEN OTHERS THEN
45014        xla_exceptions_pkg.raise_message
45016 END AcctLineType_91;
45017 --
45018 
45019 ---------------------------------------
45020 --
45021 -- PRIVATE FUNCTION
45022 --         AcctLineType_92
45023 --
45024 ---------------------------------------
45025 PROCEDURE AcctLineType_92 (
45026   p_application_id        IN NUMBER
45027  ,p_event_id              IN NUMBER
45028  ,p_calculate_acctd_flag  IN VARCHAR2
45029  ,p_calculate_g_l_flag    IN VARCHAR2
45030  ,p_actual_flag           IN OUT VARCHAR2
45031  ,p_balance_type_code     OUT VARCHAR2
45032  ,p_gain_or_loss_ref      OUT VARCHAR2
45033  
45034 --Payment Distribution (Payment Rate) Ledger Amount
45035  , p_source_9            IN NUMBER
45036 --Invoice Distribution Type
45037  , p_source_20            IN VARCHAR2
45038  , p_source_20_meaning    IN VARCHAR2
45039 --When to Account for Payment Option
45040  , p_source_38            IN VARCHAR2
45041 --Payment Distribution Type
45042  , p_source_39            IN VARCHAR2
45043  , p_source_39_meaning    IN VARCHAR2
45044 --Accounting Reversal Indicator
45045  , p_source_40            IN VARCHAR2
45046 --Payment Distribution Amount
45047  , p_source_41            IN NUMBER
45048 --Business Flow Accounts Payable Application Identifier
45049  , p_source_42            IN NUMBER
45050 --Payment Distribution Identifier
45051  , p_source_47            IN NUMBER
45052 --Distribution Link Type
45053  , p_source_48            IN VARCHAR2
45054 --Payment Currency Code
45055  , p_source_49            IN VARCHAR2
45056 --Override Accounted Amount Indicator
45057  , p_source_53            IN VARCHAR2
45058  , p_source_53_meaning    IN VARCHAR2
45059 --Third Party Type
45060  , p_source_56            IN VARCHAR2
45061 --Payment Distribution Reversed Identifier
45062  , p_source_57            IN NUMBER
45063 --Invoice Distribution Tax Line Identifier
45064  , p_source_58            IN NUMBER
45065 --Invoice Distribution Summary Tax Line Identifier
45066  , p_source_59            IN NUMBER
45067 --Business Flow Invoice Distribution Type
45068  , p_source_62            IN VARCHAR2
45069 --Business Flow Invoice Entity Code
45070  , p_source_63            IN VARCHAR2
45071 --Business Flow Invoice Distribution Identifier
45072  , p_source_64            IN NUMBER
45073 --Business Flow Invoice Identifier
45074  , p_source_65            IN NUMBER
45075 --Purchasing Encumbrance Option
45076  , p_source_102            IN VARCHAR2
45077  , p_source_102_meaning    IN VARCHAR2
45078 --Invoice Encumbered Option
45079  , p_source_104            IN VARCHAR2
45080  , p_source_104_meaning    IN VARCHAR2
45081 )
45082 IS
45083 
45084 l_component_type              VARCHAR2(80);
45085 l_component_code              VARCHAR2(30);
45086 l_component_type_code         VARCHAR2(1);
45087 l_component_appl_id           INTEGER;
45088 l_amb_context_code            VARCHAR2(30);
45089 l_entity_code                 VARCHAR2(30);
45090 l_event_class_code            VARCHAR2(30);
45091 l_ae_header_id                NUMBER;
45092 l_event_type_code             VARCHAR2(30);
45093 l_line_definition_code        VARCHAR2(30);
45094 l_line_definition_owner_code  VARCHAR2(1);
45095 --
45096 -- adr variables
45097 l_segment                     VARCHAR2(30);
45098 l_ccid                        NUMBER;
45099 l_adr_transaction_coa_id      NUMBER;
45100 l_adr_accounting_coa_id       NUMBER;
45101 l_adr_flexfield_segment_code  VARCHAR2(30);
45102 l_adr_flex_value_set_id       NUMBER;
45103 l_adr_value_type_code         VARCHAR2(30);
45104 l_adr_value_combination_id    NUMBER;
45105 l_adr_value_segment_code      VARCHAR2(30);
45106 
45107 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45108 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45109 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45110 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45111 
45112 -- 4262811 Variables ------------------------------------------------------------------------------------------
45113 l_entered_amt_idx             NUMBER;
45114 l_accted_amt_idx              NUMBER;
45115 l_acc_rev_flag                VARCHAR2(1);
45116 l_accrual_line_num            NUMBER;
45117 l_tmp_amt                     NUMBER;
45118 l_acc_rev_natural_side_code   VARCHAR2(1);
45119 
45120 l_num_entries                 NUMBER;
45121 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45122 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45123 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45124 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45125 l_recog_line_1                NUMBER;
45126 l_recog_line_2                NUMBER;
45127 
45128 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45129 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45130 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45131 
45132 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45133 
45134 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45135 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45136 
45140 --
45137 ---------------------------------------------------------------------------------------------------------------
45138 
45139 
45141 -- bulk performance
45142 --
45143 l_balance_type_code           VARCHAR2(1);
45144 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45145 l_log_module                  VARCHAR2(240);
45146 
45147 --
45148 -- Upgrade strategy
45149 --
45150 l_actual_upg_option           VARCHAR2(1);
45151 l_enc_upg_option           VARCHAR2(1);
45152 
45153 --
45154 BEGIN
45155 --
45156 IF g_log_enabled THEN
45157       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
45158 END IF;
45159 --
45160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45161 
45162       trace
45163          (p_msg      => 'BEGIN of AcctLineType_92'
45164          ,p_level    => C_LEVEL_PROCEDURE
45165          ,p_module   => l_log_module);
45166 
45167 END IF;
45168 --
45169 l_component_type             := 'AMB_JLT';
45170 l_component_code             := 'AP_FREIGHT_EXPENSE_CLR_ENC';
45171 l_component_type_code        := 'S';
45172 l_component_appl_id          :=  200;
45173 l_amb_context_code           := 'DEFAULT';
45174 l_entity_code                := 'AP_PAYMENTS';
45175 l_event_class_code           := 'RECONCILED PAYMENTS';
45176 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
45177 l_line_definition_owner_code := 'S';
45178 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
45179 --
45180 l_balance_type_code          := 'E';
45181 l_segment                     := NULL;
45182 l_ccid                        := NULL;
45183 l_adr_transaction_coa_id      := NULL;
45184 l_adr_accounting_coa_id       := NULL;
45185 l_adr_flexfield_segment_code  := NULL;
45186 l_adr_flex_value_set_id       := NULL;
45187 l_adr_value_type_code         := NULL;
45188 l_adr_value_combination_id    := NULL;
45189 l_adr_value_segment_code      := NULL;
45190 
45191 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
45192 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
45193 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45194 l_budgetary_control_flag     := 'N';
45195 
45196 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45197 l_bflow_applied_to_amt       := NULL; -- 5132302
45198 l_entered_amt_idx            := NULL;          -- 4262811
45199 l_accted_amt_idx             := NULL;          -- 4262811
45200 l_acc_rev_flag               := NULL;          -- 4262811
45201 l_accrual_line_num           := NULL;          -- 4262811
45202 l_tmp_amt                    := NULL;          -- 4262811
45203 --
45204  
45205 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45206     l_balance_type_code <> 'B' THEN
45207 IF NVL(p_source_38,'
45208 ') =  'CLEAR_CLEAR' AND 
45209 NVL(p_source_20,'
45210 ') =  'FREIGHT' AND 
45211 (NVL(p_source_39,'
45212 ') =  'CASH' OR 
45213 NVL(p_source_39,'
45214 ') =  'DISCOUNT') AND 
45215 NVL(p_source_102,'
45216 ') =  'Y' AND 
45217 NVL(p_source_104,'
45218 ') =  'Y'
45219  THEN 
45220 
45221    --
45222    XLA_AE_LINES_PKG.SetNewLine;
45223 
45224    p_balance_type_code          := l_balance_type_code;
45225    -- set the flag so later we will know whether the gain loss line needs to be created
45226    
45227    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45228      p_actual_flag :='A';
45229    END IF;
45230 
45231    --
45232    -- bulk performance
45233    --
45234    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45235                                       p_header_num   => 0); -- 4262811
45236    --
45237    -- set accounting line options
45238    --
45239    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45240            p_natural_side_code          => 'C'
45241          , p_gain_or_loss_flag          => 'N'
45242          , p_gl_transfer_mode_code      => 'S'
45243          , p_acct_entry_type_code       => 'E'
45244          , p_switch_side_flag           => 'Y'
45245          , p_merge_duplicate_code       => 'A'
45246          );
45247    --
45248    l_acc_rev_natural_side_code := 'D';  -- 4262811
45249    -- 
45250    --
45251    -- set accounting line type info
45252    --
45253    xla_ae_lines_pkg.SetAcctLineType
45254       (p_component_type             => l_component_type
45255       ,p_event_type_code            => l_event_type_code
45256       ,p_line_definition_owner_code => l_line_definition_owner_code
45257       ,p_line_definition_code       => l_line_definition_code
45258       ,p_accounting_line_code       => l_component_code
45259       ,p_accounting_line_type_code  => l_component_type_code
45260       ,p_accounting_line_appl_id    => l_component_appl_id
45261       ,p_amb_context_code           => l_amb_context_code
45262       ,p_entity_code                => l_entity_code
45263       ,p_event_class_code           => l_event_class_code);
45264    --
45265    -- set accounting class
45266    --
45267    xla_ae_lines_pkg.SetAcctClass(
45268            p_accounting_class_code  => 'FREIGHT'
45269          , p_ae_header_id           => l_ae_header_id
45270          );
45271 
45272    --
45273    -- set rounding class
45274    --
45275    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45279    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45276                       'FREIGHT';
45277 
45278    --
45280    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45281    --
45282    -- bulk performance
45283    --
45284    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45285 
45286    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45287       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45288 
45289    -- 4955764
45290    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45291       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45292 
45293    -- 4458381 Public Sector Enh
45294    
45295    --
45296    -- set accounting attributes for the line type
45297    --
45298    l_entered_amt_idx := 10;
45299    l_accted_amt_idx  := 12;
45300    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
45301    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45302    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
45303    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
45304    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
45305    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
45306    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
45307    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45308    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
45309    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
45310    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
45311    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
45312    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
45313    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45314    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
45315    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
45316    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
45317    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
45318    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
45319    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
45320    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
45321    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
45322    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
45323    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
45324    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
45325    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
45326    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
45327    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
45328    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
45329    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
45330    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
45331    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
45332    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
45333    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
45334    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
45335    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
45336    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
45337    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
45338    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
45339 
45340    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45341    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45342 
45343    ---------------------------------------------------------------------------------------------------------------
45344    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45345    ---------------------------------------------------------------------------------------------------------------
45346    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45347 
45348    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45349    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45350 
45351    IF xla_accounting_cache_pkg.GetValueChar
45352          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45353          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45354    AND l_bflow_method_code = 'PRIOR_ENTRY'
45355 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45356    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45357          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45358        )
45359    THEN
45360          xla_ae_lines_pkg.BflowUpgEntry
45361            (p_business_method_code    => l_bflow_method_code
45362            ,p_business_class_code     => l_bflow_class_code
45363            ,p_balance_type            => l_balance_type_code);
45364    ELSE
45365       NULL;
45366 XLA_AE_LINES_PKG.business_flow_validation(
45367                                 p_business_method_code     => l_bflow_method_code
45368                                ,p_business_class_code      => l_bflow_class_code
45372    --
45369                                ,p_inherit_description_flag => l_inherit_desc_flag);
45370    END IF;
45371 
45373    -- call analytical criteria
45374    --
45375    -- Inherited Analytical Criteria for business flow method of Prior Entry.
45376    --
45377    -- call description
45378    --
45379    -- No description or it is inherited.
45380    --
45381    -- call ADRs
45382    -- Bug 4922099
45383    --
45384    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45385         (NVL(l_actual_upg_option, 'N') = 'O') OR
45386         (NVL(l_enc_upg_option, 'N') = 'O')
45387       )
45388    THEN
45389    NULL;
45390    --
45391    --
45392    
45393    --
45394    --
45395    END IF;
45396    --
45397    -- Bug 4922099
45398    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45399           (NVL(l_enc_upg_option, 'N') = 'O')
45400         ) AND
45401         (l_bflow_method_code = 'PRIOR_ENTRY')
45402       )
45403    THEN
45404       IF
45405       --
45406       1 = 1
45407       --
45408       THEN
45409       xla_accounting_err_pkg.build_message
45410                                     (p_appli_s_name            => 'XLA'
45411                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45412                                     ,p_token_1                 => 'LINE_NUMBER'
45413                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
45414                                     ,p_token_2                 => 'LINE_TYPE_NAME'
45415                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
45416                                                                              l_component_type
45417                                                                             ,l_component_code
45418                                                                             ,l_component_type_code
45419                                                                             ,l_component_appl_id
45420                                                                             ,l_amb_context_code
45421                                                                             ,l_entity_code
45422                                                                             ,l_event_class_code
45423                                                                            )
45424                                     ,p_token_3                 => 'OWNER'
45425                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
45426                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
45427                                                                           ,p_lookup_code    => l_component_type_code
45428                                                                          )
45429                                     ,p_token_4                 => 'PRODUCT_NAME'
45430                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45431                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45432                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45433                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45434                                     ,p_ae_header_id            =>  NULL
45435                                        );
45436 
45437         IF (C_LEVEL_ERROR>= g_log_level) THEN
45438                  trace
45439                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45440                       ,p_level    => C_LEVEL_ERROR
45441                       ,p_module   => l_log_module);
45442         END IF;
45443       END IF;
45444    END IF;
45445    --
45446    --
45447    ------------------------------------------------------------------------------------------------
45448    -- 4219869 Business Flow
45449    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45450    -- Prior Entry.  Currently, the following code is always generated.
45451    ------------------------------------------------------------------------------------------------
45452    -- No ValidateCurrentLine for business flow method of Prior Entry
45453 
45454    ------------------------------------------------------------------------------------
45455    -- 4219869 Business Flow
45456    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45457    ------------------------------------------------------------------------------------
45458    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45459 
45460    ----------------------------------------------------------------------------------
45461    -- 4219869 Business Flow
45462    -- Update journal entry status -- Need to generate this within IF <condition>
45463    ----------------------------------------------------------------------------------
45464    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45465          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45466          ,p_balance_type_code => l_balance_type_code
45467          );
45468 
45469    -------------------------------------------------------------------------------------------
45470    -- 4262811 - Generate the Accrual Reversal lines
45471    -------------------------------------------------------------------------------------------
45472    BEGIN
45473       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45477       END IF;
45474                               (g_array_event(p_event_id).array_value_num('header_index'));
45475       IF l_acc_rev_flag IS NULL THEN
45476          l_acc_rev_flag := 'N';
45478    EXCEPTION
45479       WHEN OTHERS THEN
45480          l_acc_rev_flag := 'N';
45481    END;
45482    --
45483    IF (l_acc_rev_flag = 'Y') THEN
45484 
45485        -- 4645092  ------------------------------------------------------------------------------
45486        -- To allow MPA report to determine if it should generate report process
45487        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45488        ------------------------------------------------------------------------------------------
45489 
45490        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45491        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45492    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45493    -- call ADRs
45494    -- Bug 4922099
45495    --
45496    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45497         (NVL(l_actual_upg_option, 'N') = 'O') OR
45498         (NVL(l_enc_upg_option, 'N') = 'O')
45499       )
45500    THEN
45501    NULL;
45502    --
45503    --
45504    
45505    --
45506    --
45507    END IF;
45508 
45509        --
45510        -- Update the line information that should be overwritten
45511        --
45512        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45513                                          p_header_num   => 1);
45514        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45515 
45516        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45517 
45518        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45519           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45520        END IF;
45521 
45522       --
45523       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45524       --
45525       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45526           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45527       ELSE
45528           ---------------------------------------------------------------------------------------------------
45529           -- 4262811a Switch Sign
45530           ---------------------------------------------------------------------------------------------------
45531           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45532           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45533                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45534           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45535                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45536           -- 5132302
45537           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45538                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45539 
45540       END IF;
45541 
45542       -- 4955764
45543       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45544       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45545 
45546 
45547       XLA_AE_LINES_PKG.ValidateCurrentLine;
45548       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45549 
45550       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45551                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45552                ,p_balance_type_code => l_balance_type_code);
45553 
45554    END IF;
45555 
45556    -----------------------------------------------------------------------------------------
45557    -- 4262811 Multiperiod Accounting
45558    -----------------------------------------------------------------------------------------
45559      -- No MPA option is assigned.
45560 
45561 
45562 END IF;
45563 END IF;
45564 --
45565 
45566 --
45567 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45568    trace
45569       (p_msg      => 'END of AcctLineType_92'
45570       ,p_level    => C_LEVEL_PROCEDURE
45571       ,p_module   => l_log_module);
45572 END IF;
45573 --
45574 EXCEPTION
45575   WHEN xla_exceptions_pkg.application_exception THEN
45576       RAISE;
45577   WHEN OTHERS THEN
45578        xla_exceptions_pkg.raise_message
45579            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_92');
45580 END AcctLineType_92;
45581 --
45582 
45583 ---------------------------------------
45584 --
45585 -- PRIVATE FUNCTION
45586 --         AcctLineType_93
45587 --
45588 ---------------------------------------
45589 PROCEDURE AcctLineType_93 (
45590   p_application_id        IN NUMBER
45591  ,p_event_id              IN NUMBER
45592  ,p_calculate_acctd_flag  IN VARCHAR2
45593  ,p_calculate_g_l_flag    IN VARCHAR2
45594  ,p_actual_flag           IN OUT VARCHAR2
45595  ,p_balance_type_code     OUT VARCHAR2
45596  ,p_gain_or_loss_ref      OUT VARCHAR2
45597  
45598 --Payment Distribution (Payment Rate) Ledger Amount
45599  , p_source_9            IN NUMBER
45603  , p_source_20            IN VARCHAR2
45600 --Invoice Distribution Account
45601  , p_source_17            IN NUMBER
45602 --Invoice Distribution Type
45604  , p_source_20_meaning    IN VARCHAR2
45605 --When to Account for Payment Option
45606  , p_source_38            IN VARCHAR2
45607 --Payment Distribution Type
45608  , p_source_39            IN VARCHAR2
45609  , p_source_39_meaning    IN VARCHAR2
45610 --Accounting Reversal Indicator
45611  , p_source_40            IN VARCHAR2
45612 --Payment Distribution Amount
45613  , p_source_41            IN NUMBER
45614 --Business Flow Accounts Payable Application Identifier
45615  , p_source_42            IN NUMBER
45616 --Payment Distribution Identifier
45617  , p_source_47            IN NUMBER
45618 --Distribution Link Type
45619  , p_source_48            IN VARCHAR2
45620 --Payment Currency Code
45621  , p_source_49            IN VARCHAR2
45622 --Override Accounted Amount Indicator
45623  , p_source_53            IN VARCHAR2
45624  , p_source_53_meaning    IN VARCHAR2
45625 --Payment Supplier Identifier
45626  , p_source_54            IN NUMBER
45627 --Payment Supplier Site Identifier
45628  , p_source_55            IN NUMBER
45629 --Third Party Type
45630  , p_source_56            IN VARCHAR2
45631 --Payment Distribution Reversed Identifier
45632  , p_source_57            IN NUMBER
45633 --Invoice Distribution Tax Line Identifier
45634  , p_source_58            IN NUMBER
45635 --Invoice Distribution Summary Tax Line Identifier
45636  , p_source_59            IN NUMBER
45637 --Payment Type
45638  , p_source_60            IN VARCHAR2
45639  , p_source_60_meaning    IN VARCHAR2
45640 --Invoice Distribution Amount of the Payment Distribution
45641  , p_source_61            IN NUMBER
45642 --Business Flow Invoice Distribution Type
45643  , p_source_62            IN VARCHAR2
45644 --Business Flow Invoice Entity Code
45645  , p_source_63            IN VARCHAR2
45646 --Business Flow Invoice Distribution Identifier
45647  , p_source_64            IN NUMBER
45648 --Business Flow Invoice Identifier
45649  , p_source_65            IN NUMBER
45650 --Invoice Distribution Tax Distribution Identifier from Tax
45651  , p_source_66            IN NUMBER
45652 --Payment Exchange Date
45653  , p_source_114            IN DATE
45654 --Payment Exchange Rate
45655  , p_source_115            IN NUMBER
45656 --Payment Exchange Rate Type
45657  , p_source_116            IN VARCHAR2
45658 )
45659 IS
45660 
45661 l_component_type              VARCHAR2(80);
45662 l_component_code              VARCHAR2(30);
45663 l_component_type_code         VARCHAR2(1);
45664 l_component_appl_id           INTEGER;
45665 l_amb_context_code            VARCHAR2(30);
45666 l_entity_code                 VARCHAR2(30);
45667 l_event_class_code            VARCHAR2(30);
45668 l_ae_header_id                NUMBER;
45669 l_event_type_code             VARCHAR2(30);
45670 l_line_definition_code        VARCHAR2(30);
45671 l_line_definition_owner_code  VARCHAR2(1);
45672 --
45673 -- adr variables
45674 l_segment                     VARCHAR2(30);
45675 l_ccid                        NUMBER;
45676 l_adr_transaction_coa_id      NUMBER;
45677 l_adr_accounting_coa_id       NUMBER;
45678 l_adr_flexfield_segment_code  VARCHAR2(30);
45679 l_adr_flex_value_set_id       NUMBER;
45680 l_adr_value_type_code         VARCHAR2(30);
45681 l_adr_value_combination_id    NUMBER;
45682 l_adr_value_segment_code      VARCHAR2(30);
45683 
45684 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45685 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45686 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45687 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45688 
45689 -- 4262811 Variables ------------------------------------------------------------------------------------------
45690 l_entered_amt_idx             NUMBER;
45691 l_accted_amt_idx              NUMBER;
45692 l_acc_rev_flag                VARCHAR2(1);
45693 l_accrual_line_num            NUMBER;
45694 l_tmp_amt                     NUMBER;
45695 l_acc_rev_natural_side_code   VARCHAR2(1);
45696 
45697 l_num_entries                 NUMBER;
45698 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45699 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45700 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45701 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45702 l_recog_line_1                NUMBER;
45703 l_recog_line_2                NUMBER;
45704 
45705 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45706 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45707 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45708 
45709 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45710 
45711 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45712 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45713 
45714 ---------------------------------------------------------------------------------------------------------------
45715 
45716 
45717 --
45718 -- bulk performance
45719 --
45720 l_balance_type_code           VARCHAR2(1);
45721 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45725 -- Upgrade strategy
45722 l_log_module                  VARCHAR2(240);
45723 
45724 --
45726 --
45727 l_actual_upg_option           VARCHAR2(1);
45728 l_enc_upg_option           VARCHAR2(1);
45729 
45730 --
45731 BEGIN
45732 --
45733 IF g_log_enabled THEN
45734       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
45735 END IF;
45736 --
45737 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45738 
45739       trace
45740          (p_msg      => 'BEGIN of AcctLineType_93'
45741          ,p_level    => C_LEVEL_PROCEDURE
45742          ,p_module   => l_log_module);
45743 
45744 END IF;
45745 --
45746 l_component_type             := 'AMB_JLT';
45747 l_component_code             := 'AP_FREIGHT_EXPENSE_PMT';
45748 l_component_type_code        := 'S';
45749 l_component_appl_id          :=  200;
45750 l_amb_context_code           := 'DEFAULT';
45751 l_entity_code                := 'AP_PAYMENTS';
45752 l_event_class_code           := 'PAYMENTS';
45753 l_event_type_code            := 'PAYMENTS_ALL';
45754 l_line_definition_owner_code := 'S';
45755 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
45756 --
45757 l_balance_type_code          := 'A';
45758 l_segment                     := NULL;
45759 l_ccid                        := NULL;
45760 l_adr_transaction_coa_id      := NULL;
45761 l_adr_accounting_coa_id       := NULL;
45762 l_adr_flexfield_segment_code  := NULL;
45763 l_adr_flex_value_set_id       := NULL;
45764 l_adr_value_type_code         := NULL;
45765 l_adr_value_combination_id    := NULL;
45766 l_adr_value_segment_code      := NULL;
45767 
45768 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
45769 l_bflow_class_code           := '';    -- 4219869 Business Flow
45770 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45771 l_budgetary_control_flag     := 'N';
45772 
45773 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45774 l_bflow_applied_to_amt       := NULL; -- 5132302
45775 l_entered_amt_idx            := NULL;          -- 4262811
45776 l_accted_amt_idx             := NULL;          -- 4262811
45777 l_acc_rev_flag               := NULL;          -- 4262811
45778 l_accrual_line_num           := NULL;          -- 4262811
45779 l_tmp_amt                    := NULL;          -- 4262811
45780 --
45781  
45782 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45783     l_balance_type_code <> 'B' THEN
45784 IF NVL(p_source_38,'
45785 ') <>  'CLEAR_CLEAR' AND 
45786 NVL(p_source_20,'
45787 ') =  'FREIGHT' AND 
45788 (NVL(p_source_39,'
45789 ') =  'CASH' OR 
45790 NVL(p_source_39,'
45791 ') =  'AWT' OR 
45792 NVL(p_source_39,'
45793 ') =  'DISCOUNT') AND 
45794 NVL(p_source_60,'
45795 ') <>  'R'
45796  THEN 
45797 
45798    --
45799    XLA_AE_LINES_PKG.SetNewLine;
45800 
45801    p_balance_type_code          := l_balance_type_code;
45802    -- set the flag so later we will know whether the gain loss line needs to be created
45803    
45804    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45805      p_actual_flag :='A';
45806    END IF;
45807 
45808    --
45809    -- bulk performance
45810    --
45811    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45812                                       p_header_num   => 0); -- 4262811
45813    --
45814    -- set accounting line options
45815    --
45816    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45817            p_natural_side_code          => 'D'
45818          , p_gain_or_loss_flag          => 'N'
45819          , p_gl_transfer_mode_code      => 'S'
45820          , p_acct_entry_type_code       => 'A'
45821          , p_switch_side_flag           => 'Y'
45822          , p_merge_duplicate_code       => 'A'
45823          );
45824    --
45825    l_acc_rev_natural_side_code := 'C';  -- 4262811
45826    -- 
45827    --
45828    -- set accounting line type info
45829    --
45830    xla_ae_lines_pkg.SetAcctLineType
45831       (p_component_type             => l_component_type
45832       ,p_event_type_code            => l_event_type_code
45833       ,p_line_definition_owner_code => l_line_definition_owner_code
45834       ,p_line_definition_code       => l_line_definition_code
45835       ,p_accounting_line_code       => l_component_code
45836       ,p_accounting_line_type_code  => l_component_type_code
45837       ,p_accounting_line_appl_id    => l_component_appl_id
45838       ,p_amb_context_code           => l_amb_context_code
45839       ,p_entity_code                => l_entity_code
45840       ,p_event_class_code           => l_event_class_code);
45841    --
45842    -- set accounting class
45843    --
45844    xla_ae_lines_pkg.SetAcctClass(
45845            p_accounting_class_code  => 'FREIGHT'
45846          , p_ae_header_id           => l_ae_header_id
45847          );
45848 
45849    --
45850    -- set rounding class
45851    --
45852    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45853                       'FREIGHT';
45854 
45855    --
45856    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45857    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45858    --
45859    -- bulk performance
45860    --
45864       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45861    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45862 
45863    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45865 
45866    -- 4955764
45867    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45868       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45869 
45870    -- 4458381 Public Sector Enh
45871    
45872    --
45873    -- set accounting attributes for the line type
45874    --
45875    l_entered_amt_idx := 10;
45876    l_accted_amt_idx  := 15;
45877    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
45878    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45879    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
45880    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
45881    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
45882    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
45883    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
45884    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45885    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
45886    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
45887    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
45888    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
45889    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
45890    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45891    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
45892    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
45893    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
45894    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
45895    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
45896    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
45897    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
45898    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
45899    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
45900    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
45901    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
45902    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
45903    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
45904    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
45905    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
45906    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
45907    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
45908    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
45909    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
45910    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
45911    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
45912    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
45913    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
45914    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
45915    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
45916    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
45917    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
45918    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
45919    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
45920    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
45921    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
45922    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
45923    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
45924    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
45925    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
45926 
45927    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45928    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45929 
45930    ---------------------------------------------------------------------------------------------------------------
45931    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45932    ---------------------------------------------------------------------------------------------------------------
45933    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45934 
45935    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45936    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45937 
45938    IF xla_accounting_cache_pkg.GetValueChar
45939          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45940          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45941    AND l_bflow_method_code = 'PRIOR_ENTRY'
45942 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45943    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45944          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45945        )
45946    THEN
45947          xla_ae_lines_pkg.BflowUpgEntry
45948            (p_business_method_code    => l_bflow_method_code
45949            ,p_business_class_code     => l_bflow_class_code
45950            ,p_balance_type            => l_balance_type_code);
45954    END IF;
45951    ELSE
45952       NULL;
45953 -- No business flow processing for business flow method of NONE.
45955 
45956    --
45957    -- call analytical criteria
45958    --
45959    
45960    --
45961    -- call description
45962    --
45963    -- No description or it is inherited.
45964    --
45965    -- call ADRs
45966    -- Bug 4922099
45967    --
45968    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45969         (NVL(l_actual_upg_option, 'N') = 'O') OR
45970         (NVL(l_enc_upg_option, 'N') = 'O')
45971       )
45972    THEN
45973    NULL;
45974    --
45975    --
45976    
45977   l_ccid := AcctDerRule_26(
45978            p_application_id           => p_application_id
45979          , p_ae_header_id             => l_ae_header_id 
45980 , p_source_17 => p_source_17
45981          , x_transaction_coa_id       => l_adr_transaction_coa_id
45982          , x_accounting_coa_id        => l_adr_accounting_coa_id
45983          , x_value_type_code          => l_adr_value_type_code
45984          , p_side                     => 'NA'
45985    );
45986 
45987    xla_ae_lines_pkg.set_ccid(
45988     p_code_combination_id          => l_ccid
45989   , p_value_type_code              => l_adr_value_type_code
45990   , p_transaction_coa_id           => l_adr_transaction_coa_id
45991   , p_accounting_coa_id            => l_adr_accounting_coa_id
45992   , p_adr_code                     => 'AP_INVOICE_DIST'
45993   , p_adr_type_code                => 'S'
45994   , p_component_type               => l_component_type
45995   , p_component_code               => l_component_code
45996   , p_component_type_code          => l_component_type_code
45997   , p_component_appl_id            => l_component_appl_id
45998   , p_amb_context_code             => l_amb_context_code
45999   , p_side                         => 'NA'
46000   );
46001 
46002 
46003    --
46004    --
46005    END IF;
46006    --
46007    -- Bug 4922099
46008    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46009           (NVL(l_enc_upg_option, 'N') = 'O')
46010         ) AND
46011         (l_bflow_method_code = 'PRIOR_ENTRY')
46012       )
46013    THEN
46014       IF
46015       --
46016       1 = 2
46017       --
46018       THEN
46019       xla_accounting_err_pkg.build_message
46020                                     (p_appli_s_name            => 'XLA'
46021                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46022                                     ,p_token_1                 => 'LINE_NUMBER'
46023                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46024                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46025                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46026                                                                              l_component_type
46027                                                                             ,l_component_code
46028                                                                             ,l_component_type_code
46029                                                                             ,l_component_appl_id
46030                                                                             ,l_amb_context_code
46031                                                                             ,l_entity_code
46032                                                                             ,l_event_class_code
46033                                                                            )
46034                                     ,p_token_3                 => 'OWNER'
46035                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46036                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46037                                                                           ,p_lookup_code    => l_component_type_code
46038                                                                          )
46039                                     ,p_token_4                 => 'PRODUCT_NAME'
46040                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46041                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46042                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46043                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46044                                     ,p_ae_header_id            =>  NULL
46045                                        );
46046 
46047         IF (C_LEVEL_ERROR>= g_log_level) THEN
46048                  trace
46049                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46050                       ,p_level    => C_LEVEL_ERROR
46051                       ,p_module   => l_log_module);
46052         END IF;
46053       END IF;
46054    END IF;
46055    --
46056    --
46057    ------------------------------------------------------------------------------------------------
46058    -- 4219869 Business Flow
46059    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46060    -- Prior Entry.  Currently, the following code is always generated.
46061    ------------------------------------------------------------------------------------------------
46062    XLA_AE_LINES_PKG.ValidateCurrentLine;
46063 
46067    ------------------------------------------------------------------------------------
46064    ------------------------------------------------------------------------------------
46065    -- 4219869 Business Flow
46066    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46068    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46069 
46070    ----------------------------------------------------------------------------------
46071    -- 4219869 Business Flow
46072    -- Update journal entry status -- Need to generate this within IF <condition>
46073    ----------------------------------------------------------------------------------
46074    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46075          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46076          ,p_balance_type_code => l_balance_type_code
46077          );
46078 
46079    -------------------------------------------------------------------------------------------
46080    -- 4262811 - Generate the Accrual Reversal lines
46081    -------------------------------------------------------------------------------------------
46082    BEGIN
46083       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46084                               (g_array_event(p_event_id).array_value_num('header_index'));
46085       IF l_acc_rev_flag IS NULL THEN
46086          l_acc_rev_flag := 'N';
46087       END IF;
46088    EXCEPTION
46089       WHEN OTHERS THEN
46090          l_acc_rev_flag := 'N';
46091    END;
46092    --
46093    IF (l_acc_rev_flag = 'Y') THEN
46094 
46095        -- 4645092  ------------------------------------------------------------------------------
46096        -- To allow MPA report to determine if it should generate report process
46097        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46098        ------------------------------------------------------------------------------------------
46099 
46100        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46101        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46102    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46103    -- call ADRs
46104    -- Bug 4922099
46105    --
46106    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46107         (NVL(l_actual_upg_option, 'N') = 'O') OR
46108         (NVL(l_enc_upg_option, 'N') = 'O')
46109       )
46110    THEN
46111    NULL;
46112    --
46113    --
46114    
46115   l_ccid := AcctDerRule_26(
46116            p_application_id           => p_application_id
46117          , p_ae_header_id             => l_ae_header_id 
46118 , p_source_17 => p_source_17
46119          , x_transaction_coa_id       => l_adr_transaction_coa_id
46120          , x_accounting_coa_id        => l_adr_accounting_coa_id
46121          , x_value_type_code          => l_adr_value_type_code
46122          , p_side                     => 'NA'
46123    );
46124 
46125    xla_ae_lines_pkg.set_ccid(
46126     p_code_combination_id          => l_ccid
46127   , p_value_type_code              => l_adr_value_type_code
46128   , p_transaction_coa_id           => l_adr_transaction_coa_id
46129   , p_accounting_coa_id            => l_adr_accounting_coa_id
46130   , p_adr_code                     => 'AP_INVOICE_DIST'
46131   , p_adr_type_code                => 'S'
46132   , p_component_type               => l_component_type
46133   , p_component_code               => l_component_code
46134   , p_component_type_code          => l_component_type_code
46135   , p_component_appl_id            => l_component_appl_id
46136   , p_amb_context_code             => l_amb_context_code
46137   , p_side                         => 'NA'
46138   );
46139 
46140 
46141    --
46142    --
46143    END IF;
46144 
46145        --
46146        -- Update the line information that should be overwritten
46147        --
46148        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46149                                          p_header_num   => 1);
46150        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46151 
46152        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46153 
46154        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46155           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46156        END IF;
46157 
46158       --
46159       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46160       --
46161       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46162           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46163       ELSE
46164           ---------------------------------------------------------------------------------------------------
46165           -- 4262811a Switch Sign
46166           ---------------------------------------------------------------------------------------------------
46167           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46168           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46169                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46170           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46171                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46172           -- 5132302
46176       END IF;
46173           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46174                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46175 
46177 
46178       -- 4955764
46179       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46180       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46181 
46182 
46183       XLA_AE_LINES_PKG.ValidateCurrentLine;
46184       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46185 
46186       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46187                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46188                ,p_balance_type_code => l_balance_type_code);
46189 
46190    END IF;
46191 
46192    -----------------------------------------------------------------------------------------
46193    -- 4262811 Multiperiod Accounting
46194    -----------------------------------------------------------------------------------------
46195      -- No MPA option is assigned.
46196 
46197 
46198 END IF;
46199 END IF;
46200 --
46201 
46202 --
46203 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46204    trace
46205       (p_msg      => 'END of AcctLineType_93'
46206       ,p_level    => C_LEVEL_PROCEDURE
46207       ,p_module   => l_log_module);
46208 END IF;
46209 --
46210 EXCEPTION
46211   WHEN xla_exceptions_pkg.application_exception THEN
46212       RAISE;
46213   WHEN OTHERS THEN
46214        xla_exceptions_pkg.raise_message
46215            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_93');
46216 END AcctLineType_93;
46217 --
46218 
46219 ---------------------------------------
46220 --
46221 -- PRIVATE FUNCTION
46222 --         AcctLineType_94
46223 --
46224 ---------------------------------------
46225 PROCEDURE AcctLineType_94 (
46226   p_application_id        IN NUMBER
46227  ,p_event_id              IN NUMBER
46228  ,p_calculate_acctd_flag  IN VARCHAR2
46229  ,p_calculate_g_l_flag    IN VARCHAR2
46230  ,p_actual_flag           IN OUT VARCHAR2
46231  ,p_balance_type_code     OUT VARCHAR2
46232  ,p_gain_or_loss_ref      OUT VARCHAR2
46233  
46234 --Payment Distribution (Payment Rate) Ledger Amount
46235  , p_source_9            IN NUMBER
46236 --Invoice Distribution Type
46237  , p_source_20            IN VARCHAR2
46238  , p_source_20_meaning    IN VARCHAR2
46239 --When to Account for Payment Option
46240  , p_source_38            IN VARCHAR2
46241 --Payment Distribution Type
46242  , p_source_39            IN VARCHAR2
46243  , p_source_39_meaning    IN VARCHAR2
46244 --Accounting Reversal Indicator
46245  , p_source_40            IN VARCHAR2
46246 --Payment Distribution Amount
46247  , p_source_41            IN NUMBER
46248 --Business Flow Accounts Payable Application Identifier
46249  , p_source_42            IN NUMBER
46250 --Payment Distribution Identifier
46251  , p_source_47            IN NUMBER
46252 --Distribution Link Type
46253  , p_source_48            IN VARCHAR2
46254 --Payment Currency Code
46255  , p_source_49            IN VARCHAR2
46256 --Override Accounted Amount Indicator
46257  , p_source_53            IN VARCHAR2
46258  , p_source_53_meaning    IN VARCHAR2
46259 --Third Party Type
46260  , p_source_56            IN VARCHAR2
46261 --Payment Distribution Reversed Identifier
46262  , p_source_57            IN NUMBER
46263 --Invoice Distribution Tax Line Identifier
46264  , p_source_58            IN NUMBER
46265 --Invoice Distribution Summary Tax Line Identifier
46266  , p_source_59            IN NUMBER
46267 --Payment Type
46268  , p_source_60            IN VARCHAR2
46269  , p_source_60_meaning    IN VARCHAR2
46270 --Invoice Distribution Amount of the Payment Distribution
46271  , p_source_61            IN NUMBER
46272 --Business Flow Invoice Distribution Type
46273  , p_source_62            IN VARCHAR2
46274 --Business Flow Invoice Entity Code
46275  , p_source_63            IN VARCHAR2
46276 --Business Flow Invoice Distribution Identifier
46277  , p_source_64            IN NUMBER
46278 --Business Flow Invoice Identifier
46279  , p_source_65            IN NUMBER
46280 --Invoice Distribution Tax Distribution Identifier from Tax
46281  , p_source_66            IN NUMBER
46282 --Invoice Type Paid
46283  , p_source_101            IN VARCHAR2
46284  , p_source_101_meaning    IN VARCHAR2
46285 --Purchasing Encumbrance Option
46286  , p_source_102            IN VARCHAR2
46287  , p_source_102_meaning    IN VARCHAR2
46288 --Invoice Encumbered Option
46289  , p_source_104            IN VARCHAR2
46290  , p_source_104_meaning    IN VARCHAR2
46291 )
46292 IS
46293 
46294 l_component_type              VARCHAR2(80);
46295 l_component_code              VARCHAR2(30);
46296 l_component_type_code         VARCHAR2(1);
46297 l_component_appl_id           INTEGER;
46298 l_amb_context_code            VARCHAR2(30);
46299 l_entity_code                 VARCHAR2(30);
46300 l_event_class_code            VARCHAR2(30);
46301 l_ae_header_id                NUMBER;
46302 l_event_type_code             VARCHAR2(30);
46303 l_line_definition_code        VARCHAR2(30);
46304 l_line_definition_owner_code  VARCHAR2(1);
46305 --
46306 -- adr variables
46307 l_segment                     VARCHAR2(30);
46311 l_adr_flexfield_segment_code  VARCHAR2(30);
46308 l_ccid                        NUMBER;
46309 l_adr_transaction_coa_id      NUMBER;
46310 l_adr_accounting_coa_id       NUMBER;
46312 l_adr_flex_value_set_id       NUMBER;
46313 l_adr_value_type_code         VARCHAR2(30);
46314 l_adr_value_combination_id    NUMBER;
46315 l_adr_value_segment_code      VARCHAR2(30);
46316 
46317 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46318 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46319 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46320 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46321 
46322 -- 4262811 Variables ------------------------------------------------------------------------------------------
46323 l_entered_amt_idx             NUMBER;
46324 l_accted_amt_idx              NUMBER;
46325 l_acc_rev_flag                VARCHAR2(1);
46326 l_accrual_line_num            NUMBER;
46327 l_tmp_amt                     NUMBER;
46328 l_acc_rev_natural_side_code   VARCHAR2(1);
46329 
46330 l_num_entries                 NUMBER;
46331 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46332 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46333 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46334 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46335 l_recog_line_1                NUMBER;
46336 l_recog_line_2                NUMBER;
46337 
46338 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46339 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46340 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46341 
46342 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46343 
46344 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46345 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46346 
46347 ---------------------------------------------------------------------------------------------------------------
46348 
46349 
46350 --
46351 -- bulk performance
46352 --
46353 l_balance_type_code           VARCHAR2(1);
46354 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46355 l_log_module                  VARCHAR2(240);
46356 
46357 --
46358 -- Upgrade strategy
46359 --
46360 l_actual_upg_option           VARCHAR2(1);
46361 l_enc_upg_option           VARCHAR2(1);
46362 
46363 --
46364 BEGIN
46365 --
46366 IF g_log_enabled THEN
46367       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
46368 END IF;
46369 --
46370 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46371 
46372       trace
46373          (p_msg      => 'BEGIN of AcctLineType_94'
46374          ,p_level    => C_LEVEL_PROCEDURE
46375          ,p_module   => l_log_module);
46376 
46377 END IF;
46378 --
46379 l_component_type             := 'AMB_JLT';
46380 l_component_code             := 'AP_FREIGHT_EXPENSE_PMT_ENC';
46381 l_component_type_code        := 'S';
46382 l_component_appl_id          :=  200;
46383 l_amb_context_code           := 'DEFAULT';
46384 l_entity_code                := 'AP_PAYMENTS';
46385 l_event_class_code           := 'PAYMENTS';
46386 l_event_type_code            := 'PAYMENTS_ALL';
46387 l_line_definition_owner_code := 'S';
46388 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
46389 --
46390 l_balance_type_code          := 'E';
46391 l_segment                     := NULL;
46392 l_ccid                        := NULL;
46393 l_adr_transaction_coa_id      := NULL;
46394 l_adr_accounting_coa_id       := NULL;
46395 l_adr_flexfield_segment_code  := NULL;
46396 l_adr_flex_value_set_id       := NULL;
46397 l_adr_value_type_code         := NULL;
46398 l_adr_value_combination_id    := NULL;
46399 l_adr_value_segment_code      := NULL;
46400 
46401 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
46402 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
46403 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46404 l_budgetary_control_flag     := 'N';
46405 
46406 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46407 l_bflow_applied_to_amt       := NULL; -- 5132302
46408 l_entered_amt_idx            := NULL;          -- 4262811
46409 l_accted_amt_idx             := NULL;          -- 4262811
46410 l_acc_rev_flag               := NULL;          -- 4262811
46411 l_accrual_line_num           := NULL;          -- 4262811
46412 l_tmp_amt                    := NULL;          -- 4262811
46413 --
46414  
46415 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46416     l_balance_type_code <> 'B' THEN
46417 IF NVL(p_source_38,'
46418 ') <>  'CLEAR_CLEAR' AND 
46419 NVL(p_source_20,'
46420 ') =  'FREIGHT' AND 
46421 NVL(p_source_101,'
46422 ') <>  'INTEREST' AND 
46423 (NVL(p_source_39,'
46424 ') =  'CASH' OR 
46425 NVL(p_source_39,'
46426 ') =  'DISCOUNT') AND 
46427 NVL(p_source_60,'
46428 ') <>  'R' AND 
46429 NVL(p_source_102,'
46430 ') =  'Y' AND 
46431 NVL(p_source_104,'
46432 ') =  'Y'
46433  THEN 
46434 
46435    --
46436    XLA_AE_LINES_PKG.SetNewLine;
46437 
46438    p_balance_type_code          := l_balance_type_code;
46442      p_actual_flag :='A';
46439    -- set the flag so later we will know whether the gain loss line needs to be created
46440    
46441    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46443    END IF;
46444 
46445    --
46446    -- bulk performance
46447    --
46448    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46449                                       p_header_num   => 0); -- 4262811
46450    --
46451    -- set accounting line options
46452    --
46453    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46454            p_natural_side_code          => 'C'
46455          , p_gain_or_loss_flag          => 'N'
46456          , p_gl_transfer_mode_code      => 'S'
46457          , p_acct_entry_type_code       => 'E'
46458          , p_switch_side_flag           => 'Y'
46459          , p_merge_duplicate_code       => 'A'
46460          );
46461    --
46462    l_acc_rev_natural_side_code := 'D';  -- 4262811
46463    -- 
46464    --
46465    -- set accounting line type info
46466    --
46467    xla_ae_lines_pkg.SetAcctLineType
46468       (p_component_type             => l_component_type
46469       ,p_event_type_code            => l_event_type_code
46470       ,p_line_definition_owner_code => l_line_definition_owner_code
46471       ,p_line_definition_code       => l_line_definition_code
46472       ,p_accounting_line_code       => l_component_code
46473       ,p_accounting_line_type_code  => l_component_type_code
46474       ,p_accounting_line_appl_id    => l_component_appl_id
46475       ,p_amb_context_code           => l_amb_context_code
46476       ,p_entity_code                => l_entity_code
46477       ,p_event_class_code           => l_event_class_code);
46478    --
46479    -- set accounting class
46480    --
46481    xla_ae_lines_pkg.SetAcctClass(
46482            p_accounting_class_code  => 'FREIGHT'
46483          , p_ae_header_id           => l_ae_header_id
46484          );
46485 
46486    --
46487    -- set rounding class
46488    --
46489    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46490                       'FREIGHT';
46491 
46492    --
46493    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46494    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46495    --
46496    -- bulk performance
46497    --
46498    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46499 
46500    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46501       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46502 
46503    -- 4955764
46504    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46505       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46506 
46507    -- 4458381 Public Sector Enh
46508    
46509    --
46510    -- set accounting attributes for the line type
46511    --
46512    l_entered_amt_idx := 10;
46513    l_accted_amt_idx  := 12;
46514    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
46515    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46516    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
46517    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
46518    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
46519    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
46520    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
46521    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46522    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
46523    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
46524    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
46525    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
46526    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
46527    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46528    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
46529    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
46530    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
46531    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
46532    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
46533    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
46534    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
46535    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
46536    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
46537    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
46538    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
46539    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
46540    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
46541    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
46542    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
46543    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
46544    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
46545    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
46546    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
46547    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
46551    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
46548    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
46549    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
46550    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
46552    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
46553 
46554    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46555    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46556 
46557    ---------------------------------------------------------------------------------------------------------------
46558    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46559    ---------------------------------------------------------------------------------------------------------------
46560    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46561 
46562    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46563    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46564 
46565    IF xla_accounting_cache_pkg.GetValueChar
46566          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46567          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46568    AND l_bflow_method_code = 'PRIOR_ENTRY'
46569 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46570    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46571          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46572        )
46573    THEN
46574          xla_ae_lines_pkg.BflowUpgEntry
46575            (p_business_method_code    => l_bflow_method_code
46576            ,p_business_class_code     => l_bflow_class_code
46577            ,p_balance_type            => l_balance_type_code);
46578    ELSE
46579       NULL;
46580 XLA_AE_LINES_PKG.business_flow_validation(
46581                                 p_business_method_code     => l_bflow_method_code
46582                                ,p_business_class_code      => l_bflow_class_code
46583                                ,p_inherit_description_flag => l_inherit_desc_flag);
46584    END IF;
46585 
46586    --
46587    -- call analytical criteria
46588    --
46589    -- Inherited Analytical Criteria for business flow method of Prior Entry.
46590    --
46591    -- call description
46592    --
46593    -- No description or it is inherited.
46594    --
46595    -- call ADRs
46596    -- Bug 4922099
46597    --
46598    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46599         (NVL(l_actual_upg_option, 'N') = 'O') OR
46600         (NVL(l_enc_upg_option, 'N') = 'O')
46601       )
46602    THEN
46603    NULL;
46604    --
46605    --
46606    
46607    --
46608    --
46609    END IF;
46610    --
46611    -- Bug 4922099
46612    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46613           (NVL(l_enc_upg_option, 'N') = 'O')
46614         ) AND
46615         (l_bflow_method_code = 'PRIOR_ENTRY')
46616       )
46617    THEN
46618       IF
46619       --
46620       1 = 1
46621       --
46622       THEN
46623       xla_accounting_err_pkg.build_message
46624                                     (p_appli_s_name            => 'XLA'
46625                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46626                                     ,p_token_1                 => 'LINE_NUMBER'
46627                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46628                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46629                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46630                                                                              l_component_type
46631                                                                             ,l_component_code
46632                                                                             ,l_component_type_code
46633                                                                             ,l_component_appl_id
46634                                                                             ,l_amb_context_code
46635                                                                             ,l_entity_code
46636                                                                             ,l_event_class_code
46637                                                                            )
46638                                     ,p_token_3                 => 'OWNER'
46639                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46640                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46641                                                                           ,p_lookup_code    => l_component_type_code
46642                                                                          )
46643                                     ,p_token_4                 => 'PRODUCT_NAME'
46644                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46645                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46646                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46647                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46651         IF (C_LEVEL_ERROR>= g_log_level) THEN
46648                                     ,p_ae_header_id            =>  NULL
46649                                        );
46650 
46652                  trace
46653                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46654                       ,p_level    => C_LEVEL_ERROR
46655                       ,p_module   => l_log_module);
46656         END IF;
46657       END IF;
46658    END IF;
46659    --
46660    --
46661    ------------------------------------------------------------------------------------------------
46662    -- 4219869 Business Flow
46663    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46664    -- Prior Entry.  Currently, the following code is always generated.
46665    ------------------------------------------------------------------------------------------------
46666    -- No ValidateCurrentLine for business flow method of Prior Entry
46667 
46668    ------------------------------------------------------------------------------------
46669    -- 4219869 Business Flow
46670    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46671    ------------------------------------------------------------------------------------
46672    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46673 
46674    ----------------------------------------------------------------------------------
46675    -- 4219869 Business Flow
46676    -- Update journal entry status -- Need to generate this within IF <condition>
46677    ----------------------------------------------------------------------------------
46678    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46679          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46680          ,p_balance_type_code => l_balance_type_code
46681          );
46682 
46683    -------------------------------------------------------------------------------------------
46684    -- 4262811 - Generate the Accrual Reversal lines
46685    -------------------------------------------------------------------------------------------
46686    BEGIN
46687       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46688                               (g_array_event(p_event_id).array_value_num('header_index'));
46689       IF l_acc_rev_flag IS NULL THEN
46690          l_acc_rev_flag := 'N';
46691       END IF;
46692    EXCEPTION
46693       WHEN OTHERS THEN
46694          l_acc_rev_flag := 'N';
46695    END;
46696    --
46697    IF (l_acc_rev_flag = 'Y') THEN
46698 
46699        -- 4645092  ------------------------------------------------------------------------------
46700        -- To allow MPA report to determine if it should generate report process
46701        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46702        ------------------------------------------------------------------------------------------
46703 
46704        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46705        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46706    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46707    -- call ADRs
46708    -- Bug 4922099
46709    --
46710    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46711         (NVL(l_actual_upg_option, 'N') = 'O') OR
46712         (NVL(l_enc_upg_option, 'N') = 'O')
46713       )
46714    THEN
46715    NULL;
46716    --
46717    --
46718    
46719    --
46720    --
46721    END IF;
46722 
46723        --
46724        -- Update the line information that should be overwritten
46725        --
46726        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46727                                          p_header_num   => 1);
46728        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46729 
46730        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46731 
46732        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46733           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46734        END IF;
46735 
46736       --
46737       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46738       --
46739       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46740           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46741       ELSE
46742           ---------------------------------------------------------------------------------------------------
46743           -- 4262811a Switch Sign
46744           ---------------------------------------------------------------------------------------------------
46745           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46746           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46747                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46748           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46749                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46750           -- 5132302
46751           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46752                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46753 
46757       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46754       END IF;
46755 
46756       -- 4955764
46758       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46759 
46760 
46761       XLA_AE_LINES_PKG.ValidateCurrentLine;
46762       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46763 
46764       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46765                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46766                ,p_balance_type_code => l_balance_type_code);
46767 
46768    END IF;
46769 
46770    -----------------------------------------------------------------------------------------
46771    -- 4262811 Multiperiod Accounting
46772    -----------------------------------------------------------------------------------------
46773      -- No MPA option is assigned.
46774 
46775 
46776 END IF;
46777 END IF;
46778 --
46779 
46780 --
46781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46782    trace
46783       (p_msg      => 'END of AcctLineType_94'
46784       ,p_level    => C_LEVEL_PROCEDURE
46785       ,p_module   => l_log_module);
46786 END IF;
46787 --
46788 EXCEPTION
46789   WHEN xla_exceptions_pkg.application_exception THEN
46790       RAISE;
46791   WHEN OTHERS THEN
46792        xla_exceptions_pkg.raise_message
46793            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_94');
46794 END AcctLineType_94;
46795 --
46796 
46797 ---------------------------------------
46798 --
46799 -- PRIVATE FUNCTION
46800 --         AcctLineType_95
46801 --
46802 ---------------------------------------
46803 PROCEDURE AcctLineType_95 (
46804   p_application_id        IN NUMBER
46805  ,p_event_id              IN NUMBER
46806  ,p_calculate_acctd_flag  IN VARCHAR2
46807  ,p_calculate_g_l_flag    IN VARCHAR2
46808  ,p_actual_flag           IN OUT VARCHAR2
46809  ,p_balance_type_code     OUT VARCHAR2
46810  ,p_gain_or_loss_ref      OUT VARCHAR2
46811  
46812 --Payment Distribution (Payment Rate) Ledger Amount
46813  , p_source_9            IN NUMBER
46814 --Invoice Distribution Account
46815  , p_source_17            IN NUMBER
46816 --Invoice Distribution Type
46817  , p_source_20            IN VARCHAR2
46818  , p_source_20_meaning    IN VARCHAR2
46819 --When to Account for Payment Option
46820  , p_source_38            IN VARCHAR2
46821 --Payment Distribution Type
46822  , p_source_39            IN VARCHAR2
46823  , p_source_39_meaning    IN VARCHAR2
46824 --Accounting Reversal Indicator
46825  , p_source_40            IN VARCHAR2
46826 --Payment Distribution Amount
46827  , p_source_41            IN NUMBER
46828 --Business Flow Accounts Payable Application Identifier
46829  , p_source_42            IN NUMBER
46830 --Payment Distribution Identifier
46831  , p_source_47            IN NUMBER
46832 --Distribution Link Type
46833  , p_source_48            IN VARCHAR2
46834 --Payment Currency Code
46835  , p_source_49            IN VARCHAR2
46836 --Override Accounted Amount Indicator
46837  , p_source_53            IN VARCHAR2
46838  , p_source_53_meaning    IN VARCHAR2
46839 --Payment Supplier Identifier
46840  , p_source_54            IN NUMBER
46841 --Payment Supplier Site Identifier
46842  , p_source_55            IN NUMBER
46843 --Third Party Type
46844  , p_source_56            IN VARCHAR2
46845 --Payment Distribution Reversed Identifier
46846  , p_source_57            IN NUMBER
46847 --Invoice Distribution Tax Line Identifier
46848  , p_source_58            IN NUMBER
46849 --Invoice Distribution Summary Tax Line Identifier
46850  , p_source_59            IN NUMBER
46851 --Payment Type
46852  , p_source_60            IN VARCHAR2
46853  , p_source_60_meaning    IN VARCHAR2
46854 --Business Flow Invoice Distribution Type
46855  , p_source_62            IN VARCHAR2
46856 --Business Flow Invoice Entity Code
46857  , p_source_63            IN VARCHAR2
46858 --Business Flow Invoice Distribution Identifier
46859  , p_source_64            IN NUMBER
46860 --Business Flow Invoice Identifier
46861  , p_source_65            IN NUMBER
46862 --Invoice Distribution Tax Distribution Identifier from Tax
46863  , p_source_66            IN NUMBER
46864 --Payment Exchange Date
46865  , p_source_114            IN DATE
46866 --Payment Exchange Rate
46867  , p_source_115            IN NUMBER
46868 --Payment Exchange Rate Type
46869  , p_source_116            IN VARCHAR2
46870 )
46871 IS
46872 
46873 l_component_type              VARCHAR2(80);
46874 l_component_code              VARCHAR2(30);
46875 l_component_type_code         VARCHAR2(1);
46876 l_component_appl_id           INTEGER;
46877 l_amb_context_code            VARCHAR2(30);
46878 l_entity_code                 VARCHAR2(30);
46879 l_event_class_code            VARCHAR2(30);
46880 l_ae_header_id                NUMBER;
46881 l_event_type_code             VARCHAR2(30);
46882 l_line_definition_code        VARCHAR2(30);
46883 l_line_definition_owner_code  VARCHAR2(1);
46884 --
46885 -- adr variables
46886 l_segment                     VARCHAR2(30);
46887 l_ccid                        NUMBER;
46888 l_adr_transaction_coa_id      NUMBER;
46889 l_adr_accounting_coa_id       NUMBER;
46890 l_adr_flexfield_segment_code  VARCHAR2(30);
46891 l_adr_flex_value_set_id       NUMBER;
46892 l_adr_value_type_code         VARCHAR2(30);
46893 l_adr_value_combination_id    NUMBER;
46897 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46894 l_adr_value_segment_code      VARCHAR2(30);
46895 
46896 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46898 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46899 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46900 
46901 -- 4262811 Variables ------------------------------------------------------------------------------------------
46902 l_entered_amt_idx             NUMBER;
46903 l_accted_amt_idx              NUMBER;
46904 l_acc_rev_flag                VARCHAR2(1);
46905 l_accrual_line_num            NUMBER;
46906 l_tmp_amt                     NUMBER;
46907 l_acc_rev_natural_side_code   VARCHAR2(1);
46908 
46909 l_num_entries                 NUMBER;
46910 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46911 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46912 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46913 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46914 l_recog_line_1                NUMBER;
46915 l_recog_line_2                NUMBER;
46916 
46917 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46918 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46919 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46920 
46921 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46922 
46923 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46924 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46925 
46926 ---------------------------------------------------------------------------------------------------------------
46927 
46928 
46929 --
46930 -- bulk performance
46931 --
46932 l_balance_type_code           VARCHAR2(1);
46933 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46934 l_log_module                  VARCHAR2(240);
46935 
46936 --
46937 -- Upgrade strategy
46938 --
46939 l_actual_upg_option           VARCHAR2(1);
46940 l_enc_upg_option           VARCHAR2(1);
46941 
46942 --
46943 BEGIN
46944 --
46945 IF g_log_enabled THEN
46946       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
46947 END IF;
46948 --
46949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46950 
46951       trace
46952          (p_msg      => 'BEGIN of AcctLineType_95'
46953          ,p_level    => C_LEVEL_PROCEDURE
46954          ,p_module   => l_log_module);
46955 
46956 END IF;
46957 --
46958 l_component_type             := 'AMB_JLT';
46959 l_component_code             := 'AP_FREIGHT_EXPENSE_REF';
46960 l_component_type_code        := 'S';
46961 l_component_appl_id          :=  200;
46962 l_amb_context_code           := 'DEFAULT';
46963 l_entity_code                := 'AP_PAYMENTS';
46964 l_event_class_code           := 'REFUNDS';
46965 l_event_type_code            := 'REFUNDS_ALL';
46966 l_line_definition_owner_code := 'S';
46967 l_line_definition_code       := 'CASH_REFUNDS_ALL';
46968 --
46969 l_balance_type_code          := 'A';
46970 l_segment                     := NULL;
46971 l_ccid                        := NULL;
46972 l_adr_transaction_coa_id      := NULL;
46973 l_adr_accounting_coa_id       := NULL;
46974 l_adr_flexfield_segment_code  := NULL;
46975 l_adr_flex_value_set_id       := NULL;
46976 l_adr_value_type_code         := NULL;
46977 l_adr_value_combination_id    := NULL;
46978 l_adr_value_segment_code      := NULL;
46979 
46980 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
46981 l_bflow_class_code           := '';    -- 4219869 Business Flow
46982 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46983 l_budgetary_control_flag     := 'N';
46984 
46985 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46986 l_bflow_applied_to_amt       := NULL; -- 5132302
46987 l_entered_amt_idx            := NULL;          -- 4262811
46988 l_accted_amt_idx             := NULL;          -- 4262811
46989 l_acc_rev_flag               := NULL;          -- 4262811
46990 l_accrual_line_num           := NULL;          -- 4262811
46991 l_tmp_amt                    := NULL;          -- 4262811
46992 --
46993  
46994 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46995     l_balance_type_code <> 'B' THEN
46996 IF NVL(p_source_38,'
46997 ') <>  'CLEAR_CLEAR' AND 
46998 NVL(p_source_20,'
46999 ') =  'FREIGHT' AND 
47000 (NVL(p_source_39,'
47001 ') =  'CASH' OR 
47002 NVL(p_source_39,'
47003 ') =  'DISCOUNT') AND 
47004 NVL(p_source_60,'
47005 ') =  'R'
47006  THEN 
47007 
47008    --
47009    XLA_AE_LINES_PKG.SetNewLine;
47010 
47011    p_balance_type_code          := l_balance_type_code;
47012    -- set the flag so later we will know whether the gain loss line needs to be created
47013    
47014    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47015      p_actual_flag :='A';
47016    END IF;
47017 
47018    --
47019    -- bulk performance
47020    --
47021    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47022                                       p_header_num   => 0); -- 4262811
47023    --
47024    -- set accounting line options
47025    --
47029          , p_gl_transfer_mode_code      => 'S'
47026    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47027            p_natural_side_code          => 'D'
47028          , p_gain_or_loss_flag          => 'N'
47030          , p_acct_entry_type_code       => 'A'
47031          , p_switch_side_flag           => 'Y'
47032          , p_merge_duplicate_code       => 'A'
47033          );
47034    --
47035    l_acc_rev_natural_side_code := 'C';  -- 4262811
47036    -- 
47037    --
47038    -- set accounting line type info
47039    --
47040    xla_ae_lines_pkg.SetAcctLineType
47041       (p_component_type             => l_component_type
47042       ,p_event_type_code            => l_event_type_code
47043       ,p_line_definition_owner_code => l_line_definition_owner_code
47044       ,p_line_definition_code       => l_line_definition_code
47045       ,p_accounting_line_code       => l_component_code
47046       ,p_accounting_line_type_code  => l_component_type_code
47047       ,p_accounting_line_appl_id    => l_component_appl_id
47048       ,p_amb_context_code           => l_amb_context_code
47049       ,p_entity_code                => l_entity_code
47050       ,p_event_class_code           => l_event_class_code);
47051    --
47052    -- set accounting class
47053    --
47054    xla_ae_lines_pkg.SetAcctClass(
47055            p_accounting_class_code  => 'FREIGHT'
47056          , p_ae_header_id           => l_ae_header_id
47057          );
47058 
47059    --
47060    -- set rounding class
47061    --
47062    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47063                       'FREIGHT';
47064 
47065    --
47066    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47067    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47068    --
47069    -- bulk performance
47070    --
47071    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47072 
47073    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47074       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47075 
47076    -- 4955764
47077    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47078       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47079 
47080    -- 4458381 Public Sector Enh
47081    
47082    --
47083    -- set accounting attributes for the line type
47084    --
47085    l_entered_amt_idx := 9;
47086    l_accted_amt_idx  := 14;
47087    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
47088    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47089    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
47090    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
47091    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
47092    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47093    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
47094    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
47095    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
47096    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
47097    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
47098    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47099    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
47100    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
47101    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
47102    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
47103    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
47104    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
47105    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
47106    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
47107    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
47108    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
47109    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
47110    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
47111    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
47112    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
47113    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
47114    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
47115    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
47116    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
47117    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
47118    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
47119    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
47120    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
47121    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
47122    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
47123    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
47124    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
47125    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
47126    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
47127    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
47128    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
47132    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
47129    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
47130    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
47131    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
47133    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
47134 
47135    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47136    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47137 
47138    ---------------------------------------------------------------------------------------------------------------
47139    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47140    ---------------------------------------------------------------------------------------------------------------
47141    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47142 
47143    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47144    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47145 
47146    IF xla_accounting_cache_pkg.GetValueChar
47147          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47148          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47149    AND l_bflow_method_code = 'PRIOR_ENTRY'
47150 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47151    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47152          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47153        )
47154    THEN
47155          xla_ae_lines_pkg.BflowUpgEntry
47156            (p_business_method_code    => l_bflow_method_code
47157            ,p_business_class_code     => l_bflow_class_code
47158            ,p_balance_type            => l_balance_type_code);
47159    ELSE
47160       NULL;
47161 -- No business flow processing for business flow method of NONE.
47162    END IF;
47163 
47164    --
47165    -- call analytical criteria
47166    --
47167    
47168    --
47169    -- call description
47170    --
47171    -- No description or it is inherited.
47172    --
47173    -- call ADRs
47174    -- Bug 4922099
47175    --
47176    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47177         (NVL(l_actual_upg_option, 'N') = 'O') OR
47178         (NVL(l_enc_upg_option, 'N') = 'O')
47179       )
47180    THEN
47181    NULL;
47182    --
47183    --
47184    
47185   l_ccid := AcctDerRule_26(
47186            p_application_id           => p_application_id
47187          , p_ae_header_id             => l_ae_header_id 
47188 , p_source_17 => p_source_17
47189          , x_transaction_coa_id       => l_adr_transaction_coa_id
47190          , x_accounting_coa_id        => l_adr_accounting_coa_id
47191          , x_value_type_code          => l_adr_value_type_code
47192          , p_side                     => 'NA'
47193    );
47194 
47195    xla_ae_lines_pkg.set_ccid(
47196     p_code_combination_id          => l_ccid
47197   , p_value_type_code              => l_adr_value_type_code
47198   , p_transaction_coa_id           => l_adr_transaction_coa_id
47199   , p_accounting_coa_id            => l_adr_accounting_coa_id
47200   , p_adr_code                     => 'AP_INVOICE_DIST'
47201   , p_adr_type_code                => 'S'
47202   , p_component_type               => l_component_type
47203   , p_component_code               => l_component_code
47204   , p_component_type_code          => l_component_type_code
47205   , p_component_appl_id            => l_component_appl_id
47206   , p_amb_context_code             => l_amb_context_code
47207   , p_side                         => 'NA'
47208   );
47209 
47210 
47211    --
47212    --
47213    END IF;
47214    --
47215    -- Bug 4922099
47216    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47217           (NVL(l_enc_upg_option, 'N') = 'O')
47218         ) AND
47219         (l_bflow_method_code = 'PRIOR_ENTRY')
47220       )
47221    THEN
47222       IF
47223       --
47224       1 = 2
47225       --
47226       THEN
47227       xla_accounting_err_pkg.build_message
47228                                     (p_appli_s_name            => 'XLA'
47229                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47230                                     ,p_token_1                 => 'LINE_NUMBER'
47231                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47232                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47233                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47234                                                                              l_component_type
47235                                                                             ,l_component_code
47236                                                                             ,l_component_type_code
47237                                                                             ,l_component_appl_id
47238                                                                             ,l_amb_context_code
47239                                                                             ,l_entity_code
47240                                                                             ,l_event_class_code
47244                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47241                                                                            )
47242                                     ,p_token_3                 => 'OWNER'
47243                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47245                                                                           ,p_lookup_code    => l_component_type_code
47246                                                                          )
47247                                     ,p_token_4                 => 'PRODUCT_NAME'
47248                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47249                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47250                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47251                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47252                                     ,p_ae_header_id            =>  NULL
47253                                        );
47254 
47255         IF (C_LEVEL_ERROR>= g_log_level) THEN
47256                  trace
47257                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47258                       ,p_level    => C_LEVEL_ERROR
47259                       ,p_module   => l_log_module);
47260         END IF;
47261       END IF;
47262    END IF;
47263    --
47264    --
47265    ------------------------------------------------------------------------------------------------
47266    -- 4219869 Business Flow
47267    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47268    -- Prior Entry.  Currently, the following code is always generated.
47269    ------------------------------------------------------------------------------------------------
47270    XLA_AE_LINES_PKG.ValidateCurrentLine;
47271 
47272    ------------------------------------------------------------------------------------
47273    -- 4219869 Business Flow
47274    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47275    ------------------------------------------------------------------------------------
47276    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47277 
47278    ----------------------------------------------------------------------------------
47279    -- 4219869 Business Flow
47280    -- Update journal entry status -- Need to generate this within IF <condition>
47281    ----------------------------------------------------------------------------------
47282    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47283          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47284          ,p_balance_type_code => l_balance_type_code
47285          );
47286 
47287    -------------------------------------------------------------------------------------------
47288    -- 4262811 - Generate the Accrual Reversal lines
47289    -------------------------------------------------------------------------------------------
47290    BEGIN
47291       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47292                               (g_array_event(p_event_id).array_value_num('header_index'));
47293       IF l_acc_rev_flag IS NULL THEN
47294          l_acc_rev_flag := 'N';
47295       END IF;
47296    EXCEPTION
47297       WHEN OTHERS THEN
47298          l_acc_rev_flag := 'N';
47299    END;
47300    --
47301    IF (l_acc_rev_flag = 'Y') THEN
47302 
47303        -- 4645092  ------------------------------------------------------------------------------
47304        -- To allow MPA report to determine if it should generate report process
47305        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47306        ------------------------------------------------------------------------------------------
47307 
47308        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47309        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47310    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47311    -- call ADRs
47312    -- Bug 4922099
47313    --
47314    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47315         (NVL(l_actual_upg_option, 'N') = 'O') OR
47316         (NVL(l_enc_upg_option, 'N') = 'O')
47317       )
47318    THEN
47319    NULL;
47320    --
47321    --
47322    
47323   l_ccid := AcctDerRule_26(
47324            p_application_id           => p_application_id
47325          , p_ae_header_id             => l_ae_header_id 
47326 , p_source_17 => p_source_17
47327          , x_transaction_coa_id       => l_adr_transaction_coa_id
47328          , x_accounting_coa_id        => l_adr_accounting_coa_id
47329          , x_value_type_code          => l_adr_value_type_code
47330          , p_side                     => 'NA'
47331    );
47332 
47333    xla_ae_lines_pkg.set_ccid(
47334     p_code_combination_id          => l_ccid
47335   , p_value_type_code              => l_adr_value_type_code
47336   , p_transaction_coa_id           => l_adr_transaction_coa_id
47337   , p_accounting_coa_id            => l_adr_accounting_coa_id
47338   , p_adr_code                     => 'AP_INVOICE_DIST'
47339   , p_adr_type_code                => 'S'
47340   , p_component_type               => l_component_type
47341   , p_component_code               => l_component_code
47342   , p_component_type_code          => l_component_type_code
47343   , p_component_appl_id            => l_component_appl_id
47347 
47344   , p_amb_context_code             => l_amb_context_code
47345   , p_side                         => 'NA'
47346   );
47348 
47349    --
47350    --
47351    END IF;
47352 
47353        --
47354        -- Update the line information that should be overwritten
47355        --
47356        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47357                                          p_header_num   => 1);
47358        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47359 
47360        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47361 
47362        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47363           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47364        END IF;
47365 
47366       --
47367       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47368       --
47369       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47370           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47371       ELSE
47372           ---------------------------------------------------------------------------------------------------
47373           -- 4262811a Switch Sign
47374           ---------------------------------------------------------------------------------------------------
47375           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47376           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47377                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47378           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47379                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47380           -- 5132302
47381           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47382                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47383 
47384       END IF;
47385 
47386       -- 4955764
47387       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47388       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47389 
47390 
47391       XLA_AE_LINES_PKG.ValidateCurrentLine;
47392       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47393 
47394       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47395                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47396                ,p_balance_type_code => l_balance_type_code);
47397 
47398    END IF;
47399 
47400    -----------------------------------------------------------------------------------------
47401    -- 4262811 Multiperiod Accounting
47402    -----------------------------------------------------------------------------------------
47403      -- No MPA option is assigned.
47404 
47405 
47406 END IF;
47407 END IF;
47408 --
47409 
47410 --
47411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47412    trace
47413       (p_msg      => 'END of AcctLineType_95'
47414       ,p_level    => C_LEVEL_PROCEDURE
47415       ,p_module   => l_log_module);
47416 END IF;
47417 --
47418 EXCEPTION
47419   WHEN xla_exceptions_pkg.application_exception THEN
47420       RAISE;
47421   WHEN OTHERS THEN
47422        xla_exceptions_pkg.raise_message
47423            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_95');
47424 END AcctLineType_95;
47425 --
47426 
47427 ---------------------------------------
47428 --
47429 -- PRIVATE FUNCTION
47430 --         AcctLineType_96
47431 --
47432 ---------------------------------------
47433 PROCEDURE AcctLineType_96 (
47434   p_application_id        IN NUMBER
47435  ,p_event_id              IN NUMBER
47436  ,p_calculate_acctd_flag  IN VARCHAR2
47437  ,p_calculate_g_l_flag    IN VARCHAR2
47438  ,p_actual_flag           IN OUT VARCHAR2
47439  ,p_balance_type_code     OUT VARCHAR2
47440  ,p_gain_or_loss_ref      OUT VARCHAR2
47441  
47442 --Payment Distribution (Payment Rate) Ledger Amount
47443  , p_source_9            IN NUMBER
47444 --Invoice Distribution Type
47445  , p_source_20            IN VARCHAR2
47446  , p_source_20_meaning    IN VARCHAR2
47447 --When to Account for Payment Option
47448  , p_source_38            IN VARCHAR2
47449 --Payment Distribution Type
47450  , p_source_39            IN VARCHAR2
47451  , p_source_39_meaning    IN VARCHAR2
47452 --Accounting Reversal Indicator
47453  , p_source_40            IN VARCHAR2
47454 --Payment Distribution Amount
47455  , p_source_41            IN NUMBER
47456 --Business Flow Accounts Payable Application Identifier
47457  , p_source_42            IN NUMBER
47458 --Payment Distribution Identifier
47459  , p_source_47            IN NUMBER
47460 --Distribution Link Type
47461  , p_source_48            IN VARCHAR2
47462 --Payment Currency Code
47463  , p_source_49            IN VARCHAR2
47464 --Override Accounted Amount Indicator
47465  , p_source_53            IN VARCHAR2
47466  , p_source_53_meaning    IN VARCHAR2
47467 --Third Party Type
47468  , p_source_56            IN VARCHAR2
47472  , p_source_58            IN NUMBER
47469 --Payment Distribution Reversed Identifier
47470  , p_source_57            IN NUMBER
47471 --Invoice Distribution Tax Line Identifier
47473 --Invoice Distribution Summary Tax Line Identifier
47474  , p_source_59            IN NUMBER
47475 --Payment Type
47476  , p_source_60            IN VARCHAR2
47477  , p_source_60_meaning    IN VARCHAR2
47478 --Business Flow Invoice Distribution Type
47479  , p_source_62            IN VARCHAR2
47480 --Business Flow Invoice Entity Code
47481  , p_source_63            IN VARCHAR2
47482 --Business Flow Invoice Distribution Identifier
47483  , p_source_64            IN NUMBER
47484 --Business Flow Invoice Identifier
47485  , p_source_65            IN NUMBER
47486 --Invoice Distribution Tax Distribution Identifier from Tax
47487  , p_source_66            IN NUMBER
47488 --Invoice Type Paid
47489  , p_source_101            IN VARCHAR2
47490  , p_source_101_meaning    IN VARCHAR2
47491 --Purchasing Encumbrance Option
47492  , p_source_102            IN VARCHAR2
47493  , p_source_102_meaning    IN VARCHAR2
47494 --Invoice Encumbered Option
47495  , p_source_104            IN VARCHAR2
47496  , p_source_104_meaning    IN VARCHAR2
47497 )
47498 IS
47499 
47500 l_component_type              VARCHAR2(80);
47501 l_component_code              VARCHAR2(30);
47502 l_component_type_code         VARCHAR2(1);
47503 l_component_appl_id           INTEGER;
47504 l_amb_context_code            VARCHAR2(30);
47505 l_entity_code                 VARCHAR2(30);
47506 l_event_class_code            VARCHAR2(30);
47507 l_ae_header_id                NUMBER;
47508 l_event_type_code             VARCHAR2(30);
47509 l_line_definition_code        VARCHAR2(30);
47510 l_line_definition_owner_code  VARCHAR2(1);
47511 --
47512 -- adr variables
47513 l_segment                     VARCHAR2(30);
47514 l_ccid                        NUMBER;
47515 l_adr_transaction_coa_id      NUMBER;
47516 l_adr_accounting_coa_id       NUMBER;
47517 l_adr_flexfield_segment_code  VARCHAR2(30);
47518 l_adr_flex_value_set_id       NUMBER;
47519 l_adr_value_type_code         VARCHAR2(30);
47520 l_adr_value_combination_id    NUMBER;
47521 l_adr_value_segment_code      VARCHAR2(30);
47522 
47523 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
47524 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
47525 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
47526 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
47527 
47528 -- 4262811 Variables ------------------------------------------------------------------------------------------
47529 l_entered_amt_idx             NUMBER;
47530 l_accted_amt_idx              NUMBER;
47531 l_acc_rev_flag                VARCHAR2(1);
47532 l_accrual_line_num            NUMBER;
47533 l_tmp_amt                     NUMBER;
47534 l_acc_rev_natural_side_code   VARCHAR2(1);
47535 
47536 l_num_entries                 NUMBER;
47537 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
47538 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
47539 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
47540 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
47541 l_recog_line_1                NUMBER;
47542 l_recog_line_2                NUMBER;
47543 
47544 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
47545 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
47546 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
47547 
47548 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47549 
47550 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
47551 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
47552 
47553 ---------------------------------------------------------------------------------------------------------------
47554 
47555 
47556 --
47557 -- bulk performance
47558 --
47559 l_balance_type_code           VARCHAR2(1);
47560 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
47561 l_log_module                  VARCHAR2(240);
47562 
47563 --
47564 -- Upgrade strategy
47565 --
47566 l_actual_upg_option           VARCHAR2(1);
47567 l_enc_upg_option           VARCHAR2(1);
47568 
47569 --
47570 BEGIN
47571 --
47572 IF g_log_enabled THEN
47573       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
47574 END IF;
47575 --
47576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47577 
47578       trace
47579          (p_msg      => 'BEGIN of AcctLineType_96'
47580          ,p_level    => C_LEVEL_PROCEDURE
47581          ,p_module   => l_log_module);
47582 
47583 END IF;
47584 --
47585 l_component_type             := 'AMB_JLT';
47586 l_component_code             := 'AP_FREIGHT_EXPENSE_REF_ENC';
47587 l_component_type_code        := 'S';
47588 l_component_appl_id          :=  200;
47589 l_amb_context_code           := 'DEFAULT';
47590 l_entity_code                := 'AP_PAYMENTS';
47591 l_event_class_code           := 'REFUNDS';
47592 l_event_type_code            := 'REFUNDS_ALL';
47593 l_line_definition_owner_code := 'S';
47594 l_line_definition_code       := 'ENC_REFUNDS_ALL';
47595 --
47596 l_balance_type_code          := 'E';
47597 l_segment                     := NULL;
47598 l_ccid                        := NULL;
47599 l_adr_transaction_coa_id      := NULL;
47600 l_adr_accounting_coa_id       := NULL;
47604 l_adr_value_combination_id    := NULL;
47601 l_adr_flexfield_segment_code  := NULL;
47602 l_adr_flex_value_set_id       := NULL;
47603 l_adr_value_type_code         := NULL;
47605 l_adr_value_segment_code      := NULL;
47606 
47607 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
47608 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
47609 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
47610 l_budgetary_control_flag     := 'N';
47611 
47612 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
47613 l_bflow_applied_to_amt       := NULL; -- 5132302
47614 l_entered_amt_idx            := NULL;          -- 4262811
47615 l_accted_amt_idx             := NULL;          -- 4262811
47616 l_acc_rev_flag               := NULL;          -- 4262811
47617 l_accrual_line_num           := NULL;          -- 4262811
47618 l_tmp_amt                    := NULL;          -- 4262811
47619 --
47620  
47621 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47622     l_balance_type_code <> 'B' THEN
47623 IF NVL(p_source_38,'
47624 ') <>  'CLEAR_CLEAR' AND 
47625 NVL(p_source_20,'
47626 ') =  'FREIGHT' AND 
47627 NVL(p_source_101,'
47628 ') <>  'INTEREST' AND 
47629 (NVL(p_source_39,'
47630 ') =  'CASH' OR 
47631 NVL(p_source_39,'
47632 ') =  'DISCOUNT') AND 
47633 NVL(p_source_60,'
47634 ') =  'R' AND 
47635 NVL(p_source_102,'
47636 ') =  'Y' AND 
47637 NVL(p_source_104,'
47638 ') =  'Y'
47639  THEN 
47640 
47641    --
47642    XLA_AE_LINES_PKG.SetNewLine;
47643 
47644    p_balance_type_code          := l_balance_type_code;
47645    -- set the flag so later we will know whether the gain loss line needs to be created
47646    
47647    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47648      p_actual_flag :='A';
47649    END IF;
47650 
47651    --
47652    -- bulk performance
47653    --
47654    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47655                                       p_header_num   => 0); -- 4262811
47656    --
47657    -- set accounting line options
47658    --
47659    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47660            p_natural_side_code          => 'D'
47661          , p_gain_or_loss_flag          => 'N'
47662          , p_gl_transfer_mode_code      => 'S'
47663          , p_acct_entry_type_code       => 'E'
47664          , p_switch_side_flag           => 'Y'
47665          , p_merge_duplicate_code       => 'A'
47666          );
47667    --
47668    l_acc_rev_natural_side_code := 'C';  -- 4262811
47669    -- 
47670    --
47671    -- set accounting line type info
47672    --
47673    xla_ae_lines_pkg.SetAcctLineType
47674       (p_component_type             => l_component_type
47675       ,p_event_type_code            => l_event_type_code
47676       ,p_line_definition_owner_code => l_line_definition_owner_code
47677       ,p_line_definition_code       => l_line_definition_code
47678       ,p_accounting_line_code       => l_component_code
47679       ,p_accounting_line_type_code  => l_component_type_code
47680       ,p_accounting_line_appl_id    => l_component_appl_id
47681       ,p_amb_context_code           => l_amb_context_code
47682       ,p_entity_code                => l_entity_code
47683       ,p_event_class_code           => l_event_class_code);
47684    --
47685    -- set accounting class
47686    --
47687    xla_ae_lines_pkg.SetAcctClass(
47688            p_accounting_class_code  => 'FREIGHT'
47689          , p_ae_header_id           => l_ae_header_id
47690          );
47691 
47692    --
47693    -- set rounding class
47694    --
47695    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47696                       'FREIGHT';
47697 
47698    --
47699    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47700    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47701    --
47702    -- bulk performance
47703    --
47704    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47705 
47706    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47707       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47708 
47709    -- 4955764
47710    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47711       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47712 
47713    -- 4458381 Public Sector Enh
47714    
47715    --
47716    -- set accounting attributes for the line type
47717    --
47718    l_entered_amt_idx := 9;
47719    l_accted_amt_idx  := 11;
47720    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
47721    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47722    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
47723    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
47724    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
47725    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47726    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
47727    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
47728    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
47732    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
47729    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
47730    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
47731    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47733    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
47734    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
47735    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
47736    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
47737    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
47738    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
47739    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
47740    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
47741    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
47742    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
47743    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
47744    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
47745    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
47746    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
47747    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
47748    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
47749    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
47750    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
47751    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
47752    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
47753    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
47754    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
47755    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
47756    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
47757 
47758    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47759    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47760 
47761    ---------------------------------------------------------------------------------------------------------------
47762    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47763    ---------------------------------------------------------------------------------------------------------------
47764    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47765 
47766    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47767    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47768 
47769    IF xla_accounting_cache_pkg.GetValueChar
47770          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47771          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47772    AND l_bflow_method_code = 'PRIOR_ENTRY'
47773 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47774    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47775          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47776        )
47777    THEN
47778          xla_ae_lines_pkg.BflowUpgEntry
47779            (p_business_method_code    => l_bflow_method_code
47780            ,p_business_class_code     => l_bflow_class_code
47781            ,p_balance_type            => l_balance_type_code);
47782    ELSE
47783       NULL;
47784 XLA_AE_LINES_PKG.business_flow_validation(
47785                                 p_business_method_code     => l_bflow_method_code
47786                                ,p_business_class_code      => l_bflow_class_code
47787                                ,p_inherit_description_flag => l_inherit_desc_flag);
47788    END IF;
47789 
47790    --
47791    -- call analytical criteria
47792    --
47793    -- Inherited Analytical Criteria for business flow method of Prior Entry.
47794    --
47795    -- call description
47796    --
47797    -- No description or it is inherited.
47798    --
47799    -- call ADRs
47800    -- Bug 4922099
47801    --
47802    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47803         (NVL(l_actual_upg_option, 'N') = 'O') OR
47804         (NVL(l_enc_upg_option, 'N') = 'O')
47805       )
47806    THEN
47807    NULL;
47808    --
47809    --
47810    
47811    --
47812    --
47813    END IF;
47814    --
47815    -- Bug 4922099
47816    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47817           (NVL(l_enc_upg_option, 'N') = 'O')
47818         ) AND
47819         (l_bflow_method_code = 'PRIOR_ENTRY')
47820       )
47821    THEN
47822       IF
47823       --
47824       1 = 1
47825       --
47826       THEN
47827       xla_accounting_err_pkg.build_message
47828                                     (p_appli_s_name            => 'XLA'
47829                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47830                                     ,p_token_1                 => 'LINE_NUMBER'
47831                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47832                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47833                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47834                                                                              l_component_type
47838                                                                             ,l_amb_context_code
47835                                                                             ,l_component_code
47836                                                                             ,l_component_type_code
47837                                                                             ,l_component_appl_id
47839                                                                             ,l_entity_code
47840                                                                             ,l_event_class_code
47841                                                                            )
47842                                     ,p_token_3                 => 'OWNER'
47843                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47844                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47845                                                                           ,p_lookup_code    => l_component_type_code
47846                                                                          )
47847                                     ,p_token_4                 => 'PRODUCT_NAME'
47848                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47849                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47850                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47851                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47852                                     ,p_ae_header_id            =>  NULL
47853                                        );
47854 
47855         IF (C_LEVEL_ERROR>= g_log_level) THEN
47856                  trace
47857                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47858                       ,p_level    => C_LEVEL_ERROR
47859                       ,p_module   => l_log_module);
47860         END IF;
47861       END IF;
47862    END IF;
47863    --
47864    --
47865    ------------------------------------------------------------------------------------------------
47866    -- 4219869 Business Flow
47867    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47868    -- Prior Entry.  Currently, the following code is always generated.
47869    ------------------------------------------------------------------------------------------------
47870    -- No ValidateCurrentLine for business flow method of Prior Entry
47871 
47872    ------------------------------------------------------------------------------------
47873    -- 4219869 Business Flow
47874    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47875    ------------------------------------------------------------------------------------
47876    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47877 
47878    ----------------------------------------------------------------------------------
47879    -- 4219869 Business Flow
47880    -- Update journal entry status -- Need to generate this within IF <condition>
47881    ----------------------------------------------------------------------------------
47882    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47883          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47884          ,p_balance_type_code => l_balance_type_code
47885          );
47886 
47887    -------------------------------------------------------------------------------------------
47888    -- 4262811 - Generate the Accrual Reversal lines
47889    -------------------------------------------------------------------------------------------
47890    BEGIN
47891       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47892                               (g_array_event(p_event_id).array_value_num('header_index'));
47893       IF l_acc_rev_flag IS NULL THEN
47894          l_acc_rev_flag := 'N';
47895       END IF;
47896    EXCEPTION
47897       WHEN OTHERS THEN
47898          l_acc_rev_flag := 'N';
47899    END;
47900    --
47901    IF (l_acc_rev_flag = 'Y') THEN
47902 
47903        -- 4645092  ------------------------------------------------------------------------------
47904        -- To allow MPA report to determine if it should generate report process
47905        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47906        ------------------------------------------------------------------------------------------
47907 
47908        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47909        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47910    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47911    -- call ADRs
47912    -- Bug 4922099
47913    --
47914    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47915         (NVL(l_actual_upg_option, 'N') = 'O') OR
47916         (NVL(l_enc_upg_option, 'N') = 'O')
47917       )
47918    THEN
47919    NULL;
47920    --
47921    --
47922    
47923    --
47924    --
47925    END IF;
47926 
47927        --
47928        -- Update the line information that should be overwritten
47929        --
47930        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47931                                          p_header_num   => 1);
47932        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47933 
47937           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47934        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47935 
47936        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47938        END IF;
47939 
47940       --
47941       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47942       --
47943       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47944           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47945       ELSE
47946           ---------------------------------------------------------------------------------------------------
47947           -- 4262811a Switch Sign
47948           ---------------------------------------------------------------------------------------------------
47949           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47950           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47951                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47952           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47953                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47954           -- 5132302
47955           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47956                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47957 
47958       END IF;
47959 
47960       -- 4955764
47961       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47962       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47963 
47964 
47965       XLA_AE_LINES_PKG.ValidateCurrentLine;
47966       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47967 
47968       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47969                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47970                ,p_balance_type_code => l_balance_type_code);
47971 
47972    END IF;
47973 
47974    -----------------------------------------------------------------------------------------
47975    -- 4262811 Multiperiod Accounting
47976    -----------------------------------------------------------------------------------------
47977      -- No MPA option is assigned.
47978 
47979 
47980 END IF;
47981 END IF;
47982 --
47983 
47984 --
47985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47986    trace
47987       (p_msg      => 'END of AcctLineType_96'
47988       ,p_level    => C_LEVEL_PROCEDURE
47989       ,p_module   => l_log_module);
47990 END IF;
47991 --
47992 EXCEPTION
47993   WHEN xla_exceptions_pkg.application_exception THEN
47994       RAISE;
47995   WHEN OTHERS THEN
47996        xla_exceptions_pkg.raise_message
47997            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_96');
47998 END AcctLineType_96;
47999 --
48000 
48001 ---------------------------------------
48002 --
48003 -- PRIVATE FUNCTION
48004 --         AcctLineType_97
48005 --
48006 ---------------------------------------
48007 PROCEDURE AcctLineType_97 (
48008   p_application_id        IN NUMBER
48009  ,p_event_id              IN NUMBER
48010  ,p_calculate_acctd_flag  IN VARCHAR2
48011  ,p_calculate_g_l_flag    IN VARCHAR2
48012  ,p_actual_flag           IN OUT VARCHAR2
48013  ,p_balance_type_code     OUT VARCHAR2
48014  ,p_gain_or_loss_ref      OUT VARCHAR2
48015  
48016 --Recipient Invoice Distribution Account
48017  , p_source_36            IN NUMBER
48018 --When to Account for Payment Option
48019  , p_source_38            IN VARCHAR2
48020 --Accounting Reversal Indicator
48021  , p_source_40            IN VARCHAR2
48022 --Business Flow Accounts Payable Application Identifier
48023  , p_source_42            IN NUMBER
48024 --Distribution Link Type
48025  , p_source_48            IN VARCHAR2
48026 --Override Accounted Amount Indicator
48027  , p_source_53            IN VARCHAR2
48028  , p_source_53_meaning    IN VARCHAR2
48029 --Third Party Type
48030  , p_source_56            IN VARCHAR2
48031 --Invoice Distribution Tax Line Identifier
48032  , p_source_58            IN NUMBER
48033 --Invoice Distribution Summary Tax Line Identifier
48034  , p_source_59            IN NUMBER
48035 --Invoice Distribution Tax Distribution Identifier from Tax
48036  , p_source_66            IN NUMBER
48037 --Prepayment Distribution Type
48038  , p_source_67            IN VARCHAR2
48039 --Recipient Invoice Distribution Type
48040  , p_source_68            IN VARCHAR2
48041  , p_source_68_meaning    IN VARCHAR2
48042 --Prepayment Application Distribution Identifier
48043  , p_source_71            IN NUMBER
48044 --Invoice Identifier
48045  , p_source_72            IN NUMBER
48046 --Business Flow Prepayment Invoice Distribution Type
48047  , p_source_73            IN VARCHAR2
48048 --Business Flow Prepayment Invoice Entity Code
48049  , p_source_74            IN VARCHAR2
48050 --Business Flow Prepayment Invoice Distribution Identifier
48051  , p_source_75            IN NUMBER
48052 --Business Flow Prepayment Invoice Identifier
48053  , p_source_76            IN NUMBER
48054 --Upgrade Encumbrance Credit Account Class
48055  , p_source_77            IN VARCHAR2
48059  , p_source_79            IN NUMBER
48056 --Payables Encumbrance Upgrade Credit Account
48057  , p_source_78            IN NUMBER
48058 --Payables Encumbrance Upgrade Credit Amount
48060 --Invoice Currency Code
48061  , p_source_80            IN VARCHAR2
48062 --Payables Encumbrance Upgrade Credit Base Amount
48063  , p_source_81            IN NUMBER
48064 --Upgrade Encumbrance Debit Account Class
48065  , p_source_82            IN VARCHAR2
48066 --Payables Encumbrance Upgrade Debit Account
48067  , p_source_83            IN NUMBER
48068 --Payables Encumbrance Upgrade Debit Amount
48069  , p_source_84            IN NUMBER
48070 --Payables Encumbrance Upgrade Debit Base Amount
48071  , p_source_85            IN NUMBER
48072 --Payables Encumbrance Upgrade Option
48073  , p_source_86            IN VARCHAR2
48074 --Prepayment Distribution Amount
48075  , p_source_87            IN NUMBER
48076 --Prepayment Clearing Currency Code
48077  , p_source_88            IN VARCHAR2
48078 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
48079  , p_source_89            IN NUMBER
48080 --Deferred Accounting End Date
48081  , p_source_90            IN DATE
48082 --Deferred Accounting Option
48083  , p_source_91            IN VARCHAR2
48084 --Deferred Accounting Start Date
48085  , p_source_92            IN DATE
48086 --Invoice Supplier Identifier
48087  , p_source_93            IN NUMBER
48088 --Invoice Supplier Site Identifier
48089  , p_source_94            IN NUMBER
48090 --Identifier of the Prepayment Application Reversed
48091  , p_source_95            IN NUMBER
48092 --Payables Upgrade Credit Encumbrance Type Identifier
48093  , p_source_96            IN NUMBER
48094 --Payables Upgrade Debit Encumbrance Type Identifier
48095  , p_source_97            IN NUMBER
48096 --Prepayment Clearing Exchange Date
48097  , p_source_118            IN DATE
48098 --Prepayment Clearing Exchange Rate
48099  , p_source_119            IN NUMBER
48100 --Prepayment Clearing Exchange Rate Type
48101  , p_source_120            IN VARCHAR2
48102 )
48103 IS
48104 
48105 l_component_type              VARCHAR2(80);
48106 l_component_code              VARCHAR2(30);
48107 l_component_type_code         VARCHAR2(1);
48108 l_component_appl_id           INTEGER;
48109 l_amb_context_code            VARCHAR2(30);
48110 l_entity_code                 VARCHAR2(30);
48111 l_event_class_code            VARCHAR2(30);
48112 l_ae_header_id                NUMBER;
48113 l_event_type_code             VARCHAR2(30);
48114 l_line_definition_code        VARCHAR2(30);
48115 l_line_definition_owner_code  VARCHAR2(1);
48116 --
48117 -- adr variables
48118 l_segment                     VARCHAR2(30);
48119 l_ccid                        NUMBER;
48120 l_adr_transaction_coa_id      NUMBER;
48121 l_adr_accounting_coa_id       NUMBER;
48122 l_adr_flexfield_segment_code  VARCHAR2(30);
48123 l_adr_flex_value_set_id       NUMBER;
48124 l_adr_value_type_code         VARCHAR2(30);
48125 l_adr_value_combination_id    NUMBER;
48126 l_adr_value_segment_code      VARCHAR2(30);
48127 
48128 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48129 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48130 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48131 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48132 
48133 -- 4262811 Variables ------------------------------------------------------------------------------------------
48134 l_entered_amt_idx             NUMBER;
48135 l_accted_amt_idx              NUMBER;
48136 l_acc_rev_flag                VARCHAR2(1);
48137 l_accrual_line_num            NUMBER;
48138 l_tmp_amt                     NUMBER;
48139 l_acc_rev_natural_side_code   VARCHAR2(1);
48140 
48141 l_num_entries                 NUMBER;
48142 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48143 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48144 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48145 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48146 l_recog_line_1                NUMBER;
48147 l_recog_line_2                NUMBER;
48148 
48149 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48150 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48151 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48152 
48153 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48154 
48155 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48156 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48157 
48158 ---------------------------------------------------------------------------------------------------------------
48159 
48160 
48161 --
48162 -- bulk performance
48163 --
48164 l_balance_type_code           VARCHAR2(1);
48165 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48166 l_log_module                  VARCHAR2(240);
48167 
48168 --
48169 -- Upgrade strategy
48170 --
48171 l_actual_upg_option           VARCHAR2(1);
48172 l_enc_upg_option           VARCHAR2(1);
48173 
48174 --
48175 BEGIN
48176 --
48177 IF g_log_enabled THEN
48178       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
48179 END IF;
48180 --
48181 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48182 
48183       trace
48184          (p_msg      => 'BEGIN of AcctLineType_97'
48188 END IF;
48185          ,p_level    => C_LEVEL_PROCEDURE
48186          ,p_module   => l_log_module);
48187 
48189 --
48190 l_component_type             := 'AMB_JLT';
48191 l_component_code             := 'AP_FREIGHT_PREPAY_CLR_RATE_APP';
48192 l_component_type_code        := 'S';
48193 l_component_appl_id          :=  200;
48194 l_amb_context_code           := 'DEFAULT';
48195 l_entity_code                := 'AP_INVOICES';
48196 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
48197 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
48198 l_line_definition_owner_code := 'S';
48199 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
48200 --
48201 l_balance_type_code          := 'A';
48202 l_segment                     := NULL;
48203 l_ccid                        := NULL;
48204 l_adr_transaction_coa_id      := NULL;
48205 l_adr_accounting_coa_id       := NULL;
48206 l_adr_flexfield_segment_code  := NULL;
48207 l_adr_flex_value_set_id       := NULL;
48208 l_adr_value_type_code         := NULL;
48209 l_adr_value_combination_id    := NULL;
48210 l_adr_value_segment_code      := NULL;
48211 
48212 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48213 l_bflow_class_code           := '';    -- 4219869 Business Flow
48214 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48215 l_budgetary_control_flag     := 'N';
48216 
48217 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48218 l_bflow_applied_to_amt       := NULL; -- 5132302
48219 l_entered_amt_idx            := NULL;          -- 4262811
48220 l_accted_amt_idx             := NULL;          -- 4262811
48221 l_acc_rev_flag               := NULL;          -- 4262811
48222 l_accrual_line_num           := NULL;          -- 4262811
48223 l_tmp_amt                    := NULL;          -- 4262811
48224 --
48225  
48226 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48227     l_balance_type_code <> 'B' THEN
48228 IF NVL(p_source_38,'
48229 ') =  'CLEAR_CLEAR' AND 
48230 (NVL(p_source_67,'
48231 ') =  'PREPAY APPL' OR 
48232 NVL(p_source_67,'
48233 ') =  'PREPAY APPL NONREC TAX' OR 
48234 NVL(p_source_67,'
48235 ') =  'PREPAY APPL REC TAX') AND 
48236 NVL(p_source_68,'
48237 ') =  'FREIGHT'
48238  THEN 
48239 
48240    --
48241    XLA_AE_LINES_PKG.SetNewLine;
48242 
48243    p_balance_type_code          := l_balance_type_code;
48244    -- set the flag so later we will know whether the gain loss line needs to be created
48245    
48246    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48247      p_actual_flag :='A';
48248    END IF;
48249 
48250    --
48251    -- bulk performance
48252    --
48253    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48254                                       p_header_num   => 0); -- 4262811
48255    --
48256    -- set accounting line options
48257    --
48258    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48259            p_natural_side_code          => 'C'
48260          , p_gain_or_loss_flag          => 'N'
48261          , p_gl_transfer_mode_code      => 'S'
48262          , p_acct_entry_type_code       => 'A'
48263          , p_switch_side_flag           => 'Y'
48264          , p_merge_duplicate_code       => 'A'
48265          );
48266    --
48267    l_acc_rev_natural_side_code := 'D';  -- 4262811
48268    -- 
48269    --
48270    -- set accounting line type info
48271    --
48272    xla_ae_lines_pkg.SetAcctLineType
48273       (p_component_type             => l_component_type
48274       ,p_event_type_code            => l_event_type_code
48275       ,p_line_definition_owner_code => l_line_definition_owner_code
48276       ,p_line_definition_code       => l_line_definition_code
48277       ,p_accounting_line_code       => l_component_code
48278       ,p_accounting_line_type_code  => l_component_type_code
48279       ,p_accounting_line_appl_id    => l_component_appl_id
48280       ,p_amb_context_code           => l_amb_context_code
48281       ,p_entity_code                => l_entity_code
48282       ,p_event_class_code           => l_event_class_code);
48283    --
48284    -- set accounting class
48285    --
48286    xla_ae_lines_pkg.SetAcctClass(
48287            p_accounting_class_code  => 'FREIGHT'
48288          , p_ae_header_id           => l_ae_header_id
48289          );
48290 
48291    --
48292    -- set rounding class
48293    --
48294    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48295                       'FREIGHT';
48296 
48297    --
48298    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48299    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48300    --
48301    -- bulk performance
48302    --
48303    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48304 
48305    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48306       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48307 
48308    -- 4955764
48309    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48310       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48311 
48312    -- 4458381 Public Sector Enh
48313    
48314    --
48318    l_accted_amt_idx  := 30;
48315    -- set accounting attributes for the line type
48316    --
48317    l_entered_amt_idx := 25;
48319    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
48320    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48321    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
48322    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
48323    l_rec_acct_attrs.array_num_value(2)  := 
48324 xla_ae_sources_pkg.GetSystemSourceNum(
48325    p_source_code           => 'XLA_EVENT_APPL_ID'
48326  , p_source_type_code      => 'Y'
48327  , p_source_application_id =>  602
48328 );
48329    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
48330    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
48331    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
48332    l_rec_acct_attrs.array_char_value(4)  := 
48333 xla_ae_sources_pkg.GetSystemSourceChar(
48334    p_source_code           => 'XLA_ENTITY_CODE'
48335  , p_source_type_code      => 'Y'
48336  , p_source_application_id =>  602
48337 );
48338    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
48339    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
48340    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
48341    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
48342    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
48343    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
48344    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48345    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
48346    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
48347    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
48348    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
48349    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
48350    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48351    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
48352    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
48353    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
48354    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
48355    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
48356    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
48357    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
48358    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
48359    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
48360    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
48361    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
48362    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
48363    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
48364    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
48365    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
48366    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
48367    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
48368    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
48369    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
48370    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
48371    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
48372    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
48373    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
48374    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
48375    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
48376    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
48377    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
48378    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
48379    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
48380    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
48381    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
48382    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
48383    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
48384    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
48385    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
48386    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
48387    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
48388    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
48389    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
48390    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
48391    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
48392    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
48393    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
48394    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
48395    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
48396    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
48397    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
48398    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
48399    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
48400    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
48401    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
48402    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
48403    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
48404    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
48408    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
48405    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
48406    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
48407    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
48409    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
48410    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
48411    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
48412    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
48413    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
48414    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
48415    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
48416    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
48417    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
48418 
48419    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48420    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48421 
48422    ---------------------------------------------------------------------------------------------------------------
48423    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48424    ---------------------------------------------------------------------------------------------------------------
48425    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48426 
48427    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48428    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48429 
48430    IF xla_accounting_cache_pkg.GetValueChar
48431          (p_source_code         => 'LEDGER_CATEGORY_CODE'
48432          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48433    AND l_bflow_method_code = 'PRIOR_ENTRY'
48434 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48435    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48436          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48437        )
48438    THEN
48439          xla_ae_lines_pkg.BflowUpgEntry
48440            (p_business_method_code    => l_bflow_method_code
48441            ,p_business_class_code     => l_bflow_class_code
48442            ,p_balance_type            => l_balance_type_code);
48443    ELSE
48444       NULL;
48445 -- No business flow processing for business flow method of NONE.
48446    END IF;
48447 
48448    --
48449    -- call analytical criteria
48450    --
48451    
48452    --
48453    -- call description
48454    --
48455    -- No description or it is inherited.
48456    --
48457    -- call ADRs
48458    -- Bug 4922099
48459    --
48460    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48461         (NVL(l_actual_upg_option, 'N') = 'O') OR
48462         (NVL(l_enc_upg_option, 'N') = 'O')
48463       )
48464    THEN
48465    NULL;
48466    --
48467    --
48468    
48469   l_ccid := AcctDerRule_33(
48470            p_application_id           => p_application_id
48471          , p_ae_header_id             => l_ae_header_id 
48472 , p_source_36 => p_source_36
48473          , x_transaction_coa_id       => l_adr_transaction_coa_id
48474          , x_accounting_coa_id        => l_adr_accounting_coa_id
48475          , x_value_type_code          => l_adr_value_type_code
48476          , p_side                     => 'NA'
48477    );
48478 
48479    xla_ae_lines_pkg.set_ccid(
48480     p_code_combination_id          => l_ccid
48481   , p_value_type_code              => l_adr_value_type_code
48482   , p_transaction_coa_id           => l_adr_transaction_coa_id
48483   , p_accounting_coa_id            => l_adr_accounting_coa_id
48484   , p_adr_code                     => 'AP_RECP_INV_DIST'
48485   , p_adr_type_code                => 'S'
48486   , p_component_type               => l_component_type
48487   , p_component_code               => l_component_code
48488   , p_component_type_code          => l_component_type_code
48489   , p_component_appl_id            => l_component_appl_id
48490   , p_amb_context_code             => l_amb_context_code
48491   , p_side                         => 'NA'
48492   );
48493 
48494 
48495    --
48496    --
48497    END IF;
48498    --
48499    -- Bug 4922099
48500    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48501           (NVL(l_enc_upg_option, 'N') = 'O')
48502         ) AND
48503         (l_bflow_method_code = 'PRIOR_ENTRY')
48504       )
48505    THEN
48506       IF
48507       --
48508       1 = 2
48509       --
48510       THEN
48511       xla_accounting_err_pkg.build_message
48512                                     (p_appli_s_name            => 'XLA'
48513                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48514                                     ,p_token_1                 => 'LINE_NUMBER'
48515                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
48516                                     ,p_token_2                 => 'LINE_TYPE_NAME'
48517                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
48518                                                                              l_component_type
48522                                                                             ,l_amb_context_code
48519                                                                             ,l_component_code
48520                                                                             ,l_component_type_code
48521                                                                             ,l_component_appl_id
48523                                                                             ,l_entity_code
48524                                                                             ,l_event_class_code
48525                                                                            )
48526                                     ,p_token_3                 => 'OWNER'
48527                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
48528                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
48529                                                                           ,p_lookup_code    => l_component_type_code
48530                                                                          )
48531                                     ,p_token_4                 => 'PRODUCT_NAME'
48532                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48533                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48534                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48535                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48536                                     ,p_ae_header_id            =>  NULL
48537                                        );
48538 
48539         IF (C_LEVEL_ERROR>= g_log_level) THEN
48540                  trace
48541                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48542                       ,p_level    => C_LEVEL_ERROR
48543                       ,p_module   => l_log_module);
48544         END IF;
48545       END IF;
48546    END IF;
48547    --
48548    --
48549    ------------------------------------------------------------------------------------------------
48550    -- 4219869 Business Flow
48551    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48552    -- Prior Entry.  Currently, the following code is always generated.
48553    ------------------------------------------------------------------------------------------------
48554    XLA_AE_LINES_PKG.ValidateCurrentLine;
48555 
48556    ------------------------------------------------------------------------------------
48557    -- 4219869 Business Flow
48558    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48559    ------------------------------------------------------------------------------------
48560    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48561 
48562    ----------------------------------------------------------------------------------
48563    -- 4219869 Business Flow
48564    -- Update journal entry status -- Need to generate this within IF <condition>
48565    ----------------------------------------------------------------------------------
48566    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48567          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48568          ,p_balance_type_code => l_balance_type_code
48569          );
48570 
48571    -------------------------------------------------------------------------------------------
48572    -- 4262811 - Generate the Accrual Reversal lines
48573    -------------------------------------------------------------------------------------------
48574    BEGIN
48575       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48576                               (g_array_event(p_event_id).array_value_num('header_index'));
48577       IF l_acc_rev_flag IS NULL THEN
48578          l_acc_rev_flag := 'N';
48579       END IF;
48580    EXCEPTION
48581       WHEN OTHERS THEN
48582          l_acc_rev_flag := 'N';
48583    END;
48584    --
48585    IF (l_acc_rev_flag = 'Y') THEN
48586 
48587        -- 4645092  ------------------------------------------------------------------------------
48588        -- To allow MPA report to determine if it should generate report process
48589        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48590        ------------------------------------------------------------------------------------------
48591 
48592        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48593        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48594    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
48595    -- call ADRs
48596    -- Bug 4922099
48597    --
48598    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48599         (NVL(l_actual_upg_option, 'N') = 'O') OR
48600         (NVL(l_enc_upg_option, 'N') = 'O')
48601       )
48602    THEN
48603    NULL;
48604    --
48605    --
48606    
48607   l_ccid := AcctDerRule_33(
48608            p_application_id           => p_application_id
48609          , p_ae_header_id             => l_ae_header_id 
48610 , p_source_36 => p_source_36
48611          , x_transaction_coa_id       => l_adr_transaction_coa_id
48612          , x_accounting_coa_id        => l_adr_accounting_coa_id
48613          , x_value_type_code          => l_adr_value_type_code
48614          , p_side                     => 'NA'
48615    );
48616 
48620   , p_transaction_coa_id           => l_adr_transaction_coa_id
48617    xla_ae_lines_pkg.set_ccid(
48618     p_code_combination_id          => l_ccid
48619   , p_value_type_code              => l_adr_value_type_code
48621   , p_accounting_coa_id            => l_adr_accounting_coa_id
48622   , p_adr_code                     => 'AP_RECP_INV_DIST'
48623   , p_adr_type_code                => 'S'
48624   , p_component_type               => l_component_type
48625   , p_component_code               => l_component_code
48626   , p_component_type_code          => l_component_type_code
48627   , p_component_appl_id            => l_component_appl_id
48628   , p_amb_context_code             => l_amb_context_code
48629   , p_side                         => 'NA'
48630   );
48631 
48632 
48633    --
48634    --
48635    END IF;
48636 
48637        --
48638        -- Update the line information that should be overwritten
48639        --
48640        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48641                                          p_header_num   => 1);
48642        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
48643 
48644        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48645 
48646        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
48647           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48648        END IF;
48649 
48650       --
48651       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48652       --
48653       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48654           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
48655       ELSE
48656           ---------------------------------------------------------------------------------------------------
48657           -- 4262811a Switch Sign
48658           ---------------------------------------------------------------------------------------------------
48659           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
48660           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48661                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48662           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48663                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48664           -- 5132302
48665           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48666                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48667 
48668       END IF;
48669 
48670       -- 4955764
48671       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48672       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48673 
48674 
48675       XLA_AE_LINES_PKG.ValidateCurrentLine;
48676       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48677 
48678       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48679                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48680                ,p_balance_type_code => l_balance_type_code);
48681 
48682    END IF;
48683 
48684    -----------------------------------------------------------------------------------------
48685    -- 4262811 Multiperiod Accounting
48686    -----------------------------------------------------------------------------------------
48687      -- No MPA option is assigned.
48688 
48689 
48690 END IF;
48691 END IF;
48692 --
48693 
48694 --
48695 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48696    trace
48697       (p_msg      => 'END of AcctLineType_97'
48698       ,p_level    => C_LEVEL_PROCEDURE
48699       ,p_module   => l_log_module);
48700 END IF;
48701 --
48702 EXCEPTION
48703   WHEN xla_exceptions_pkg.application_exception THEN
48704       RAISE;
48705   WHEN OTHERS THEN
48706        xla_exceptions_pkg.raise_message
48707            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_97');
48708 END AcctLineType_97;
48709 --
48710 
48711 ---------------------------------------
48712 --
48713 -- PRIVATE FUNCTION
48714 --         AcctLineType_98
48715 --
48716 ---------------------------------------
48717 PROCEDURE AcctLineType_98 (
48718   p_application_id        IN NUMBER
48719  ,p_event_id              IN NUMBER
48720  ,p_calculate_acctd_flag  IN VARCHAR2
48721  ,p_calculate_g_l_flag    IN VARCHAR2
48722  ,p_actual_flag           IN OUT VARCHAR2
48723  ,p_balance_type_code     OUT VARCHAR2
48724  ,p_gain_or_loss_ref      OUT VARCHAR2
48725  
48726 --Recipient Invoice Distribution Account
48727  , p_source_36            IN NUMBER
48728 --When to Account for Payment Option
48729  , p_source_38            IN VARCHAR2
48730 --Accounting Reversal Indicator
48731  , p_source_40            IN VARCHAR2
48732 --Business Flow Accounts Payable Application Identifier
48733  , p_source_42            IN NUMBER
48734 --Distribution Link Type
48735  , p_source_48            IN VARCHAR2
48736 --Override Accounted Amount Indicator
48740  , p_source_56            IN VARCHAR2
48737  , p_source_53            IN VARCHAR2
48738  , p_source_53_meaning    IN VARCHAR2
48739 --Third Party Type
48741 --Invoice Distribution Tax Line Identifier
48742  , p_source_58            IN NUMBER
48743 --Invoice Distribution Summary Tax Line Identifier
48744  , p_source_59            IN NUMBER
48745 --Invoice Distribution Tax Distribution Identifier from Tax
48746  , p_source_66            IN NUMBER
48747 --Prepayment Distribution Type
48748  , p_source_67            IN VARCHAR2
48749 --Recipient Invoice Distribution Type
48750  , p_source_68            IN VARCHAR2
48751  , p_source_68_meaning    IN VARCHAR2
48752 --Prepayment Application Distribution Identifier
48753  , p_source_71            IN NUMBER
48754 --Invoice Identifier
48755  , p_source_72            IN NUMBER
48756 --Business Flow Prepayment Invoice Distribution Type
48757  , p_source_73            IN VARCHAR2
48758 --Business Flow Prepayment Invoice Entity Code
48759  , p_source_74            IN VARCHAR2
48760 --Business Flow Prepayment Invoice Distribution Identifier
48761  , p_source_75            IN NUMBER
48762 --Business Flow Prepayment Invoice Identifier
48763  , p_source_76            IN NUMBER
48764 --Upgrade Encumbrance Credit Account Class
48765  , p_source_77            IN VARCHAR2
48766 --Payables Encumbrance Upgrade Credit Account
48767  , p_source_78            IN NUMBER
48768 --Payables Encumbrance Upgrade Credit Amount
48769  , p_source_79            IN NUMBER
48770 --Invoice Currency Code
48771  , p_source_80            IN VARCHAR2
48772 --Payables Encumbrance Upgrade Credit Base Amount
48773  , p_source_81            IN NUMBER
48774 --Upgrade Encumbrance Debit Account Class
48775  , p_source_82            IN VARCHAR2
48776 --Payables Encumbrance Upgrade Debit Account
48777  , p_source_83            IN NUMBER
48778 --Payables Encumbrance Upgrade Debit Amount
48779  , p_source_84            IN NUMBER
48780 --Payables Encumbrance Upgrade Debit Base Amount
48781  , p_source_85            IN NUMBER
48782 --Payables Encumbrance Upgrade Option
48783  , p_source_86            IN VARCHAR2
48784 --Prepayment Distribution Amount
48785  , p_source_87            IN NUMBER
48786 --Deferred Accounting End Date
48787  , p_source_90            IN DATE
48788 --Deferred Accounting Option
48789  , p_source_91            IN VARCHAR2
48790 --Deferred Accounting Start Date
48791  , p_source_92            IN DATE
48792 --Invoice Supplier Identifier
48793  , p_source_93            IN NUMBER
48794 --Invoice Supplier Site Identifier
48795  , p_source_94            IN NUMBER
48796 --Identifier of the Prepayment Application Reversed
48797  , p_source_95            IN NUMBER
48798 --Payables Upgrade Credit Encumbrance Type Identifier
48799  , p_source_96            IN NUMBER
48800 --Payables Upgrade Debit Encumbrance Type Identifier
48801  , p_source_97            IN NUMBER
48802 --Prepayment Payment Currency Code
48803  , p_source_98            IN VARCHAR2
48804 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
48805  , p_source_99            IN NUMBER
48806 --Prepayment Payment Exchange Date
48807  , p_source_121            IN DATE
48808 --Prepayment Payment Exchange Rate
48809  , p_source_122            IN NUMBER
48810 --Prepayment Payment Exchange Rate Type
48811  , p_source_123            IN VARCHAR2
48812 )
48813 IS
48814 
48815 l_component_type              VARCHAR2(80);
48816 l_component_code              VARCHAR2(30);
48817 l_component_type_code         VARCHAR2(1);
48818 l_component_appl_id           INTEGER;
48819 l_amb_context_code            VARCHAR2(30);
48820 l_entity_code                 VARCHAR2(30);
48821 l_event_class_code            VARCHAR2(30);
48822 l_ae_header_id                NUMBER;
48823 l_event_type_code             VARCHAR2(30);
48824 l_line_definition_code        VARCHAR2(30);
48825 l_line_definition_owner_code  VARCHAR2(1);
48826 --
48827 -- adr variables
48828 l_segment                     VARCHAR2(30);
48829 l_ccid                        NUMBER;
48830 l_adr_transaction_coa_id      NUMBER;
48831 l_adr_accounting_coa_id       NUMBER;
48832 l_adr_flexfield_segment_code  VARCHAR2(30);
48833 l_adr_flex_value_set_id       NUMBER;
48834 l_adr_value_type_code         VARCHAR2(30);
48835 l_adr_value_combination_id    NUMBER;
48836 l_adr_value_segment_code      VARCHAR2(30);
48837 
48838 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48839 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48840 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48841 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48842 
48843 -- 4262811 Variables ------------------------------------------------------------------------------------------
48844 l_entered_amt_idx             NUMBER;
48845 l_accted_amt_idx              NUMBER;
48846 l_acc_rev_flag                VARCHAR2(1);
48847 l_accrual_line_num            NUMBER;
48848 l_tmp_amt                     NUMBER;
48849 l_acc_rev_natural_side_code   VARCHAR2(1);
48850 
48851 l_num_entries                 NUMBER;
48852 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48853 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48854 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48855 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48856 l_recog_line_1                NUMBER;
48857 l_recog_line_2                NUMBER;
48858 
48859 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48863 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48860 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48861 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48862 
48864 
48865 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48866 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48867 
48868 ---------------------------------------------------------------------------------------------------------------
48869 
48870 
48871 --
48872 -- bulk performance
48873 --
48874 l_balance_type_code           VARCHAR2(1);
48875 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48876 l_log_module                  VARCHAR2(240);
48877 
48878 --
48879 -- Upgrade strategy
48880 --
48881 l_actual_upg_option           VARCHAR2(1);
48882 l_enc_upg_option           VARCHAR2(1);
48883 
48884 --
48885 BEGIN
48886 --
48887 IF g_log_enabled THEN
48888       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
48889 END IF;
48890 --
48891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48892 
48893       trace
48894          (p_msg      => 'BEGIN of AcctLineType_98'
48895          ,p_level    => C_LEVEL_PROCEDURE
48896          ,p_module   => l_log_module);
48897 
48898 END IF;
48899 --
48900 l_component_type             := 'AMB_JLT';
48901 l_component_code             := 'AP_FREIGHT_PREPAY_PAY_RATE_APP';
48902 l_component_type_code        := 'S';
48903 l_component_appl_id          :=  200;
48904 l_amb_context_code           := 'DEFAULT';
48905 l_entity_code                := 'AP_INVOICES';
48906 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
48907 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
48908 l_line_definition_owner_code := 'S';
48909 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
48910 --
48911 l_balance_type_code          := 'A';
48912 l_segment                     := NULL;
48913 l_ccid                        := NULL;
48914 l_adr_transaction_coa_id      := NULL;
48915 l_adr_accounting_coa_id       := NULL;
48916 l_adr_flexfield_segment_code  := NULL;
48917 l_adr_flex_value_set_id       := NULL;
48918 l_adr_value_type_code         := NULL;
48919 l_adr_value_combination_id    := NULL;
48920 l_adr_value_segment_code      := NULL;
48921 
48922 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48923 l_bflow_class_code           := '';    -- 4219869 Business Flow
48924 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48925 l_budgetary_control_flag     := 'N';
48926 
48927 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48928 l_bflow_applied_to_amt       := NULL; -- 5132302
48929 l_entered_amt_idx            := NULL;          -- 4262811
48930 l_accted_amt_idx             := NULL;          -- 4262811
48931 l_acc_rev_flag               := NULL;          -- 4262811
48932 l_accrual_line_num           := NULL;          -- 4262811
48933 l_tmp_amt                    := NULL;          -- 4262811
48934 --
48935  
48936 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48937     l_balance_type_code <> 'B' THEN
48938 IF NVL(p_source_38,'
48939 ') <>  'CLEAR_CLEAR' AND 
48940 (NVL(p_source_67,'
48941 ') =  'PREPAY APPL' OR 
48942 NVL(p_source_67,'
48943 ') =  'PREPAY APPL NONREC TAX' OR 
48944 NVL(p_source_67,'
48945 ') =  'PREPAY APPL REC TAX') AND 
48946 NVL(p_source_68,'
48947 ') =  'FREIGHT'
48948  THEN 
48949 
48950    --
48951    XLA_AE_LINES_PKG.SetNewLine;
48952 
48953    p_balance_type_code          := l_balance_type_code;
48954    -- set the flag so later we will know whether the gain loss line needs to be created
48955    
48956    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48957      p_actual_flag :='A';
48958    END IF;
48959 
48960    --
48961    -- bulk performance
48962    --
48963    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48964                                       p_header_num   => 0); -- 4262811
48965    --
48966    -- set accounting line options
48967    --
48968    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48969            p_natural_side_code          => 'C'
48970          , p_gain_or_loss_flag          => 'N'
48971          , p_gl_transfer_mode_code      => 'S'
48972          , p_acct_entry_type_code       => 'A'
48973          , p_switch_side_flag           => 'Y'
48974          , p_merge_duplicate_code       => 'A'
48975          );
48976    --
48977    l_acc_rev_natural_side_code := 'D';  -- 4262811
48978    -- 
48979    --
48980    -- set accounting line type info
48981    --
48982    xla_ae_lines_pkg.SetAcctLineType
48983       (p_component_type             => l_component_type
48984       ,p_event_type_code            => l_event_type_code
48985       ,p_line_definition_owner_code => l_line_definition_owner_code
48986       ,p_line_definition_code       => l_line_definition_code
48987       ,p_accounting_line_code       => l_component_code
48988       ,p_accounting_line_type_code  => l_component_type_code
48989       ,p_accounting_line_appl_id    => l_component_appl_id
48990       ,p_amb_context_code           => l_amb_context_code
48991       ,p_entity_code                => l_entity_code
48992       ,p_event_class_code           => l_event_class_code);
48993    --
48994    -- set accounting class
48998          , p_ae_header_id           => l_ae_header_id
48995    --
48996    xla_ae_lines_pkg.SetAcctClass(
48997            p_accounting_class_code  => 'FREIGHT'
48999          );
49000 
49001    --
49002    -- set rounding class
49003    --
49004    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49005                       'FREIGHT';
49006 
49007    --
49008    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49009    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49010    --
49011    -- bulk performance
49012    --
49013    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49014 
49015    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49016       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49017 
49018    -- 4955764
49019    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49020       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49021 
49022    -- 4458381 Public Sector Enh
49023    
49024    --
49025    -- set accounting attributes for the line type
49026    --
49027    l_entered_amt_idx := 25;
49028    l_accted_amt_idx  := 30;
49029    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
49030    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49031    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
49032    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
49033    l_rec_acct_attrs.array_num_value(2)  := 
49034 xla_ae_sources_pkg.GetSystemSourceNum(
49035    p_source_code           => 'XLA_EVENT_APPL_ID'
49036  , p_source_type_code      => 'Y'
49037  , p_source_application_id =>  602
49038 );
49039    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
49040    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
49041    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
49042    l_rec_acct_attrs.array_char_value(4)  := 
49043 xla_ae_sources_pkg.GetSystemSourceChar(
49044    p_source_code           => 'XLA_ENTITY_CODE'
49045  , p_source_type_code      => 'Y'
49046  , p_source_application_id =>  602
49047 );
49048    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
49049    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
49050    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
49051    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
49052    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
49053    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
49054    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49055    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
49056    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
49057    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
49058    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
49059    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
49060    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49061    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
49062    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
49063    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
49064    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
49065    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
49066    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
49067    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
49068    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
49069    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
49070    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
49071    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
49072    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
49073    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
49074    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
49075    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
49076    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
49077    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
49078    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
49079    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
49080    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
49081    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
49082    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
49083    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
49084    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
49085    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
49086    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
49087    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
49088    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
49089    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
49090    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
49091    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
49092    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
49093    l_rec_acct_attrs.array_date_value(27)  := p_source_121;
49094    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
49098    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
49095    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
49096    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
49097    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
49099    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
49100    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
49101    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
49102    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
49103    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
49104    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
49105    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
49106    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
49107    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
49108    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
49109    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
49110    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
49111    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
49112    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
49113    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
49114    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
49115    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
49116    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
49117    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
49118    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
49119    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
49120    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
49121    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
49122    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
49123    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
49124    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
49125    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
49126    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
49127    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
49128 
49129    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49130    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49131 
49132    ---------------------------------------------------------------------------------------------------------------
49133    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49134    ---------------------------------------------------------------------------------------------------------------
49135    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49136 
49137    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49138    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49139 
49140    IF xla_accounting_cache_pkg.GetValueChar
49141          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49142          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49143    AND l_bflow_method_code = 'PRIOR_ENTRY'
49144 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49145    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49146          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49147        )
49148    THEN
49149          xla_ae_lines_pkg.BflowUpgEntry
49150            (p_business_method_code    => l_bflow_method_code
49151            ,p_business_class_code     => l_bflow_class_code
49152            ,p_balance_type            => l_balance_type_code);
49153    ELSE
49154       NULL;
49155 -- No business flow processing for business flow method of NONE.
49156    END IF;
49157 
49158    --
49159    -- call analytical criteria
49160    --
49161    
49162    --
49163    -- call description
49164    --
49165    -- No description or it is inherited.
49166    --
49167    -- call ADRs
49168    -- Bug 4922099
49169    --
49170    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49171         (NVL(l_actual_upg_option, 'N') = 'O') OR
49172         (NVL(l_enc_upg_option, 'N') = 'O')
49173       )
49174    THEN
49175    NULL;
49176    --
49177    --
49178    
49179   l_ccid := AcctDerRule_33(
49180            p_application_id           => p_application_id
49181          , p_ae_header_id             => l_ae_header_id 
49182 , p_source_36 => p_source_36
49183          , x_transaction_coa_id       => l_adr_transaction_coa_id
49184          , x_accounting_coa_id        => l_adr_accounting_coa_id
49185          , x_value_type_code          => l_adr_value_type_code
49186          , p_side                     => 'NA'
49187    );
49188 
49189    xla_ae_lines_pkg.set_ccid(
49190     p_code_combination_id          => l_ccid
49191   , p_value_type_code              => l_adr_value_type_code
49192   , p_transaction_coa_id           => l_adr_transaction_coa_id
49193   , p_accounting_coa_id            => l_adr_accounting_coa_id
49194   , p_adr_code                     => 'AP_RECP_INV_DIST'
49195   , p_adr_type_code                => 'S'
49196   , p_component_type               => l_component_type
49197   , p_component_code               => l_component_code
49198   , p_component_type_code          => l_component_type_code
49199   , p_component_appl_id            => l_component_appl_id
49203 
49200   , p_amb_context_code             => l_amb_context_code
49201   , p_side                         => 'NA'
49202   );
49204 
49205    --
49206    --
49207    END IF;
49208    --
49209    -- Bug 4922099
49210    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49211           (NVL(l_enc_upg_option, 'N') = 'O')
49212         ) AND
49213         (l_bflow_method_code = 'PRIOR_ENTRY')
49214       )
49215    THEN
49216       IF
49217       --
49218       1 = 2
49219       --
49220       THEN
49221       xla_accounting_err_pkg.build_message
49222                                     (p_appli_s_name            => 'XLA'
49223                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49224                                     ,p_token_1                 => 'LINE_NUMBER'
49225                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49226                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49227                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49228                                                                              l_component_type
49229                                                                             ,l_component_code
49230                                                                             ,l_component_type_code
49231                                                                             ,l_component_appl_id
49232                                                                             ,l_amb_context_code
49233                                                                             ,l_entity_code
49234                                                                             ,l_event_class_code
49235                                                                            )
49236                                     ,p_token_3                 => 'OWNER'
49237                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49238                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49239                                                                           ,p_lookup_code    => l_component_type_code
49240                                                                          )
49241                                     ,p_token_4                 => 'PRODUCT_NAME'
49242                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49243                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49244                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49245                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49246                                     ,p_ae_header_id            =>  NULL
49247                                        );
49248 
49249         IF (C_LEVEL_ERROR>= g_log_level) THEN
49250                  trace
49251                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49252                       ,p_level    => C_LEVEL_ERROR
49253                       ,p_module   => l_log_module);
49254         END IF;
49255       END IF;
49256    END IF;
49257    --
49258    --
49259    ------------------------------------------------------------------------------------------------
49260    -- 4219869 Business Flow
49261    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49262    -- Prior Entry.  Currently, the following code is always generated.
49263    ------------------------------------------------------------------------------------------------
49264    XLA_AE_LINES_PKG.ValidateCurrentLine;
49265 
49266    ------------------------------------------------------------------------------------
49267    -- 4219869 Business Flow
49268    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49269    ------------------------------------------------------------------------------------
49270    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49271 
49272    ----------------------------------------------------------------------------------
49273    -- 4219869 Business Flow
49274    -- Update journal entry status -- Need to generate this within IF <condition>
49275    ----------------------------------------------------------------------------------
49276    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49277          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49278          ,p_balance_type_code => l_balance_type_code
49279          );
49280 
49281    -------------------------------------------------------------------------------------------
49282    -- 4262811 - Generate the Accrual Reversal lines
49283    -------------------------------------------------------------------------------------------
49284    BEGIN
49285       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49286                               (g_array_event(p_event_id).array_value_num('header_index'));
49287       IF l_acc_rev_flag IS NULL THEN
49288          l_acc_rev_flag := 'N';
49289       END IF;
49290    EXCEPTION
49291       WHEN OTHERS THEN
49292          l_acc_rev_flag := 'N';
49293    END;
49294    --
49295    IF (l_acc_rev_flag = 'Y') THEN
49296 
49297        -- 4645092  ------------------------------------------------------------------------------
49301 
49298        -- To allow MPA report to determine if it should generate report process
49299        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49300        ------------------------------------------------------------------------------------------
49302        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49303        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49304    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49305    -- call ADRs
49306    -- Bug 4922099
49307    --
49308    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49309         (NVL(l_actual_upg_option, 'N') = 'O') OR
49310         (NVL(l_enc_upg_option, 'N') = 'O')
49311       )
49312    THEN
49313    NULL;
49314    --
49315    --
49316    
49317   l_ccid := AcctDerRule_33(
49318            p_application_id           => p_application_id
49319          , p_ae_header_id             => l_ae_header_id 
49320 , p_source_36 => p_source_36
49321          , x_transaction_coa_id       => l_adr_transaction_coa_id
49322          , x_accounting_coa_id        => l_adr_accounting_coa_id
49323          , x_value_type_code          => l_adr_value_type_code
49324          , p_side                     => 'NA'
49325    );
49326 
49327    xla_ae_lines_pkg.set_ccid(
49328     p_code_combination_id          => l_ccid
49329   , p_value_type_code              => l_adr_value_type_code
49330   , p_transaction_coa_id           => l_adr_transaction_coa_id
49331   , p_accounting_coa_id            => l_adr_accounting_coa_id
49332   , p_adr_code                     => 'AP_RECP_INV_DIST'
49333   , p_adr_type_code                => 'S'
49334   , p_component_type               => l_component_type
49335   , p_component_code               => l_component_code
49336   , p_component_type_code          => l_component_type_code
49337   , p_component_appl_id            => l_component_appl_id
49338   , p_amb_context_code             => l_amb_context_code
49339   , p_side                         => 'NA'
49340   );
49341 
49342 
49343    --
49344    --
49345    END IF;
49346 
49347        --
49348        -- Update the line information that should be overwritten
49349        --
49350        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49351                                          p_header_num   => 1);
49352        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
49353 
49354        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49355 
49356        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
49357           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49358        END IF;
49359 
49360       --
49361       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49362       --
49363       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49364           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
49365       ELSE
49366           ---------------------------------------------------------------------------------------------------
49367           -- 4262811a Switch Sign
49368           ---------------------------------------------------------------------------------------------------
49369           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
49370           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49371                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49372           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49373                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49374           -- 5132302
49375           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49376                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49377 
49378       END IF;
49379 
49380       -- 4955764
49381       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49382       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49383 
49384 
49385       XLA_AE_LINES_PKG.ValidateCurrentLine;
49386       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49387 
49388       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49389                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49390                ,p_balance_type_code => l_balance_type_code);
49391 
49392    END IF;
49393 
49394    -----------------------------------------------------------------------------------------
49395    -- 4262811 Multiperiod Accounting
49396    -----------------------------------------------------------------------------------------
49397      -- No MPA option is assigned.
49398 
49399 
49400 END IF;
49401 END IF;
49402 --
49403 
49404 --
49405 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49406    trace
49407       (p_msg      => 'END of AcctLineType_98'
49408       ,p_level    => C_LEVEL_PROCEDURE
49409       ,p_module   => l_log_module);
49410 END IF;
49411 --
49412 EXCEPTION
49413   WHEN xla_exceptions_pkg.application_exception THEN
49417            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_98');
49414       RAISE;
49415   WHEN OTHERS THEN
49416        xla_exceptions_pkg.raise_message
49418 END AcctLineType_98;
49419 --
49420 
49421 ---------------------------------------
49422 --
49423 -- PRIVATE FUNCTION
49424 --         AcctLineType_99
49425 --
49426 ---------------------------------------
49427 PROCEDURE AcctLineType_99 (
49428   p_application_id        IN NUMBER
49429  ,p_event_id              IN NUMBER
49430  ,p_calculate_acctd_flag  IN VARCHAR2
49431  ,p_calculate_g_l_flag    IN VARCHAR2
49432  ,p_actual_flag           IN OUT VARCHAR2
49433  ,p_balance_type_code     OUT VARCHAR2
49434  ,p_gain_or_loss_ref      OUT VARCHAR2
49435  
49436 --Automatic Offsets Value
49437  , p_source_4            IN VARCHAR2
49438  , p_source_4_meaning    IN VARCHAR2
49439 --Payment Distribution (Payment Rate) Ledger Amount
49440  , p_source_9            IN NUMBER
49441 --Bank Future Dated Payment Account
49442  , p_source_11            IN NUMBER
49443 --Future Dated Payment Account Source Option
49444  , p_source_12            IN VARCHAR2
49445  , p_source_12_meaning    IN VARCHAR2
49446 --Financials Options Future Dated Payment Account
49447  , p_source_13            IN NUMBER
49448 --Supplier Site Future Dated Payment Account
49449  , p_source_14            IN NUMBER
49450 --Invoice Distribution Account
49451  , p_source_17            IN NUMBER
49452 --When to Account for Payment Option
49453  , p_source_38            IN VARCHAR2
49454 --Payment Distribution Type
49455  , p_source_39            IN VARCHAR2
49456  , p_source_39_meaning    IN VARCHAR2
49457 --Accounting Reversal Indicator
49458  , p_source_40            IN VARCHAR2
49459 --Payment Distribution Amount
49460  , p_source_41            IN NUMBER
49461 --Business Flow Accounts Payable Application Identifier
49462  , p_source_42            IN NUMBER
49463 --Payment Distribution Identifier
49464  , p_source_47            IN NUMBER
49465 --Distribution Link Type
49466  , p_source_48            IN VARCHAR2
49467 --Payment Currency Code
49468  , p_source_49            IN VARCHAR2
49469 --Override Accounted Amount Indicator
49470  , p_source_53            IN VARCHAR2
49471  , p_source_53_meaning    IN VARCHAR2
49472 --Payment Supplier Identifier
49473  , p_source_54            IN NUMBER
49474 --Payment Supplier Site Identifier
49475  , p_source_55            IN NUMBER
49476 --Third Party Type
49477  , p_source_56            IN VARCHAR2
49478 --Payment Distribution Reversed Identifier
49479  , p_source_57            IN NUMBER
49480 --Invoice Distribution Tax Line Identifier
49481  , p_source_58            IN NUMBER
49482 --Invoice Distribution Summary Tax Line Identifier
49483  , p_source_59            IN NUMBER
49484 --Invoice Distribution Amount of the Payment Distribution
49485  , p_source_61            IN NUMBER
49486 --Business Flow Invoice Distribution Type
49487  , p_source_62            IN VARCHAR2
49488 --Business Flow Invoice Entity Code
49489  , p_source_63            IN VARCHAR2
49490 --Business Flow Invoice Distribution Identifier
49491  , p_source_64            IN NUMBER
49492 --Business Flow Invoice Identifier
49493  , p_source_65            IN NUMBER
49494 --Invoice Distribution Tax Distribution Identifier from Tax
49495  , p_source_66            IN NUMBER
49496 --Payment Maturity Date
49497  , p_source_111            IN DATE
49498 --Payment Processing Type
49499  , p_source_113            IN VARCHAR2
49500 --Payment Exchange Date
49501  , p_source_114            IN DATE
49502 --Payment Exchange Rate
49503  , p_source_115            IN NUMBER
49504 --Payment Exchange Rate Type
49505  , p_source_116            IN VARCHAR2
49506 )
49507 IS
49508 
49509 l_component_type              VARCHAR2(80);
49510 l_component_code              VARCHAR2(30);
49511 l_component_type_code         VARCHAR2(1);
49512 l_component_appl_id           INTEGER;
49513 l_amb_context_code            VARCHAR2(30);
49514 l_entity_code                 VARCHAR2(30);
49515 l_event_class_code            VARCHAR2(30);
49516 l_ae_header_id                NUMBER;
49517 l_event_type_code             VARCHAR2(30);
49518 l_line_definition_code        VARCHAR2(30);
49519 l_line_definition_owner_code  VARCHAR2(1);
49520 --
49521 -- adr variables
49522 l_segment                     VARCHAR2(30);
49523 l_ccid                        NUMBER;
49524 l_adr_transaction_coa_id      NUMBER;
49525 l_adr_accounting_coa_id       NUMBER;
49526 l_adr_flexfield_segment_code  VARCHAR2(30);
49527 l_adr_flex_value_set_id       NUMBER;
49528 l_adr_value_type_code         VARCHAR2(30);
49529 l_adr_value_combination_id    NUMBER;
49530 l_adr_value_segment_code      VARCHAR2(30);
49531 
49532 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
49533 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
49534 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
49535 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
49536 
49537 -- 4262811 Variables ------------------------------------------------------------------------------------------
49538 l_entered_amt_idx             NUMBER;
49539 l_accted_amt_idx              NUMBER;
49540 l_acc_rev_flag                VARCHAR2(1);
49541 l_accrual_line_num            NUMBER;
49542 l_tmp_amt                     NUMBER;
49543 l_acc_rev_natural_side_code   VARCHAR2(1);
49544 
49545 l_num_entries                 NUMBER;
49546 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
49550 l_recog_line_1                NUMBER;
49547 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
49548 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
49549 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
49551 l_recog_line_2                NUMBER;
49552 
49553 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
49554 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
49555 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
49556 
49557 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49558 
49559 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
49560 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
49561 
49562 ---------------------------------------------------------------------------------------------------------------
49563 
49564 
49565 --
49566 -- bulk performance
49567 --
49568 l_balance_type_code           VARCHAR2(1);
49569 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
49570 l_log_module                  VARCHAR2(240);
49571 
49572 --
49573 -- Upgrade strategy
49574 --
49575 l_actual_upg_option           VARCHAR2(1);
49576 l_enc_upg_option           VARCHAR2(1);
49577 
49578 --
49579 BEGIN
49580 --
49581 IF g_log_enabled THEN
49582       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
49583 END IF;
49584 --
49585 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49586 
49587       trace
49588          (p_msg      => 'BEGIN of AcctLineType_99'
49589          ,p_level    => C_LEVEL_PROCEDURE
49590          ,p_module   => l_log_module);
49591 
49592 END IF;
49593 --
49594 l_component_type             := 'AMB_JLT';
49595 l_component_code             := 'AP_FUTURE_DATED_PMT';
49596 l_component_type_code        := 'S';
49597 l_component_appl_id          :=  200;
49598 l_amb_context_code           := 'DEFAULT';
49599 l_entity_code                := 'AP_PAYMENTS';
49600 l_event_class_code           := 'PAYMENTS';
49601 l_event_type_code            := 'PAYMENTS_ALL';
49602 l_line_definition_owner_code := 'S';
49603 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
49604 --
49605 l_balance_type_code          := 'A';
49606 l_segment                     := NULL;
49607 l_ccid                        := NULL;
49608 l_adr_transaction_coa_id      := NULL;
49609 l_adr_accounting_coa_id       := NULL;
49610 l_adr_flexfield_segment_code  := NULL;
49611 l_adr_flex_value_set_id       := NULL;
49612 l_adr_value_type_code         := NULL;
49613 l_adr_value_combination_id    := NULL;
49614 l_adr_value_segment_code      := NULL;
49615 
49616 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
49617 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
49618 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
49619 l_budgetary_control_flag     := 'N';
49620 
49621 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
49622 l_bflow_applied_to_amt       := NULL; -- 5132302
49623 l_entered_amt_idx            := NULL;          -- 4262811
49624 l_accted_amt_idx             := NULL;          -- 4262811
49625 l_acc_rev_flag               := NULL;          -- 4262811
49626 l_accrual_line_num           := NULL;          -- 4262811
49627 l_tmp_amt                    := NULL;          -- 4262811
49628 --
49629  
49630 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49631     l_balance_type_code <> 'B' THEN
49632 IF NVL(p_source_38,'
49633 ') <>  'CLEAR_CLEAR' AND 
49634 NVL(p_source_38,'
49635 ') <>  'ALWAYS_CLEAR' AND 
49636 NVL(p_source_39,'
49637 ') =  'CASH' AND 
49638 p_source_111 IS NOT NULL AND 
49639 NVL(p_source_113,'
49640 ') <>  'PAYMENTCARD'
49641  THEN 
49642 
49643    --
49644    XLA_AE_LINES_PKG.SetNewLine;
49645 
49646    p_balance_type_code          := l_balance_type_code;
49647    -- set the flag so later we will know whether the gain loss line needs to be created
49648    
49649    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49650      p_actual_flag :='A';
49651    END IF;
49652 
49653    --
49654    -- bulk performance
49655    --
49656    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49657                                       p_header_num   => 0); -- 4262811
49658    --
49659    -- set accounting line options
49660    --
49661    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49662            p_natural_side_code          => 'C'
49663          , p_gain_or_loss_flag          => 'N'
49664          , p_gl_transfer_mode_code      => 'S'
49665          , p_acct_entry_type_code       => 'A'
49666          , p_switch_side_flag           => 'Y'
49667          , p_merge_duplicate_code       => 'A'
49668          );
49669    --
49670    l_acc_rev_natural_side_code := 'D';  -- 4262811
49671    -- 
49672    --
49673    -- set accounting line type info
49674    --
49675    xla_ae_lines_pkg.SetAcctLineType
49676       (p_component_type             => l_component_type
49677       ,p_event_type_code            => l_event_type_code
49678       ,p_line_definition_owner_code => l_line_definition_owner_code
49679       ,p_line_definition_code       => l_line_definition_code
49680       ,p_accounting_line_code       => l_component_code
49684       ,p_entity_code                => l_entity_code
49681       ,p_accounting_line_type_code  => l_component_type_code
49682       ,p_accounting_line_appl_id    => l_component_appl_id
49683       ,p_amb_context_code           => l_amb_context_code
49685       ,p_event_class_code           => l_event_class_code);
49686    --
49687    -- set accounting class
49688    --
49689    xla_ae_lines_pkg.SetAcctClass(
49690            p_accounting_class_code  => 'FUTURE_DATED_PMT'
49691          , p_ae_header_id           => l_ae_header_id
49692          );
49693 
49694    --
49695    -- set rounding class
49696    --
49697    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49698                       'FUTURE_DATED_PMT';
49699 
49700    --
49701    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49702    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49703    --
49704    -- bulk performance
49705    --
49706    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49707 
49708    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49709       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49710 
49711    -- 4955764
49712    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49713       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49714 
49715    -- 4458381 Public Sector Enh
49716    
49717    --
49718    -- set accounting attributes for the line type
49719    --
49720    l_entered_amt_idx := 10;
49721    l_accted_amt_idx  := 15;
49722    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
49723    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49724    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
49725    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
49726    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
49727    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
49728    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
49729    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49730    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
49731    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
49732    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
49733    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
49734    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
49735    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49736    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
49737    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
49738    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
49739    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
49740    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
49741    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
49742    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
49743    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49744    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
49745    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49746    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
49747    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49748    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
49749    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49750    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
49751    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49752    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
49753    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49754    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
49755    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49756    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
49757    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49758    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
49759    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49760    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
49761    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49762    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
49763    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49764    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
49765    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49766    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
49767    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49768    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
49769    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49770    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
49771 
49772    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49773    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49774 
49775    ---------------------------------------------------------------------------------------------------------------
49776    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49777    ---------------------------------------------------------------------------------------------------------------
49781    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49778    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49779 
49780    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49782 
49783    IF xla_accounting_cache_pkg.GetValueChar
49784          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49785          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49786    AND l_bflow_method_code = 'PRIOR_ENTRY'
49787 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49788    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49789          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49790        )
49791    THEN
49792          xla_ae_lines_pkg.BflowUpgEntry
49793            (p_business_method_code    => l_bflow_method_code
49794            ,p_business_class_code     => l_bflow_class_code
49795            ,p_balance_type            => l_balance_type_code);
49796    ELSE
49797       NULL;
49798 -- No business flow processing for business flow method of NONE.
49799    END IF;
49800 
49801    --
49802    -- call analytical criteria
49803    --
49804    
49805    --
49806    -- call description
49807    --
49808    -- No description or it is inherited.
49809    --
49810    -- call ADRs
49811    -- Bug 4922099
49812    --
49813    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49814         (NVL(l_actual_upg_option, 'N') = 'O') OR
49815         (NVL(l_enc_upg_option, 'N') = 'O')
49816       )
49817    THEN
49818    NULL;
49819    --
49820    --
49821    
49822   l_ccid := AcctDerRule_24(
49823            p_application_id           => p_application_id
49824          , p_ae_header_id             => l_ae_header_id 
49825 , p_source_4 => p_source_4
49826 , p_source_4_meaning => p_source_4_meaning
49827 , p_source_11 => p_source_11
49828 , p_source_12 => p_source_12
49829 , p_source_12_meaning => p_source_12_meaning
49830 , p_source_13 => p_source_13
49831 , p_source_14 => p_source_14
49832 , p_source_17 => p_source_17
49833          , x_transaction_coa_id       => l_adr_transaction_coa_id
49834          , x_accounting_coa_id        => l_adr_accounting_coa_id
49835          , x_value_type_code          => l_adr_value_type_code
49836          , p_side                     => 'NA'
49837    );
49838 
49839    xla_ae_lines_pkg.set_ccid(
49840     p_code_combination_id          => l_ccid
49841   , p_value_type_code              => l_adr_value_type_code
49842   , p_transaction_coa_id           => l_adr_transaction_coa_id
49843   , p_accounting_coa_id            => l_adr_accounting_coa_id
49844   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
49845   , p_adr_type_code                => 'S'
49846   , p_component_type               => l_component_type
49847   , p_component_code               => l_component_code
49848   , p_component_type_code          => l_component_type_code
49849   , p_component_appl_id            => l_component_appl_id
49850   , p_amb_context_code             => l_amb_context_code
49851   , p_side                         => 'NA'
49852   );
49853 
49854 
49855    l_segment := AcctDerRule_7(
49856            p_application_id           => p_application_id
49857          , p_ae_header_id             => l_ae_header_id 
49858 , p_source_4 => p_source_4
49859 , p_source_4_meaning => p_source_4_meaning
49860 , p_source_11 => p_source_11
49861 , p_source_12 => p_source_12
49862 , p_source_12_meaning => p_source_12_meaning
49863 , p_source_13 => p_source_13
49864 , p_source_14 => p_source_14
49865          , x_transaction_coa_id       => l_adr_transaction_coa_id
49866          , x_accounting_coa_id        => l_adr_accounting_coa_id
49867          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49868          , x_flex_value_set_id        => l_adr_flex_value_set_id
49869          , x_value_type_code          => l_adr_value_type_code
49870          , x_value_combination_id     => l_adr_value_combination_id
49871          , x_value_segment_code       => l_adr_value_segment_code
49872          , p_side                     => 'NA'
49873          , p_override_seg_flag        => 'Y'
49874    );
49875 
49876    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49877 
49878       xla_ae_lines_pkg.set_segment(
49879           p_to_segment_code         => 'GL_ACCOUNT'
49880         , p_segment_value           => l_segment
49881         , p_from_segment_code       => l_adr_value_segment_code
49882         , p_from_combination_id     => l_adr_value_combination_id
49883         , p_value_type_code         => l_adr_value_type_code
49884         , p_transaction_coa_id      => l_adr_transaction_coa_id
49885         , p_accounting_coa_id       => l_adr_accounting_coa_id
49886         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49887         , p_flex_value_set_id       => l_adr_flex_value_set_id
49888         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
49889         , p_adr_type_code           => 'S'
49890         , p_component_type          => l_component_type
49891         , p_component_code          => l_component_code
49892         , p_component_type_code     => l_component_type_code
49893         , p_component_appl_id       => l_component_appl_id
49894         , p_amb_context_code        => l_amb_context_code
49895         , p_entity_code             => 'AP_PAYMENTS'
49899 
49896         , p_event_class_code        => 'PAYMENTS'
49897         , p_side                    => 'NA'
49898         );
49900   END IF;
49901 
49902    l_segment := AcctDerRule_14(
49903            p_application_id           => p_application_id
49904          , p_ae_header_id             => l_ae_header_id 
49905 , p_source_4 => p_source_4
49906 , p_source_4_meaning => p_source_4_meaning
49907 , p_source_17 => p_source_17
49908          , x_transaction_coa_id       => l_adr_transaction_coa_id
49909          , x_accounting_coa_id        => l_adr_accounting_coa_id
49910          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49911          , x_flex_value_set_id        => l_adr_flex_value_set_id
49912          , x_value_type_code          => l_adr_value_type_code
49913          , x_value_combination_id     => l_adr_value_combination_id
49914          , x_value_segment_code       => l_adr_value_segment_code
49915          , p_side                     => 'NA'
49916          , p_override_seg_flag        => 'Y'
49917    );
49918 
49919    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49920 
49921       xla_ae_lines_pkg.set_segment(
49922           p_to_segment_code         => 'GL_BALANCING'
49923         , p_segment_value           => l_segment
49924         , p_from_segment_code       => l_adr_value_segment_code
49925         , p_from_combination_id     => l_adr_value_combination_id
49926         , p_value_type_code         => l_adr_value_type_code
49927         , p_transaction_coa_id      => l_adr_transaction_coa_id
49928         , p_accounting_coa_id       => l_adr_accounting_coa_id
49929         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49930         , p_flex_value_set_id       => l_adr_flex_value_set_id
49931         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
49932         , p_adr_type_code           => 'S'
49933         , p_component_type          => l_component_type
49934         , p_component_code          => l_component_code
49935         , p_component_type_code     => l_component_type_code
49936         , p_component_appl_id       => l_component_appl_id
49937         , p_amb_context_code        => l_amb_context_code
49938         , p_entity_code             => 'AP_PAYMENTS'
49939         , p_event_class_code        => 'PAYMENTS'
49940         , p_side                    => 'NA'
49941         );
49942 
49943   END IF;
49944 
49945    --
49946    --
49947    END IF;
49948    --
49949    -- Bug 4922099
49950    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49951           (NVL(l_enc_upg_option, 'N') = 'O')
49952         ) AND
49953         (l_bflow_method_code = 'PRIOR_ENTRY')
49954       )
49955    THEN
49956       IF
49957       --
49958       1 = 2
49959       --
49960       THEN
49961       xla_accounting_err_pkg.build_message
49962                                     (p_appli_s_name            => 'XLA'
49963                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49964                                     ,p_token_1                 => 'LINE_NUMBER'
49965                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49966                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49967                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49968                                                                              l_component_type
49969                                                                             ,l_component_code
49970                                                                             ,l_component_type_code
49971                                                                             ,l_component_appl_id
49972                                                                             ,l_amb_context_code
49973                                                                             ,l_entity_code
49974                                                                             ,l_event_class_code
49975                                                                            )
49976                                     ,p_token_3                 => 'OWNER'
49977                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49978                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49979                                                                           ,p_lookup_code    => l_component_type_code
49980                                                                          )
49981                                     ,p_token_4                 => 'PRODUCT_NAME'
49982                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49983                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49984                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49985                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49986                                     ,p_ae_header_id            =>  NULL
49987                                        );
49988 
49989         IF (C_LEVEL_ERROR>= g_log_level) THEN
49990                  trace
49991                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49992                       ,p_level    => C_LEVEL_ERROR
49993                       ,p_module   => l_log_module);
49994         END IF;
49998    --
49995       END IF;
49996    END IF;
49997    --
49999    ------------------------------------------------------------------------------------------------
50000    -- 4219869 Business Flow
50001    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50002    -- Prior Entry.  Currently, the following code is always generated.
50003    ------------------------------------------------------------------------------------------------
50004    XLA_AE_LINES_PKG.ValidateCurrentLine;
50005 
50006    ------------------------------------------------------------------------------------
50007    -- 4219869 Business Flow
50008    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50009    ------------------------------------------------------------------------------------
50010    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50011 
50012    ----------------------------------------------------------------------------------
50013    -- 4219869 Business Flow
50014    -- Update journal entry status -- Need to generate this within IF <condition>
50015    ----------------------------------------------------------------------------------
50016    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50017          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50018          ,p_balance_type_code => l_balance_type_code
50019          );
50020 
50021    -------------------------------------------------------------------------------------------
50022    -- 4262811 - Generate the Accrual Reversal lines
50023    -------------------------------------------------------------------------------------------
50024    BEGIN
50025       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50026                               (g_array_event(p_event_id).array_value_num('header_index'));
50027       IF l_acc_rev_flag IS NULL THEN
50028          l_acc_rev_flag := 'N';
50029       END IF;
50030    EXCEPTION
50031       WHEN OTHERS THEN
50032          l_acc_rev_flag := 'N';
50033    END;
50034    --
50035    IF (l_acc_rev_flag = 'Y') THEN
50036 
50037        -- 4645092  ------------------------------------------------------------------------------
50038        -- To allow MPA report to determine if it should generate report process
50039        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50040        ------------------------------------------------------------------------------------------
50041 
50042        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50043        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50044    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
50045    -- call ADRs
50046    -- Bug 4922099
50047    --
50048    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50049         (NVL(l_actual_upg_option, 'N') = 'O') OR
50050         (NVL(l_enc_upg_option, 'N') = 'O')
50051       )
50052    THEN
50053    NULL;
50054    --
50055    --
50056    
50057   l_ccid := AcctDerRule_24(
50058            p_application_id           => p_application_id
50059          , p_ae_header_id             => l_ae_header_id 
50060 , p_source_4 => p_source_4
50061 , p_source_4_meaning => p_source_4_meaning
50062 , p_source_11 => p_source_11
50063 , p_source_12 => p_source_12
50064 , p_source_12_meaning => p_source_12_meaning
50065 , p_source_13 => p_source_13
50066 , p_source_14 => p_source_14
50067 , p_source_17 => p_source_17
50068          , x_transaction_coa_id       => l_adr_transaction_coa_id
50069          , x_accounting_coa_id        => l_adr_accounting_coa_id
50070          , x_value_type_code          => l_adr_value_type_code
50071          , p_side                     => 'NA'
50072    );
50073 
50074    xla_ae_lines_pkg.set_ccid(
50075     p_code_combination_id          => l_ccid
50076   , p_value_type_code              => l_adr_value_type_code
50077   , p_transaction_coa_id           => l_adr_transaction_coa_id
50078   , p_accounting_coa_id            => l_adr_accounting_coa_id
50079   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
50080   , p_adr_type_code                => 'S'
50081   , p_component_type               => l_component_type
50082   , p_component_code               => l_component_code
50083   , p_component_type_code          => l_component_type_code
50084   , p_component_appl_id            => l_component_appl_id
50085   , p_amb_context_code             => l_amb_context_code
50086   , p_side                         => 'NA'
50087   );
50088 
50089 
50090    l_segment := AcctDerRule_7(
50091            p_application_id           => p_application_id
50092          , p_ae_header_id             => l_ae_header_id 
50093 , p_source_4 => p_source_4
50094 , p_source_4_meaning => p_source_4_meaning
50095 , p_source_11 => p_source_11
50096 , p_source_12 => p_source_12
50097 , p_source_12_meaning => p_source_12_meaning
50098 , p_source_13 => p_source_13
50099 , p_source_14 => p_source_14
50100          , x_transaction_coa_id       => l_adr_transaction_coa_id
50101          , x_accounting_coa_id        => l_adr_accounting_coa_id
50102          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50103          , x_flex_value_set_id        => l_adr_flex_value_set_id
50104          , x_value_type_code          => l_adr_value_type_code
50105          , x_value_combination_id     => l_adr_value_combination_id
50106          , x_value_segment_code       => l_adr_value_segment_code
50107          , p_side                     => 'NA'
50108          , p_override_seg_flag        => 'Y'
50112 
50109    );
50110 
50111    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50113       xla_ae_lines_pkg.set_segment(
50114           p_to_segment_code         => 'GL_ACCOUNT'
50115         , p_segment_value           => l_segment
50116         , p_from_segment_code       => l_adr_value_segment_code
50117         , p_from_combination_id     => l_adr_value_combination_id
50118         , p_value_type_code         => l_adr_value_type_code
50119         , p_transaction_coa_id      => l_adr_transaction_coa_id
50120         , p_accounting_coa_id       => l_adr_accounting_coa_id
50121         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50122         , p_flex_value_set_id       => l_adr_flex_value_set_id
50123         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
50124         , p_adr_type_code           => 'S'
50125         , p_component_type          => l_component_type
50126         , p_component_code          => l_component_code
50127         , p_component_type_code     => l_component_type_code
50128         , p_component_appl_id       => l_component_appl_id
50129         , p_amb_context_code        => l_amb_context_code
50130         , p_entity_code             => 'AP_PAYMENTS'
50131         , p_event_class_code        => 'PAYMENTS'
50132         , p_side                    => 'NA'
50133         );
50134 
50135   END IF;
50136 
50137    l_segment := AcctDerRule_14(
50138            p_application_id           => p_application_id
50139          , p_ae_header_id             => l_ae_header_id 
50140 , p_source_4 => p_source_4
50141 , p_source_4_meaning => p_source_4_meaning
50142 , p_source_17 => p_source_17
50143          , x_transaction_coa_id       => l_adr_transaction_coa_id
50144          , x_accounting_coa_id        => l_adr_accounting_coa_id
50145          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50146          , x_flex_value_set_id        => l_adr_flex_value_set_id
50147          , x_value_type_code          => l_adr_value_type_code
50148          , x_value_combination_id     => l_adr_value_combination_id
50149          , x_value_segment_code       => l_adr_value_segment_code
50150          , p_side                     => 'NA'
50151          , p_override_seg_flag        => 'Y'
50152    );
50153 
50154    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50155 
50156       xla_ae_lines_pkg.set_segment(
50157           p_to_segment_code         => 'GL_BALANCING'
50158         , p_segment_value           => l_segment
50159         , p_from_segment_code       => l_adr_value_segment_code
50160         , p_from_combination_id     => l_adr_value_combination_id
50161         , p_value_type_code         => l_adr_value_type_code
50162         , p_transaction_coa_id      => l_adr_transaction_coa_id
50163         , p_accounting_coa_id       => l_adr_accounting_coa_id
50164         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50165         , p_flex_value_set_id       => l_adr_flex_value_set_id
50166         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
50167         , p_adr_type_code           => 'S'
50168         , p_component_type          => l_component_type
50169         , p_component_code          => l_component_code
50170         , p_component_type_code     => l_component_type_code
50171         , p_component_appl_id       => l_component_appl_id
50172         , p_amb_context_code        => l_amb_context_code
50173         , p_entity_code             => 'AP_PAYMENTS'
50174         , p_event_class_code        => 'PAYMENTS'
50175         , p_side                    => 'NA'
50176         );
50177 
50178   END IF;
50179 
50180    --
50181    --
50182    END IF;
50183 
50184        --
50185        -- Update the line information that should be overwritten
50186        --
50187        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50188                                          p_header_num   => 1);
50189        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
50190 
50191        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50192 
50193        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
50194           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50195        END IF;
50196 
50197       --
50198       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50199       --
50200       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50201           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
50202       ELSE
50203           ---------------------------------------------------------------------------------------------------
50204           -- 4262811a Switch Sign
50205           ---------------------------------------------------------------------------------------------------
50206           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
50207           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50208                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50209           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50210                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50211           -- 5132302
50212           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50216 
50213                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50214 
50215       END IF;
50217       -- 4955764
50218       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50219       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50220 
50221 
50222       XLA_AE_LINES_PKG.ValidateCurrentLine;
50223       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50224 
50225       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50226                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50227                ,p_balance_type_code => l_balance_type_code);
50228 
50229    END IF;
50230 
50231    -----------------------------------------------------------------------------------------
50232    -- 4262811 Multiperiod Accounting
50233    -----------------------------------------------------------------------------------------
50234      -- No MPA option is assigned.
50235 
50236 
50237 END IF;
50238 END IF;
50239 --
50240 
50241 --
50242 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50243    trace
50244       (p_msg      => 'END of AcctLineType_99'
50245       ,p_level    => C_LEVEL_PROCEDURE
50246       ,p_module   => l_log_module);
50247 END IF;
50248 --
50249 EXCEPTION
50250   WHEN xla_exceptions_pkg.application_exception THEN
50251       RAISE;
50252   WHEN OTHERS THEN
50253        xla_exceptions_pkg.raise_message
50254            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_99');
50255 END AcctLineType_99;
50256 --
50257 
50258 ---------------------------------------
50259 --
50260 -- PRIVATE FUNCTION
50261 --         AcctLineType_100
50262 --
50263 ---------------------------------------
50264 PROCEDURE AcctLineType_100 (
50265   p_application_id        IN NUMBER
50266  ,p_event_id              IN NUMBER
50267  ,p_calculate_acctd_flag  IN VARCHAR2
50268  ,p_calculate_g_l_flag    IN VARCHAR2
50269  ,p_actual_flag           IN OUT VARCHAR2
50270  ,p_balance_type_code     OUT VARCHAR2
50271  ,p_gain_or_loss_ref      OUT VARCHAR2
50272  
50273 --Payment Distribution (Payment Rate) Ledger Amount
50274  , p_source_9            IN NUMBER
50275 --When to Account for Payment Option
50276  , p_source_38            IN VARCHAR2
50277 --Payment Distribution Type
50278  , p_source_39            IN VARCHAR2
50279  , p_source_39_meaning    IN VARCHAR2
50280 --Accounting Reversal Indicator
50281  , p_source_40            IN VARCHAR2
50282 --Payment Distribution Amount
50283  , p_source_41            IN NUMBER
50284 --Business Flow Accounts Payable Application Identifier
50285  , p_source_42            IN NUMBER
50286 --Business Flow Payment Distribution Type
50287  , p_source_43            IN VARCHAR2
50288 --Business Flow Payment Entity Code
50289  , p_source_44            IN VARCHAR2
50290 --Business Flow Payment Distribution Identifier
50291  , p_source_45            IN NUMBER
50292 --Business Flow Payment Identifier
50293  , p_source_46            IN NUMBER
50294 --Payment Distribution Identifier
50295  , p_source_47            IN NUMBER
50296 --Distribution Link Type
50297  , p_source_48            IN VARCHAR2
50298 --Payment Currency Code
50299  , p_source_49            IN VARCHAR2
50300 --Override Accounted Amount Indicator
50301  , p_source_53            IN VARCHAR2
50302  , p_source_53_meaning    IN VARCHAR2
50303 --Third Party Type
50304  , p_source_56            IN VARCHAR2
50305 --Payment Distribution Reversed Identifier
50306  , p_source_57            IN NUMBER
50307 --Payment Maturity Date
50308  , p_source_111            IN DATE
50309 )
50310 IS
50311 
50312 l_component_type              VARCHAR2(80);
50313 l_component_code              VARCHAR2(30);
50314 l_component_type_code         VARCHAR2(1);
50315 l_component_appl_id           INTEGER;
50316 l_amb_context_code            VARCHAR2(30);
50317 l_entity_code                 VARCHAR2(30);
50318 l_event_class_code            VARCHAR2(30);
50319 l_ae_header_id                NUMBER;
50320 l_event_type_code             VARCHAR2(30);
50321 l_line_definition_code        VARCHAR2(30);
50322 l_line_definition_owner_code  VARCHAR2(1);
50323 --
50324 -- adr variables
50325 l_segment                     VARCHAR2(30);
50326 l_ccid                        NUMBER;
50327 l_adr_transaction_coa_id      NUMBER;
50328 l_adr_accounting_coa_id       NUMBER;
50329 l_adr_flexfield_segment_code  VARCHAR2(30);
50330 l_adr_flex_value_set_id       NUMBER;
50331 l_adr_value_type_code         VARCHAR2(30);
50332 l_adr_value_combination_id    NUMBER;
50333 l_adr_value_segment_code      VARCHAR2(30);
50334 
50335 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50336 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50337 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50338 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50339 
50340 -- 4262811 Variables ------------------------------------------------------------------------------------------
50341 l_entered_amt_idx             NUMBER;
50342 l_accted_amt_idx              NUMBER;
50343 l_acc_rev_flag                VARCHAR2(1);
50344 l_accrual_line_num            NUMBER;
50345 l_tmp_amt                     NUMBER;
50346 l_acc_rev_natural_side_code   VARCHAR2(1);
50347 
50351 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50348 l_num_entries                 NUMBER;
50349 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50350 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50352 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50353 l_recog_line_1                NUMBER;
50354 l_recog_line_2                NUMBER;
50355 
50356 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50357 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50358 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50359 
50360 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50361 
50362 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50363 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50364 
50365 ---------------------------------------------------------------------------------------------------------------
50366 
50367 
50368 --
50369 -- bulk performance
50370 --
50371 l_balance_type_code           VARCHAR2(1);
50372 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50373 l_log_module                  VARCHAR2(240);
50374 
50375 --
50376 -- Upgrade strategy
50377 --
50378 l_actual_upg_option           VARCHAR2(1);
50379 l_enc_upg_option           VARCHAR2(1);
50380 
50381 --
50382 BEGIN
50383 --
50384 IF g_log_enabled THEN
50385       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
50386 END IF;
50387 --
50388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50389 
50390       trace
50391          (p_msg      => 'BEGIN of AcctLineType_100'
50392          ,p_level    => C_LEVEL_PROCEDURE
50393          ,p_module   => l_log_module);
50394 
50395 END IF;
50396 --
50397 l_component_type             := 'AMB_JLT';
50398 l_component_code             := 'AP_FUTURE_DATED_PMT_MAT';
50399 l_component_type_code        := 'S';
50400 l_component_appl_id          :=  200;
50401 l_amb_context_code           := 'DEFAULT';
50402 l_entity_code                := 'AP_PAYMENTS';
50403 l_event_class_code           := 'FUTURE DATED PAYMENTS';
50404 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
50405 l_line_definition_owner_code := 'S';
50406 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
50407 --
50408 l_balance_type_code          := 'A';
50409 l_segment                     := NULL;
50410 l_ccid                        := NULL;
50411 l_adr_transaction_coa_id      := NULL;
50412 l_adr_accounting_coa_id       := NULL;
50413 l_adr_flexfield_segment_code  := NULL;
50414 l_adr_flex_value_set_id       := NULL;
50415 l_adr_value_type_code         := NULL;
50416 l_adr_value_combination_id    := NULL;
50417 l_adr_value_segment_code      := NULL;
50418 
50419 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
50420 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
50421 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50422 l_budgetary_control_flag     := 'N';
50423 
50424 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50425 l_bflow_applied_to_amt       := NULL; -- 5132302
50426 l_entered_amt_idx            := NULL;          -- 4262811
50427 l_accted_amt_idx             := NULL;          -- 4262811
50428 l_acc_rev_flag               := NULL;          -- 4262811
50429 l_accrual_line_num           := NULL;          -- 4262811
50430 l_tmp_amt                    := NULL;          -- 4262811
50431 --
50432  
50433 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50434     l_balance_type_code <> 'B' THEN
50435 IF NVL(p_source_38,'
50436 ') <>  'CLEAR_CLEAR' AND 
50437 p_source_111 IS NOT NULL AND 
50438 (NVL(p_source_39,'
50439 ') =  'CASH' OR 
50440 NVL(p_source_39,'
50441 ') =  'ROUNDING')
50442  THEN 
50443 
50444    --
50445    XLA_AE_LINES_PKG.SetNewLine;
50446 
50447    p_balance_type_code          := l_balance_type_code;
50448    -- set the flag so later we will know whether the gain loss line needs to be created
50449    
50450    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50451      p_actual_flag :='A';
50452    END IF;
50453 
50454    --
50455    -- bulk performance
50456    --
50457    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50458                                       p_header_num   => 0); -- 4262811
50459    --
50460    -- set accounting line options
50461    --
50462    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50463            p_natural_side_code          => 'D'
50464          , p_gain_or_loss_flag          => 'N'
50465          , p_gl_transfer_mode_code      => 'S'
50466          , p_acct_entry_type_code       => 'A'
50467          , p_switch_side_flag           => 'Y'
50468          , p_merge_duplicate_code       => 'A'
50469          );
50470    --
50471    l_acc_rev_natural_side_code := 'C';  -- 4262811
50472    -- 
50473    --
50474    -- set accounting line type info
50475    --
50476    xla_ae_lines_pkg.SetAcctLineType
50477       (p_component_type             => l_component_type
50478       ,p_event_type_code            => l_event_type_code
50479       ,p_line_definition_owner_code => l_line_definition_owner_code
50483       ,p_accounting_line_appl_id    => l_component_appl_id
50480       ,p_line_definition_code       => l_line_definition_code
50481       ,p_accounting_line_code       => l_component_code
50482       ,p_accounting_line_type_code  => l_component_type_code
50484       ,p_amb_context_code           => l_amb_context_code
50485       ,p_entity_code                => l_entity_code
50486       ,p_event_class_code           => l_event_class_code);
50487    --
50488    -- set accounting class
50489    --
50490    xla_ae_lines_pkg.SetAcctClass(
50491            p_accounting_class_code  => 'FUTURE_DATED_PMT'
50492          , p_ae_header_id           => l_ae_header_id
50493          );
50494 
50495    --
50496    -- set rounding class
50497    --
50498    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50499                       'FUTURE_DATED_PMT';
50500 
50501    --
50502    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50503    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50504    --
50505    -- bulk performance
50506    --
50507    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50508 
50509    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50510       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50511 
50512    -- 4955764
50513    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50514       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50515 
50516    -- 4458381 Public Sector Enh
50517    
50518    --
50519    -- set accounting attributes for the line type
50520    --
50521    l_entered_amt_idx := 9;
50522    l_accted_amt_idx  := 11;
50523    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
50524    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50525    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
50526    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
50527    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
50528    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50529    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
50530    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
50531    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
50532    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
50533    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
50534    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50535    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
50536    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
50537    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
50538    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
50539    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
50540    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
50541    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
50542    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
50543    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
50544    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
50545    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
50546    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
50547    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
50548    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
50549    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
50550    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
50551    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
50552    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
50553    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
50554 
50555    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50556    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50557 
50558    ---------------------------------------------------------------------------------------------------------------
50559    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50560    ---------------------------------------------------------------------------------------------------------------
50561    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50562 
50563    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50564    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50565 
50566    IF xla_accounting_cache_pkg.GetValueChar
50567          (p_source_code         => 'LEDGER_CATEGORY_CODE'
50568          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50569    AND l_bflow_method_code = 'PRIOR_ENTRY'
50570 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50571    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50572          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50573        )
50574    THEN
50575          xla_ae_lines_pkg.BflowUpgEntry
50576            (p_business_method_code    => l_bflow_method_code
50577            ,p_business_class_code     => l_bflow_class_code
50581 XLA_AE_LINES_PKG.business_flow_validation(
50578            ,p_balance_type            => l_balance_type_code);
50579    ELSE
50580       NULL;
50582                                 p_business_method_code     => l_bflow_method_code
50583                                ,p_business_class_code      => l_bflow_class_code
50584                                ,p_inherit_description_flag => l_inherit_desc_flag);
50585    END IF;
50586 
50587    --
50588    -- call analytical criteria
50589    --
50590    -- Inherited Analytical Criteria for business flow method of Prior Entry.
50591    --
50592    -- call description
50593    --
50594    -- No description or it is inherited.
50595    --
50596    -- call ADRs
50597    -- Bug 4922099
50598    --
50599    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50600         (NVL(l_actual_upg_option, 'N') = 'O') OR
50601         (NVL(l_enc_upg_option, 'N') = 'O')
50602       )
50603    THEN
50604    NULL;
50605    --
50606    --
50607    
50608    --
50609    --
50610    END IF;
50611    --
50612    -- Bug 4922099
50613    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50614           (NVL(l_enc_upg_option, 'N') = 'O')
50615         ) AND
50616         (l_bflow_method_code = 'PRIOR_ENTRY')
50617       )
50618    THEN
50619       IF
50620       --
50621       1 = 1
50622       --
50623       THEN
50624       xla_accounting_err_pkg.build_message
50625                                     (p_appli_s_name            => 'XLA'
50626                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50627                                     ,p_token_1                 => 'LINE_NUMBER'
50628                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
50629                                     ,p_token_2                 => 'LINE_TYPE_NAME'
50630                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
50631                                                                              l_component_type
50632                                                                             ,l_component_code
50633                                                                             ,l_component_type_code
50634                                                                             ,l_component_appl_id
50635                                                                             ,l_amb_context_code
50636                                                                             ,l_entity_code
50637                                                                             ,l_event_class_code
50638                                                                            )
50639                                     ,p_token_3                 => 'OWNER'
50640                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
50641                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
50642                                                                           ,p_lookup_code    => l_component_type_code
50643                                                                          )
50644                                     ,p_token_4                 => 'PRODUCT_NAME'
50645                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50646                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50647                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50648                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50649                                     ,p_ae_header_id            =>  NULL
50650                                        );
50651 
50652         IF (C_LEVEL_ERROR>= g_log_level) THEN
50653                  trace
50654                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50655                       ,p_level    => C_LEVEL_ERROR
50656                       ,p_module   => l_log_module);
50657         END IF;
50658       END IF;
50659    END IF;
50660    --
50661    --
50662    ------------------------------------------------------------------------------------------------
50663    -- 4219869 Business Flow
50664    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50665    -- Prior Entry.  Currently, the following code is always generated.
50666    ------------------------------------------------------------------------------------------------
50667    -- No ValidateCurrentLine for business flow method of Prior Entry
50668 
50669    ------------------------------------------------------------------------------------
50670    -- 4219869 Business Flow
50671    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50672    ------------------------------------------------------------------------------------
50673    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50674 
50675    ----------------------------------------------------------------------------------
50676    -- 4219869 Business Flow
50677    -- Update journal entry status -- Need to generate this within IF <condition>
50678    ----------------------------------------------------------------------------------
50679    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50680          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50681          ,p_balance_type_code => l_balance_type_code
50685    -- 4262811 - Generate the Accrual Reversal lines
50682          );
50683 
50684    -------------------------------------------------------------------------------------------
50686    -------------------------------------------------------------------------------------------
50687    BEGIN
50688       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50689                               (g_array_event(p_event_id).array_value_num('header_index'));
50690       IF l_acc_rev_flag IS NULL THEN
50691          l_acc_rev_flag := 'N';
50692       END IF;
50693    EXCEPTION
50694       WHEN OTHERS THEN
50695          l_acc_rev_flag := 'N';
50696    END;
50697    --
50698    IF (l_acc_rev_flag = 'Y') THEN
50699 
50700        -- 4645092  ------------------------------------------------------------------------------
50701        -- To allow MPA report to determine if it should generate report process
50702        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50703        ------------------------------------------------------------------------------------------
50704 
50705        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50706        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50707    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
50708    -- call ADRs
50709    -- Bug 4922099
50710    --
50711    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50712         (NVL(l_actual_upg_option, 'N') = 'O') OR
50713         (NVL(l_enc_upg_option, 'N') = 'O')
50714       )
50715    THEN
50716    NULL;
50717    --
50718    --
50719    
50720    --
50721    --
50722    END IF;
50723 
50724        --
50725        -- Update the line information that should be overwritten
50726        --
50727        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50728                                          p_header_num   => 1);
50729        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
50730 
50731        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50732 
50733        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
50734           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50735        END IF;
50736 
50737       --
50738       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50739       --
50740       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50741           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
50742       ELSE
50743           ---------------------------------------------------------------------------------------------------
50744           -- 4262811a Switch Sign
50745           ---------------------------------------------------------------------------------------------------
50746           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
50747           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50748                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50749           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50750                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50751           -- 5132302
50752           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50753                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50754 
50755       END IF;
50756 
50757       -- 4955764
50758       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50759       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50760 
50761 
50762       XLA_AE_LINES_PKG.ValidateCurrentLine;
50763       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50764 
50765       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50766                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50767                ,p_balance_type_code => l_balance_type_code);
50768 
50769    END IF;
50770 
50771    -----------------------------------------------------------------------------------------
50772    -- 4262811 Multiperiod Accounting
50773    -----------------------------------------------------------------------------------------
50774      -- No MPA option is assigned.
50775 
50776 
50777 END IF;
50778 END IF;
50779 --
50780 
50781 --
50782 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50783    trace
50784       (p_msg      => 'END of AcctLineType_100'
50785       ,p_level    => C_LEVEL_PROCEDURE
50786       ,p_module   => l_log_module);
50787 END IF;
50788 --
50789 EXCEPTION
50790   WHEN xla_exceptions_pkg.application_exception THEN
50791       RAISE;
50792   WHEN OTHERS THEN
50793        xla_exceptions_pkg.raise_message
50794            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_100');
50795 END AcctLineType_100;
50796 --
50797 
50798 ---------------------------------------
50799 --
50800 -- PRIVATE FUNCTION
50801 --         AcctLineType_101
50802 --
50803 ---------------------------------------
50804 PROCEDURE AcctLineType_101 (
50805   p_application_id        IN NUMBER
50809  ,p_actual_flag           IN OUT VARCHAR2
50806  ,p_event_id              IN NUMBER
50807  ,p_calculate_acctd_flag  IN VARCHAR2
50808  ,p_calculate_g_l_flag    IN VARCHAR2
50810  ,p_balance_type_code     OUT VARCHAR2
50811  ,p_gain_or_loss_ref      OUT VARCHAR2
50812  
50813 --Automatic Offsets Value
50814  , p_source_4            IN VARCHAR2
50815  , p_source_4_meaning    IN VARCHAR2
50816 --Payment Distribution (Payment Rate) Ledger Amount
50817  , p_source_9            IN NUMBER
50818 --Invoice Distribution Account
50819  , p_source_17            IN NUMBER
50820 --Payables Options Rounding Account
50821  , p_source_37            IN NUMBER
50822 --When to Account for Payment Option
50823  , p_source_38            IN VARCHAR2
50824 --Payment Distribution Type
50825  , p_source_39            IN VARCHAR2
50826  , p_source_39_meaning    IN VARCHAR2
50827 --Accounting Reversal Indicator
50828  , p_source_40            IN VARCHAR2
50829 --Payment Distribution Amount
50830  , p_source_41            IN NUMBER
50831 --Business Flow Accounts Payable Application Identifier
50832  , p_source_42            IN NUMBER
50833 --Business Flow Payment Distribution Type
50834  , p_source_43            IN VARCHAR2
50835 --Business Flow Payment Entity Code
50836  , p_source_44            IN VARCHAR2
50837 --Business Flow Payment Distribution Identifier
50838  , p_source_45            IN NUMBER
50839 --Business Flow Payment Identifier
50840  , p_source_46            IN NUMBER
50841 --Payment Distribution Identifier
50842  , p_source_47            IN NUMBER
50843 --Distribution Link Type
50844  , p_source_48            IN VARCHAR2
50845 --Payment Currency Code
50846  , p_source_49            IN VARCHAR2
50847 --Override Accounted Amount Indicator
50848  , p_source_53            IN VARCHAR2
50849  , p_source_53_meaning    IN VARCHAR2
50850 --Payment Supplier Identifier
50851  , p_source_54            IN NUMBER
50852 --Payment Supplier Site Identifier
50853  , p_source_55            IN NUMBER
50854 --Third Party Type
50855  , p_source_56            IN VARCHAR2
50856 --Payment Distribution Reversed Identifier
50857  , p_source_57            IN NUMBER
50858 --Payment Exchange Date
50859  , p_source_114            IN DATE
50860 --Payment Exchange Rate
50861  , p_source_115            IN NUMBER
50862 --Payment Exchange Rate Type
50863  , p_source_116            IN VARCHAR2
50864 )
50865 IS
50866 
50867 l_component_type              VARCHAR2(80);
50868 l_component_code              VARCHAR2(30);
50869 l_component_type_code         VARCHAR2(1);
50870 l_component_appl_id           INTEGER;
50871 l_amb_context_code            VARCHAR2(30);
50872 l_entity_code                 VARCHAR2(30);
50873 l_event_class_code            VARCHAR2(30);
50874 l_ae_header_id                NUMBER;
50875 l_event_type_code             VARCHAR2(30);
50876 l_line_definition_code        VARCHAR2(30);
50877 l_line_definition_owner_code  VARCHAR2(1);
50878 --
50879 -- adr variables
50880 l_segment                     VARCHAR2(30);
50881 l_ccid                        NUMBER;
50882 l_adr_transaction_coa_id      NUMBER;
50883 l_adr_accounting_coa_id       NUMBER;
50884 l_adr_flexfield_segment_code  VARCHAR2(30);
50885 l_adr_flex_value_set_id       NUMBER;
50886 l_adr_value_type_code         VARCHAR2(30);
50887 l_adr_value_combination_id    NUMBER;
50888 l_adr_value_segment_code      VARCHAR2(30);
50889 
50890 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50891 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50892 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50893 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50894 
50895 -- 4262811 Variables ------------------------------------------------------------------------------------------
50896 l_entered_amt_idx             NUMBER;
50897 l_accted_amt_idx              NUMBER;
50898 l_acc_rev_flag                VARCHAR2(1);
50899 l_accrual_line_num            NUMBER;
50900 l_tmp_amt                     NUMBER;
50901 l_acc_rev_natural_side_code   VARCHAR2(1);
50902 
50903 l_num_entries                 NUMBER;
50904 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50905 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50906 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50907 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50908 l_recog_line_1                NUMBER;
50909 l_recog_line_2                NUMBER;
50910 
50911 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50912 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50913 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50914 
50915 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50916 
50917 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50918 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50919 
50920 ---------------------------------------------------------------------------------------------------------------
50921 
50922 
50923 --
50924 -- bulk performance
50925 --
50926 l_balance_type_code           VARCHAR2(1);
50927 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50928 l_log_module                  VARCHAR2(240);
50929 
50930 --
50931 -- Upgrade strategy
50932 --
50936 --
50933 l_actual_upg_option           VARCHAR2(1);
50934 l_enc_upg_option           VARCHAR2(1);
50935 
50937 BEGIN
50938 --
50939 IF g_log_enabled THEN
50940       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
50941 END IF;
50942 --
50943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50944 
50945       trace
50946          (p_msg      => 'BEGIN of AcctLineType_101'
50947          ,p_level    => C_LEVEL_PROCEDURE
50948          ,p_module   => l_log_module);
50949 
50950 END IF;
50951 --
50952 l_component_type             := 'AMB_JLT';
50953 l_component_code             := 'AP_FUTURE_PMT_ROUNDING_MAT';
50954 l_component_type_code        := 'S';
50955 l_component_appl_id          :=  200;
50956 l_amb_context_code           := 'DEFAULT';
50957 l_entity_code                := 'AP_PAYMENTS';
50958 l_event_class_code           := 'FUTURE DATED PAYMENTS';
50959 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
50960 l_line_definition_owner_code := 'S';
50961 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
50962 --
50963 l_balance_type_code          := 'A';
50964 l_segment                     := NULL;
50965 l_ccid                        := NULL;
50966 l_adr_transaction_coa_id      := NULL;
50967 l_adr_accounting_coa_id       := NULL;
50968 l_adr_flexfield_segment_code  := NULL;
50969 l_adr_flex_value_set_id       := NULL;
50970 l_adr_value_type_code         := NULL;
50971 l_adr_value_combination_id    := NULL;
50972 l_adr_value_segment_code      := NULL;
50973 
50974 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50975 l_bflow_class_code           := '';    -- 4219869 Business Flow
50976 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50977 l_budgetary_control_flag     := 'N';
50978 
50979 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50980 l_bflow_applied_to_amt       := NULL; -- 5132302
50981 l_entered_amt_idx            := NULL;          -- 4262811
50982 l_accted_amt_idx             := NULL;          -- 4262811
50983 l_acc_rev_flag               := NULL;          -- 4262811
50984 l_accrual_line_num           := NULL;          -- 4262811
50985 l_tmp_amt                    := NULL;          -- 4262811
50986 --
50987  
50988 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50989     l_balance_type_code <> 'B' THEN
50990 IF NVL(p_source_38,'
50991 ') <>  'CLEAR_CLEAR' AND 
50992 NVL(p_source_39,'
50993 ') =  'FUTURE PAYMENT ROUNDING'
50994  THEN 
50995 
50996    --
50997    XLA_AE_LINES_PKG.SetNewLine;
50998 
50999    p_balance_type_code          := l_balance_type_code;
51000    -- set the flag so later we will know whether the gain loss line needs to be created
51001    
51002    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51003      p_actual_flag :='A';
51004    END IF;
51005 
51006    --
51007    -- bulk performance
51008    --
51009    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51010                                       p_header_num   => 0); -- 4262811
51011    --
51012    -- set accounting line options
51013    --
51014    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51015            p_natural_side_code          => 'D'
51016          , p_gain_or_loss_flag          => 'N'
51017          , p_gl_transfer_mode_code      => 'S'
51018          , p_acct_entry_type_code       => 'A'
51019          , p_switch_side_flag           => 'Y'
51020          , p_merge_duplicate_code       => 'A'
51021          );
51022    --
51023    l_acc_rev_natural_side_code := 'C';  -- 4262811
51024    -- 
51025    --
51026    -- set accounting line type info
51027    --
51028    xla_ae_lines_pkg.SetAcctLineType
51029       (p_component_type             => l_component_type
51030       ,p_event_type_code            => l_event_type_code
51031       ,p_line_definition_owner_code => l_line_definition_owner_code
51032       ,p_line_definition_code       => l_line_definition_code
51033       ,p_accounting_line_code       => l_component_code
51034       ,p_accounting_line_type_code  => l_component_type_code
51035       ,p_accounting_line_appl_id    => l_component_appl_id
51036       ,p_amb_context_code           => l_amb_context_code
51037       ,p_entity_code                => l_entity_code
51038       ,p_event_class_code           => l_event_class_code);
51039    --
51040    -- set accounting class
51041    --
51042    xla_ae_lines_pkg.SetAcctClass(
51043            p_accounting_class_code  => 'ROUNDING'
51044          , p_ae_header_id           => l_ae_header_id
51045          );
51046 
51047    --
51048    -- set rounding class
51049    --
51050    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51051                       'ROUNDING';
51052 
51053    --
51054    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51055    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51056    --
51057    -- bulk performance
51058    --
51059    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51060 
51061    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51062       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51063 
51064    -- 4955764
51065    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51069    
51066       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51067 
51068    -- 4458381 Public Sector Enh
51070    --
51071    -- set accounting attributes for the line type
51072    --
51073    l_entered_amt_idx := 9;
51074    l_accted_amt_idx  := 14;
51075    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
51076    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51077    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
51078    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
51079    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
51080    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51081    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
51082    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
51083    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
51084    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
51085    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
51086    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51087    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
51088    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
51089    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
51090    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
51091    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
51092    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
51093    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
51094    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
51095    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
51096    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
51097    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
51098    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
51099    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
51100    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
51101    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
51102    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
51103    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
51104    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
51105    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
51106    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
51107    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
51108    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
51109    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
51110    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
51111    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
51112    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
51113    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
51114    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
51115    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
51116 
51117    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51118    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51119 
51120    ---------------------------------------------------------------------------------------------------------------
51121    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51122    ---------------------------------------------------------------------------------------------------------------
51123    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51124 
51125    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51126    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51127 
51128    IF xla_accounting_cache_pkg.GetValueChar
51129          (p_source_code         => 'LEDGER_CATEGORY_CODE'
51130          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51131    AND l_bflow_method_code = 'PRIOR_ENTRY'
51132 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51133    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51134          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51135        )
51136    THEN
51137          xla_ae_lines_pkg.BflowUpgEntry
51138            (p_business_method_code    => l_bflow_method_code
51139            ,p_business_class_code     => l_bflow_class_code
51140            ,p_balance_type            => l_balance_type_code);
51141    ELSE
51142       NULL;
51143 -- No business flow processing for business flow method of NONE.
51144    END IF;
51145 
51146    --
51147    -- call analytical criteria
51148    --
51149    
51150    --
51151    -- call description
51152    --
51153    -- No description or it is inherited.
51154    --
51155    -- call ADRs
51156    -- Bug 4922099
51157    --
51158    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51159         (NVL(l_actual_upg_option, 'N') = 'O') OR
51160         (NVL(l_enc_upg_option, 'N') = 'O')
51161       )
51162    THEN
51163    NULL;
51164    --
51165    --
51166    
51167   l_ccid := AcctDerRule_35(
51168            p_application_id           => p_application_id
51169          , p_ae_header_id             => l_ae_header_id 
51173 , p_source_37 => p_source_37
51170 , p_source_4 => p_source_4
51171 , p_source_4_meaning => p_source_4_meaning
51172 , p_source_17 => p_source_17
51174          , x_transaction_coa_id       => l_adr_transaction_coa_id
51175          , x_accounting_coa_id        => l_adr_accounting_coa_id
51176          , x_value_type_code          => l_adr_value_type_code
51177          , p_side                     => 'NA'
51178    );
51179 
51180    xla_ae_lines_pkg.set_ccid(
51181     p_code_combination_id          => l_ccid
51182   , p_value_type_code              => l_adr_value_type_code
51183   , p_transaction_coa_id           => l_adr_transaction_coa_id
51184   , p_accounting_coa_id            => l_adr_accounting_coa_id
51185   , p_adr_code                     => 'AP_ROUNDING'
51186   , p_adr_type_code                => 'S'
51187   , p_component_type               => l_component_type
51188   , p_component_code               => l_component_code
51189   , p_component_type_code          => l_component_type_code
51190   , p_component_appl_id            => l_component_appl_id
51191   , p_amb_context_code             => l_amb_context_code
51192   , p_side                         => 'NA'
51193   );
51194 
51195 
51196    --
51197    --
51198    END IF;
51199    --
51200    -- Bug 4922099
51201    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51202           (NVL(l_enc_upg_option, 'N') = 'O')
51203         ) AND
51204         (l_bflow_method_code = 'PRIOR_ENTRY')
51205       )
51206    THEN
51207       IF
51208       --
51209       1 = 2
51210       --
51211       THEN
51212       xla_accounting_err_pkg.build_message
51213                                     (p_appli_s_name            => 'XLA'
51214                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51215                                     ,p_token_1                 => 'LINE_NUMBER'
51216                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51217                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51218                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51219                                                                              l_component_type
51220                                                                             ,l_component_code
51221                                                                             ,l_component_type_code
51222                                                                             ,l_component_appl_id
51223                                                                             ,l_amb_context_code
51224                                                                             ,l_entity_code
51225                                                                             ,l_event_class_code
51226                                                                            )
51227                                     ,p_token_3                 => 'OWNER'
51228                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51229                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51230                                                                           ,p_lookup_code    => l_component_type_code
51231                                                                          )
51232                                     ,p_token_4                 => 'PRODUCT_NAME'
51233                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51234                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51235                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51236                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51237                                     ,p_ae_header_id            =>  NULL
51238                                        );
51239 
51240         IF (C_LEVEL_ERROR>= g_log_level) THEN
51241                  trace
51242                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51243                       ,p_level    => C_LEVEL_ERROR
51244                       ,p_module   => l_log_module);
51245         END IF;
51246       END IF;
51247    END IF;
51248    --
51249    --
51250    ------------------------------------------------------------------------------------------------
51251    -- 4219869 Business Flow
51252    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51253    -- Prior Entry.  Currently, the following code is always generated.
51254    ------------------------------------------------------------------------------------------------
51255    XLA_AE_LINES_PKG.ValidateCurrentLine;
51256 
51257    ------------------------------------------------------------------------------------
51258    -- 4219869 Business Flow
51259    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51260    ------------------------------------------------------------------------------------
51261    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51262 
51263    ----------------------------------------------------------------------------------
51264    -- 4219869 Business Flow
51265    -- Update journal entry status -- Need to generate this within IF <condition>
51266    ----------------------------------------------------------------------------------
51270          );
51267    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51268          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51269          ,p_balance_type_code => l_balance_type_code
51271 
51272    -------------------------------------------------------------------------------------------
51273    -- 4262811 - Generate the Accrual Reversal lines
51274    -------------------------------------------------------------------------------------------
51275    BEGIN
51276       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51277                               (g_array_event(p_event_id).array_value_num('header_index'));
51278       IF l_acc_rev_flag IS NULL THEN
51279          l_acc_rev_flag := 'N';
51280       END IF;
51281    EXCEPTION
51282       WHEN OTHERS THEN
51283          l_acc_rev_flag := 'N';
51284    END;
51285    --
51286    IF (l_acc_rev_flag = 'Y') THEN
51287 
51288        -- 4645092  ------------------------------------------------------------------------------
51289        -- To allow MPA report to determine if it should generate report process
51290        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51291        ------------------------------------------------------------------------------------------
51292 
51293        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51294        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51295    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
51296    -- call ADRs
51297    -- Bug 4922099
51298    --
51299    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51300         (NVL(l_actual_upg_option, 'N') = 'O') OR
51301         (NVL(l_enc_upg_option, 'N') = 'O')
51302       )
51303    THEN
51304    NULL;
51305    --
51306    --
51307    
51308   l_ccid := AcctDerRule_35(
51309            p_application_id           => p_application_id
51310          , p_ae_header_id             => l_ae_header_id 
51311 , p_source_4 => p_source_4
51312 , p_source_4_meaning => p_source_4_meaning
51313 , p_source_17 => p_source_17
51314 , p_source_37 => p_source_37
51315          , x_transaction_coa_id       => l_adr_transaction_coa_id
51316          , x_accounting_coa_id        => l_adr_accounting_coa_id
51317          , x_value_type_code          => l_adr_value_type_code
51318          , p_side                     => 'NA'
51319    );
51320 
51321    xla_ae_lines_pkg.set_ccid(
51322     p_code_combination_id          => l_ccid
51323   , p_value_type_code              => l_adr_value_type_code
51324   , p_transaction_coa_id           => l_adr_transaction_coa_id
51325   , p_accounting_coa_id            => l_adr_accounting_coa_id
51326   , p_adr_code                     => 'AP_ROUNDING'
51327   , p_adr_type_code                => 'S'
51328   , p_component_type               => l_component_type
51329   , p_component_code               => l_component_code
51330   , p_component_type_code          => l_component_type_code
51331   , p_component_appl_id            => l_component_appl_id
51332   , p_amb_context_code             => l_amb_context_code
51333   , p_side                         => 'NA'
51334   );
51335 
51336 
51337    --
51338    --
51339    END IF;
51340 
51341        --
51342        -- Update the line information that should be overwritten
51343        --
51344        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51345                                          p_header_num   => 1);
51346        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
51347 
51348        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51349 
51350        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
51351           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51352        END IF;
51353 
51354       --
51355       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51356       --
51357       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51358           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
51359       ELSE
51360           ---------------------------------------------------------------------------------------------------
51361           -- 4262811a Switch Sign
51362           ---------------------------------------------------------------------------------------------------
51363           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
51364           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51365                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51366           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51367                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51368           -- 5132302
51369           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51370                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51371 
51372       END IF;
51373 
51374       -- 4955764
51375       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51376       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51377 
51378 
51382       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51379       XLA_AE_LINES_PKG.ValidateCurrentLine;
51380       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51381 
51383                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51384                ,p_balance_type_code => l_balance_type_code);
51385 
51386    END IF;
51387 
51388    -----------------------------------------------------------------------------------------
51389    -- 4262811 Multiperiod Accounting
51390    -----------------------------------------------------------------------------------------
51391      -- No MPA option is assigned.
51392 
51393 
51394 END IF;
51395 END IF;
51396 --
51397 
51398 --
51399 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51400    trace
51401       (p_msg      => 'END of AcctLineType_101'
51402       ,p_level    => C_LEVEL_PROCEDURE
51403       ,p_module   => l_log_module);
51404 END IF;
51405 --
51406 EXCEPTION
51407   WHEN xla_exceptions_pkg.application_exception THEN
51408       RAISE;
51409   WHEN OTHERS THEN
51410        xla_exceptions_pkg.raise_message
51411            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_101');
51412 END AcctLineType_101;
51413 --
51414 
51415 ---------------------------------------
51416 --
51417 -- PRIVATE FUNCTION
51418 --         AcctLineType_102
51419 --
51420 ---------------------------------------
51421 PROCEDURE AcctLineType_102 (
51422   p_application_id        IN NUMBER
51423  ,p_event_id              IN NUMBER
51424  ,p_calculate_acctd_flag  IN VARCHAR2
51425  ,p_calculate_g_l_flag    IN VARCHAR2
51426  ,p_actual_flag           IN OUT VARCHAR2
51427  ,p_balance_type_code     OUT VARCHAR2
51428  ,p_gain_or_loss_ref      OUT VARCHAR2
51429  
51430 --Automatic Offsets Value
51431  , p_source_4            IN VARCHAR2
51432  , p_source_4_meaning    IN VARCHAR2
51433 --Invoice Distribution Account
51434  , p_source_17            IN NUMBER
51435 --Internal Realized Gain Account
51436  , p_source_32            IN NUMBER
51437 --Bank Gain Account
51438  , p_source_33            IN NUMBER
51439 --Internal Realized Loss Account
51440  , p_source_34            IN NUMBER
51441 --Bank Loss Account
51442  , p_source_35            IN NUMBER
51443 --When to Account for Payment Option
51444  , p_source_38            IN VARCHAR2
51445 --Payment Distribution Type
51446  , p_source_39            IN VARCHAR2
51447  , p_source_39_meaning    IN VARCHAR2
51448 --Accounting Reversal Indicator
51449  , p_source_40            IN VARCHAR2
51450 --Payment Distribution Amount
51451  , p_source_41            IN NUMBER
51452 --Business Flow Accounts Payable Application Identifier
51453  , p_source_42            IN NUMBER
51454 --Business Flow Payment Distribution Type
51455  , p_source_43            IN VARCHAR2
51456 --Business Flow Payment Entity Code
51457  , p_source_44            IN VARCHAR2
51458 --Business Flow Payment Distribution Identifier
51459  , p_source_45            IN NUMBER
51460 --Business Flow Payment Identifier
51461  , p_source_46            IN NUMBER
51462 --Payment Distribution Identifier
51463  , p_source_47            IN NUMBER
51464 --Distribution Link Type
51465  , p_source_48            IN VARCHAR2
51466 --Override Accounted Amount Indicator
51467  , p_source_53            IN VARCHAR2
51468  , p_source_53_meaning    IN VARCHAR2
51469 --Payment Supplier Identifier
51470  , p_source_54            IN NUMBER
51471 --Payment Supplier Site Identifier
51472  , p_source_55            IN NUMBER
51473 --Third Party Type
51474  , p_source_56            IN VARCHAR2
51475 --Payment Distribution Reversed Identifier
51476  , p_source_57            IN NUMBER
51477 --Invoice Distribution Tax Line Identifier
51478  , p_source_58            IN NUMBER
51479 --Invoice Distribution Summary Tax Line Identifier
51480  , p_source_59            IN NUMBER
51481 --Payment Maturity Date
51482  , p_source_111            IN DATE
51483 --Invoice/Clearing Ledger Amount Difference
51484  , p_source_127            IN NUMBER
51485 )
51486 IS
51487 
51488 l_component_type              VARCHAR2(80);
51489 l_component_code              VARCHAR2(30);
51490 l_component_type_code         VARCHAR2(1);
51491 l_component_appl_id           INTEGER;
51492 l_amb_context_code            VARCHAR2(30);
51493 l_entity_code                 VARCHAR2(30);
51494 l_event_class_code            VARCHAR2(30);
51495 l_ae_header_id                NUMBER;
51496 l_event_type_code             VARCHAR2(30);
51497 l_line_definition_code        VARCHAR2(30);
51498 l_line_definition_owner_code  VARCHAR2(1);
51499 --
51500 -- adr variables
51501 l_segment                     VARCHAR2(30);
51502 l_ccid                        NUMBER;
51503 l_adr_transaction_coa_id      NUMBER;
51504 l_adr_accounting_coa_id       NUMBER;
51505 l_adr_flexfield_segment_code  VARCHAR2(30);
51506 l_adr_flex_value_set_id       NUMBER;
51507 l_adr_value_type_code         VARCHAR2(30);
51508 l_adr_value_combination_id    NUMBER;
51509 l_adr_value_segment_code      VARCHAR2(30);
51510 
51511 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
51512 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
51513 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
51514 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
51515 
51519 l_acc_rev_flag                VARCHAR2(1);
51516 -- 4262811 Variables ------------------------------------------------------------------------------------------
51517 l_entered_amt_idx             NUMBER;
51518 l_accted_amt_idx              NUMBER;
51520 l_accrual_line_num            NUMBER;
51521 l_tmp_amt                     NUMBER;
51522 l_acc_rev_natural_side_code   VARCHAR2(1);
51523 
51524 l_num_entries                 NUMBER;
51525 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
51526 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
51527 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
51528 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
51529 l_recog_line_1                NUMBER;
51530 l_recog_line_2                NUMBER;
51531 
51532 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
51533 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
51534 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
51535 
51536 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51537 
51538 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
51539 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
51540 
51541 ---------------------------------------------------------------------------------------------------------------
51542 
51543 
51544 --
51545 -- bulk performance
51546 --
51547 l_balance_type_code           VARCHAR2(1);
51548 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
51549 l_log_module                  VARCHAR2(240);
51550 
51551 --
51552 -- Upgrade strategy
51553 --
51554 l_actual_upg_option           VARCHAR2(1);
51555 l_enc_upg_option           VARCHAR2(1);
51556 
51557 --
51558 BEGIN
51559 --
51560 IF g_log_enabled THEN
51561       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
51562 END IF;
51563 --
51564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51565 
51566       trace
51567          (p_msg      => 'BEGIN of AcctLineType_102'
51568          ,p_level    => C_LEVEL_PROCEDURE
51569          ,p_module   => l_log_module);
51570 
51571 END IF;
51572 --
51573 l_component_type             := 'AMB_JLT';
51574 l_component_code             := 'AP_GAIN_LOSS_PAY_CLEAR';
51575 l_component_type_code        := 'S';
51576 l_component_appl_id          :=  200;
51577 l_amb_context_code           := 'DEFAULT';
51578 l_entity_code                := 'AP_PAYMENTS';
51579 l_event_class_code           := 'RECONCILED PAYMENTS';
51580 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
51581 l_line_definition_owner_code := 'S';
51582 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
51583 --
51584 l_balance_type_code          := 'A';
51585 l_segment                     := NULL;
51586 l_ccid                        := NULL;
51587 l_adr_transaction_coa_id      := NULL;
51588 l_adr_accounting_coa_id       := NULL;
51589 l_adr_flexfield_segment_code  := NULL;
51590 l_adr_flex_value_set_id       := NULL;
51591 l_adr_value_type_code         := NULL;
51592 l_adr_value_combination_id    := NULL;
51593 l_adr_value_segment_code      := NULL;
51594 
51595 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
51596 l_bflow_class_code           := '';    -- 4219869 Business Flow
51597 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
51598 l_budgetary_control_flag     := 'N';
51599 
51600 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
51601 l_bflow_applied_to_amt       := NULL; -- 5132302
51602 l_entered_amt_idx            := NULL;          -- 4262811
51603 l_accted_amt_idx             := NULL;          -- 4262811
51604 l_acc_rev_flag               := NULL;          -- 4262811
51605 l_accrual_line_num           := NULL;          -- 4262811
51606 l_tmp_amt                    := NULL;          -- 4262811
51607 --
51608 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
51609             (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
51610                return;
51611   END IF;
51612   
51613 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51614     l_balance_type_code <> 'B' THEN
51615 IF (NVL(p_source_38,'
51616 ') =  'CLEAR_CLEAR' OR 
51617 NVL(p_source_38,'
51618 ') =  'ALWAYS_CLEAR' OR 
51619 NVL(p_source_38,'
51620 ') =  'ALWAYS_ALWAYS') AND 
51621 p_source_111 IS NULL AND 
51622 NVL(p_source_39,'
51623 ') <>  'EXCHANGE RATE VARIANCE' AND 
51624 NVL(p_source_39,'
51625 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
51626 NVL(p_source_39,'
51627 ') <>  'BANK CHARGE' AND 
51628 NVL(p_source_39,'
51629 ') <>  'BANK ERROR'
51630  THEN 
51631 
51632    --
51633    XLA_AE_LINES_PKG.SetNewLine;
51634 
51635    p_balance_type_code          := l_balance_type_code;
51636    -- set the flag so later we will know whether the gain loss line needs to be created
51637    
51638    IF(l_balance_type_code = 'A' ) THEN
51639      p_actual_flag :='G';
51640    END IF;
51641 
51642    --
51643    -- bulk performance
51644    --
51645    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51646                                       p_header_num   => 0); -- 4262811
51647    --
51651            p_natural_side_code          => 'G'
51648    -- set accounting line options
51649    --
51650    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51652          , p_gain_or_loss_flag          => 'N'
51653          , p_gl_transfer_mode_code      => 'S'
51654          , p_acct_entry_type_code       => 'A'
51655          , p_switch_side_flag           => ''
51656          , p_merge_duplicate_code       => 'A'
51657          );
51658    --
51659    l_acc_rev_natural_side_code := 'C';  -- 4262811
51660    -- 
51661    --
51662    -- set accounting line type info
51663    --
51664    xla_ae_lines_pkg.SetAcctLineType
51665       (p_component_type             => l_component_type
51666       ,p_event_type_code            => l_event_type_code
51667       ,p_line_definition_owner_code => l_line_definition_owner_code
51668       ,p_line_definition_code       => l_line_definition_code
51669       ,p_accounting_line_code       => l_component_code
51670       ,p_accounting_line_type_code  => l_component_type_code
51671       ,p_accounting_line_appl_id    => l_component_appl_id
51672       ,p_amb_context_code           => l_amb_context_code
51673       ,p_entity_code                => l_entity_code
51674       ,p_event_class_code           => l_event_class_code);
51675    --
51676    -- set accounting class
51677    --
51678    xla_ae_lines_pkg.SetAcctClass(
51679            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
51680          , p_ae_header_id           => l_ae_header_id
51681          );
51682 
51683    --
51684    -- set rounding class
51685    --
51686    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51687                       'EXCHANGE_GAIN_LOSS';
51688 
51689    --
51690    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51691    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51692    --
51693    -- bulk performance
51694    --
51695    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51696 
51697    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51698       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51699 
51700    -- 4955764
51701    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51702       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51703 
51704    -- 4458381 Public Sector Enh
51705    
51706    --
51707    -- set accounting attributes for the line type
51708    --
51709    l_entered_amt_idx := NULL;
51710    l_accted_amt_idx  := 10;
51711    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
51712    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51713    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
51714    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
51715    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
51716    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
51717    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
51718    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51719    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
51720    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
51721    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
51722    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
51723    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
51724    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51725    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
51726    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
51727    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
51728    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
51729    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
51730    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
51731    l_rec_acct_attrs.array_num_value(10)  := p_source_127;
51732    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
51733    l_rec_acct_attrs.array_char_value(11)  := p_source_53;
51734    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
51735    l_rec_acct_attrs.array_num_value(12)  := p_source_54;
51736    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
51737    l_rec_acct_attrs.array_num_value(13)  := p_source_55;
51738    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
51739    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
51740    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
51741    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
51742    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
51743    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
51744    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
51745    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
51746    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
51747    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
51748    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
51749    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
51750 
51751    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51755    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51752    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51753 
51754    ---------------------------------------------------------------------------------------------------------------
51756    ---------------------------------------------------------------------------------------------------------------
51757    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51758 
51759    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51760    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51761 
51762    IF xla_accounting_cache_pkg.GetValueChar
51763          (p_source_code         => 'LEDGER_CATEGORY_CODE'
51764          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51765    AND l_bflow_method_code = 'PRIOR_ENTRY'
51766 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51767    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51768          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51769        )
51770    THEN
51771          xla_ae_lines_pkg.BflowUpgEntry
51772            (p_business_method_code    => l_bflow_method_code
51773            ,p_business_class_code     => l_bflow_class_code
51774            ,p_balance_type            => l_balance_type_code);
51775    ELSE
51776       NULL;
51777 -- No business flow processing for business flow method of NONE.
51778    END IF;
51779 
51780    --
51781    -- call analytical criteria
51782    --
51783    
51784    --
51785    -- call description
51786    --
51787    -- No description or it is inherited.
51788    --
51789    -- call ADRs
51790    -- Bug 4922099
51791    --
51792    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51793         (NVL(l_actual_upg_option, 'N') = 'O') OR
51794         (NVL(l_enc_upg_option, 'N') = 'O')
51795       )
51796    THEN
51797    NULL;
51798    --
51799    --
51800    
51801   l_ccid := AcctDerRule_31(
51802            p_application_id           => p_application_id
51803          , p_ae_header_id             => l_ae_header_id 
51804 , p_source_4 => p_source_4
51805 , p_source_4_meaning => p_source_4_meaning
51806 , p_source_17 => p_source_17
51807 , p_source_32 => p_source_32
51808 , p_source_33 => p_source_33
51809          , x_transaction_coa_id       => l_adr_transaction_coa_id
51810          , x_accounting_coa_id        => l_adr_accounting_coa_id
51811          , x_value_type_code          => l_adr_value_type_code
51812          , p_side                     => 'CREDIT'
51813    );
51814 
51815    xla_ae_lines_pkg.set_ccid(
51816     p_code_combination_id          => l_ccid
51817   , p_value_type_code              => l_adr_value_type_code
51818   , p_transaction_coa_id           => l_adr_transaction_coa_id
51819   , p_accounting_coa_id            => l_adr_accounting_coa_id
51820   , p_adr_code                     => 'AP_REAL_GAIN'
51821   , p_adr_type_code                => 'S'
51822   , p_component_type               => l_component_type
51823   , p_component_code               => l_component_code
51824   , p_component_type_code          => l_component_type_code
51825   , p_component_appl_id            => l_component_appl_id
51826   , p_amb_context_code             => l_amb_context_code
51827   , p_side                         => 'CREDIT'
51828   );
51829 
51830 
51831   l_ccid := AcctDerRule_32(
51832            p_application_id           => p_application_id
51833          , p_ae_header_id             => l_ae_header_id 
51834 , p_source_4 => p_source_4
51835 , p_source_4_meaning => p_source_4_meaning
51836 , p_source_17 => p_source_17
51837 , p_source_34 => p_source_34
51838 , p_source_35 => p_source_35
51839          , x_transaction_coa_id       => l_adr_transaction_coa_id
51840          , x_accounting_coa_id        => l_adr_accounting_coa_id
51841          , x_value_type_code          => l_adr_value_type_code
51842          , p_side                     => 'DEBIT'
51843    );
51844 
51845    xla_ae_lines_pkg.set_ccid(
51846     p_code_combination_id          => l_ccid
51847   , p_value_type_code              => l_adr_value_type_code
51848   , p_transaction_coa_id           => l_adr_transaction_coa_id
51849   , p_accounting_coa_id            => l_adr_accounting_coa_id
51850   , p_adr_code                     => 'AP_REAL_LOSS'
51851   , p_adr_type_code                => 'S'
51852   , p_component_type               => l_component_type
51853   , p_component_code               => l_component_code
51854   , p_component_type_code          => l_component_type_code
51855   , p_component_appl_id            => l_component_appl_id
51856   , p_amb_context_code             => l_amb_context_code
51857   , p_side                         => 'DEBIT'
51858   );
51859 
51860 
51861    --
51862    --
51863    END IF;
51864    --
51865    -- Bug 4922099
51866    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51867           (NVL(l_enc_upg_option, 'N') = 'O')
51868         ) AND
51869         (l_bflow_method_code = 'PRIOR_ENTRY')
51870       )
51871    THEN
51872       IF
51873       --
51874       1 = 2
51875       --
51876       THEN
51877       xla_accounting_err_pkg.build_message
51881                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51878                                     (p_appli_s_name            => 'XLA'
51879                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51880                                     ,p_token_1                 => 'LINE_NUMBER'
51882                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51883                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51884                                                                              l_component_type
51885                                                                             ,l_component_code
51886                                                                             ,l_component_type_code
51887                                                                             ,l_component_appl_id
51888                                                                             ,l_amb_context_code
51889                                                                             ,l_entity_code
51890                                                                             ,l_event_class_code
51891                                                                            )
51892                                     ,p_token_3                 => 'OWNER'
51893                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51894                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51895                                                                           ,p_lookup_code    => l_component_type_code
51896                                                                          )
51897                                     ,p_token_4                 => 'PRODUCT_NAME'
51898                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51899                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51900                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51901                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51902                                     ,p_ae_header_id            =>  NULL
51903                                        );
51904 
51905         IF (C_LEVEL_ERROR>= g_log_level) THEN
51906                  trace
51907                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51908                       ,p_level    => C_LEVEL_ERROR
51909                       ,p_module   => l_log_module);
51910         END IF;
51911       END IF;
51912    END IF;
51913    --
51914    --
51915    ------------------------------------------------------------------------------------------------
51916    -- 4219869 Business Flow
51917    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51918    -- Prior Entry.  Currently, the following code is always generated.
51919    ------------------------------------------------------------------------------------------------
51920    XLA_AE_LINES_PKG.ValidateCurrentLine;
51921 
51922    ------------------------------------------------------------------------------------
51923    -- 4219869 Business Flow
51924    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51925    ------------------------------------------------------------------------------------
51926    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51927 
51928    ----------------------------------------------------------------------------------
51929    -- 4219869 Business Flow
51930    -- Update journal entry status -- Need to generate this within IF <condition>
51931    ----------------------------------------------------------------------------------
51932    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51933          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51934          ,p_balance_type_code => l_balance_type_code
51935          );
51936 
51937    -------------------------------------------------------------------------------------------
51938    -- 4262811 - Generate the Accrual Reversal lines
51939    -------------------------------------------------------------------------------------------
51940    BEGIN
51941       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51942                               (g_array_event(p_event_id).array_value_num('header_index'));
51943       IF l_acc_rev_flag IS NULL THEN
51944          l_acc_rev_flag := 'N';
51945       END IF;
51946    EXCEPTION
51947       WHEN OTHERS THEN
51948          l_acc_rev_flag := 'N';
51949    END;
51950    --
51951    IF (l_acc_rev_flag = 'Y') THEN
51952 
51953        -- 4645092  ------------------------------------------------------------------------------
51954        -- To allow MPA report to determine if it should generate report process
51955        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51956        ------------------------------------------------------------------------------------------
51957 
51958        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51959        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51960    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
51961    -- call ADRs
51962    -- Bug 4922099
51963    --
51964    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51965         (NVL(l_actual_upg_option, 'N') = 'O') OR
51966         (NVL(l_enc_upg_option, 'N') = 'O')
51967       )
51968    THEN
51972    
51969    NULL;
51970    --
51971    --
51973   l_ccid := AcctDerRule_31(
51974            p_application_id           => p_application_id
51975          , p_ae_header_id             => l_ae_header_id 
51976 , p_source_4 => p_source_4
51977 , p_source_4_meaning => p_source_4_meaning
51978 , p_source_17 => p_source_17
51979 , p_source_32 => p_source_32
51980 , p_source_33 => p_source_33
51981          , x_transaction_coa_id       => l_adr_transaction_coa_id
51982          , x_accounting_coa_id        => l_adr_accounting_coa_id
51983          , x_value_type_code          => l_adr_value_type_code
51984          , p_side                     => 'CREDIT'
51985    );
51986 
51987    xla_ae_lines_pkg.set_ccid(
51988     p_code_combination_id          => l_ccid
51989   , p_value_type_code              => l_adr_value_type_code
51990   , p_transaction_coa_id           => l_adr_transaction_coa_id
51991   , p_accounting_coa_id            => l_adr_accounting_coa_id
51992   , p_adr_code                     => 'AP_REAL_GAIN'
51993   , p_adr_type_code                => 'S'
51994   , p_component_type               => l_component_type
51995   , p_component_code               => l_component_code
51996   , p_component_type_code          => l_component_type_code
51997   , p_component_appl_id            => l_component_appl_id
51998   , p_amb_context_code             => l_amb_context_code
51999   , p_side                         => 'CREDIT'
52000   );
52001 
52002 
52003   l_ccid := AcctDerRule_32(
52004            p_application_id           => p_application_id
52005          , p_ae_header_id             => l_ae_header_id 
52006 , p_source_4 => p_source_4
52007 , p_source_4_meaning => p_source_4_meaning
52008 , p_source_17 => p_source_17
52009 , p_source_34 => p_source_34
52010 , p_source_35 => p_source_35
52011          , x_transaction_coa_id       => l_adr_transaction_coa_id
52012          , x_accounting_coa_id        => l_adr_accounting_coa_id
52013          , x_value_type_code          => l_adr_value_type_code
52014          , p_side                     => 'DEBIT'
52015    );
52016 
52017    xla_ae_lines_pkg.set_ccid(
52018     p_code_combination_id          => l_ccid
52019   , p_value_type_code              => l_adr_value_type_code
52020   , p_transaction_coa_id           => l_adr_transaction_coa_id
52021   , p_accounting_coa_id            => l_adr_accounting_coa_id
52022   , p_adr_code                     => 'AP_REAL_LOSS'
52023   , p_adr_type_code                => 'S'
52024   , p_component_type               => l_component_type
52025   , p_component_code               => l_component_code
52026   , p_component_type_code          => l_component_type_code
52027   , p_component_appl_id            => l_component_appl_id
52028   , p_amb_context_code             => l_amb_context_code
52029   , p_side                         => 'DEBIT'
52030   );
52031 
52032 
52033    --
52034    --
52035    END IF;
52036 
52037        --
52038        -- Update the line information that should be overwritten
52039        --
52040        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52041                                          p_header_num   => 1);
52042        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52043 
52044        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52045 
52046        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52047           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52048        END IF;
52049 
52050       --
52051       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52052       --
52053       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52054           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52055       ELSE
52056           ---------------------------------------------------------------------------------------------------
52057           -- 4262811a Switch Sign
52058           ---------------------------------------------------------------------------------------------------
52059           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52060           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52061                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52062           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52063                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52064           -- 5132302
52065           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52066                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52067 
52068       END IF;
52069 
52070       -- 4955764
52071       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52072       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52073 
52074 
52075       XLA_AE_LINES_PKG.ValidateCurrentLine;
52076       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52077 
52078       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52079                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52083 
52080                ,p_balance_type_code => l_balance_type_code);
52081 
52082    END IF;
52084    -----------------------------------------------------------------------------------------
52085    -- 4262811 Multiperiod Accounting
52086    -----------------------------------------------------------------------------------------
52087      -- No MPA option is assigned.
52088 
52089 
52090 END IF;
52091 END IF;
52092 --
52093 
52094 --
52095 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52096    trace
52097       (p_msg      => 'END of AcctLineType_102'
52098       ,p_level    => C_LEVEL_PROCEDURE
52099       ,p_module   => l_log_module);
52100 END IF;
52101 --
52102 EXCEPTION
52103   WHEN xla_exceptions_pkg.application_exception THEN
52104       RAISE;
52105   WHEN OTHERS THEN
52106        xla_exceptions_pkg.raise_message
52107            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_102');
52108 END AcctLineType_102;
52109 --
52110 
52111 ---------------------------------------
52112 --
52113 -- PRIVATE FUNCTION
52114 --         AcctLineType_103
52115 --
52116 ---------------------------------------
52117 PROCEDURE AcctLineType_103 (
52118   p_application_id        IN NUMBER
52119  ,p_event_id              IN NUMBER
52120  ,p_calculate_acctd_flag  IN VARCHAR2
52121  ,p_calculate_g_l_flag    IN VARCHAR2
52122  ,p_actual_flag           IN OUT VARCHAR2
52123  ,p_balance_type_code     OUT VARCHAR2
52124  ,p_gain_or_loss_ref      OUT VARCHAR2
52125  
52126 --Automatic Offsets Value
52127  , p_source_4            IN VARCHAR2
52128  , p_source_4_meaning    IN VARCHAR2
52129 --Invoice Distribution Account
52130  , p_source_17            IN NUMBER
52131 --Internal Realized Gain Account
52132  , p_source_32            IN NUMBER
52133 --Bank Gain Account
52134  , p_source_33            IN NUMBER
52135 --Internal Realized Loss Account
52136  , p_source_34            IN NUMBER
52137 --Bank Loss Account
52138  , p_source_35            IN NUMBER
52139 --When to Account for Payment Option
52140  , p_source_38            IN VARCHAR2
52141 --Payment Distribution Type
52142  , p_source_39            IN VARCHAR2
52143  , p_source_39_meaning    IN VARCHAR2
52144 --Accounting Reversal Indicator
52145  , p_source_40            IN VARCHAR2
52146 --Business Flow Accounts Payable Application Identifier
52147  , p_source_42            IN NUMBER
52148 --Business Flow Payment Distribution Type
52149  , p_source_43            IN VARCHAR2
52150 --Business Flow Payment Entity Code
52151  , p_source_44            IN VARCHAR2
52152 --Business Flow Payment Distribution Identifier
52153  , p_source_45            IN NUMBER
52154 --Business Flow Payment Identifier
52155  , p_source_46            IN NUMBER
52156 --Payment Distribution Identifier
52157  , p_source_47            IN NUMBER
52158 --Distribution Link Type
52159  , p_source_48            IN VARCHAR2
52160 --Override Accounted Amount Indicator
52161  , p_source_53            IN VARCHAR2
52162  , p_source_53_meaning    IN VARCHAR2
52163 --Payment Supplier Identifier
52164  , p_source_54            IN NUMBER
52165 --Payment Supplier Site Identifier
52166  , p_source_55            IN NUMBER
52167 --Third Party Type
52168  , p_source_56            IN VARCHAR2
52169 --Payment Distribution Reversed Identifier
52170  , p_source_57            IN NUMBER
52171 --Payment Maturity Date
52172  , p_source_111            IN DATE
52173 --Payment/Maturity Ledger Amount Difference
52174  , p_source_128            IN NUMBER
52175 )
52176 IS
52177 
52178 l_component_type              VARCHAR2(80);
52179 l_component_code              VARCHAR2(30);
52180 l_component_type_code         VARCHAR2(1);
52181 l_component_appl_id           INTEGER;
52182 l_amb_context_code            VARCHAR2(30);
52183 l_entity_code                 VARCHAR2(30);
52184 l_event_class_code            VARCHAR2(30);
52185 l_ae_header_id                NUMBER;
52186 l_event_type_code             VARCHAR2(30);
52187 l_line_definition_code        VARCHAR2(30);
52188 l_line_definition_owner_code  VARCHAR2(1);
52189 --
52190 -- adr variables
52191 l_segment                     VARCHAR2(30);
52192 l_ccid                        NUMBER;
52193 l_adr_transaction_coa_id      NUMBER;
52194 l_adr_accounting_coa_id       NUMBER;
52195 l_adr_flexfield_segment_code  VARCHAR2(30);
52196 l_adr_flex_value_set_id       NUMBER;
52197 l_adr_value_type_code         VARCHAR2(30);
52198 l_adr_value_combination_id    NUMBER;
52199 l_adr_value_segment_code      VARCHAR2(30);
52200 
52201 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52202 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52203 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52204 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52205 
52206 -- 4262811 Variables ------------------------------------------------------------------------------------------
52207 l_entered_amt_idx             NUMBER;
52208 l_accted_amt_idx              NUMBER;
52209 l_acc_rev_flag                VARCHAR2(1);
52210 l_accrual_line_num            NUMBER;
52211 l_tmp_amt                     NUMBER;
52212 l_acc_rev_natural_side_code   VARCHAR2(1);
52213 
52214 l_num_entries                 NUMBER;
52215 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
52216 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
52217 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
52221 
52218 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
52219 l_recog_line_1                NUMBER;
52220 l_recog_line_2                NUMBER;
52222 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
52223 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
52224 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
52225 
52226 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52227 
52228 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
52229 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
52230 
52231 ---------------------------------------------------------------------------------------------------------------
52232 
52233 
52234 --
52235 -- bulk performance
52236 --
52237 l_balance_type_code           VARCHAR2(1);
52238 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
52239 l_log_module                  VARCHAR2(240);
52240 
52241 --
52242 -- Upgrade strategy
52243 --
52244 l_actual_upg_option           VARCHAR2(1);
52245 l_enc_upg_option           VARCHAR2(1);
52246 
52247 --
52248 BEGIN
52249 --
52250 IF g_log_enabled THEN
52251       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
52252 END IF;
52253 --
52254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52255 
52256       trace
52257          (p_msg      => 'BEGIN of AcctLineType_103'
52258          ,p_level    => C_LEVEL_PROCEDURE
52259          ,p_module   => l_log_module);
52260 
52261 END IF;
52262 --
52263 l_component_type             := 'AMB_JLT';
52264 l_component_code             := 'AP_GAIN_LOSS_PMT_MAT';
52265 l_component_type_code        := 'S';
52266 l_component_appl_id          :=  200;
52267 l_amb_context_code           := 'DEFAULT';
52268 l_entity_code                := 'AP_PAYMENTS';
52269 l_event_class_code           := 'FUTURE DATED PAYMENTS';
52270 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
52271 l_line_definition_owner_code := 'S';
52272 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
52273 --
52274 l_balance_type_code          := 'A';
52275 l_segment                     := NULL;
52276 l_ccid                        := NULL;
52277 l_adr_transaction_coa_id      := NULL;
52278 l_adr_accounting_coa_id       := NULL;
52279 l_adr_flexfield_segment_code  := NULL;
52280 l_adr_flex_value_set_id       := NULL;
52281 l_adr_value_type_code         := NULL;
52282 l_adr_value_combination_id    := NULL;
52283 l_adr_value_segment_code      := NULL;
52284 
52285 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52286 l_bflow_class_code           := '';    -- 4219869 Business Flow
52287 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52288 l_budgetary_control_flag     := 'N';
52289 
52290 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52291 l_bflow_applied_to_amt       := NULL; -- 5132302
52292 l_entered_amt_idx            := NULL;          -- 4262811
52293 l_accted_amt_idx             := NULL;          -- 4262811
52294 l_acc_rev_flag               := NULL;          -- 4262811
52295 l_accrual_line_num           := NULL;          -- 4262811
52296 l_tmp_amt                    := NULL;          -- 4262811
52297 --
52298 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52299             (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
52300                return;
52301   END IF;
52302   
52303 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52304     l_balance_type_code <> 'B' THEN
52305 IF (NVL(p_source_38,'
52306 ') =  'ALWAYS_ALWAYS' OR 
52307 NVL(p_source_38,'
52308 ') =  'ALWAYS_ISSUE') AND 
52309 p_source_111 IS NOT NULL AND 
52310 NVL(p_source_39,'
52311 ') <>  'EXCHANGE RATE VARIANCE' AND 
52312 NVL(p_source_39,'
52313 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
52314 NVL(p_source_39,'
52315 ') <>  'BANK CHARGE' AND 
52316 NVL(p_source_39,'
52317 ') <>  'BANK ERROR'
52318  THEN 
52319 
52320    --
52321    XLA_AE_LINES_PKG.SetNewLine;
52322 
52323    p_balance_type_code          := l_balance_type_code;
52324    -- set the flag so later we will know whether the gain loss line needs to be created
52325    
52326    IF(l_balance_type_code = 'A' ) THEN
52327      p_actual_flag :='G';
52328    END IF;
52329 
52330    --
52331    -- bulk performance
52332    --
52333    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52334                                       p_header_num   => 0); -- 4262811
52335    --
52336    -- set accounting line options
52337    --
52338    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52339            p_natural_side_code          => 'G'
52340          , p_gain_or_loss_flag          => 'N'
52341          , p_gl_transfer_mode_code      => 'S'
52342          , p_acct_entry_type_code       => 'A'
52343          , p_switch_side_flag           => ''
52344          , p_merge_duplicate_code       => 'A'
52345          );
52346    --
52347    l_acc_rev_natural_side_code := 'C';  -- 4262811
52348    -- 
52349    --
52350    -- set accounting line type info
52351    --
52355       ,p_line_definition_owner_code => l_line_definition_owner_code
52352    xla_ae_lines_pkg.SetAcctLineType
52353       (p_component_type             => l_component_type
52354       ,p_event_type_code            => l_event_type_code
52356       ,p_line_definition_code       => l_line_definition_code
52357       ,p_accounting_line_code       => l_component_code
52358       ,p_accounting_line_type_code  => l_component_type_code
52359       ,p_accounting_line_appl_id    => l_component_appl_id
52360       ,p_amb_context_code           => l_amb_context_code
52361       ,p_entity_code                => l_entity_code
52362       ,p_event_class_code           => l_event_class_code);
52363    --
52364    -- set accounting class
52365    --
52366    xla_ae_lines_pkg.SetAcctClass(
52367            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
52368          , p_ae_header_id           => l_ae_header_id
52369          );
52370 
52371    --
52372    -- set rounding class
52373    --
52374    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52375                       'EXCHANGE_GAIN_LOSS';
52376 
52377    --
52378    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52379    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52380    --
52381    -- bulk performance
52382    --
52383    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52384 
52385    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52386       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52387 
52388    -- 4955764
52389    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52390       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52391 
52392    -- 4458381 Public Sector Enh
52393    
52394    --
52395    -- set accounting attributes for the line type
52396    --
52397    l_entered_amt_idx := NULL;
52398    l_accted_amt_idx  := 9;
52399    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
52400    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52401    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
52402    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
52403    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
52404    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52405    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
52406    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
52407    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
52408    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
52409    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
52410    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52411    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
52412    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
52413    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
52414    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
52415    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
52416    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
52417    l_rec_acct_attrs.array_num_value(9)  := p_source_128;
52418    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
52419    l_rec_acct_attrs.array_char_value(10)  := p_source_53;
52420    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
52421    l_rec_acct_attrs.array_num_value(11)  := p_source_54;
52422    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
52423    l_rec_acct_attrs.array_num_value(12)  := p_source_55;
52424    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
52425    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
52426    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
52427    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
52428    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
52429    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
52430 
52431    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52432    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52433 
52434    ---------------------------------------------------------------------------------------------------------------
52435    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52436    ---------------------------------------------------------------------------------------------------------------
52437    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52438 
52439    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52440    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52441 
52442    IF xla_accounting_cache_pkg.GetValueChar
52443          (p_source_code         => 'LEDGER_CATEGORY_CODE'
52444          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52445    AND l_bflow_method_code = 'PRIOR_ENTRY'
52446 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52447    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52451          xla_ae_lines_pkg.BflowUpgEntry
52448          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52449        )
52450    THEN
52452            (p_business_method_code    => l_bflow_method_code
52453            ,p_business_class_code     => l_bflow_class_code
52454            ,p_balance_type            => l_balance_type_code);
52455    ELSE
52456       NULL;
52457 -- No business flow processing for business flow method of NONE.
52458    END IF;
52459 
52460    --
52461    -- call analytical criteria
52462    --
52463    
52464    --
52465    -- call description
52466    --
52467    -- No description or it is inherited.
52468    --
52469    -- call ADRs
52470    -- Bug 4922099
52471    --
52472    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52473         (NVL(l_actual_upg_option, 'N') = 'O') OR
52474         (NVL(l_enc_upg_option, 'N') = 'O')
52475       )
52476    THEN
52477    NULL;
52478    --
52479    --
52480    
52481   l_ccid := AcctDerRule_31(
52482            p_application_id           => p_application_id
52483          , p_ae_header_id             => l_ae_header_id 
52484 , p_source_4 => p_source_4
52485 , p_source_4_meaning => p_source_4_meaning
52486 , p_source_17 => p_source_17
52487 , p_source_32 => p_source_32
52488 , p_source_33 => p_source_33
52489          , x_transaction_coa_id       => l_adr_transaction_coa_id
52490          , x_accounting_coa_id        => l_adr_accounting_coa_id
52491          , x_value_type_code          => l_adr_value_type_code
52492          , p_side                     => 'CREDIT'
52493    );
52494 
52495    xla_ae_lines_pkg.set_ccid(
52496     p_code_combination_id          => l_ccid
52497   , p_value_type_code              => l_adr_value_type_code
52498   , p_transaction_coa_id           => l_adr_transaction_coa_id
52499   , p_accounting_coa_id            => l_adr_accounting_coa_id
52500   , p_adr_code                     => 'AP_REAL_GAIN'
52501   , p_adr_type_code                => 'S'
52502   , p_component_type               => l_component_type
52503   , p_component_code               => l_component_code
52504   , p_component_type_code          => l_component_type_code
52505   , p_component_appl_id            => l_component_appl_id
52506   , p_amb_context_code             => l_amb_context_code
52507   , p_side                         => 'CREDIT'
52508   );
52509 
52510 
52511   l_ccid := AcctDerRule_32(
52512            p_application_id           => p_application_id
52513          , p_ae_header_id             => l_ae_header_id 
52514 , p_source_4 => p_source_4
52515 , p_source_4_meaning => p_source_4_meaning
52516 , p_source_17 => p_source_17
52517 , p_source_34 => p_source_34
52518 , p_source_35 => p_source_35
52519          , x_transaction_coa_id       => l_adr_transaction_coa_id
52520          , x_accounting_coa_id        => l_adr_accounting_coa_id
52521          , x_value_type_code          => l_adr_value_type_code
52522          , p_side                     => 'DEBIT'
52523    );
52524 
52525    xla_ae_lines_pkg.set_ccid(
52526     p_code_combination_id          => l_ccid
52527   , p_value_type_code              => l_adr_value_type_code
52528   , p_transaction_coa_id           => l_adr_transaction_coa_id
52529   , p_accounting_coa_id            => l_adr_accounting_coa_id
52530   , p_adr_code                     => 'AP_REAL_LOSS'
52531   , p_adr_type_code                => 'S'
52532   , p_component_type               => l_component_type
52533   , p_component_code               => l_component_code
52534   , p_component_type_code          => l_component_type_code
52535   , p_component_appl_id            => l_component_appl_id
52536   , p_amb_context_code             => l_amb_context_code
52537   , p_side                         => 'DEBIT'
52538   );
52539 
52540 
52541    --
52542    --
52543    END IF;
52544    --
52545    -- Bug 4922099
52546    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52547           (NVL(l_enc_upg_option, 'N') = 'O')
52548         ) AND
52549         (l_bflow_method_code = 'PRIOR_ENTRY')
52550       )
52551    THEN
52552       IF
52553       --
52554       1 = 2
52555       --
52556       THEN
52557       xla_accounting_err_pkg.build_message
52558                                     (p_appli_s_name            => 'XLA'
52559                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52560                                     ,p_token_1                 => 'LINE_NUMBER'
52561                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
52562                                     ,p_token_2                 => 'LINE_TYPE_NAME'
52563                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
52564                                                                              l_component_type
52565                                                                             ,l_component_code
52566                                                                             ,l_component_type_code
52567                                                                             ,l_component_appl_id
52568                                                                             ,l_amb_context_code
52569                                                                             ,l_entity_code
52570                                                                             ,l_event_class_code
52574                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
52571                                                                            )
52572                                     ,p_token_3                 => 'OWNER'
52573                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
52575                                                                           ,p_lookup_code    => l_component_type_code
52576                                                                          )
52577                                     ,p_token_4                 => 'PRODUCT_NAME'
52578                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52579                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52580                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52581                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52582                                     ,p_ae_header_id            =>  NULL
52583                                        );
52584 
52585         IF (C_LEVEL_ERROR>= g_log_level) THEN
52586                  trace
52587                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52588                       ,p_level    => C_LEVEL_ERROR
52589                       ,p_module   => l_log_module);
52590         END IF;
52591       END IF;
52592    END IF;
52593    --
52594    --
52595    ------------------------------------------------------------------------------------------------
52596    -- 4219869 Business Flow
52597    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52598    -- Prior Entry.  Currently, the following code is always generated.
52599    ------------------------------------------------------------------------------------------------
52600    XLA_AE_LINES_PKG.ValidateCurrentLine;
52601 
52602    ------------------------------------------------------------------------------------
52603    -- 4219869 Business Flow
52604    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52605    ------------------------------------------------------------------------------------
52606    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52607 
52608    ----------------------------------------------------------------------------------
52609    -- 4219869 Business Flow
52610    -- Update journal entry status -- Need to generate this within IF <condition>
52611    ----------------------------------------------------------------------------------
52612    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52613          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52614          ,p_balance_type_code => l_balance_type_code
52615          );
52616 
52617    -------------------------------------------------------------------------------------------
52618    -- 4262811 - Generate the Accrual Reversal lines
52619    -------------------------------------------------------------------------------------------
52620    BEGIN
52621       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52622                               (g_array_event(p_event_id).array_value_num('header_index'));
52623       IF l_acc_rev_flag IS NULL THEN
52624          l_acc_rev_flag := 'N';
52625       END IF;
52626    EXCEPTION
52627       WHEN OTHERS THEN
52628          l_acc_rev_flag := 'N';
52629    END;
52630    --
52631    IF (l_acc_rev_flag = 'Y') THEN
52632 
52633        -- 4645092  ------------------------------------------------------------------------------
52634        -- To allow MPA report to determine if it should generate report process
52635        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52636        ------------------------------------------------------------------------------------------
52637 
52638        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52639        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52640    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
52641    -- call ADRs
52642    -- Bug 4922099
52643    --
52644    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52645         (NVL(l_actual_upg_option, 'N') = 'O') OR
52646         (NVL(l_enc_upg_option, 'N') = 'O')
52647       )
52648    THEN
52649    NULL;
52650    --
52651    --
52652    
52653   l_ccid := AcctDerRule_31(
52654            p_application_id           => p_application_id
52655          , p_ae_header_id             => l_ae_header_id 
52656 , p_source_4 => p_source_4
52657 , p_source_4_meaning => p_source_4_meaning
52658 , p_source_17 => p_source_17
52659 , p_source_32 => p_source_32
52660 , p_source_33 => p_source_33
52661          , x_transaction_coa_id       => l_adr_transaction_coa_id
52662          , x_accounting_coa_id        => l_adr_accounting_coa_id
52663          , x_value_type_code          => l_adr_value_type_code
52664          , p_side                     => 'CREDIT'
52665    );
52666 
52667    xla_ae_lines_pkg.set_ccid(
52668     p_code_combination_id          => l_ccid
52669   , p_value_type_code              => l_adr_value_type_code
52670   , p_transaction_coa_id           => l_adr_transaction_coa_id
52671   , p_accounting_coa_id            => l_adr_accounting_coa_id
52672   , p_adr_code                     => 'AP_REAL_GAIN'
52673   , p_adr_type_code                => 'S'
52674   , p_component_type               => l_component_type
52678   , p_amb_context_code             => l_amb_context_code
52675   , p_component_code               => l_component_code
52676   , p_component_type_code          => l_component_type_code
52677   , p_component_appl_id            => l_component_appl_id
52679   , p_side                         => 'CREDIT'
52680   );
52681 
52682 
52683   l_ccid := AcctDerRule_32(
52684            p_application_id           => p_application_id
52685          , p_ae_header_id             => l_ae_header_id 
52686 , p_source_4 => p_source_4
52687 , p_source_4_meaning => p_source_4_meaning
52688 , p_source_17 => p_source_17
52689 , p_source_34 => p_source_34
52690 , p_source_35 => p_source_35
52691          , x_transaction_coa_id       => l_adr_transaction_coa_id
52692          , x_accounting_coa_id        => l_adr_accounting_coa_id
52693          , x_value_type_code          => l_adr_value_type_code
52694          , p_side                     => 'DEBIT'
52695    );
52696 
52697    xla_ae_lines_pkg.set_ccid(
52698     p_code_combination_id          => l_ccid
52699   , p_value_type_code              => l_adr_value_type_code
52700   , p_transaction_coa_id           => l_adr_transaction_coa_id
52701   , p_accounting_coa_id            => l_adr_accounting_coa_id
52702   , p_adr_code                     => 'AP_REAL_LOSS'
52703   , p_adr_type_code                => 'S'
52704   , p_component_type               => l_component_type
52705   , p_component_code               => l_component_code
52706   , p_component_type_code          => l_component_type_code
52707   , p_component_appl_id            => l_component_appl_id
52708   , p_amb_context_code             => l_amb_context_code
52709   , p_side                         => 'DEBIT'
52710   );
52711 
52712 
52713    --
52714    --
52715    END IF;
52716 
52717        --
52718        -- Update the line information that should be overwritten
52719        --
52720        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52721                                          p_header_num   => 1);
52722        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52723 
52724        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52725 
52726        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52727           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52728        END IF;
52729 
52730       --
52731       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52732       --
52733       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52734           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52735       ELSE
52736           ---------------------------------------------------------------------------------------------------
52737           -- 4262811a Switch Sign
52738           ---------------------------------------------------------------------------------------------------
52739           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52740           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52741                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52742           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52743                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52744           -- 5132302
52745           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52746                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52747 
52748       END IF;
52749 
52750       -- 4955764
52751       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52752       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52753 
52754 
52755       XLA_AE_LINES_PKG.ValidateCurrentLine;
52756       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52757 
52758       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52759                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52760                ,p_balance_type_code => l_balance_type_code);
52761 
52762    END IF;
52763 
52764    -----------------------------------------------------------------------------------------
52765    -- 4262811 Multiperiod Accounting
52766    -----------------------------------------------------------------------------------------
52767      -- No MPA option is assigned.
52768 
52769 
52770 END IF;
52771 END IF;
52772 --
52773 
52774 --
52775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52776    trace
52777       (p_msg      => 'END of AcctLineType_103'
52778       ,p_level    => C_LEVEL_PROCEDURE
52779       ,p_module   => l_log_module);
52780 END IF;
52781 --
52782 EXCEPTION
52783   WHEN xla_exceptions_pkg.application_exception THEN
52784       RAISE;
52785   WHEN OTHERS THEN
52786        xla_exceptions_pkg.raise_message
52787            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_103');
52788 END AcctLineType_103;
52789 --
52790 
52791 ---------------------------------------
52792 --
52793 -- PRIVATE FUNCTION
52794 --         AcctLineType_104
52795 --
52799  ,p_event_id              IN NUMBER
52796 ---------------------------------------
52797 PROCEDURE AcctLineType_104 (
52798   p_application_id        IN NUMBER
52800  ,p_calculate_acctd_flag  IN VARCHAR2
52801  ,p_calculate_g_l_flag    IN VARCHAR2
52802  ,p_actual_flag           IN OUT VARCHAR2
52803  ,p_balance_type_code     OUT VARCHAR2
52804  ,p_gain_or_loss_ref      OUT VARCHAR2
52805  
52806 --Automatic Offsets Value
52807  , p_source_4            IN VARCHAR2
52808  , p_source_4_meaning    IN VARCHAR2
52809 --Invoice Distribution Account
52810  , p_source_17            IN NUMBER
52811 --Internal Realized Gain Account
52812  , p_source_32            IN NUMBER
52813 --Bank Gain Account
52814  , p_source_33            IN NUMBER
52815 --When to Account for Payment Option
52816  , p_source_38            IN VARCHAR2
52817 --Payment Distribution Type
52818  , p_source_39            IN VARCHAR2
52819  , p_source_39_meaning    IN VARCHAR2
52820 --Accounting Reversal Indicator
52821  , p_source_40            IN VARCHAR2
52822 --Payment Distribution Amount
52823  , p_source_41            IN NUMBER
52824 --Business Flow Accounts Payable Application Identifier
52825  , p_source_42            IN NUMBER
52826 --Business Flow Payment Distribution Type
52827  , p_source_43            IN VARCHAR2
52828 --Business Flow Payment Entity Code
52829  , p_source_44            IN VARCHAR2
52830 --Business Flow Payment Distribution Identifier
52831  , p_source_45            IN NUMBER
52832 --Business Flow Payment Identifier
52833  , p_source_46            IN NUMBER
52834 --Payment Distribution Identifier
52835  , p_source_47            IN NUMBER
52836 --Distribution Link Type
52837  , p_source_48            IN VARCHAR2
52838 --Payment Currency Code
52839  , p_source_49            IN VARCHAR2
52840 --Override Accounted Amount Indicator
52841  , p_source_53            IN VARCHAR2
52842  , p_source_53_meaning    IN VARCHAR2
52843 --Payment Supplier Identifier
52844  , p_source_54            IN NUMBER
52845 --Payment Supplier Site Identifier
52846  , p_source_55            IN NUMBER
52847 --Third Party Type
52848  , p_source_56            IN VARCHAR2
52849 --Payment Distribution Reversed Identifier
52850  , p_source_57            IN NUMBER
52851 --Invoice Distribution Tax Line Identifier
52852  , p_source_58            IN NUMBER
52853 --Invoice Distribution Summary Tax Line Identifier
52854  , p_source_59            IN NUMBER
52855 --Cleared Exchange Date
52856  , p_source_107            IN DATE
52857 --Cleared Exchange Rate
52858  , p_source_108            IN NUMBER
52859 --Cleared Exchange Rate Type
52860  , p_source_109            IN VARCHAR2
52861 --Payment Maturity Date
52862  , p_source_111            IN DATE
52863 --Gain or Loss Indicator between Maturity and Clearing
52864  , p_source_129            IN VARCHAR2
52865 --Maturity/Clearing Ledger Amount Difference
52866  , p_source_130            IN NUMBER
52867 )
52868 IS
52869 
52870 l_component_type              VARCHAR2(80);
52871 l_component_code              VARCHAR2(30);
52872 l_component_type_code         VARCHAR2(1);
52873 l_component_appl_id           INTEGER;
52874 l_amb_context_code            VARCHAR2(30);
52875 l_entity_code                 VARCHAR2(30);
52876 l_event_class_code            VARCHAR2(30);
52877 l_ae_header_id                NUMBER;
52878 l_event_type_code             VARCHAR2(30);
52879 l_line_definition_code        VARCHAR2(30);
52880 l_line_definition_owner_code  VARCHAR2(1);
52881 --
52882 -- adr variables
52883 l_segment                     VARCHAR2(30);
52884 l_ccid                        NUMBER;
52885 l_adr_transaction_coa_id      NUMBER;
52886 l_adr_accounting_coa_id       NUMBER;
52887 l_adr_flexfield_segment_code  VARCHAR2(30);
52888 l_adr_flex_value_set_id       NUMBER;
52889 l_adr_value_type_code         VARCHAR2(30);
52890 l_adr_value_combination_id    NUMBER;
52891 l_adr_value_segment_code      VARCHAR2(30);
52892 
52893 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52894 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52895 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52896 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52897 
52898 -- 4262811 Variables ------------------------------------------------------------------------------------------
52899 l_entered_amt_idx             NUMBER;
52900 l_accted_amt_idx              NUMBER;
52901 l_acc_rev_flag                VARCHAR2(1);
52902 l_accrual_line_num            NUMBER;
52903 l_tmp_amt                     NUMBER;
52904 l_acc_rev_natural_side_code   VARCHAR2(1);
52905 
52906 l_num_entries                 NUMBER;
52907 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
52908 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
52909 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
52910 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
52911 l_recog_line_1                NUMBER;
52912 l_recog_line_2                NUMBER;
52913 
52914 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
52915 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
52916 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
52917 
52918 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52919 
52920 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
52921 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
52925 
52922 
52923 ---------------------------------------------------------------------------------------------------------------
52924 
52926 --
52927 -- bulk performance
52928 --
52929 l_balance_type_code           VARCHAR2(1);
52930 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
52931 l_log_module                  VARCHAR2(240);
52932 
52933 --
52934 -- Upgrade strategy
52935 --
52936 l_actual_upg_option           VARCHAR2(1);
52937 l_enc_upg_option           VARCHAR2(1);
52938 
52939 --
52940 BEGIN
52941 --
52942 IF g_log_enabled THEN
52943       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
52944 END IF;
52945 --
52946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52947 
52948       trace
52949          (p_msg      => 'BEGIN of AcctLineType_104'
52950          ,p_level    => C_LEVEL_PROCEDURE
52951          ,p_module   => l_log_module);
52952 
52953 END IF;
52954 --
52955 l_component_type             := 'AMB_JLT';
52956 l_component_code             := 'AP_GAIN_MAT_CLEAR';
52957 l_component_type_code        := 'S';
52958 l_component_appl_id          :=  200;
52959 l_amb_context_code           := 'DEFAULT';
52960 l_entity_code                := 'AP_PAYMENTS';
52961 l_event_class_code           := 'RECONCILED PAYMENTS';
52962 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
52963 l_line_definition_owner_code := 'S';
52964 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
52965 --
52966 l_balance_type_code          := 'A';
52967 l_segment                     := NULL;
52968 l_ccid                        := NULL;
52969 l_adr_transaction_coa_id      := NULL;
52970 l_adr_accounting_coa_id       := NULL;
52971 l_adr_flexfield_segment_code  := NULL;
52972 l_adr_flex_value_set_id       := NULL;
52973 l_adr_value_type_code         := NULL;
52974 l_adr_value_combination_id    := NULL;
52975 l_adr_value_segment_code      := NULL;
52976 
52977 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52978 l_bflow_class_code           := '';    -- 4219869 Business Flow
52979 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52980 l_budgetary_control_flag     := 'N';
52981 
52982 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52983 l_bflow_applied_to_amt       := NULL; -- 5132302
52984 l_entered_amt_idx            := NULL;          -- 4262811
52985 l_accted_amt_idx             := NULL;          -- 4262811
52986 l_acc_rev_flag               := NULL;          -- 4262811
52987 l_accrual_line_num           := NULL;          -- 4262811
52988 l_tmp_amt                    := NULL;          -- 4262811
52989 --
52990 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52991             (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
52992                return;
52993   END IF;
52994   
52995 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52996     l_balance_type_code <> 'B' THEN
52997 IF NVL(p_source_38,'
52998 ') =  'ALWAYS_ALWAYS' AND 
52999 p_source_111 IS NOT NULL AND 
53000 NVL(p_source_129,'
53001 ') =  'GAIN' AND 
53002 NVL(p_source_39,'
53003 ') <>  'EXCHANGE RATE VARIANCE' AND 
53004 NVL(p_source_39,'
53005 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
53006 NVL(p_source_39,'
53007 ') <>  'BANK CHARGE' AND 
53008 NVL(p_source_39,'
53009 ') <>  'BANK ERROR'
53010  THEN 
53011 
53012    --
53013    XLA_AE_LINES_PKG.SetNewLine;
53014 
53015    p_balance_type_code          := l_balance_type_code;
53016    -- set the flag so later we will know whether the gain loss line needs to be created
53017    
53018    IF(l_balance_type_code = 'A' ) THEN
53019      p_actual_flag :='G';
53020    END IF;
53021 
53022    --
53023    -- bulk performance
53024    --
53025    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53026                                       p_header_num   => 0); -- 4262811
53027    --
53028    -- set accounting line options
53029    --
53030    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53031            p_natural_side_code          => 'C'
53032          , p_gain_or_loss_flag          => 'Y'
53033          , p_gl_transfer_mode_code      => 'S'
53034          , p_acct_entry_type_code       => 'A'
53035          , p_switch_side_flag           => 'Y'
53036          , p_merge_duplicate_code       => 'A'
53037          );
53038    --
53039    l_acc_rev_natural_side_code := 'D';  -- 4262811
53040    -- 
53041    --
53042    -- set accounting line type info
53043    --
53044    xla_ae_lines_pkg.SetAcctLineType
53045       (p_component_type             => l_component_type
53046       ,p_event_type_code            => l_event_type_code
53047       ,p_line_definition_owner_code => l_line_definition_owner_code
53048       ,p_line_definition_code       => l_line_definition_code
53049       ,p_accounting_line_code       => l_component_code
53050       ,p_accounting_line_type_code  => l_component_type_code
53051       ,p_accounting_line_appl_id    => l_component_appl_id
53052       ,p_amb_context_code           => l_amb_context_code
53053       ,p_entity_code                => l_entity_code
53054       ,p_event_class_code           => l_event_class_code);
53055    --
53056    -- set accounting class
53060          , p_ae_header_id           => l_ae_header_id
53057    --
53058    xla_ae_lines_pkg.SetAcctClass(
53059            p_accounting_class_code  => 'GAIN'
53061          );
53062 
53063    --
53064    -- set rounding class
53065    --
53066    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53067                       'GAIN';
53068 
53069    --
53070    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53071    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53072    --
53073    -- bulk performance
53074    --
53075    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53076 
53077    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53078       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53079 
53080    -- 4955764
53081    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53082       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53083 
53084    -- 4458381 Public Sector Enh
53085    
53086    --
53087    -- set accounting attributes for the line type
53088    --
53089    l_entered_amt_idx := 10;
53090    l_accted_amt_idx  := 15;
53091    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
53092    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53093    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
53094    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
53095    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
53096    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
53097    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
53098    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53099    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
53100    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
53101    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
53102    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
53103    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
53104    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53105    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
53106    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
53107    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
53108    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
53109    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
53110    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
53111    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
53112    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
53113    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
53114    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
53115    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
53116    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
53117    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
53118    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
53119    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
53120    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
53121    l_rec_acct_attrs.array_num_value(15)  := p_source_130;
53122    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
53123    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
53124    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
53125    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
53126    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
53127    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
53128    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
53129    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
53130    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
53131    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
53132    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
53133    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
53134    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
53135    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
53136    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
53137    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
53138    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
53139    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
53140 
53141    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53142    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53143 
53144    ---------------------------------------------------------------------------------------------------------------
53145    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53146    ---------------------------------------------------------------------------------------------------------------
53147    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53148 
53149    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53153          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53150    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53151 
53152    IF xla_accounting_cache_pkg.GetValueChar
53154          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53155    AND l_bflow_method_code = 'PRIOR_ENTRY'
53156 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53157    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53158          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53159        )
53160    THEN
53161          xla_ae_lines_pkg.BflowUpgEntry
53162            (p_business_method_code    => l_bflow_method_code
53163            ,p_business_class_code     => l_bflow_class_code
53164            ,p_balance_type            => l_balance_type_code);
53165    ELSE
53166       NULL;
53167 -- No business flow processing for business flow method of NONE.
53168    END IF;
53169 
53170    --
53171    -- call analytical criteria
53172    --
53173    
53174    --
53175    -- call description
53176    --
53177    -- No description or it is inherited.
53178    --
53179    -- call ADRs
53180    -- Bug 4922099
53181    --
53182    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53183         (NVL(l_actual_upg_option, 'N') = 'O') OR
53184         (NVL(l_enc_upg_option, 'N') = 'O')
53185       )
53186    THEN
53187    NULL;
53188    --
53189    --
53190    
53191   l_ccid := AcctDerRule_31(
53192            p_application_id           => p_application_id
53193          , p_ae_header_id             => l_ae_header_id 
53194 , p_source_4 => p_source_4
53195 , p_source_4_meaning => p_source_4_meaning
53196 , p_source_17 => p_source_17
53197 , p_source_32 => p_source_32
53198 , p_source_33 => p_source_33
53199          , x_transaction_coa_id       => l_adr_transaction_coa_id
53200          , x_accounting_coa_id        => l_adr_accounting_coa_id
53201          , x_value_type_code          => l_adr_value_type_code
53202          , p_side                     => 'NA'
53203    );
53204 
53205    xla_ae_lines_pkg.set_ccid(
53206     p_code_combination_id          => l_ccid
53207   , p_value_type_code              => l_adr_value_type_code
53208   , p_transaction_coa_id           => l_adr_transaction_coa_id
53209   , p_accounting_coa_id            => l_adr_accounting_coa_id
53210   , p_adr_code                     => 'AP_REAL_GAIN'
53211   , p_adr_type_code                => 'S'
53212   , p_component_type               => l_component_type
53213   , p_component_code               => l_component_code
53214   , p_component_type_code          => l_component_type_code
53215   , p_component_appl_id            => l_component_appl_id
53216   , p_amb_context_code             => l_amb_context_code
53217   , p_side                         => 'NA'
53218   );
53219 
53220 
53221    --
53222    --
53223    END IF;
53224    --
53225    -- Bug 4922099
53226    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53227           (NVL(l_enc_upg_option, 'N') = 'O')
53228         ) AND
53229         (l_bflow_method_code = 'PRIOR_ENTRY')
53230       )
53231    THEN
53232       IF
53233       --
53234       1 = 2
53235       --
53236       THEN
53237       xla_accounting_err_pkg.build_message
53238                                     (p_appli_s_name            => 'XLA'
53239                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53240                                     ,p_token_1                 => 'LINE_NUMBER'
53241                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
53242                                     ,p_token_2                 => 'LINE_TYPE_NAME'
53243                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
53244                                                                              l_component_type
53245                                                                             ,l_component_code
53246                                                                             ,l_component_type_code
53247                                                                             ,l_component_appl_id
53248                                                                             ,l_amb_context_code
53249                                                                             ,l_entity_code
53250                                                                             ,l_event_class_code
53251                                                                            )
53252                                     ,p_token_3                 => 'OWNER'
53253                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
53254                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
53255                                                                           ,p_lookup_code    => l_component_type_code
53256                                                                          )
53257                                     ,p_token_4                 => 'PRODUCT_NAME'
53258                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53259                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53260                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53264 
53261                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53262                                     ,p_ae_header_id            =>  NULL
53263                                        );
53265         IF (C_LEVEL_ERROR>= g_log_level) THEN
53266                  trace
53267                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53268                       ,p_level    => C_LEVEL_ERROR
53269                       ,p_module   => l_log_module);
53270         END IF;
53271       END IF;
53272    END IF;
53273    --
53274    --
53275    ------------------------------------------------------------------------------------------------
53276    -- 4219869 Business Flow
53277    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53278    -- Prior Entry.  Currently, the following code is always generated.
53279    ------------------------------------------------------------------------------------------------
53280    XLA_AE_LINES_PKG.ValidateCurrentLine;
53281 
53282    ------------------------------------------------------------------------------------
53283    -- 4219869 Business Flow
53284    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53285    ------------------------------------------------------------------------------------
53286    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53287 
53288    ----------------------------------------------------------------------------------
53289    -- 4219869 Business Flow
53290    -- Update journal entry status -- Need to generate this within IF <condition>
53291    ----------------------------------------------------------------------------------
53292    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53293          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53294          ,p_balance_type_code => l_balance_type_code
53295          );
53296 
53297    -------------------------------------------------------------------------------------------
53298    -- 4262811 - Generate the Accrual Reversal lines
53299    -------------------------------------------------------------------------------------------
53300    BEGIN
53301       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53302                               (g_array_event(p_event_id).array_value_num('header_index'));
53303       IF l_acc_rev_flag IS NULL THEN
53304          l_acc_rev_flag := 'N';
53305       END IF;
53306    EXCEPTION
53307       WHEN OTHERS THEN
53308          l_acc_rev_flag := 'N';
53309    END;
53310    --
53311    IF (l_acc_rev_flag = 'Y') THEN
53312 
53313        -- 4645092  ------------------------------------------------------------------------------
53314        -- To allow MPA report to determine if it should generate report process
53315        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53316        ------------------------------------------------------------------------------------------
53317 
53318        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53319        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53320    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53321    -- call ADRs
53322    -- Bug 4922099
53323    --
53324    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53325         (NVL(l_actual_upg_option, 'N') = 'O') OR
53326         (NVL(l_enc_upg_option, 'N') = 'O')
53327       )
53328    THEN
53329    NULL;
53330    --
53331    --
53332    
53333   l_ccid := AcctDerRule_31(
53334            p_application_id           => p_application_id
53335          , p_ae_header_id             => l_ae_header_id 
53336 , p_source_4 => p_source_4
53337 , p_source_4_meaning => p_source_4_meaning
53338 , p_source_17 => p_source_17
53339 , p_source_32 => p_source_32
53340 , p_source_33 => p_source_33
53341          , x_transaction_coa_id       => l_adr_transaction_coa_id
53342          , x_accounting_coa_id        => l_adr_accounting_coa_id
53343          , x_value_type_code          => l_adr_value_type_code
53344          , p_side                     => 'NA'
53345    );
53346 
53347    xla_ae_lines_pkg.set_ccid(
53348     p_code_combination_id          => l_ccid
53349   , p_value_type_code              => l_adr_value_type_code
53350   , p_transaction_coa_id           => l_adr_transaction_coa_id
53351   , p_accounting_coa_id            => l_adr_accounting_coa_id
53352   , p_adr_code                     => 'AP_REAL_GAIN'
53353   , p_adr_type_code                => 'S'
53354   , p_component_type               => l_component_type
53355   , p_component_code               => l_component_code
53356   , p_component_type_code          => l_component_type_code
53357   , p_component_appl_id            => l_component_appl_id
53358   , p_amb_context_code             => l_amb_context_code
53359   , p_side                         => 'NA'
53360   );
53361 
53362 
53363    --
53364    --
53365    END IF;
53366 
53367        --
53368        -- Update the line information that should be overwritten
53369        --
53370        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53371                                          p_header_num   => 1);
53372        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
53373 
53374        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53375 
53376        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
53380       --
53377           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53378        END IF;
53379 
53381       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53382       --
53383       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53384           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
53385       ELSE
53386           ---------------------------------------------------------------------------------------------------
53387           -- 4262811a Switch Sign
53388           ---------------------------------------------------------------------------------------------------
53389           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
53390           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53391                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53392           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53393                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53394           -- 5132302
53395           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53396                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53397 
53398       END IF;
53399 
53400       -- 4955764
53401       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53402       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53403 
53404 
53405       XLA_AE_LINES_PKG.ValidateCurrentLine;
53406       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53407 
53408       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53409                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53410                ,p_balance_type_code => l_balance_type_code);
53411 
53412    END IF;
53413 
53414    -----------------------------------------------------------------------------------------
53415    -- 4262811 Multiperiod Accounting
53416    -----------------------------------------------------------------------------------------
53417      -- No MPA option is assigned.
53418 
53419 
53420 END IF;
53421 END IF;
53422 --
53423 
53424 --
53425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53426    trace
53427       (p_msg      => 'END of AcctLineType_104'
53428       ,p_level    => C_LEVEL_PROCEDURE
53429       ,p_module   => l_log_module);
53430 END IF;
53431 --
53432 EXCEPTION
53433   WHEN xla_exceptions_pkg.application_exception THEN
53434       RAISE;
53435   WHEN OTHERS THEN
53436        xla_exceptions_pkg.raise_message
53437            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_104');
53438 END AcctLineType_104;
53439 --
53440 
53441 ---------------------------------------
53442 --
53443 -- PRIVATE FUNCTION
53444 --         AcctLineType_105
53445 --
53446 ---------------------------------------
53447 PROCEDURE AcctLineType_105 (
53448   p_application_id        IN NUMBER
53449  ,p_event_id              IN NUMBER
53450  ,p_calculate_acctd_flag  IN VARCHAR2
53451  ,p_calculate_g_l_flag    IN VARCHAR2
53452  ,p_actual_flag           IN OUT VARCHAR2
53453  ,p_balance_type_code     OUT VARCHAR2
53454  ,p_gain_or_loss_ref      OUT VARCHAR2
53455  
53456 --Automatic Offsets Value
53457  , p_source_4            IN VARCHAR2
53458  , p_source_4_meaning    IN VARCHAR2
53459 --Invoice Distribution Account
53460  , p_source_17            IN NUMBER
53461 --Internal Realized Gain Account
53462  , p_source_32            IN NUMBER
53463 --Bank Gain Account
53464  , p_source_33            IN NUMBER
53465 --When to Account for Payment Option
53466  , p_source_38            IN VARCHAR2
53467 --Payment Distribution Type
53468  , p_source_39            IN VARCHAR2
53469  , p_source_39_meaning    IN VARCHAR2
53470 --Accounting Reversal Indicator
53471  , p_source_40            IN VARCHAR2
53472 --Payment Distribution Amount
53473  , p_source_41            IN NUMBER
53474 --Business Flow Accounts Payable Application Identifier
53475  , p_source_42            IN NUMBER
53476 --Business Flow Payment Distribution Type
53477  , p_source_43            IN VARCHAR2
53478 --Business Flow Payment Entity Code
53479  , p_source_44            IN VARCHAR2
53480 --Business Flow Payment Distribution Identifier
53481  , p_source_45            IN NUMBER
53482 --Business Flow Payment Identifier
53483  , p_source_46            IN NUMBER
53484 --Payment Distribution Identifier
53485  , p_source_47            IN NUMBER
53486 --Distribution Link Type
53487  , p_source_48            IN VARCHAR2
53488 --Payment Currency Code
53489  , p_source_49            IN VARCHAR2
53490 --Override Accounted Amount Indicator
53491  , p_source_53            IN VARCHAR2
53492  , p_source_53_meaning    IN VARCHAR2
53493 --Payment Supplier Identifier
53494  , p_source_54            IN NUMBER
53495 --Payment Supplier Site Identifier
53496  , p_source_55            IN NUMBER
53497 --Third Party Type
53498  , p_source_56            IN VARCHAR2
53499 --Payment Distribution Reversed Identifier
53500  , p_source_57            IN NUMBER
53501 --Invoice Distribution Tax Line Identifier
53505 --Cleared Exchange Date
53502  , p_source_58            IN NUMBER
53503 --Invoice Distribution Summary Tax Line Identifier
53504  , p_source_59            IN NUMBER
53506  , p_source_107            IN DATE
53507 --Cleared Exchange Rate
53508  , p_source_108            IN NUMBER
53509 --Cleared Exchange Rate Type
53510  , p_source_109            IN VARCHAR2
53511 --Payment Maturity Date
53512  , p_source_111            IN DATE
53513 --Gain or Loss Indicator between Payment and Clearing
53514  , p_source_131            IN VARCHAR2
53515 --Payment/Clearing Ledger Amount Difference
53516  , p_source_132            IN NUMBER
53517 )
53518 IS
53519 
53520 l_component_type              VARCHAR2(80);
53521 l_component_code              VARCHAR2(30);
53522 l_component_type_code         VARCHAR2(1);
53523 l_component_appl_id           INTEGER;
53524 l_amb_context_code            VARCHAR2(30);
53525 l_entity_code                 VARCHAR2(30);
53526 l_event_class_code            VARCHAR2(30);
53527 l_ae_header_id                NUMBER;
53528 l_event_type_code             VARCHAR2(30);
53529 l_line_definition_code        VARCHAR2(30);
53530 l_line_definition_owner_code  VARCHAR2(1);
53531 --
53532 -- adr variables
53533 l_segment                     VARCHAR2(30);
53534 l_ccid                        NUMBER;
53535 l_adr_transaction_coa_id      NUMBER;
53536 l_adr_accounting_coa_id       NUMBER;
53537 l_adr_flexfield_segment_code  VARCHAR2(30);
53538 l_adr_flex_value_set_id       NUMBER;
53539 l_adr_value_type_code         VARCHAR2(30);
53540 l_adr_value_combination_id    NUMBER;
53541 l_adr_value_segment_code      VARCHAR2(30);
53542 
53543 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
53544 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
53545 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
53546 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
53547 
53548 -- 4262811 Variables ------------------------------------------------------------------------------------------
53549 l_entered_amt_idx             NUMBER;
53550 l_accted_amt_idx              NUMBER;
53551 l_acc_rev_flag                VARCHAR2(1);
53552 l_accrual_line_num            NUMBER;
53553 l_tmp_amt                     NUMBER;
53554 l_acc_rev_natural_side_code   VARCHAR2(1);
53555 
53556 l_num_entries                 NUMBER;
53557 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
53558 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
53559 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
53560 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
53561 l_recog_line_1                NUMBER;
53562 l_recog_line_2                NUMBER;
53563 
53564 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
53565 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
53566 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
53567 
53568 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53569 
53570 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
53571 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
53572 
53573 ---------------------------------------------------------------------------------------------------------------
53574 
53575 
53576 --
53577 -- bulk performance
53578 --
53579 l_balance_type_code           VARCHAR2(1);
53580 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
53581 l_log_module                  VARCHAR2(240);
53582 
53583 --
53584 -- Upgrade strategy
53585 --
53586 l_actual_upg_option           VARCHAR2(1);
53587 l_enc_upg_option           VARCHAR2(1);
53588 
53589 --
53590 BEGIN
53591 --
53592 IF g_log_enabled THEN
53593       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
53594 END IF;
53595 --
53596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53597 
53598       trace
53599          (p_msg      => 'BEGIN of AcctLineType_105'
53600          ,p_level    => C_LEVEL_PROCEDURE
53601          ,p_module   => l_log_module);
53602 
53603 END IF;
53604 --
53605 l_component_type             := 'AMB_JLT';
53606 l_component_code             := 'AP_GAIN_PMT_CLEAR';
53607 l_component_type_code        := 'S';
53608 l_component_appl_id          :=  200;
53609 l_amb_context_code           := 'DEFAULT';
53610 l_entity_code                := 'AP_PAYMENTS';
53611 l_event_class_code           := 'RECONCILED PAYMENTS';
53612 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
53613 l_line_definition_owner_code := 'S';
53614 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
53615 --
53616 l_balance_type_code          := 'A';
53617 l_segment                     := NULL;
53618 l_ccid                        := NULL;
53619 l_adr_transaction_coa_id      := NULL;
53620 l_adr_accounting_coa_id       := NULL;
53621 l_adr_flexfield_segment_code  := NULL;
53622 l_adr_flex_value_set_id       := NULL;
53623 l_adr_value_type_code         := NULL;
53624 l_adr_value_combination_id    := NULL;
53625 l_adr_value_segment_code      := NULL;
53626 
53627 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
53628 l_bflow_class_code           := '';    -- 4219869 Business Flow
53632 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
53629 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
53630 l_budgetary_control_flag     := 'N';
53631 
53633 l_bflow_applied_to_amt       := NULL; -- 5132302
53634 l_entered_amt_idx            := NULL;          -- 4262811
53635 l_accted_amt_idx             := NULL;          -- 4262811
53636 l_acc_rev_flag               := NULL;          -- 4262811
53637 l_accrual_line_num           := NULL;          -- 4262811
53638 l_tmp_amt                    := NULL;          -- 4262811
53639 --
53640 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
53641             (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
53642                return;
53643   END IF;
53644   
53645 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53646     l_balance_type_code <> 'B' THEN
53647 IF NVL(p_source_38,'
53648 ') =  'ALWAYS_ALWAYS' AND 
53649 p_source_111 IS NULL AND 
53650 NVL(p_source_131,'
53651 ') =  'GAIN' AND 
53652 NVL(p_source_39,'
53653 ') <>  'EXCHANGE RATE VARIANCE' AND 
53654 NVL(p_source_39,'
53655 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
53656 NVL(p_source_39,'
53657 ') <>  'BANK CHARGE' AND 
53658 NVL(p_source_39,'
53659 ') <>  'BANK ERROR' AND 
53660 NVL(p_source_39,'
53661 ') <>  'AWT'
53662  THEN 
53663 
53664    --
53665    XLA_AE_LINES_PKG.SetNewLine;
53666 
53667    p_balance_type_code          := l_balance_type_code;
53668    -- set the flag so later we will know whether the gain loss line needs to be created
53669    
53670    IF(l_balance_type_code = 'A' ) THEN
53671      p_actual_flag :='G';
53672    END IF;
53673 
53674    --
53675    -- bulk performance
53676    --
53677    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53678                                       p_header_num   => 0); -- 4262811
53679    --
53680    -- set accounting line options
53681    --
53682    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53683            p_natural_side_code          => 'C'
53684          , p_gain_or_loss_flag          => 'Y'
53685          , p_gl_transfer_mode_code      => 'S'
53686          , p_acct_entry_type_code       => 'A'
53687          , p_switch_side_flag           => 'Y'
53688          , p_merge_duplicate_code       => 'A'
53689          );
53690    --
53691    l_acc_rev_natural_side_code := 'D';  -- 4262811
53692    -- 
53693    --
53694    -- set accounting line type info
53695    --
53696    xla_ae_lines_pkg.SetAcctLineType
53697       (p_component_type             => l_component_type
53698       ,p_event_type_code            => l_event_type_code
53699       ,p_line_definition_owner_code => l_line_definition_owner_code
53700       ,p_line_definition_code       => l_line_definition_code
53701       ,p_accounting_line_code       => l_component_code
53702       ,p_accounting_line_type_code  => l_component_type_code
53703       ,p_accounting_line_appl_id    => l_component_appl_id
53704       ,p_amb_context_code           => l_amb_context_code
53705       ,p_entity_code                => l_entity_code
53706       ,p_event_class_code           => l_event_class_code);
53707    --
53708    -- set accounting class
53709    --
53710    xla_ae_lines_pkg.SetAcctClass(
53711            p_accounting_class_code  => 'GAIN'
53712          , p_ae_header_id           => l_ae_header_id
53713          );
53714 
53715    --
53716    -- set rounding class
53717    --
53718    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53719                       'GAIN';
53720 
53721    --
53722    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53723    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53724    --
53725    -- bulk performance
53726    --
53727    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53728 
53729    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53730       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53731 
53732    -- 4955764
53733    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53734       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53735 
53736    -- 4458381 Public Sector Enh
53737    
53738    --
53739    -- set accounting attributes for the line type
53740    --
53741    l_entered_amt_idx := 10;
53742    l_accted_amt_idx  := 15;
53743    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
53744    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53745    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
53746    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
53747    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
53748    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
53749    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
53750    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53751    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
53755    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
53752    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
53753    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
53754    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
53756    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53757    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
53758    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
53759    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
53760    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
53761    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
53762    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
53763    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
53764    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
53765    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
53766    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
53767    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
53768    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
53769    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
53770    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
53771    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
53772    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
53773    l_rec_acct_attrs.array_num_value(15)  := p_source_132;
53774    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
53775    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
53776    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
53777    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
53778    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
53779    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
53780    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
53781    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
53782    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
53783    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
53784    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
53785    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
53786    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
53787    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
53788    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
53789    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
53790    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
53791    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
53792 
53793    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53794    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53795 
53796    ---------------------------------------------------------------------------------------------------------------
53797    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53798    ---------------------------------------------------------------------------------------------------------------
53799    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53800 
53801    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53802    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53803 
53804    IF xla_accounting_cache_pkg.GetValueChar
53805          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53806          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53807    AND l_bflow_method_code = 'PRIOR_ENTRY'
53808 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53809    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53810          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53811        )
53812    THEN
53813          xla_ae_lines_pkg.BflowUpgEntry
53814            (p_business_method_code    => l_bflow_method_code
53815            ,p_business_class_code     => l_bflow_class_code
53816            ,p_balance_type            => l_balance_type_code);
53817    ELSE
53818       NULL;
53819 -- No business flow processing for business flow method of NONE.
53820    END IF;
53821 
53822    --
53823    -- call analytical criteria
53824    --
53825    
53826    --
53827    -- call description
53828    --
53829    -- No description or it is inherited.
53830    --
53831    -- call ADRs
53832    -- Bug 4922099
53833    --
53834    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53835         (NVL(l_actual_upg_option, 'N') = 'O') OR
53836         (NVL(l_enc_upg_option, 'N') = 'O')
53837       )
53838    THEN
53839    NULL;
53840    --
53841    --
53842    
53843   l_ccid := AcctDerRule_31(
53844            p_application_id           => p_application_id
53845          , p_ae_header_id             => l_ae_header_id 
53846 , p_source_4 => p_source_4
53847 , p_source_4_meaning => p_source_4_meaning
53848 , p_source_17 => p_source_17
53849 , p_source_32 => p_source_32
53850 , p_source_33 => p_source_33
53851          , x_transaction_coa_id       => l_adr_transaction_coa_id
53852          , x_accounting_coa_id        => l_adr_accounting_coa_id
53853          , x_value_type_code          => l_adr_value_type_code
53857    xla_ae_lines_pkg.set_ccid(
53854          , p_side                     => 'NA'
53855    );
53856 
53858     p_code_combination_id          => l_ccid
53859   , p_value_type_code              => l_adr_value_type_code
53860   , p_transaction_coa_id           => l_adr_transaction_coa_id
53861   , p_accounting_coa_id            => l_adr_accounting_coa_id
53862   , p_adr_code                     => 'AP_REAL_GAIN'
53863   , p_adr_type_code                => 'S'
53864   , p_component_type               => l_component_type
53865   , p_component_code               => l_component_code
53866   , p_component_type_code          => l_component_type_code
53867   , p_component_appl_id            => l_component_appl_id
53868   , p_amb_context_code             => l_amb_context_code
53869   , p_side                         => 'NA'
53870   );
53871 
53872 
53873    --
53874    --
53875    END IF;
53876    --
53877    -- Bug 4922099
53878    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53879           (NVL(l_enc_upg_option, 'N') = 'O')
53880         ) AND
53881         (l_bflow_method_code = 'PRIOR_ENTRY')
53882       )
53883    THEN
53884       IF
53885       --
53886       1 = 2
53887       --
53888       THEN
53889       xla_accounting_err_pkg.build_message
53890                                     (p_appli_s_name            => 'XLA'
53891                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53892                                     ,p_token_1                 => 'LINE_NUMBER'
53893                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
53894                                     ,p_token_2                 => 'LINE_TYPE_NAME'
53895                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
53896                                                                              l_component_type
53897                                                                             ,l_component_code
53898                                                                             ,l_component_type_code
53899                                                                             ,l_component_appl_id
53900                                                                             ,l_amb_context_code
53901                                                                             ,l_entity_code
53902                                                                             ,l_event_class_code
53903                                                                            )
53904                                     ,p_token_3                 => 'OWNER'
53905                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
53906                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
53907                                                                           ,p_lookup_code    => l_component_type_code
53908                                                                          )
53909                                     ,p_token_4                 => 'PRODUCT_NAME'
53910                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53911                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53912                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53913                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53914                                     ,p_ae_header_id            =>  NULL
53915                                        );
53916 
53917         IF (C_LEVEL_ERROR>= g_log_level) THEN
53918                  trace
53919                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53920                       ,p_level    => C_LEVEL_ERROR
53921                       ,p_module   => l_log_module);
53922         END IF;
53923       END IF;
53924    END IF;
53925    --
53926    --
53927    ------------------------------------------------------------------------------------------------
53928    -- 4219869 Business Flow
53929    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53930    -- Prior Entry.  Currently, the following code is always generated.
53931    ------------------------------------------------------------------------------------------------
53932    XLA_AE_LINES_PKG.ValidateCurrentLine;
53933 
53934    ------------------------------------------------------------------------------------
53935    -- 4219869 Business Flow
53936    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53937    ------------------------------------------------------------------------------------
53938    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53939 
53940    ----------------------------------------------------------------------------------
53941    -- 4219869 Business Flow
53942    -- Update journal entry status -- Need to generate this within IF <condition>
53943    ----------------------------------------------------------------------------------
53944    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53945          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53946          ,p_balance_type_code => l_balance_type_code
53947          );
53948 
53949    -------------------------------------------------------------------------------------------
53950    -- 4262811 - Generate the Accrual Reversal lines
53951    -------------------------------------------------------------------------------------------
53955       IF l_acc_rev_flag IS NULL THEN
53952    BEGIN
53953       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53954                               (g_array_event(p_event_id).array_value_num('header_index'));
53956          l_acc_rev_flag := 'N';
53957       END IF;
53958    EXCEPTION
53959       WHEN OTHERS THEN
53960          l_acc_rev_flag := 'N';
53961    END;
53962    --
53963    IF (l_acc_rev_flag = 'Y') THEN
53964 
53965        -- 4645092  ------------------------------------------------------------------------------
53966        -- To allow MPA report to determine if it should generate report process
53967        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53968        ------------------------------------------------------------------------------------------
53969 
53970        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53971        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53972    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53973    -- call ADRs
53974    -- Bug 4922099
53975    --
53976    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53977         (NVL(l_actual_upg_option, 'N') = 'O') OR
53978         (NVL(l_enc_upg_option, 'N') = 'O')
53979       )
53980    THEN
53981    NULL;
53982    --
53983    --
53984    
53985   l_ccid := AcctDerRule_31(
53986            p_application_id           => p_application_id
53987          , p_ae_header_id             => l_ae_header_id 
53988 , p_source_4 => p_source_4
53989 , p_source_4_meaning => p_source_4_meaning
53990 , p_source_17 => p_source_17
53991 , p_source_32 => p_source_32
53992 , p_source_33 => p_source_33
53993          , x_transaction_coa_id       => l_adr_transaction_coa_id
53994          , x_accounting_coa_id        => l_adr_accounting_coa_id
53995          , x_value_type_code          => l_adr_value_type_code
53996          , p_side                     => 'NA'
53997    );
53998 
53999    xla_ae_lines_pkg.set_ccid(
54000     p_code_combination_id          => l_ccid
54001   , p_value_type_code              => l_adr_value_type_code
54002   , p_transaction_coa_id           => l_adr_transaction_coa_id
54003   , p_accounting_coa_id            => l_adr_accounting_coa_id
54004   , p_adr_code                     => 'AP_REAL_GAIN'
54005   , p_adr_type_code                => 'S'
54006   , p_component_type               => l_component_type
54007   , p_component_code               => l_component_code
54008   , p_component_type_code          => l_component_type_code
54009   , p_component_appl_id            => l_component_appl_id
54010   , p_amb_context_code             => l_amb_context_code
54011   , p_side                         => 'NA'
54012   );
54013 
54014 
54015    --
54016    --
54017    END IF;
54018 
54019        --
54020        -- Update the line information that should be overwritten
54021        --
54022        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54023                                          p_header_num   => 1);
54024        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54025 
54026        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54027 
54028        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54029           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54030        END IF;
54031 
54032       --
54033       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54034       --
54035       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54036           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54037       ELSE
54038           ---------------------------------------------------------------------------------------------------
54039           -- 4262811a Switch Sign
54040           ---------------------------------------------------------------------------------------------------
54041           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54042           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54043                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54044           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54045                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54046           -- 5132302
54047           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54048                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54049 
54050       END IF;
54051 
54052       -- 4955764
54053       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54054       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54055 
54056 
54057       XLA_AE_LINES_PKG.ValidateCurrentLine;
54058       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54059 
54060       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54061                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54062                ,p_balance_type_code => l_balance_type_code);
54063 
54064    END IF;
54065 
54069      -- No MPA option is assigned.
54066    -----------------------------------------------------------------------------------------
54067    -- 4262811 Multiperiod Accounting
54068    -----------------------------------------------------------------------------------------
54070 
54071 
54072 END IF;
54073 END IF;
54074 --
54075 
54076 --
54077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54078    trace
54079       (p_msg      => 'END of AcctLineType_105'
54080       ,p_level    => C_LEVEL_PROCEDURE
54081       ,p_module   => l_log_module);
54082 END IF;
54083 --
54084 EXCEPTION
54085   WHEN xla_exceptions_pkg.application_exception THEN
54086       RAISE;
54087   WHEN OTHERS THEN
54088        xla_exceptions_pkg.raise_message
54089            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_105');
54090 END AcctLineType_105;
54091 --
54092 
54093 ---------------------------------------
54094 --
54095 -- PRIVATE FUNCTION
54096 --         AcctLineType_106
54097 --
54098 ---------------------------------------
54099 PROCEDURE AcctLineType_106 (
54100   p_application_id        IN NUMBER
54101  ,p_event_id              IN NUMBER
54102  ,p_calculate_acctd_flag  IN VARCHAR2
54103  ,p_calculate_g_l_flag    IN VARCHAR2
54104  ,p_actual_flag           IN OUT VARCHAR2
54105  ,p_balance_type_code     OUT VARCHAR2
54106  ,p_gain_or_loss_ref      OUT VARCHAR2
54107  
54108 --Automatic Offsets Value
54109  , p_source_4            IN VARCHAR2
54110  , p_source_4_meaning    IN VARCHAR2
54111 --Invoice Distribution Account
54112  , p_source_17            IN NUMBER
54113 --Internal Realized Gain Account
54114  , p_source_32            IN NUMBER
54115 --Bank Gain Account
54116  , p_source_33            IN NUMBER
54117 --When to Account for Payment Option
54118  , p_source_38            IN VARCHAR2
54119 --Payment Distribution Type
54120  , p_source_39            IN VARCHAR2
54121  , p_source_39_meaning    IN VARCHAR2
54122 --Accounting Reversal Indicator
54123  , p_source_40            IN VARCHAR2
54124 --Payment Distribution Amount
54125  , p_source_41            IN NUMBER
54126 --Business Flow Accounts Payable Application Identifier
54127  , p_source_42            IN NUMBER
54128 --Business Flow Payment Distribution Type
54129  , p_source_43            IN VARCHAR2
54130 --Business Flow Payment Entity Code
54131  , p_source_44            IN VARCHAR2
54132 --Business Flow Payment Distribution Identifier
54133  , p_source_45            IN NUMBER
54134 --Business Flow Payment Identifier
54135  , p_source_46            IN NUMBER
54136 --Payment Distribution Identifier
54137  , p_source_47            IN NUMBER
54138 --Distribution Link Type
54139  , p_source_48            IN VARCHAR2
54140 --Payment Currency Code
54141  , p_source_49            IN VARCHAR2
54142 --Override Accounted Amount Indicator
54143  , p_source_53            IN VARCHAR2
54144  , p_source_53_meaning    IN VARCHAR2
54145 --Payment Supplier Identifier
54146  , p_source_54            IN NUMBER
54147 --Payment Supplier Site Identifier
54148  , p_source_55            IN NUMBER
54149 --Third Party Type
54150  , p_source_56            IN VARCHAR2
54151 --Payment Distribution Reversed Identifier
54152  , p_source_57            IN NUMBER
54153 --Payment Maturity Date
54154  , p_source_111            IN DATE
54155 --Payment Exchange Date
54156  , p_source_114            IN DATE
54157 --Payment Exchange Rate
54158  , p_source_115            IN NUMBER
54159 --Payment Exchange Rate Type
54160  , p_source_116            IN VARCHAR2
54161 --Payment/Maturity Ledger Amount Difference
54162  , p_source_128            IN NUMBER
54163 --Gain or Loss Indicator between Payment and Maturity
54164  , p_source_133            IN VARCHAR2
54165 )
54166 IS
54167 
54168 l_component_type              VARCHAR2(80);
54169 l_component_code              VARCHAR2(30);
54170 l_component_type_code         VARCHAR2(1);
54171 l_component_appl_id           INTEGER;
54172 l_amb_context_code            VARCHAR2(30);
54173 l_entity_code                 VARCHAR2(30);
54174 l_event_class_code            VARCHAR2(30);
54175 l_ae_header_id                NUMBER;
54176 l_event_type_code             VARCHAR2(30);
54177 l_line_definition_code        VARCHAR2(30);
54178 l_line_definition_owner_code  VARCHAR2(1);
54179 --
54180 -- adr variables
54181 l_segment                     VARCHAR2(30);
54182 l_ccid                        NUMBER;
54183 l_adr_transaction_coa_id      NUMBER;
54184 l_adr_accounting_coa_id       NUMBER;
54185 l_adr_flexfield_segment_code  VARCHAR2(30);
54186 l_adr_flex_value_set_id       NUMBER;
54187 l_adr_value_type_code         VARCHAR2(30);
54188 l_adr_value_combination_id    NUMBER;
54189 l_adr_value_segment_code      VARCHAR2(30);
54190 
54191 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54192 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54193 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54194 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54195 
54196 -- 4262811 Variables ------------------------------------------------------------------------------------------
54197 l_entered_amt_idx             NUMBER;
54198 l_accted_amt_idx              NUMBER;
54199 l_acc_rev_flag                VARCHAR2(1);
54200 l_accrual_line_num            NUMBER;
54204 l_num_entries                 NUMBER;
54201 l_tmp_amt                     NUMBER;
54202 l_acc_rev_natural_side_code   VARCHAR2(1);
54203 
54205 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54206 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54207 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54208 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54209 l_recog_line_1                NUMBER;
54210 l_recog_line_2                NUMBER;
54211 
54212 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54213 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54214 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54215 
54216 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54217 
54218 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54219 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54220 
54221 ---------------------------------------------------------------------------------------------------------------
54222 
54223 
54224 --
54225 -- bulk performance
54226 --
54227 l_balance_type_code           VARCHAR2(1);
54228 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
54229 l_log_module                  VARCHAR2(240);
54230 
54231 --
54232 -- Upgrade strategy
54233 --
54234 l_actual_upg_option           VARCHAR2(1);
54235 l_enc_upg_option           VARCHAR2(1);
54236 
54237 --
54238 BEGIN
54239 --
54240 IF g_log_enabled THEN
54241       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
54242 END IF;
54243 --
54244 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54245 
54246       trace
54247          (p_msg      => 'BEGIN of AcctLineType_106'
54248          ,p_level    => C_LEVEL_PROCEDURE
54249          ,p_module   => l_log_module);
54250 
54251 END IF;
54252 --
54253 l_component_type             := 'AMB_JLT';
54254 l_component_code             := 'AP_GAIN_PMT_MAT';
54255 l_component_type_code        := 'S';
54256 l_component_appl_id          :=  200;
54257 l_amb_context_code           := 'DEFAULT';
54258 l_entity_code                := 'AP_PAYMENTS';
54259 l_event_class_code           := 'FUTURE DATED PAYMENTS';
54260 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
54261 l_line_definition_owner_code := 'S';
54262 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
54263 --
54264 l_balance_type_code          := 'A';
54265 l_segment                     := NULL;
54266 l_ccid                        := NULL;
54267 l_adr_transaction_coa_id      := NULL;
54268 l_adr_accounting_coa_id       := NULL;
54269 l_adr_flexfield_segment_code  := NULL;
54270 l_adr_flex_value_set_id       := NULL;
54271 l_adr_value_type_code         := NULL;
54272 l_adr_value_combination_id    := NULL;
54273 l_adr_value_segment_code      := NULL;
54274 
54275 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
54276 l_bflow_class_code           := '';    -- 4219869 Business Flow
54277 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
54278 l_budgetary_control_flag     := 'N';
54279 
54280 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
54281 l_bflow_applied_to_amt       := NULL; -- 5132302
54282 l_entered_amt_idx            := NULL;          -- 4262811
54283 l_accted_amt_idx             := NULL;          -- 4262811
54284 l_acc_rev_flag               := NULL;          -- 4262811
54285 l_accrual_line_num           := NULL;          -- 4262811
54286 l_tmp_amt                    := NULL;          -- 4262811
54287 --
54288 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
54289             (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
54290                return;
54291   END IF;
54292   
54293 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54294     l_balance_type_code <> 'B' THEN
54295 IF (NVL(p_source_38,'
54296 ') =  'ALWAYS_ALWAYS' OR 
54297 NVL(p_source_38,'
54298 ') =  'ISSUE_ISSUE') AND 
54299 p_source_111 IS NOT NULL AND 
54300 NVL(p_source_133,'
54301 ') =  'GAIN' AND 
54302 NVL(p_source_39,'
54303 ') <>  'EXCHANGE RATE VARIANCE' AND 
54304 NVL(p_source_39,'
54305 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
54306 NVL(p_source_39,'
54307 ') <>  'BANK CHARGE' AND 
54308 NVL(p_source_39,'
54309 ') <>  'BANK ERROR' AND 
54310 NVL(p_source_39,'
54311 ') <>  'AWT'
54312  THEN 
54313 
54314    --
54315    XLA_AE_LINES_PKG.SetNewLine;
54316 
54317    p_balance_type_code          := l_balance_type_code;
54318    -- set the flag so later we will know whether the gain loss line needs to be created
54319    
54320    IF(l_balance_type_code = 'A' ) THEN
54321      p_actual_flag :='G';
54322    END IF;
54323 
54324    --
54325    -- bulk performance
54326    --
54327    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54328                                       p_header_num   => 0); -- 4262811
54329    --
54330    -- set accounting line options
54331    --
54332    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54333            p_natural_side_code          => 'C'
54337          , p_switch_side_flag           => 'Y'
54334          , p_gain_or_loss_flag          => 'Y'
54335          , p_gl_transfer_mode_code      => 'S'
54336          , p_acct_entry_type_code       => 'A'
54338          , p_merge_duplicate_code       => 'A'
54339          );
54340    --
54341    l_acc_rev_natural_side_code := 'D';  -- 4262811
54342    -- 
54343    --
54344    -- set accounting line type info
54345    --
54346    xla_ae_lines_pkg.SetAcctLineType
54347       (p_component_type             => l_component_type
54348       ,p_event_type_code            => l_event_type_code
54349       ,p_line_definition_owner_code => l_line_definition_owner_code
54350       ,p_line_definition_code       => l_line_definition_code
54351       ,p_accounting_line_code       => l_component_code
54352       ,p_accounting_line_type_code  => l_component_type_code
54353       ,p_accounting_line_appl_id    => l_component_appl_id
54354       ,p_amb_context_code           => l_amb_context_code
54355       ,p_entity_code                => l_entity_code
54356       ,p_event_class_code           => l_event_class_code);
54357    --
54358    -- set accounting class
54359    --
54360    xla_ae_lines_pkg.SetAcctClass(
54361            p_accounting_class_code  => 'GAIN'
54362          , p_ae_header_id           => l_ae_header_id
54363          );
54364 
54365    --
54366    -- set rounding class
54367    --
54368    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54369                       'GAIN';
54370 
54371    --
54372    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54373    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54374    --
54375    -- bulk performance
54376    --
54377    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54378 
54379    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54380       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54381 
54382    -- 4955764
54383    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54384       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54385 
54386    -- 4458381 Public Sector Enh
54387    
54388    --
54389    -- set accounting attributes for the line type
54390    --
54391    l_entered_amt_idx := 9;
54392    l_accted_amt_idx  := 14;
54393    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
54394    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54395    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
54396    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
54397    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
54398    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54399    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
54400    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
54401    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
54402    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
54403    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
54404    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54405    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
54406    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
54407    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
54408    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
54409    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
54410    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
54411    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
54412    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
54413    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
54414    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
54415    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
54416    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
54417    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
54418    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
54419    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
54420    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
54421    l_rec_acct_attrs.array_num_value(14)  := p_source_128;
54422    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
54423    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
54424    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
54425    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
54426    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
54427    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
54428    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
54429    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
54430    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
54431    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
54432    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
54433    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
54434 
54435    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54436    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54437 
54441    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54438    ---------------------------------------------------------------------------------------------------------------
54439    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54440    ---------------------------------------------------------------------------------------------------------------
54442 
54443    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54444    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54445 
54446    IF xla_accounting_cache_pkg.GetValueChar
54447          (p_source_code         => 'LEDGER_CATEGORY_CODE'
54448          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54449    AND l_bflow_method_code = 'PRIOR_ENTRY'
54450 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54451    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54452          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54453        )
54454    THEN
54455          xla_ae_lines_pkg.BflowUpgEntry
54456            (p_business_method_code    => l_bflow_method_code
54457            ,p_business_class_code     => l_bflow_class_code
54458            ,p_balance_type            => l_balance_type_code);
54459    ELSE
54460       NULL;
54461 -- No business flow processing for business flow method of NONE.
54462    END IF;
54463 
54464    --
54465    -- call analytical criteria
54466    --
54467    
54468    --
54469    -- call description
54470    --
54471    -- No description or it is inherited.
54472    --
54473    -- call ADRs
54474    -- Bug 4922099
54475    --
54476    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54477         (NVL(l_actual_upg_option, 'N') = 'O') OR
54478         (NVL(l_enc_upg_option, 'N') = 'O')
54479       )
54480    THEN
54481    NULL;
54482    --
54483    --
54484    
54485   l_ccid := AcctDerRule_31(
54486            p_application_id           => p_application_id
54487          , p_ae_header_id             => l_ae_header_id 
54488 , p_source_4 => p_source_4
54489 , p_source_4_meaning => p_source_4_meaning
54490 , p_source_17 => p_source_17
54491 , p_source_32 => p_source_32
54492 , p_source_33 => p_source_33
54493          , x_transaction_coa_id       => l_adr_transaction_coa_id
54494          , x_accounting_coa_id        => l_adr_accounting_coa_id
54495          , x_value_type_code          => l_adr_value_type_code
54496          , p_side                     => 'NA'
54497    );
54498 
54499    xla_ae_lines_pkg.set_ccid(
54500     p_code_combination_id          => l_ccid
54501   , p_value_type_code              => l_adr_value_type_code
54502   , p_transaction_coa_id           => l_adr_transaction_coa_id
54503   , p_accounting_coa_id            => l_adr_accounting_coa_id
54504   , p_adr_code                     => 'AP_REAL_GAIN'
54505   , p_adr_type_code                => 'S'
54506   , p_component_type               => l_component_type
54507   , p_component_code               => l_component_code
54508   , p_component_type_code          => l_component_type_code
54509   , p_component_appl_id            => l_component_appl_id
54510   , p_amb_context_code             => l_amb_context_code
54511   , p_side                         => 'NA'
54512   );
54513 
54514 
54515    --
54516    --
54517    END IF;
54518    --
54519    -- Bug 4922099
54520    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54521           (NVL(l_enc_upg_option, 'N') = 'O')
54522         ) AND
54523         (l_bflow_method_code = 'PRIOR_ENTRY')
54524       )
54525    THEN
54526       IF
54527       --
54528       1 = 2
54529       --
54530       THEN
54531       xla_accounting_err_pkg.build_message
54532                                     (p_appli_s_name            => 'XLA'
54533                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54534                                     ,p_token_1                 => 'LINE_NUMBER'
54535                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54536                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54537                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54538                                                                              l_component_type
54539                                                                             ,l_component_code
54540                                                                             ,l_component_type_code
54541                                                                             ,l_component_appl_id
54542                                                                             ,l_amb_context_code
54543                                                                             ,l_entity_code
54544                                                                             ,l_event_class_code
54545                                                                            )
54546                                     ,p_token_3                 => 'OWNER'
54547                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
54548                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
54549                                                                           ,p_lookup_code    => l_component_type_code
54553                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54550                                                                          )
54551                                     ,p_token_4                 => 'PRODUCT_NAME'
54552                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54554                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54555                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54556                                     ,p_ae_header_id            =>  NULL
54557                                        );
54558 
54559         IF (C_LEVEL_ERROR>= g_log_level) THEN
54560                  trace
54561                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54562                       ,p_level    => C_LEVEL_ERROR
54563                       ,p_module   => l_log_module);
54564         END IF;
54565       END IF;
54566    END IF;
54567    --
54568    --
54569    ------------------------------------------------------------------------------------------------
54570    -- 4219869 Business Flow
54571    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54572    -- Prior Entry.  Currently, the following code is always generated.
54573    ------------------------------------------------------------------------------------------------
54574    XLA_AE_LINES_PKG.ValidateCurrentLine;
54575 
54576    ------------------------------------------------------------------------------------
54577    -- 4219869 Business Flow
54578    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54579    ------------------------------------------------------------------------------------
54580    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54581 
54582    ----------------------------------------------------------------------------------
54583    -- 4219869 Business Flow
54584    -- Update journal entry status -- Need to generate this within IF <condition>
54585    ----------------------------------------------------------------------------------
54586    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54587          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54588          ,p_balance_type_code => l_balance_type_code
54589          );
54590 
54591    -------------------------------------------------------------------------------------------
54592    -- 4262811 - Generate the Accrual Reversal lines
54593    -------------------------------------------------------------------------------------------
54594    BEGIN
54595       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54596                               (g_array_event(p_event_id).array_value_num('header_index'));
54597       IF l_acc_rev_flag IS NULL THEN
54598          l_acc_rev_flag := 'N';
54599       END IF;
54600    EXCEPTION
54601       WHEN OTHERS THEN
54602          l_acc_rev_flag := 'N';
54603    END;
54604    --
54605    IF (l_acc_rev_flag = 'Y') THEN
54606 
54607        -- 4645092  ------------------------------------------------------------------------------
54608        -- To allow MPA report to determine if it should generate report process
54609        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54610        ------------------------------------------------------------------------------------------
54611 
54612        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54613        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54614    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
54615    -- call ADRs
54616    -- Bug 4922099
54617    --
54618    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54619         (NVL(l_actual_upg_option, 'N') = 'O') OR
54620         (NVL(l_enc_upg_option, 'N') = 'O')
54621       )
54622    THEN
54623    NULL;
54624    --
54625    --
54626    
54627   l_ccid := AcctDerRule_31(
54628            p_application_id           => p_application_id
54629          , p_ae_header_id             => l_ae_header_id 
54630 , p_source_4 => p_source_4
54631 , p_source_4_meaning => p_source_4_meaning
54632 , p_source_17 => p_source_17
54633 , p_source_32 => p_source_32
54634 , p_source_33 => p_source_33
54635          , x_transaction_coa_id       => l_adr_transaction_coa_id
54636          , x_accounting_coa_id        => l_adr_accounting_coa_id
54637          , x_value_type_code          => l_adr_value_type_code
54638          , p_side                     => 'NA'
54639    );
54640 
54641    xla_ae_lines_pkg.set_ccid(
54642     p_code_combination_id          => l_ccid
54643   , p_value_type_code              => l_adr_value_type_code
54644   , p_transaction_coa_id           => l_adr_transaction_coa_id
54645   , p_accounting_coa_id            => l_adr_accounting_coa_id
54646   , p_adr_code                     => 'AP_REAL_GAIN'
54647   , p_adr_type_code                => 'S'
54648   , p_component_type               => l_component_type
54649   , p_component_code               => l_component_code
54650   , p_component_type_code          => l_component_type_code
54651   , p_component_appl_id            => l_component_appl_id
54652   , p_amb_context_code             => l_amb_context_code
54653   , p_side                         => 'NA'
54654   );
54655 
54656 
54657    --
54658    --
54659    END IF;
54660 
54661        --
54662        -- Update the line information that should be overwritten
54663        --
54667 
54664        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54665                                          p_header_num   => 1);
54666        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54668        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54669 
54670        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54671           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54672        END IF;
54673 
54674       --
54675       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54676       --
54677       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54678           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54679       ELSE
54680           ---------------------------------------------------------------------------------------------------
54681           -- 4262811a Switch Sign
54682           ---------------------------------------------------------------------------------------------------
54683           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54684           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54685                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54686           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54687                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54688           -- 5132302
54689           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54690                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54691 
54692       END IF;
54693 
54694       -- 4955764
54695       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54696       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54697 
54698 
54699       XLA_AE_LINES_PKG.ValidateCurrentLine;
54700       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54701 
54702       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54703                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54704                ,p_balance_type_code => l_balance_type_code);
54705 
54706    END IF;
54707 
54708    -----------------------------------------------------------------------------------------
54709    -- 4262811 Multiperiod Accounting
54710    -----------------------------------------------------------------------------------------
54711      -- No MPA option is assigned.
54712 
54713 
54714 END IF;
54715 END IF;
54716 --
54717 
54718 --
54719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54720    trace
54721       (p_msg      => 'END of AcctLineType_106'
54722       ,p_level    => C_LEVEL_PROCEDURE
54723       ,p_module   => l_log_module);
54724 END IF;
54725 --
54726 EXCEPTION
54727   WHEN xla_exceptions_pkg.application_exception THEN
54728       RAISE;
54729   WHEN OTHERS THEN
54730        xla_exceptions_pkg.raise_message
54731            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_106');
54732 END AcctLineType_106;
54733 --
54734 
54735 ---------------------------------------
54736 --
54737 -- PRIVATE FUNCTION
54738 --         AcctLineType_107
54739 --
54740 ---------------------------------------
54741 PROCEDURE AcctLineType_107 (
54742   p_application_id        IN NUMBER
54743  ,p_event_id              IN NUMBER
54744  ,p_calculate_acctd_flag  IN VARCHAR2
54745  ,p_calculate_g_l_flag    IN VARCHAR2
54746  ,p_actual_flag           IN OUT VARCHAR2
54747  ,p_balance_type_code     OUT VARCHAR2
54748  ,p_gain_or_loss_ref      OUT VARCHAR2
54749  
54750 --Payment Distribution (Cleared Rate) Ledger Amount
54751  , p_source_10            IN NUMBER
54752 --Interest Account
54753  , p_source_15            IN NUMBER
54754 --Prorate Interest Invoice Across Distributions Option
54755  , p_source_16            IN VARCHAR2
54756 --Invoice Distribution Account
54757  , p_source_17            IN NUMBER
54758 --Invoice Distribution Type
54759  , p_source_20            IN VARCHAR2
54760  , p_source_20_meaning    IN VARCHAR2
54761 --When to Account for Payment Option
54762  , p_source_38            IN VARCHAR2
54763 --Payment Distribution Type
54764  , p_source_39            IN VARCHAR2
54765  , p_source_39_meaning    IN VARCHAR2
54766 --Accounting Reversal Indicator
54767  , p_source_40            IN VARCHAR2
54768 --Payment Distribution Amount
54769  , p_source_41            IN NUMBER
54770 --Business Flow Accounts Payable Application Identifier
54771  , p_source_42            IN NUMBER
54772 --Business Flow Payment Distribution Type
54773  , p_source_43            IN VARCHAR2
54774 --Business Flow Payment Entity Code
54775  , p_source_44            IN VARCHAR2
54776 --Business Flow Payment Distribution Identifier
54777  , p_source_45            IN NUMBER
54778 --Business Flow Payment Identifier
54779  , p_source_46            IN NUMBER
54780 --Payment Distribution Identifier
54781  , p_source_47            IN NUMBER
54785  , p_source_49            IN VARCHAR2
54782 --Distribution Link Type
54783  , p_source_48            IN VARCHAR2
54784 --Payment Currency Code
54786 --Override Accounted Amount Indicator
54787  , p_source_53            IN VARCHAR2
54788  , p_source_53_meaning    IN VARCHAR2
54789 --Payment Supplier Identifier
54790  , p_source_54            IN NUMBER
54791 --Payment Supplier Site Identifier
54792  , p_source_55            IN NUMBER
54793 --Third Party Type
54794  , p_source_56            IN VARCHAR2
54795 --Payment Distribution Reversed Identifier
54796  , p_source_57            IN NUMBER
54797 --Invoice Distribution Tax Line Identifier
54798  , p_source_58            IN NUMBER
54799 --Invoice Distribution Summary Tax Line Identifier
54800  , p_source_59            IN NUMBER
54801 --Payment Type
54802  , p_source_60            IN VARCHAR2
54803  , p_source_60_meaning    IN VARCHAR2
54804 --Invoice Type Paid
54805  , p_source_101            IN VARCHAR2
54806  , p_source_101_meaning    IN VARCHAR2
54807 --Cleared Exchange Date
54808  , p_source_107            IN DATE
54809 --Cleared Exchange Rate
54810  , p_source_108            IN NUMBER
54811 --Cleared Exchange Rate Type
54812  , p_source_109            IN VARCHAR2
54813 )
54814 IS
54815 
54816 l_component_type              VARCHAR2(80);
54817 l_component_code              VARCHAR2(30);
54818 l_component_type_code         VARCHAR2(1);
54819 l_component_appl_id           INTEGER;
54820 l_amb_context_code            VARCHAR2(30);
54821 l_entity_code                 VARCHAR2(30);
54822 l_event_class_code            VARCHAR2(30);
54823 l_ae_header_id                NUMBER;
54824 l_event_type_code             VARCHAR2(30);
54825 l_line_definition_code        VARCHAR2(30);
54826 l_line_definition_owner_code  VARCHAR2(1);
54827 --
54828 -- adr variables
54829 l_segment                     VARCHAR2(30);
54830 l_ccid                        NUMBER;
54831 l_adr_transaction_coa_id      NUMBER;
54832 l_adr_accounting_coa_id       NUMBER;
54833 l_adr_flexfield_segment_code  VARCHAR2(30);
54834 l_adr_flex_value_set_id       NUMBER;
54835 l_adr_value_type_code         VARCHAR2(30);
54836 l_adr_value_combination_id    NUMBER;
54837 l_adr_value_segment_code      VARCHAR2(30);
54838 
54839 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54840 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54841 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54842 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54843 
54844 -- 4262811 Variables ------------------------------------------------------------------------------------------
54845 l_entered_amt_idx             NUMBER;
54846 l_accted_amt_idx              NUMBER;
54847 l_acc_rev_flag                VARCHAR2(1);
54848 l_accrual_line_num            NUMBER;
54849 l_tmp_amt                     NUMBER;
54850 l_acc_rev_natural_side_code   VARCHAR2(1);
54851 
54852 l_num_entries                 NUMBER;
54853 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54854 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54855 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54856 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54857 l_recog_line_1                NUMBER;
54858 l_recog_line_2                NUMBER;
54859 
54860 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54861 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54862 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54863 
54864 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54865 
54866 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54867 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54868 
54869 ---------------------------------------------------------------------------------------------------------------
54870 
54871 
54872 --
54873 -- bulk performance
54874 --
54875 l_balance_type_code           VARCHAR2(1);
54876 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
54877 l_log_module                  VARCHAR2(240);
54878 
54879 --
54880 -- Upgrade strategy
54881 --
54882 l_actual_upg_option           VARCHAR2(1);
54883 l_enc_upg_option           VARCHAR2(1);
54884 
54885 --
54886 BEGIN
54887 --
54888 IF g_log_enabled THEN
54889       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
54890 END IF;
54891 --
54892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54893 
54894       trace
54895          (p_msg      => 'BEGIN of AcctLineType_107'
54896          ,p_level    => C_LEVEL_PROCEDURE
54897          ,p_module   => l_log_module);
54898 
54899 END IF;
54900 --
54901 l_component_type             := 'AMB_JLT';
54902 l_component_code             := 'AP_INTEREST_EXPENSE_CLEAR';
54903 l_component_type_code        := 'S';
54904 l_component_appl_id          :=  200;
54905 l_amb_context_code           := 'DEFAULT';
54906 l_entity_code                := 'AP_PAYMENTS';
54907 l_event_class_code           := 'RECONCILED PAYMENTS';
54908 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
54909 l_line_definition_owner_code := 'S';
54910 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
54911 --
54915 l_adr_transaction_coa_id      := NULL;
54912 l_balance_type_code          := 'A';
54913 l_segment                     := NULL;
54914 l_ccid                        := NULL;
54916 l_adr_accounting_coa_id       := NULL;
54917 l_adr_flexfield_segment_code  := NULL;
54918 l_adr_flex_value_set_id       := NULL;
54919 l_adr_value_type_code         := NULL;
54920 l_adr_value_combination_id    := NULL;
54921 l_adr_value_segment_code      := NULL;
54922 
54923 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
54924 l_bflow_class_code           := '';    -- 4219869 Business Flow
54925 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
54926 l_budgetary_control_flag     := 'N';
54927 
54928 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
54929 l_bflow_applied_to_amt       := NULL; -- 5132302
54930 l_entered_amt_idx            := NULL;          -- 4262811
54931 l_accted_amt_idx             := NULL;          -- 4262811
54932 l_acc_rev_flag               := NULL;          -- 4262811
54933 l_accrual_line_num           := NULL;          -- 4262811
54934 l_tmp_amt                    := NULL;          -- 4262811
54935 --
54936  
54937 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54938     l_balance_type_code <> 'B' THEN
54939 IF NVL(p_source_38,'
54940 ') =  'CLEAR_CLEAR' AND 
54941 NVL(p_source_20,'
54942 ') =  'ITEM' AND 
54943 NVL(p_source_101,'
54944 ') =  'INTEREST' AND 
54945 (NVL(p_source_39,'
54946 ') =  'CASH' OR 
54947 NVL(p_source_39,'
54948 ') =  'DISCOUNT') AND 
54949 NVL(p_source_60,'
54950 ') <>  'R'
54951  THEN 
54952 
54953    --
54954    XLA_AE_LINES_PKG.SetNewLine;
54955 
54956    p_balance_type_code          := l_balance_type_code;
54957    -- set the flag so later we will know whether the gain loss line needs to be created
54958    
54959    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54960      p_actual_flag :='A';
54961    END IF;
54962 
54963    --
54964    -- bulk performance
54965    --
54966    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54967                                       p_header_num   => 0); -- 4262811
54968    --
54969    -- set accounting line options
54970    --
54971    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54972            p_natural_side_code          => 'D'
54973          , p_gain_or_loss_flag          => 'N'
54974          , p_gl_transfer_mode_code      => 'S'
54975          , p_acct_entry_type_code       => 'A'
54976          , p_switch_side_flag           => 'Y'
54977          , p_merge_duplicate_code       => 'A'
54978          );
54979    --
54980    l_acc_rev_natural_side_code := 'C';  -- 4262811
54981    -- 
54982    --
54983    -- set accounting line type info
54984    --
54985    xla_ae_lines_pkg.SetAcctLineType
54986       (p_component_type             => l_component_type
54987       ,p_event_type_code            => l_event_type_code
54988       ,p_line_definition_owner_code => l_line_definition_owner_code
54989       ,p_line_definition_code       => l_line_definition_code
54990       ,p_accounting_line_code       => l_component_code
54991       ,p_accounting_line_type_code  => l_component_type_code
54992       ,p_accounting_line_appl_id    => l_component_appl_id
54993       ,p_amb_context_code           => l_amb_context_code
54994       ,p_entity_code                => l_entity_code
54995       ,p_event_class_code           => l_event_class_code);
54996    --
54997    -- set accounting class
54998    --
54999    xla_ae_lines_pkg.SetAcctClass(
55000            p_accounting_class_code  => 'INTEREST_EXPENSE'
55001          , p_ae_header_id           => l_ae_header_id
55002          );
55003 
55004    --
55005    -- set rounding class
55006    --
55007    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55008                       'INTEREST_EXPENSE';
55009 
55010    --
55011    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55012    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55013    --
55014    -- bulk performance
55015    --
55016    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55017 
55018    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55019       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55020 
55021    -- 4955764
55022    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55023       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55024 
55025    -- 4458381 Public Sector Enh
55026    
55027    --
55028    -- set accounting attributes for the line type
55029    --
55030    l_entered_amt_idx := 10;
55031    l_accted_amt_idx  := 15;
55032    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
55033    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55034    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
55035    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55036    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
55037    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55038    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
55039    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55043    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55040    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
55041    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55042    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
55044    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
55045    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55046    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
55047    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55048    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
55049    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55050    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
55051    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55052    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
55053    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55054    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
55055    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55056    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
55057    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55058    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
55059    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55060    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
55061    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55062    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
55063    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55064    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
55065    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55066    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
55067    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55068    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
55069    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55070    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
55071    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55072    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
55073    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55074    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
55075    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55076    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
55077    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55078    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
55079    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55080    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
55081 
55082    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55083    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55084 
55085    ---------------------------------------------------------------------------------------------------------------
55086    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55087    ---------------------------------------------------------------------------------------------------------------
55088    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55089 
55090    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55091    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55092 
55093    IF xla_accounting_cache_pkg.GetValueChar
55094          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55095          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55096    AND l_bflow_method_code = 'PRIOR_ENTRY'
55097 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55098    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55099          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55100        )
55101    THEN
55102          xla_ae_lines_pkg.BflowUpgEntry
55103            (p_business_method_code    => l_bflow_method_code
55104            ,p_business_class_code     => l_bflow_class_code
55105            ,p_balance_type            => l_balance_type_code);
55106    ELSE
55107       NULL;
55108 -- No business flow processing for business flow method of NONE.
55109    END IF;
55110 
55111    --
55112    -- call analytical criteria
55113    --
55114    
55115    --
55116    -- call description
55117    --
55118    -- No description or it is inherited.
55119    --
55120    -- call ADRs
55121    -- Bug 4922099
55122    --
55123    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55124         (NVL(l_actual_upg_option, 'N') = 'O') OR
55125         (NVL(l_enc_upg_option, 'N') = 'O')
55126       )
55127    THEN
55128    NULL;
55129    --
55130    --
55131    
55132   l_ccid := AcctDerRule_25(
55133            p_application_id           => p_application_id
55134          , p_ae_header_id             => l_ae_header_id 
55135 , p_source_15 => p_source_15
55136 , p_source_16 => p_source_16
55137 , p_source_17 => p_source_17
55138          , x_transaction_coa_id       => l_adr_transaction_coa_id
55139          , x_accounting_coa_id        => l_adr_accounting_coa_id
55140          , x_value_type_code          => l_adr_value_type_code
55141          , p_side                     => 'NA'
55142    );
55143 
55147   , p_transaction_coa_id           => l_adr_transaction_coa_id
55144    xla_ae_lines_pkg.set_ccid(
55145     p_code_combination_id          => l_ccid
55146   , p_value_type_code              => l_adr_value_type_code
55148   , p_accounting_coa_id            => l_adr_accounting_coa_id
55149   , p_adr_code                     => 'AP_INTEREST'
55150   , p_adr_type_code                => 'S'
55151   , p_component_type               => l_component_type
55152   , p_component_code               => l_component_code
55153   , p_component_type_code          => l_component_type_code
55154   , p_component_appl_id            => l_component_appl_id
55155   , p_amb_context_code             => l_amb_context_code
55156   , p_side                         => 'NA'
55157   );
55158 
55159 
55160    l_segment := AcctDerRule_8(
55161            p_application_id           => p_application_id
55162          , p_ae_header_id             => l_ae_header_id 
55163 , p_source_15 => p_source_15
55164 , p_source_16 => p_source_16
55165          , x_transaction_coa_id       => l_adr_transaction_coa_id
55166          , x_accounting_coa_id        => l_adr_accounting_coa_id
55167          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
55168          , x_flex_value_set_id        => l_adr_flex_value_set_id
55169          , x_value_type_code          => l_adr_value_type_code
55170          , x_value_combination_id     => l_adr_value_combination_id
55171          , x_value_segment_code       => l_adr_value_segment_code
55172          , p_side                     => 'NA'
55173          , p_override_seg_flag        => 'Y'
55174    );
55175 
55176    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
55177 
55178       xla_ae_lines_pkg.set_segment(
55179           p_to_segment_code         => 'GL_ACCOUNT'
55180         , p_segment_value           => l_segment
55181         , p_from_segment_code       => l_adr_value_segment_code
55182         , p_from_combination_id     => l_adr_value_combination_id
55183         , p_value_type_code         => l_adr_value_type_code
55184         , p_transaction_coa_id      => l_adr_transaction_coa_id
55185         , p_accounting_coa_id       => l_adr_accounting_coa_id
55186         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
55187         , p_flex_value_set_id       => l_adr_flex_value_set_id
55188         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
55189         , p_adr_type_code           => 'S'
55190         , p_component_type          => l_component_type
55191         , p_component_code          => l_component_code
55192         , p_component_type_code     => l_component_type_code
55193         , p_component_appl_id       => l_component_appl_id
55194         , p_amb_context_code        => l_amb_context_code
55195         , p_entity_code             => 'AP_PAYMENTS'
55196         , p_event_class_code        => 'RECONCILED PAYMENTS'
55197         , p_side                    => 'NA'
55198         );
55199 
55200   END IF;
55201 
55202    --
55203    --
55204    END IF;
55205    --
55206    -- Bug 4922099
55207    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55208           (NVL(l_enc_upg_option, 'N') = 'O')
55209         ) AND
55210         (l_bflow_method_code = 'PRIOR_ENTRY')
55211       )
55212    THEN
55213       IF
55214       --
55215       1 = 2
55216       --
55217       THEN
55218       xla_accounting_err_pkg.build_message
55219                                     (p_appli_s_name            => 'XLA'
55220                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55221                                     ,p_token_1                 => 'LINE_NUMBER'
55222                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55223                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55224                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55225                                                                              l_component_type
55226                                                                             ,l_component_code
55227                                                                             ,l_component_type_code
55228                                                                             ,l_component_appl_id
55229                                                                             ,l_amb_context_code
55230                                                                             ,l_entity_code
55231                                                                             ,l_event_class_code
55232                                                                            )
55233                                     ,p_token_3                 => 'OWNER'
55234                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55235                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55236                                                                           ,p_lookup_code    => l_component_type_code
55237                                                                          )
55238                                     ,p_token_4                 => 'PRODUCT_NAME'
55239                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55240                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55241                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55242                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55246         IF (C_LEVEL_ERROR>= g_log_level) THEN
55243                                     ,p_ae_header_id            =>  NULL
55244                                        );
55245 
55247                  trace
55248                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55249                       ,p_level    => C_LEVEL_ERROR
55250                       ,p_module   => l_log_module);
55251         END IF;
55252       END IF;
55253    END IF;
55254    --
55255    --
55256    ------------------------------------------------------------------------------------------------
55257    -- 4219869 Business Flow
55258    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55259    -- Prior Entry.  Currently, the following code is always generated.
55260    ------------------------------------------------------------------------------------------------
55261    XLA_AE_LINES_PKG.ValidateCurrentLine;
55262 
55263    ------------------------------------------------------------------------------------
55264    -- 4219869 Business Flow
55265    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55266    ------------------------------------------------------------------------------------
55267    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55268 
55269    ----------------------------------------------------------------------------------
55270    -- 4219869 Business Flow
55271    -- Update journal entry status -- Need to generate this within IF <condition>
55272    ----------------------------------------------------------------------------------
55273    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55274          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55275          ,p_balance_type_code => l_balance_type_code
55276          );
55277 
55278    -------------------------------------------------------------------------------------------
55279    -- 4262811 - Generate the Accrual Reversal lines
55280    -------------------------------------------------------------------------------------------
55281    BEGIN
55282       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55283                               (g_array_event(p_event_id).array_value_num('header_index'));
55284       IF l_acc_rev_flag IS NULL THEN
55285          l_acc_rev_flag := 'N';
55286       END IF;
55287    EXCEPTION
55288       WHEN OTHERS THEN
55289          l_acc_rev_flag := 'N';
55290    END;
55291    --
55292    IF (l_acc_rev_flag = 'Y') THEN
55293 
55294        -- 4645092  ------------------------------------------------------------------------------
55295        -- To allow MPA report to determine if it should generate report process
55296        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55297        ------------------------------------------------------------------------------------------
55298 
55299        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55300        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55301    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
55302    -- call ADRs
55303    -- Bug 4922099
55304    --
55305    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55306         (NVL(l_actual_upg_option, 'N') = 'O') OR
55307         (NVL(l_enc_upg_option, 'N') = 'O')
55308       )
55309    THEN
55310    NULL;
55311    --
55312    --
55313    
55314   l_ccid := AcctDerRule_25(
55315            p_application_id           => p_application_id
55316          , p_ae_header_id             => l_ae_header_id 
55317 , p_source_15 => p_source_15
55318 , p_source_16 => p_source_16
55319 , p_source_17 => p_source_17
55320          , x_transaction_coa_id       => l_adr_transaction_coa_id
55321          , x_accounting_coa_id        => l_adr_accounting_coa_id
55322          , x_value_type_code          => l_adr_value_type_code
55323          , p_side                     => 'NA'
55324    );
55325 
55326    xla_ae_lines_pkg.set_ccid(
55327     p_code_combination_id          => l_ccid
55328   , p_value_type_code              => l_adr_value_type_code
55329   , p_transaction_coa_id           => l_adr_transaction_coa_id
55330   , p_accounting_coa_id            => l_adr_accounting_coa_id
55331   , p_adr_code                     => 'AP_INTEREST'
55332   , p_adr_type_code                => 'S'
55333   , p_component_type               => l_component_type
55334   , p_component_code               => l_component_code
55335   , p_component_type_code          => l_component_type_code
55336   , p_component_appl_id            => l_component_appl_id
55337   , p_amb_context_code             => l_amb_context_code
55338   , p_side                         => 'NA'
55339   );
55340 
55341 
55342    l_segment := AcctDerRule_8(
55343            p_application_id           => p_application_id
55344          , p_ae_header_id             => l_ae_header_id 
55345 , p_source_15 => p_source_15
55346 , p_source_16 => p_source_16
55347          , x_transaction_coa_id       => l_adr_transaction_coa_id
55348          , x_accounting_coa_id        => l_adr_accounting_coa_id
55349          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
55350          , x_flex_value_set_id        => l_adr_flex_value_set_id
55351          , x_value_type_code          => l_adr_value_type_code
55352          , x_value_combination_id     => l_adr_value_combination_id
55353          , x_value_segment_code       => l_adr_value_segment_code
55354          , p_side                     => 'NA'
55358    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
55355          , p_override_seg_flag        => 'Y'
55356    );
55357 
55359 
55360       xla_ae_lines_pkg.set_segment(
55361           p_to_segment_code         => 'GL_ACCOUNT'
55362         , p_segment_value           => l_segment
55363         , p_from_segment_code       => l_adr_value_segment_code
55364         , p_from_combination_id     => l_adr_value_combination_id
55365         , p_value_type_code         => l_adr_value_type_code
55366         , p_transaction_coa_id      => l_adr_transaction_coa_id
55367         , p_accounting_coa_id       => l_adr_accounting_coa_id
55368         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
55369         , p_flex_value_set_id       => l_adr_flex_value_set_id
55370         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
55371         , p_adr_type_code           => 'S'
55372         , p_component_type          => l_component_type
55373         , p_component_code          => l_component_code
55374         , p_component_type_code     => l_component_type_code
55375         , p_component_appl_id       => l_component_appl_id
55376         , p_amb_context_code        => l_amb_context_code
55377         , p_entity_code             => 'AP_PAYMENTS'
55378         , p_event_class_code        => 'RECONCILED PAYMENTS'
55379         , p_side                    => 'NA'
55380         );
55381 
55382   END IF;
55383 
55384    --
55385    --
55386    END IF;
55387 
55388        --
55389        -- Update the line information that should be overwritten
55390        --
55391        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55392                                          p_header_num   => 1);
55393        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55394 
55395        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55396 
55397        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55398           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55399        END IF;
55400 
55401       --
55402       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55403       --
55404       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55405           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
55406       ELSE
55407           ---------------------------------------------------------------------------------------------------
55408           -- 4262811a Switch Sign
55409           ---------------------------------------------------------------------------------------------------
55410           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
55411           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55412                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55413           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55414                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55415           -- 5132302
55416           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55417                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55418 
55419       END IF;
55420 
55421       -- 4955764
55422       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55423       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55424 
55425 
55426       XLA_AE_LINES_PKG.ValidateCurrentLine;
55427       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55428 
55429       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55430                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55431                ,p_balance_type_code => l_balance_type_code);
55432 
55433    END IF;
55434 
55435    -----------------------------------------------------------------------------------------
55436    -- 4262811 Multiperiod Accounting
55437    -----------------------------------------------------------------------------------------
55438      -- No MPA option is assigned.
55439 
55440 
55441 END IF;
55442 END IF;
55443 --
55444 
55445 --
55446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55447    trace
55448       (p_msg      => 'END of AcctLineType_107'
55449       ,p_level    => C_LEVEL_PROCEDURE
55450       ,p_module   => l_log_module);
55451 END IF;
55452 --
55453 EXCEPTION
55454   WHEN xla_exceptions_pkg.application_exception THEN
55455       RAISE;
55456   WHEN OTHERS THEN
55457        xla_exceptions_pkg.raise_message
55458            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_107');
55459 END AcctLineType_107;
55460 --
55461 
55462 ---------------------------------------
55463 --
55464 -- PRIVATE FUNCTION
55465 --         AcctLineType_108
55466 --
55467 ---------------------------------------
55468 PROCEDURE AcctLineType_108 (
55469   p_application_id        IN NUMBER
55470  ,p_event_id              IN NUMBER
55471  ,p_calculate_acctd_flag  IN VARCHAR2
55475  ,p_gain_or_loss_ref      OUT VARCHAR2
55472  ,p_calculate_g_l_flag    IN VARCHAR2
55473  ,p_actual_flag           IN OUT VARCHAR2
55474  ,p_balance_type_code     OUT VARCHAR2
55476  
55477 --Payment Distribution (Payment Rate) Ledger Amount
55478  , p_source_9            IN NUMBER
55479 --Interest Account
55480  , p_source_15            IN NUMBER
55481 --Prorate Interest Invoice Across Distributions Option
55482  , p_source_16            IN VARCHAR2
55483 --Invoice Distribution Account
55484  , p_source_17            IN NUMBER
55485 --Invoice Distribution Type
55486  , p_source_20            IN VARCHAR2
55487  , p_source_20_meaning    IN VARCHAR2
55488 --When to Account for Payment Option
55489  , p_source_38            IN VARCHAR2
55490 --Payment Distribution Type
55491  , p_source_39            IN VARCHAR2
55492  , p_source_39_meaning    IN VARCHAR2
55493 --Accounting Reversal Indicator
55494  , p_source_40            IN VARCHAR2
55495 --Payment Distribution Amount
55496  , p_source_41            IN NUMBER
55497 --Business Flow Accounts Payable Application Identifier
55498  , p_source_42            IN NUMBER
55499 --Payment Distribution Identifier
55500  , p_source_47            IN NUMBER
55501 --Distribution Link Type
55502  , p_source_48            IN VARCHAR2
55503 --Payment Currency Code
55504  , p_source_49            IN VARCHAR2
55505 --Override Accounted Amount Indicator
55506  , p_source_53            IN VARCHAR2
55507  , p_source_53_meaning    IN VARCHAR2
55508 --Payment Supplier Identifier
55509  , p_source_54            IN NUMBER
55510 --Payment Supplier Site Identifier
55511  , p_source_55            IN NUMBER
55512 --Third Party Type
55513  , p_source_56            IN VARCHAR2
55514 --Payment Distribution Reversed Identifier
55515  , p_source_57            IN NUMBER
55516 --Invoice Distribution Tax Line Identifier
55517  , p_source_58            IN NUMBER
55518 --Invoice Distribution Summary Tax Line Identifier
55519  , p_source_59            IN NUMBER
55520 --Invoice Distribution Amount of the Payment Distribution
55521  , p_source_61            IN NUMBER
55522 --Business Flow Invoice Distribution Type
55523  , p_source_62            IN VARCHAR2
55524 --Business Flow Invoice Entity Code
55525  , p_source_63            IN VARCHAR2
55526 --Business Flow Invoice Distribution Identifier
55527  , p_source_64            IN NUMBER
55528 --Business Flow Invoice Identifier
55529  , p_source_65            IN NUMBER
55530 --Invoice Distribution Tax Distribution Identifier from Tax
55531  , p_source_66            IN NUMBER
55532 --Invoice Type Paid
55533  , p_source_101            IN VARCHAR2
55534  , p_source_101_meaning    IN VARCHAR2
55535 --Payment Processing Type
55536  , p_source_113            IN VARCHAR2
55537 --Payment Exchange Date
55538  , p_source_114            IN DATE
55539 --Payment Exchange Rate
55540  , p_source_115            IN NUMBER
55541 --Payment Exchange Rate Type
55542  , p_source_116            IN VARCHAR2
55543 )
55544 IS
55545 
55546 l_component_type              VARCHAR2(80);
55547 l_component_code              VARCHAR2(30);
55548 l_component_type_code         VARCHAR2(1);
55549 l_component_appl_id           INTEGER;
55550 l_amb_context_code            VARCHAR2(30);
55551 l_entity_code                 VARCHAR2(30);
55552 l_event_class_code            VARCHAR2(30);
55553 l_ae_header_id                NUMBER;
55554 l_event_type_code             VARCHAR2(30);
55555 l_line_definition_code        VARCHAR2(30);
55556 l_line_definition_owner_code  VARCHAR2(1);
55557 --
55558 -- adr variables
55559 l_segment                     VARCHAR2(30);
55560 l_ccid                        NUMBER;
55561 l_adr_transaction_coa_id      NUMBER;
55562 l_adr_accounting_coa_id       NUMBER;
55563 l_adr_flexfield_segment_code  VARCHAR2(30);
55564 l_adr_flex_value_set_id       NUMBER;
55565 l_adr_value_type_code         VARCHAR2(30);
55566 l_adr_value_combination_id    NUMBER;
55567 l_adr_value_segment_code      VARCHAR2(30);
55568 
55569 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55570 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55571 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55572 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55573 
55574 -- 4262811 Variables ------------------------------------------------------------------------------------------
55575 l_entered_amt_idx             NUMBER;
55576 l_accted_amt_idx              NUMBER;
55577 l_acc_rev_flag                VARCHAR2(1);
55578 l_accrual_line_num            NUMBER;
55579 l_tmp_amt                     NUMBER;
55580 l_acc_rev_natural_side_code   VARCHAR2(1);
55581 
55582 l_num_entries                 NUMBER;
55583 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55584 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55585 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55586 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55587 l_recog_line_1                NUMBER;
55588 l_recog_line_2                NUMBER;
55589 
55590 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55591 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55592 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55593 
55597 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55594 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55595 
55596 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55598 
55599 ---------------------------------------------------------------------------------------------------------------
55600 
55601 
55602 --
55603 -- bulk performance
55604 --
55605 l_balance_type_code           VARCHAR2(1);
55606 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55607 l_log_module                  VARCHAR2(240);
55608 
55609 --
55610 -- Upgrade strategy
55611 --
55612 l_actual_upg_option           VARCHAR2(1);
55613 l_enc_upg_option           VARCHAR2(1);
55614 
55615 --
55616 BEGIN
55617 --
55618 IF g_log_enabled THEN
55619       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
55620 END IF;
55621 --
55622 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55623 
55624       trace
55625          (p_msg      => 'BEGIN of AcctLineType_108'
55626          ,p_level    => C_LEVEL_PROCEDURE
55627          ,p_module   => l_log_module);
55628 
55629 END IF;
55630 --
55631 l_component_type             := 'AMB_JLT';
55632 l_component_code             := 'AP_INTEREST_EXPENSE_PMT';
55633 l_component_type_code        := 'S';
55634 l_component_appl_id          :=  200;
55635 l_amb_context_code           := 'DEFAULT';
55636 l_entity_code                := 'AP_PAYMENTS';
55637 l_event_class_code           := 'PAYMENTS';
55638 l_event_type_code            := 'PAYMENTS_ALL';
55639 l_line_definition_owner_code := 'S';
55640 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
55641 --
55642 l_balance_type_code          := 'A';
55643 l_segment                     := NULL;
55644 l_ccid                        := NULL;
55645 l_adr_transaction_coa_id      := NULL;
55646 l_adr_accounting_coa_id       := NULL;
55647 l_adr_flexfield_segment_code  := NULL;
55648 l_adr_flex_value_set_id       := NULL;
55649 l_adr_value_type_code         := NULL;
55650 l_adr_value_combination_id    := NULL;
55651 l_adr_value_segment_code      := NULL;
55652 
55653 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
55654 l_bflow_class_code           := '';    -- 4219869 Business Flow
55655 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55656 l_budgetary_control_flag     := 'N';
55657 
55658 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55659 l_bflow_applied_to_amt       := NULL; -- 5132302
55660 l_entered_amt_idx            := NULL;          -- 4262811
55661 l_accted_amt_idx             := NULL;          -- 4262811
55662 l_acc_rev_flag               := NULL;          -- 4262811
55663 l_accrual_line_num           := NULL;          -- 4262811
55664 l_tmp_amt                    := NULL;          -- 4262811
55665 --
55666  
55667 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55668     l_balance_type_code <> 'B' THEN
55669 IF NVL(p_source_38,'
55670 ') <>  'CLEAR_CLEAR' AND 
55671 NVL(p_source_101,'
55672 ') =  'INTEREST' AND 
55673 NVL(p_source_20,'
55674 ') =  'ITEM' AND 
55675 (NVL(p_source_39,'
55676 ') =  'CASH' OR 
55677 NVL(p_source_39,'
55678 ') =  'DISCOUNT') AND 
55679 NVL(p_source_113,'
55680 ') <>  'PAYMENTCARD'
55681  THEN 
55682 
55683    --
55684    XLA_AE_LINES_PKG.SetNewLine;
55685 
55686    p_balance_type_code          := l_balance_type_code;
55687    -- set the flag so later we will know whether the gain loss line needs to be created
55688    
55689    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55690      p_actual_flag :='A';
55691    END IF;
55692 
55693    --
55694    -- bulk performance
55695    --
55696    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55697                                       p_header_num   => 0); -- 4262811
55698    --
55699    -- set accounting line options
55700    --
55701    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55702            p_natural_side_code          => 'D'
55703          , p_gain_or_loss_flag          => 'N'
55704          , p_gl_transfer_mode_code      => 'S'
55705          , p_acct_entry_type_code       => 'A'
55706          , p_switch_side_flag           => 'Y'
55707          , p_merge_duplicate_code       => 'A'
55708          );
55709    --
55710    l_acc_rev_natural_side_code := 'C';  -- 4262811
55711    -- 
55712    --
55713    -- set accounting line type info
55714    --
55715    xla_ae_lines_pkg.SetAcctLineType
55716       (p_component_type             => l_component_type
55717       ,p_event_type_code            => l_event_type_code
55718       ,p_line_definition_owner_code => l_line_definition_owner_code
55719       ,p_line_definition_code       => l_line_definition_code
55720       ,p_accounting_line_code       => l_component_code
55721       ,p_accounting_line_type_code  => l_component_type_code
55722       ,p_accounting_line_appl_id    => l_component_appl_id
55723       ,p_amb_context_code           => l_amb_context_code
55724       ,p_entity_code                => l_entity_code
55725       ,p_event_class_code           => l_event_class_code);
55726    --
55727    -- set accounting class
55728    --
55729    xla_ae_lines_pkg.SetAcctClass(
55730            p_accounting_class_code  => 'INTEREST_EXPENSE'
55731          , p_ae_header_id           => l_ae_header_id
55732          );
55733 
55737    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55734    --
55735    -- set rounding class
55736    --
55738                       'INTEREST_EXPENSE';
55739 
55740    --
55741    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55742    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55743    --
55744    -- bulk performance
55745    --
55746    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55747 
55748    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55749       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55750 
55751    -- 4955764
55752    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55753       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55754 
55755    -- 4458381 Public Sector Enh
55756    
55757    --
55758    -- set accounting attributes for the line type
55759    --
55760    l_entered_amt_idx := 10;
55761    l_accted_amt_idx  := 15;
55762    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
55763    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55764    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
55765    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55766    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
55767    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55768    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
55769    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55770    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
55771    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55772    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
55773    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55774    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
55775    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55776    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
55777    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55778    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
55779    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55780    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
55781    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55782    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
55783    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55784    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
55785    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55786    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
55787    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55788    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
55789    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55790    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
55791    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55792    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
55793    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55794    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
55795    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55796    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
55797    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55798    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
55799    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55800    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
55801    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55802    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
55803    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55804    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
55805    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55806    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
55807    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55808    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
55809    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55810    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
55811 
55812    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55813    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55814 
55815    ---------------------------------------------------------------------------------------------------------------
55816    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55817    ---------------------------------------------------------------------------------------------------------------
55818    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55819 
55820    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55821    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55822 
55823    IF xla_accounting_cache_pkg.GetValueChar
55824          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55825          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55826    AND l_bflow_method_code = 'PRIOR_ENTRY'
55830        )
55827 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55828    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55829          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55831    THEN
55832          xla_ae_lines_pkg.BflowUpgEntry
55833            (p_business_method_code    => l_bflow_method_code
55834            ,p_business_class_code     => l_bflow_class_code
55835            ,p_balance_type            => l_balance_type_code);
55836    ELSE
55837       NULL;
55838 -- No business flow processing for business flow method of NONE.
55839    END IF;
55840 
55841    --
55842    -- call analytical criteria
55843    --
55844    
55845    --
55846    -- call description
55847    --
55848    -- No description or it is inherited.
55849    --
55850    -- call ADRs
55851    -- Bug 4922099
55852    --
55853    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55854         (NVL(l_actual_upg_option, 'N') = 'O') OR
55855         (NVL(l_enc_upg_option, 'N') = 'O')
55856       )
55857    THEN
55858    NULL;
55859    --
55860    --
55861    
55862   l_ccid := AcctDerRule_25(
55863            p_application_id           => p_application_id
55864          , p_ae_header_id             => l_ae_header_id 
55865 , p_source_15 => p_source_15
55866 , p_source_16 => p_source_16
55867 , p_source_17 => p_source_17
55868          , x_transaction_coa_id       => l_adr_transaction_coa_id
55869          , x_accounting_coa_id        => l_adr_accounting_coa_id
55870          , x_value_type_code          => l_adr_value_type_code
55871          , p_side                     => 'NA'
55872    );
55873 
55874    xla_ae_lines_pkg.set_ccid(
55875     p_code_combination_id          => l_ccid
55876   , p_value_type_code              => l_adr_value_type_code
55877   , p_transaction_coa_id           => l_adr_transaction_coa_id
55878   , p_accounting_coa_id            => l_adr_accounting_coa_id
55879   , p_adr_code                     => 'AP_INTEREST'
55880   , p_adr_type_code                => 'S'
55881   , p_component_type               => l_component_type
55882   , p_component_code               => l_component_code
55883   , p_component_type_code          => l_component_type_code
55884   , p_component_appl_id            => l_component_appl_id
55885   , p_amb_context_code             => l_amb_context_code
55886   , p_side                         => 'NA'
55887   );
55888 
55889 
55890    l_segment := AcctDerRule_8(
55891            p_application_id           => p_application_id
55892          , p_ae_header_id             => l_ae_header_id 
55893 , p_source_15 => p_source_15
55894 , p_source_16 => p_source_16
55895          , x_transaction_coa_id       => l_adr_transaction_coa_id
55896          , x_accounting_coa_id        => l_adr_accounting_coa_id
55897          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
55898          , x_flex_value_set_id        => l_adr_flex_value_set_id
55899          , x_value_type_code          => l_adr_value_type_code
55900          , x_value_combination_id     => l_adr_value_combination_id
55901          , x_value_segment_code       => l_adr_value_segment_code
55902          , p_side                     => 'NA'
55903          , p_override_seg_flag        => 'Y'
55904    );
55905 
55906    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
55907 
55908       xla_ae_lines_pkg.set_segment(
55909           p_to_segment_code         => 'GL_ACCOUNT'
55910         , p_segment_value           => l_segment
55911         , p_from_segment_code       => l_adr_value_segment_code
55912         , p_from_combination_id     => l_adr_value_combination_id
55913         , p_value_type_code         => l_adr_value_type_code
55914         , p_transaction_coa_id      => l_adr_transaction_coa_id
55915         , p_accounting_coa_id       => l_adr_accounting_coa_id
55916         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
55917         , p_flex_value_set_id       => l_adr_flex_value_set_id
55918         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
55919         , p_adr_type_code           => 'S'
55920         , p_component_type          => l_component_type
55921         , p_component_code          => l_component_code
55922         , p_component_type_code     => l_component_type_code
55923         , p_component_appl_id       => l_component_appl_id
55924         , p_amb_context_code        => l_amb_context_code
55925         , p_entity_code             => 'AP_PAYMENTS'
55926         , p_event_class_code        => 'PAYMENTS'
55927         , p_side                    => 'NA'
55928         );
55929 
55930   END IF;
55931 
55932    --
55933    --
55934    END IF;
55935    --
55936    -- Bug 4922099
55937    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55938           (NVL(l_enc_upg_option, 'N') = 'O')
55939         ) AND
55940         (l_bflow_method_code = 'PRIOR_ENTRY')
55941       )
55942    THEN
55943       IF
55944       --
55945       1 = 2
55946       --
55947       THEN
55948       xla_accounting_err_pkg.build_message
55949                                     (p_appli_s_name            => 'XLA'
55950                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55951                                     ,p_token_1                 => 'LINE_NUMBER'
55952                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55953                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55957                                                                             ,l_component_type_code
55954                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55955                                                                              l_component_type
55956                                                                             ,l_component_code
55958                                                                             ,l_component_appl_id
55959                                                                             ,l_amb_context_code
55960                                                                             ,l_entity_code
55961                                                                             ,l_event_class_code
55962                                                                            )
55963                                     ,p_token_3                 => 'OWNER'
55964                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55965                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55966                                                                           ,p_lookup_code    => l_component_type_code
55967                                                                          )
55968                                     ,p_token_4                 => 'PRODUCT_NAME'
55969                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55970                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55971                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55972                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55973                                     ,p_ae_header_id            =>  NULL
55974                                        );
55975 
55976         IF (C_LEVEL_ERROR>= g_log_level) THEN
55977                  trace
55978                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55979                       ,p_level    => C_LEVEL_ERROR
55980                       ,p_module   => l_log_module);
55981         END IF;
55982       END IF;
55983    END IF;
55984    --
55985    --
55986    ------------------------------------------------------------------------------------------------
55987    -- 4219869 Business Flow
55988    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55989    -- Prior Entry.  Currently, the following code is always generated.
55990    ------------------------------------------------------------------------------------------------
55991    XLA_AE_LINES_PKG.ValidateCurrentLine;
55992 
55993    ------------------------------------------------------------------------------------
55994    -- 4219869 Business Flow
55995    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55996    ------------------------------------------------------------------------------------
55997    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55998 
55999    ----------------------------------------------------------------------------------
56000    -- 4219869 Business Flow
56001    -- Update journal entry status -- Need to generate this within IF <condition>
56002    ----------------------------------------------------------------------------------
56003    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56004          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56005          ,p_balance_type_code => l_balance_type_code
56006          );
56007 
56008    -------------------------------------------------------------------------------------------
56009    -- 4262811 - Generate the Accrual Reversal lines
56010    -------------------------------------------------------------------------------------------
56011    BEGIN
56012       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56013                               (g_array_event(p_event_id).array_value_num('header_index'));
56014       IF l_acc_rev_flag IS NULL THEN
56015          l_acc_rev_flag := 'N';
56016       END IF;
56017    EXCEPTION
56018       WHEN OTHERS THEN
56019          l_acc_rev_flag := 'N';
56020    END;
56021    --
56022    IF (l_acc_rev_flag = 'Y') THEN
56023 
56024        -- 4645092  ------------------------------------------------------------------------------
56025        -- To allow MPA report to determine if it should generate report process
56026        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56027        ------------------------------------------------------------------------------------------
56028 
56029        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56030        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56031    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56032    -- call ADRs
56033    -- Bug 4922099
56034    --
56035    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56036         (NVL(l_actual_upg_option, 'N') = 'O') OR
56037         (NVL(l_enc_upg_option, 'N') = 'O')
56038       )
56039    THEN
56040    NULL;
56041    --
56042    --
56043    
56044   l_ccid := AcctDerRule_25(
56045            p_application_id           => p_application_id
56046          , p_ae_header_id             => l_ae_header_id 
56047 , p_source_15 => p_source_15
56048 , p_source_16 => p_source_16
56052          , x_value_type_code          => l_adr_value_type_code
56049 , p_source_17 => p_source_17
56050          , x_transaction_coa_id       => l_adr_transaction_coa_id
56051          , x_accounting_coa_id        => l_adr_accounting_coa_id
56053          , p_side                     => 'NA'
56054    );
56055 
56056    xla_ae_lines_pkg.set_ccid(
56057     p_code_combination_id          => l_ccid
56058   , p_value_type_code              => l_adr_value_type_code
56059   , p_transaction_coa_id           => l_adr_transaction_coa_id
56060   , p_accounting_coa_id            => l_adr_accounting_coa_id
56061   , p_adr_code                     => 'AP_INTEREST'
56062   , p_adr_type_code                => 'S'
56063   , p_component_type               => l_component_type
56064   , p_component_code               => l_component_code
56065   , p_component_type_code          => l_component_type_code
56066   , p_component_appl_id            => l_component_appl_id
56067   , p_amb_context_code             => l_amb_context_code
56068   , p_side                         => 'NA'
56069   );
56070 
56071 
56072    l_segment := AcctDerRule_8(
56073            p_application_id           => p_application_id
56074          , p_ae_header_id             => l_ae_header_id 
56075 , p_source_15 => p_source_15
56076 , p_source_16 => p_source_16
56077          , x_transaction_coa_id       => l_adr_transaction_coa_id
56078          , x_accounting_coa_id        => l_adr_accounting_coa_id
56079          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
56080          , x_flex_value_set_id        => l_adr_flex_value_set_id
56081          , x_value_type_code          => l_adr_value_type_code
56082          , x_value_combination_id     => l_adr_value_combination_id
56083          , x_value_segment_code       => l_adr_value_segment_code
56084          , p_side                     => 'NA'
56085          , p_override_seg_flag        => 'Y'
56086    );
56087 
56088    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
56089 
56090       xla_ae_lines_pkg.set_segment(
56091           p_to_segment_code         => 'GL_ACCOUNT'
56092         , p_segment_value           => l_segment
56093         , p_from_segment_code       => l_adr_value_segment_code
56094         , p_from_combination_id     => l_adr_value_combination_id
56095         , p_value_type_code         => l_adr_value_type_code
56096         , p_transaction_coa_id      => l_adr_transaction_coa_id
56097         , p_accounting_coa_id       => l_adr_accounting_coa_id
56098         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
56099         , p_flex_value_set_id       => l_adr_flex_value_set_id
56100         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
56101         , p_adr_type_code           => 'S'
56102         , p_component_type          => l_component_type
56103         , p_component_code          => l_component_code
56104         , p_component_type_code     => l_component_type_code
56105         , p_component_appl_id       => l_component_appl_id
56106         , p_amb_context_code        => l_amb_context_code
56107         , p_entity_code             => 'AP_PAYMENTS'
56108         , p_event_class_code        => 'PAYMENTS'
56109         , p_side                    => 'NA'
56110         );
56111 
56112   END IF;
56113 
56114    --
56115    --
56116    END IF;
56117 
56118        --
56119        -- Update the line information that should be overwritten
56120        --
56121        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56122                                          p_header_num   => 1);
56123        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56124 
56125        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56126 
56127        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56128           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56129        END IF;
56130 
56131       --
56132       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56133       --
56134       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56135           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56136       ELSE
56137           ---------------------------------------------------------------------------------------------------
56138           -- 4262811a Switch Sign
56139           ---------------------------------------------------------------------------------------------------
56140           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56141           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56142                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56143           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56144                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56145           -- 5132302
56146           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56147                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56148 
56149       END IF;
56150 
56151       -- 4955764
56152       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56156       XLA_AE_LINES_PKG.ValidateCurrentLine;
56153       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56154 
56155 
56157       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56158 
56159       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56160                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56161                ,p_balance_type_code => l_balance_type_code);
56162 
56163    END IF;
56164 
56165    -----------------------------------------------------------------------------------------
56166    -- 4262811 Multiperiod Accounting
56167    -----------------------------------------------------------------------------------------
56168      -- No MPA option is assigned.
56169 
56170 
56171 END IF;
56172 END IF;
56173 --
56174 
56175 --
56176 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56177    trace
56178       (p_msg      => 'END of AcctLineType_108'
56179       ,p_level    => C_LEVEL_PROCEDURE
56180       ,p_module   => l_log_module);
56181 END IF;
56182 --
56183 EXCEPTION
56184   WHEN xla_exceptions_pkg.application_exception THEN
56185       RAISE;
56186   WHEN OTHERS THEN
56187        xla_exceptions_pkg.raise_message
56188            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_108');
56189 END AcctLineType_108;
56190 --
56191 
56192 ---------------------------------------
56193 --
56194 -- PRIVATE FUNCTION
56195 --         AcctLineType_109
56196 --
56197 ---------------------------------------
56198 PROCEDURE AcctLineType_109 (
56199   p_application_id        IN NUMBER
56200  ,p_event_id              IN NUMBER
56201  ,p_calculate_acctd_flag  IN VARCHAR2
56202  ,p_calculate_g_l_flag    IN VARCHAR2
56203  ,p_actual_flag           IN OUT VARCHAR2
56204  ,p_balance_type_code     OUT VARCHAR2
56205  ,p_gain_or_loss_ref      OUT VARCHAR2
56206  
56207 --Payment Distribution (Cleared Rate) Ledger Amount
56208  , p_source_10            IN NUMBER
56209 --Invoice Distribution Account
56210  , p_source_17            IN NUMBER
56211 --Invoice Distribution Type
56212  , p_source_20            IN VARCHAR2
56213  , p_source_20_meaning    IN VARCHAR2
56214 --When to Account for Payment Option
56215  , p_source_38            IN VARCHAR2
56216 --Payment Distribution Type
56217  , p_source_39            IN VARCHAR2
56218  , p_source_39_meaning    IN VARCHAR2
56219 --Accounting Reversal Indicator
56220  , p_source_40            IN VARCHAR2
56221 --Payment Distribution Amount
56222  , p_source_41            IN NUMBER
56223 --Business Flow Accounts Payable Application Identifier
56224  , p_source_42            IN NUMBER
56225 --Business Flow Payment Distribution Type
56226  , p_source_43            IN VARCHAR2
56227 --Business Flow Payment Entity Code
56228  , p_source_44            IN VARCHAR2
56229 --Business Flow Payment Distribution Identifier
56230  , p_source_45            IN NUMBER
56231 --Business Flow Payment Identifier
56232  , p_source_46            IN NUMBER
56233 --Payment Distribution Identifier
56234  , p_source_47            IN NUMBER
56235 --Distribution Link Type
56236  , p_source_48            IN VARCHAR2
56237 --Payment Currency Code
56238  , p_source_49            IN VARCHAR2
56239 --Override Accounted Amount Indicator
56240  , p_source_53            IN VARCHAR2
56241  , p_source_53_meaning    IN VARCHAR2
56242 --Payment Supplier Identifier
56243  , p_source_54            IN NUMBER
56244 --Payment Supplier Site Identifier
56245  , p_source_55            IN NUMBER
56246 --Third Party Type
56247  , p_source_56            IN VARCHAR2
56248 --Payment Distribution Reversed Identifier
56249  , p_source_57            IN NUMBER
56250 --Invoice Distribution Tax Line Identifier
56251  , p_source_58            IN NUMBER
56252 --Invoice Distribution Summary Tax Line Identifier
56253  , p_source_59            IN NUMBER
56254 --Accrue on Receipt Option
56255  , p_source_100            IN VARCHAR2
56256  , p_source_100_meaning    IN VARCHAR2
56257 --Cleared Exchange Date
56258  , p_source_107            IN DATE
56259 --Cleared Exchange Rate
56260  , p_source_108            IN NUMBER
56261 --Cleared Exchange Rate Type
56262  , p_source_109            IN VARCHAR2
56263 )
56264 IS
56265 
56266 l_component_type              VARCHAR2(80);
56267 l_component_code              VARCHAR2(30);
56268 l_component_type_code         VARCHAR2(1);
56269 l_component_appl_id           INTEGER;
56270 l_amb_context_code            VARCHAR2(30);
56271 l_entity_code                 VARCHAR2(30);
56272 l_event_class_code            VARCHAR2(30);
56273 l_ae_header_id                NUMBER;
56274 l_event_type_code             VARCHAR2(30);
56275 l_line_definition_code        VARCHAR2(30);
56276 l_line_definition_owner_code  VARCHAR2(1);
56277 --
56278 -- adr variables
56279 l_segment                     VARCHAR2(30);
56280 l_ccid                        NUMBER;
56281 l_adr_transaction_coa_id      NUMBER;
56282 l_adr_accounting_coa_id       NUMBER;
56283 l_adr_flexfield_segment_code  VARCHAR2(30);
56284 l_adr_flex_value_set_id       NUMBER;
56285 l_adr_value_type_code         VARCHAR2(30);
56286 l_adr_value_combination_id    NUMBER;
56287 l_adr_value_segment_code      VARCHAR2(30);
56288 
56289 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56293 
56290 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56291 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56292 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56294 -- 4262811 Variables ------------------------------------------------------------------------------------------
56295 l_entered_amt_idx             NUMBER;
56296 l_accted_amt_idx              NUMBER;
56297 l_acc_rev_flag                VARCHAR2(1);
56298 l_accrual_line_num            NUMBER;
56299 l_tmp_amt                     NUMBER;
56300 l_acc_rev_natural_side_code   VARCHAR2(1);
56301 
56302 l_num_entries                 NUMBER;
56303 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56304 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56305 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56306 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56307 l_recog_line_1                NUMBER;
56308 l_recog_line_2                NUMBER;
56309 
56310 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56311 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56312 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56313 
56314 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56315 
56316 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56317 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56318 
56319 ---------------------------------------------------------------------------------------------------------------
56320 
56321 
56322 --
56323 -- bulk performance
56324 --
56325 l_balance_type_code           VARCHAR2(1);
56326 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56327 l_log_module                  VARCHAR2(240);
56328 
56329 --
56330 -- Upgrade strategy
56331 --
56332 l_actual_upg_option           VARCHAR2(1);
56333 l_enc_upg_option           VARCHAR2(1);
56334 
56335 --
56336 BEGIN
56337 --
56338 IF g_log_enabled THEN
56339       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
56340 END IF;
56341 --
56342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56343 
56344       trace
56345          (p_msg      => 'BEGIN of AcctLineType_109'
56346          ,p_level    => C_LEVEL_PROCEDURE
56347          ,p_module   => l_log_module);
56348 
56349 END IF;
56350 --
56351 l_component_type             := 'AMB_JLT';
56352 l_component_code             := 'AP_INV_PRICE_VAR_CLEAR';
56353 l_component_type_code        := 'S';
56354 l_component_appl_id          :=  200;
56355 l_amb_context_code           := 'DEFAULT';
56356 l_entity_code                := 'AP_PAYMENTS';
56357 l_event_class_code           := 'RECONCILED PAYMENTS';
56358 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
56359 l_line_definition_owner_code := 'S';
56360 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
56361 --
56362 l_balance_type_code          := 'A';
56363 l_segment                     := NULL;
56364 l_ccid                        := NULL;
56365 l_adr_transaction_coa_id      := NULL;
56366 l_adr_accounting_coa_id       := NULL;
56367 l_adr_flexfield_segment_code  := NULL;
56368 l_adr_flex_value_set_id       := NULL;
56369 l_adr_value_type_code         := NULL;
56370 l_adr_value_combination_id    := NULL;
56371 l_adr_value_segment_code      := NULL;
56372 
56373 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
56374 l_bflow_class_code           := '';    -- 4219869 Business Flow
56375 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56376 l_budgetary_control_flag     := 'N';
56377 
56378 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56379 l_bflow_applied_to_amt       := NULL; -- 5132302
56380 l_entered_amt_idx            := NULL;          -- 4262811
56381 l_accted_amt_idx             := NULL;          -- 4262811
56382 l_acc_rev_flag               := NULL;          -- 4262811
56383 l_accrual_line_num           := NULL;          -- 4262811
56384 l_tmp_amt                    := NULL;          -- 4262811
56385 --
56386  
56387 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56388     l_balance_type_code <> 'B' THEN
56389 IF NVL(p_source_38,'
56390 ') =  'CLEAR_CLEAR' AND 
56391 NVL(p_source_20,'
56392 ') =  'IPV' AND 
56393 NVL(p_source_100,'
56394 ') =  'Y' AND 
56395 (NVL(p_source_39,'
56396 ') =  'CASH' OR 
56397 NVL(p_source_39,'
56398 ') =  'AWT' OR 
56399 NVL(p_source_39,'
56400 ') =  'DISCOUNT')
56401  THEN 
56402 
56403    --
56404    XLA_AE_LINES_PKG.SetNewLine;
56405 
56406    p_balance_type_code          := l_balance_type_code;
56407    -- set the flag so later we will know whether the gain loss line needs to be created
56408    
56409    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56410      p_actual_flag :='A';
56411    END IF;
56412 
56413    --
56414    -- bulk performance
56415    --
56416    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56417                                       p_header_num   => 0); -- 4262811
56418    --
56419    -- set accounting line options
56420    --
56421    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56422            p_natural_side_code          => 'D'
56423          , p_gain_or_loss_flag          => 'N'
56427          , p_merge_duplicate_code       => 'A'
56424          , p_gl_transfer_mode_code      => 'S'
56425          , p_acct_entry_type_code       => 'A'
56426          , p_switch_side_flag           => 'Y'
56428          );
56429    --
56430    l_acc_rev_natural_side_code := 'C';  -- 4262811
56431    -- 
56432    --
56433    -- set accounting line type info
56434    --
56435    xla_ae_lines_pkg.SetAcctLineType
56436       (p_component_type             => l_component_type
56437       ,p_event_type_code            => l_event_type_code
56438       ,p_line_definition_owner_code => l_line_definition_owner_code
56439       ,p_line_definition_code       => l_line_definition_code
56440       ,p_accounting_line_code       => l_component_code
56441       ,p_accounting_line_type_code  => l_component_type_code
56442       ,p_accounting_line_appl_id    => l_component_appl_id
56443       ,p_amb_context_code           => l_amb_context_code
56444       ,p_entity_code                => l_entity_code
56445       ,p_event_class_code           => l_event_class_code);
56446    --
56447    -- set accounting class
56448    --
56449    xla_ae_lines_pkg.SetAcctClass(
56450            p_accounting_class_code  => 'IPV'
56451          , p_ae_header_id           => l_ae_header_id
56452          );
56453 
56454    --
56455    -- set rounding class
56456    --
56457    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56458                       'IPV';
56459 
56460    --
56461    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56462    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56463    --
56464    -- bulk performance
56465    --
56466    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56467 
56468    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56469       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56470 
56471    -- 4955764
56472    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56473       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56474 
56475    -- 4458381 Public Sector Enh
56476    
56477    --
56478    -- set accounting attributes for the line type
56479    --
56480    l_entered_amt_idx := 10;
56481    l_accted_amt_idx  := 15;
56482    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
56483    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56484    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
56485    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
56486    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
56487    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
56488    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
56489    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56490    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
56491    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
56492    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
56493    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
56494    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
56495    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56496    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
56497    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
56498    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
56499    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
56500    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
56501    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
56502    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
56503    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
56504    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
56505    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
56506    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
56507    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
56508    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
56509    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
56510    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
56511    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
56512    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
56513    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
56514    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
56515    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
56516    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
56517    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
56518    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
56519    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
56520    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
56521    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
56522    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
56523    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
56524    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
56525    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
56526    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
56527    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
56531 
56528    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
56529    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
56530    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
56532    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56533    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56534 
56535    ---------------------------------------------------------------------------------------------------------------
56536    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56537    ---------------------------------------------------------------------------------------------------------------
56538    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56539 
56540    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56541    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56542 
56543    IF xla_accounting_cache_pkg.GetValueChar
56544          (p_source_code         => 'LEDGER_CATEGORY_CODE'
56545          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56546    AND l_bflow_method_code = 'PRIOR_ENTRY'
56547 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56548    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56549          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56550        )
56551    THEN
56552          xla_ae_lines_pkg.BflowUpgEntry
56553            (p_business_method_code    => l_bflow_method_code
56554            ,p_business_class_code     => l_bflow_class_code
56555            ,p_balance_type            => l_balance_type_code);
56556    ELSE
56557       NULL;
56558 -- No business flow processing for business flow method of NONE.
56559    END IF;
56560 
56561    --
56562    -- call analytical criteria
56563    --
56564    
56565    --
56566    -- call description
56567    --
56568    -- No description or it is inherited.
56569    --
56570    -- call ADRs
56571    -- Bug 4922099
56572    --
56573    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56574         (NVL(l_actual_upg_option, 'N') = 'O') OR
56575         (NVL(l_enc_upg_option, 'N') = 'O')
56576       )
56577    THEN
56578    NULL;
56579    --
56580    --
56581    
56582   l_ccid := AcctDerRule_26(
56583            p_application_id           => p_application_id
56584          , p_ae_header_id             => l_ae_header_id 
56585 , p_source_17 => p_source_17
56586          , x_transaction_coa_id       => l_adr_transaction_coa_id
56587          , x_accounting_coa_id        => l_adr_accounting_coa_id
56588          , x_value_type_code          => l_adr_value_type_code
56589          , p_side                     => 'NA'
56590    );
56591 
56592    xla_ae_lines_pkg.set_ccid(
56593     p_code_combination_id          => l_ccid
56594   , p_value_type_code              => l_adr_value_type_code
56595   , p_transaction_coa_id           => l_adr_transaction_coa_id
56596   , p_accounting_coa_id            => l_adr_accounting_coa_id
56597   , p_adr_code                     => 'AP_INVOICE_DIST'
56598   , p_adr_type_code                => 'S'
56599   , p_component_type               => l_component_type
56600   , p_component_code               => l_component_code
56601   , p_component_type_code          => l_component_type_code
56602   , p_component_appl_id            => l_component_appl_id
56603   , p_amb_context_code             => l_amb_context_code
56604   , p_side                         => 'NA'
56605   );
56606 
56607 
56608    --
56609    --
56610    END IF;
56611    --
56612    -- Bug 4922099
56613    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56614           (NVL(l_enc_upg_option, 'N') = 'O')
56615         ) AND
56616         (l_bflow_method_code = 'PRIOR_ENTRY')
56617       )
56618    THEN
56619       IF
56620       --
56621       1 = 2
56622       --
56623       THEN
56624       xla_accounting_err_pkg.build_message
56625                                     (p_appli_s_name            => 'XLA'
56626                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56627                                     ,p_token_1                 => 'LINE_NUMBER'
56628                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
56629                                     ,p_token_2                 => 'LINE_TYPE_NAME'
56630                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
56631                                                                              l_component_type
56632                                                                             ,l_component_code
56633                                                                             ,l_component_type_code
56634                                                                             ,l_component_appl_id
56635                                                                             ,l_amb_context_code
56636                                                                             ,l_entity_code
56637                                                                             ,l_event_class_code
56638                                                                            )
56639                                     ,p_token_3                 => 'OWNER'
56643                                                                          )
56640                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
56641                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
56642                                                                           ,p_lookup_code    => l_component_type_code
56644                                     ,p_token_4                 => 'PRODUCT_NAME'
56645                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56646                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56647                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56648                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56649                                     ,p_ae_header_id            =>  NULL
56650                                        );
56651 
56652         IF (C_LEVEL_ERROR>= g_log_level) THEN
56653                  trace
56654                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56655                       ,p_level    => C_LEVEL_ERROR
56656                       ,p_module   => l_log_module);
56657         END IF;
56658       END IF;
56659    END IF;
56660    --
56661    --
56662    ------------------------------------------------------------------------------------------------
56663    -- 4219869 Business Flow
56664    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56665    -- Prior Entry.  Currently, the following code is always generated.
56666    ------------------------------------------------------------------------------------------------
56667    XLA_AE_LINES_PKG.ValidateCurrentLine;
56668 
56669    ------------------------------------------------------------------------------------
56670    -- 4219869 Business Flow
56671    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56672    ------------------------------------------------------------------------------------
56673    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56674 
56675    ----------------------------------------------------------------------------------
56676    -- 4219869 Business Flow
56677    -- Update journal entry status -- Need to generate this within IF <condition>
56678    ----------------------------------------------------------------------------------
56679    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56680          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56681          ,p_balance_type_code => l_balance_type_code
56682          );
56683 
56684    -------------------------------------------------------------------------------------------
56685    -- 4262811 - Generate the Accrual Reversal lines
56686    -------------------------------------------------------------------------------------------
56687    BEGIN
56688       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56689                               (g_array_event(p_event_id).array_value_num('header_index'));
56690       IF l_acc_rev_flag IS NULL THEN
56691          l_acc_rev_flag := 'N';
56692       END IF;
56693    EXCEPTION
56694       WHEN OTHERS THEN
56695          l_acc_rev_flag := 'N';
56696    END;
56697    --
56698    IF (l_acc_rev_flag = 'Y') THEN
56699 
56700        -- 4645092  ------------------------------------------------------------------------------
56701        -- To allow MPA report to determine if it should generate report process
56702        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56703        ------------------------------------------------------------------------------------------
56704 
56705        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56706        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56707    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56708    -- call ADRs
56709    -- Bug 4922099
56710    --
56711    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56712         (NVL(l_actual_upg_option, 'N') = 'O') OR
56713         (NVL(l_enc_upg_option, 'N') = 'O')
56714       )
56715    THEN
56716    NULL;
56717    --
56718    --
56719    
56720   l_ccid := AcctDerRule_26(
56721            p_application_id           => p_application_id
56722          , p_ae_header_id             => l_ae_header_id 
56723 , p_source_17 => p_source_17
56724          , x_transaction_coa_id       => l_adr_transaction_coa_id
56725          , x_accounting_coa_id        => l_adr_accounting_coa_id
56726          , x_value_type_code          => l_adr_value_type_code
56727          , p_side                     => 'NA'
56728    );
56729 
56730    xla_ae_lines_pkg.set_ccid(
56731     p_code_combination_id          => l_ccid
56732   , p_value_type_code              => l_adr_value_type_code
56733   , p_transaction_coa_id           => l_adr_transaction_coa_id
56734   , p_accounting_coa_id            => l_adr_accounting_coa_id
56735   , p_adr_code                     => 'AP_INVOICE_DIST'
56736   , p_adr_type_code                => 'S'
56737   , p_component_type               => l_component_type
56738   , p_component_code               => l_component_code
56739   , p_component_type_code          => l_component_type_code
56740   , p_component_appl_id            => l_component_appl_id
56741   , p_amb_context_code             => l_amb_context_code
56745 
56742   , p_side                         => 'NA'
56743   );
56744 
56746    --
56747    --
56748    END IF;
56749 
56750        --
56751        -- Update the line information that should be overwritten
56752        --
56753        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56754                                          p_header_num   => 1);
56755        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56756 
56757        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56758 
56759        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56760           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56761        END IF;
56762 
56763       --
56764       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56765       --
56766       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56767           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56768       ELSE
56769           ---------------------------------------------------------------------------------------------------
56770           -- 4262811a Switch Sign
56771           ---------------------------------------------------------------------------------------------------
56772           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56773           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56774                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56775           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56776                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56777           -- 5132302
56778           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56779                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56780 
56781       END IF;
56782 
56783       -- 4955764
56784       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56785       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56786 
56787 
56788       XLA_AE_LINES_PKG.ValidateCurrentLine;
56789       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56790 
56791       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56792                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56793                ,p_balance_type_code => l_balance_type_code);
56794 
56795    END IF;
56796 
56797    -----------------------------------------------------------------------------------------
56798    -- 4262811 Multiperiod Accounting
56799    -----------------------------------------------------------------------------------------
56800      -- No MPA option is assigned.
56801 
56802 
56803 END IF;
56804 END IF;
56805 --
56806 
56807 --
56808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56809    trace
56810       (p_msg      => 'END of AcctLineType_109'
56811       ,p_level    => C_LEVEL_PROCEDURE
56812       ,p_module   => l_log_module);
56813 END IF;
56814 --
56815 EXCEPTION
56816   WHEN xla_exceptions_pkg.application_exception THEN
56817       RAISE;
56818   WHEN OTHERS THEN
56819        xla_exceptions_pkg.raise_message
56820            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_109');
56821 END AcctLineType_109;
56822 --
56823 
56824 ---------------------------------------
56825 --
56826 -- PRIVATE FUNCTION
56827 --         AcctLineType_110
56828 --
56829 ---------------------------------------
56830 PROCEDURE AcctLineType_110 (
56831   p_application_id        IN NUMBER
56832  ,p_event_id              IN NUMBER
56833  ,p_calculate_acctd_flag  IN VARCHAR2
56834  ,p_calculate_g_l_flag    IN VARCHAR2
56835  ,p_actual_flag           IN OUT VARCHAR2
56836  ,p_balance_type_code     OUT VARCHAR2
56837  ,p_gain_or_loss_ref      OUT VARCHAR2
56838  
56839 --Payment Distribution (Payment Rate) Ledger Amount
56840  , p_source_9            IN NUMBER
56841 --Invoice Distribution Type
56842  , p_source_20            IN VARCHAR2
56843  , p_source_20_meaning    IN VARCHAR2
56844 --When to Account for Payment Option
56845  , p_source_38            IN VARCHAR2
56846 --Payment Distribution Type
56847  , p_source_39            IN VARCHAR2
56848  , p_source_39_meaning    IN VARCHAR2
56849 --Accounting Reversal Indicator
56850  , p_source_40            IN VARCHAR2
56851 --Payment Distribution Amount
56852  , p_source_41            IN NUMBER
56853 --Business Flow Accounts Payable Application Identifier
56854  , p_source_42            IN NUMBER
56855 --Payment Distribution Identifier
56856  , p_source_47            IN NUMBER
56857 --Distribution Link Type
56858  , p_source_48            IN VARCHAR2
56859 --Payment Currency Code
56860  , p_source_49            IN VARCHAR2
56861 --Override Accounted Amount Indicator
56862  , p_source_53            IN VARCHAR2
56863  , p_source_53_meaning    IN VARCHAR2
56864 --Third Party Type
56865  , p_source_56            IN VARCHAR2
56869  , p_source_58            IN NUMBER
56866 --Payment Distribution Reversed Identifier
56867  , p_source_57            IN NUMBER
56868 --Invoice Distribution Tax Line Identifier
56870 --Invoice Distribution Summary Tax Line Identifier
56871  , p_source_59            IN NUMBER
56872 --Business Flow Invoice Distribution Type
56873  , p_source_62            IN VARCHAR2
56874 --Business Flow Invoice Entity Code
56875  , p_source_63            IN VARCHAR2
56876 --Business Flow Invoice Distribution Identifier
56877  , p_source_64            IN NUMBER
56878 --Business Flow Invoice Identifier
56879  , p_source_65            IN NUMBER
56880 --Purchasing Encumbrance Option
56881  , p_source_102            IN VARCHAR2
56882  , p_source_102_meaning    IN VARCHAR2
56883 --Invoice Encumbered Option
56884  , p_source_104            IN VARCHAR2
56885  , p_source_104_meaning    IN VARCHAR2
56886 )
56887 IS
56888 
56889 l_component_type              VARCHAR2(80);
56890 l_component_code              VARCHAR2(30);
56891 l_component_type_code         VARCHAR2(1);
56892 l_component_appl_id           INTEGER;
56893 l_amb_context_code            VARCHAR2(30);
56894 l_entity_code                 VARCHAR2(30);
56895 l_event_class_code            VARCHAR2(30);
56896 l_ae_header_id                NUMBER;
56897 l_event_type_code             VARCHAR2(30);
56898 l_line_definition_code        VARCHAR2(30);
56899 l_line_definition_owner_code  VARCHAR2(1);
56900 --
56901 -- adr variables
56902 l_segment                     VARCHAR2(30);
56903 l_ccid                        NUMBER;
56904 l_adr_transaction_coa_id      NUMBER;
56905 l_adr_accounting_coa_id       NUMBER;
56906 l_adr_flexfield_segment_code  VARCHAR2(30);
56907 l_adr_flex_value_set_id       NUMBER;
56908 l_adr_value_type_code         VARCHAR2(30);
56909 l_adr_value_combination_id    NUMBER;
56910 l_adr_value_segment_code      VARCHAR2(30);
56911 
56912 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56913 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56914 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56915 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56916 
56917 -- 4262811 Variables ------------------------------------------------------------------------------------------
56918 l_entered_amt_idx             NUMBER;
56919 l_accted_amt_idx              NUMBER;
56920 l_acc_rev_flag                VARCHAR2(1);
56921 l_accrual_line_num            NUMBER;
56922 l_tmp_amt                     NUMBER;
56923 l_acc_rev_natural_side_code   VARCHAR2(1);
56924 
56925 l_num_entries                 NUMBER;
56926 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56927 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56928 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56929 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56930 l_recog_line_1                NUMBER;
56931 l_recog_line_2                NUMBER;
56932 
56933 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56934 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56935 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56936 
56937 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56938 
56939 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56940 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56941 
56942 ---------------------------------------------------------------------------------------------------------------
56943 
56944 
56945 --
56946 -- bulk performance
56947 --
56948 l_balance_type_code           VARCHAR2(1);
56949 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56950 l_log_module                  VARCHAR2(240);
56951 
56952 --
56953 -- Upgrade strategy
56954 --
56955 l_actual_upg_option           VARCHAR2(1);
56956 l_enc_upg_option           VARCHAR2(1);
56957 
56958 --
56959 BEGIN
56960 --
56961 IF g_log_enabled THEN
56962       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
56963 END IF;
56964 --
56965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56966 
56967       trace
56968          (p_msg      => 'BEGIN of AcctLineType_110'
56969          ,p_level    => C_LEVEL_PROCEDURE
56970          ,p_module   => l_log_module);
56971 
56972 END IF;
56973 --
56974 l_component_type             := 'AMB_JLT';
56975 l_component_code             := 'AP_INV_PRICE_VAR_CLR_ENC';
56976 l_component_type_code        := 'S';
56977 l_component_appl_id          :=  200;
56978 l_amb_context_code           := 'DEFAULT';
56979 l_entity_code                := 'AP_PAYMENTS';
56980 l_event_class_code           := 'RECONCILED PAYMENTS';
56981 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
56982 l_line_definition_owner_code := 'S';
56983 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
56984 --
56985 l_balance_type_code          := 'E';
56986 l_segment                     := NULL;
56987 l_ccid                        := NULL;
56988 l_adr_transaction_coa_id      := NULL;
56989 l_adr_accounting_coa_id       := NULL;
56990 l_adr_flexfield_segment_code  := NULL;
56991 l_adr_flex_value_set_id       := NULL;
56992 l_adr_value_type_code         := NULL;
56993 l_adr_value_combination_id    := NULL;
56994 l_adr_value_segment_code      := NULL;
56995 
56999 l_budgetary_control_flag     := 'N';
56996 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
56997 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
56998 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57000 
57001 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57002 l_bflow_applied_to_amt       := NULL; -- 5132302
57003 l_entered_amt_idx            := NULL;          -- 4262811
57004 l_accted_amt_idx             := NULL;          -- 4262811
57005 l_acc_rev_flag               := NULL;          -- 4262811
57006 l_accrual_line_num           := NULL;          -- 4262811
57007 l_tmp_amt                    := NULL;          -- 4262811
57008 --
57009  
57010 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57011     l_balance_type_code <> 'B' THEN
57012 IF NVL(p_source_38,'
57013 ') =  'CLEAR_CLEAR' AND 
57014 NVL(p_source_20,'
57015 ') =  'IPV' AND 
57016 (NVL(p_source_39,'
57017 ') =  'CASH' OR 
57018 NVL(p_source_39,'
57019 ') =  'DISCOUNT') AND 
57020 NVL(p_source_102,'
57021 ') =  'Y' AND 
57022 NVL(p_source_104,'
57023 ') =  'Y'
57024  THEN 
57025 
57026    --
57027    XLA_AE_LINES_PKG.SetNewLine;
57028 
57029    p_balance_type_code          := l_balance_type_code;
57030    -- set the flag so later we will know whether the gain loss line needs to be created
57031    
57032    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57033      p_actual_flag :='A';
57034    END IF;
57035 
57036    --
57037    -- bulk performance
57038    --
57039    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57040                                       p_header_num   => 0); -- 4262811
57041    --
57042    -- set accounting line options
57043    --
57044    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57045            p_natural_side_code          => 'C'
57046          , p_gain_or_loss_flag          => 'N'
57047          , p_gl_transfer_mode_code      => 'S'
57048          , p_acct_entry_type_code       => 'E'
57049          , p_switch_side_flag           => 'Y'
57050          , p_merge_duplicate_code       => 'A'
57051          );
57052    --
57053    l_acc_rev_natural_side_code := 'D';  -- 4262811
57054    -- 
57055    --
57056    -- set accounting line type info
57057    --
57058    xla_ae_lines_pkg.SetAcctLineType
57059       (p_component_type             => l_component_type
57060       ,p_event_type_code            => l_event_type_code
57061       ,p_line_definition_owner_code => l_line_definition_owner_code
57062       ,p_line_definition_code       => l_line_definition_code
57063       ,p_accounting_line_code       => l_component_code
57064       ,p_accounting_line_type_code  => l_component_type_code
57065       ,p_accounting_line_appl_id    => l_component_appl_id
57066       ,p_amb_context_code           => l_amb_context_code
57067       ,p_entity_code                => l_entity_code
57068       ,p_event_class_code           => l_event_class_code);
57069    --
57070    -- set accounting class
57071    --
57072    xla_ae_lines_pkg.SetAcctClass(
57073            p_accounting_class_code  => 'IPV'
57074          , p_ae_header_id           => l_ae_header_id
57075          );
57076 
57077    --
57078    -- set rounding class
57079    --
57080    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57081                       'IPV';
57082 
57083    --
57084    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57085    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57086    --
57087    -- bulk performance
57088    --
57089    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57090 
57091    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57092       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57093 
57094    -- 4955764
57095    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57096       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57097 
57098    -- 4458381 Public Sector Enh
57099    
57100    --
57101    -- set accounting attributes for the line type
57102    --
57103    l_entered_amt_idx := 10;
57104    l_accted_amt_idx  := 12;
57105    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
57106    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57107    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
57108    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
57109    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
57110    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
57111    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
57112    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57113    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
57114    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
57115    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
57116    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
57117    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
57118    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57119    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
57123    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
57120    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
57121    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
57122    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
57124    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
57125    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
57126    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
57127    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
57128    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
57129    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
57130    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
57131    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
57132    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
57133    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
57134    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
57135    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
57136    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
57137    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
57138    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
57139    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
57140    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
57141    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
57142    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
57143    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
57144 
57145    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57146    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57147 
57148    ---------------------------------------------------------------------------------------------------------------
57149    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57150    ---------------------------------------------------------------------------------------------------------------
57151    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57152 
57153    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57154    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57155 
57156    IF xla_accounting_cache_pkg.GetValueChar
57157          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57158          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57159    AND l_bflow_method_code = 'PRIOR_ENTRY'
57160 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57161    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57162          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57163        )
57164    THEN
57165          xla_ae_lines_pkg.BflowUpgEntry
57166            (p_business_method_code    => l_bflow_method_code
57167            ,p_business_class_code     => l_bflow_class_code
57168            ,p_balance_type            => l_balance_type_code);
57169    ELSE
57170       NULL;
57171 XLA_AE_LINES_PKG.business_flow_validation(
57172                                 p_business_method_code     => l_bflow_method_code
57173                                ,p_business_class_code      => l_bflow_class_code
57174                                ,p_inherit_description_flag => l_inherit_desc_flag);
57175    END IF;
57176 
57177    --
57178    -- call analytical criteria
57179    --
57180    -- Inherited Analytical Criteria for business flow method of Prior Entry.
57181    --
57182    -- call description
57183    --
57184    -- No description or it is inherited.
57185    --
57186    -- call ADRs
57187    -- Bug 4922099
57188    --
57189    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57190         (NVL(l_actual_upg_option, 'N') = 'O') OR
57191         (NVL(l_enc_upg_option, 'N') = 'O')
57192       )
57193    THEN
57194    NULL;
57195    --
57196    --
57197    
57198    --
57199    --
57200    END IF;
57201    --
57202    -- Bug 4922099
57203    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57204           (NVL(l_enc_upg_option, 'N') = 'O')
57205         ) AND
57206         (l_bflow_method_code = 'PRIOR_ENTRY')
57207       )
57208    THEN
57209       IF
57210       --
57211       1 = 1
57212       --
57213       THEN
57214       xla_accounting_err_pkg.build_message
57215                                     (p_appli_s_name            => 'XLA'
57216                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57217                                     ,p_token_1                 => 'LINE_NUMBER'
57218                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57219                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57220                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57221                                                                              l_component_type
57222                                                                             ,l_component_code
57223                                                                             ,l_component_type_code
57224                                                                             ,l_component_appl_id
57225                                                                             ,l_amb_context_code
57229                                     ,p_token_3                 => 'OWNER'
57226                                                                             ,l_entity_code
57227                                                                             ,l_event_class_code
57228                                                                            )
57230                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57231                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57232                                                                           ,p_lookup_code    => l_component_type_code
57233                                                                          )
57234                                     ,p_token_4                 => 'PRODUCT_NAME'
57235                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57236                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57237                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57238                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57239                                     ,p_ae_header_id            =>  NULL
57240                                        );
57241 
57242         IF (C_LEVEL_ERROR>= g_log_level) THEN
57243                  trace
57244                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57245                       ,p_level    => C_LEVEL_ERROR
57246                       ,p_module   => l_log_module);
57247         END IF;
57248       END IF;
57249    END IF;
57250    --
57251    --
57252    ------------------------------------------------------------------------------------------------
57253    -- 4219869 Business Flow
57254    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57255    -- Prior Entry.  Currently, the following code is always generated.
57256    ------------------------------------------------------------------------------------------------
57257    -- No ValidateCurrentLine for business flow method of Prior Entry
57258 
57259    ------------------------------------------------------------------------------------
57260    -- 4219869 Business Flow
57261    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57262    ------------------------------------------------------------------------------------
57263    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57264 
57265    ----------------------------------------------------------------------------------
57266    -- 4219869 Business Flow
57267    -- Update journal entry status -- Need to generate this within IF <condition>
57268    ----------------------------------------------------------------------------------
57269    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57270          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57271          ,p_balance_type_code => l_balance_type_code
57272          );
57273 
57274    -------------------------------------------------------------------------------------------
57275    -- 4262811 - Generate the Accrual Reversal lines
57276    -------------------------------------------------------------------------------------------
57277    BEGIN
57278       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57279                               (g_array_event(p_event_id).array_value_num('header_index'));
57280       IF l_acc_rev_flag IS NULL THEN
57281          l_acc_rev_flag := 'N';
57282       END IF;
57283    EXCEPTION
57284       WHEN OTHERS THEN
57285          l_acc_rev_flag := 'N';
57286    END;
57287    --
57288    IF (l_acc_rev_flag = 'Y') THEN
57289 
57290        -- 4645092  ------------------------------------------------------------------------------
57291        -- To allow MPA report to determine if it should generate report process
57292        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57293        ------------------------------------------------------------------------------------------
57294 
57295        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57296        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57297    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57298    -- call ADRs
57299    -- Bug 4922099
57300    --
57301    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57302         (NVL(l_actual_upg_option, 'N') = 'O') OR
57303         (NVL(l_enc_upg_option, 'N') = 'O')
57304       )
57305    THEN
57306    NULL;
57307    --
57308    --
57309    
57310    --
57311    --
57312    END IF;
57313 
57314        --
57315        -- Update the line information that should be overwritten
57316        --
57317        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57318                                          p_header_num   => 1);
57319        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57320 
57321        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57322 
57323        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57324           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57325        END IF;
57326 
57327       --
57331           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57328       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57329       --
57330       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57332       ELSE
57333           ---------------------------------------------------------------------------------------------------
57334           -- 4262811a Switch Sign
57335           ---------------------------------------------------------------------------------------------------
57336           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57337           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57338                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57339           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57340                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57341           -- 5132302
57342           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57343                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57344 
57345       END IF;
57346 
57347       -- 4955764
57348       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57349       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57350 
57351 
57352       XLA_AE_LINES_PKG.ValidateCurrentLine;
57353       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57354 
57355       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57356                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57357                ,p_balance_type_code => l_balance_type_code);
57358 
57359    END IF;
57360 
57361    -----------------------------------------------------------------------------------------
57362    -- 4262811 Multiperiod Accounting
57363    -----------------------------------------------------------------------------------------
57364      -- No MPA option is assigned.
57365 
57366 
57367 END IF;
57368 END IF;
57369 --
57370 
57371 --
57372 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57373    trace
57374       (p_msg      => 'END of AcctLineType_110'
57375       ,p_level    => C_LEVEL_PROCEDURE
57376       ,p_module   => l_log_module);
57377 END IF;
57378 --
57379 EXCEPTION
57380   WHEN xla_exceptions_pkg.application_exception THEN
57381       RAISE;
57382   WHEN OTHERS THEN
57383        xla_exceptions_pkg.raise_message
57384            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_110');
57385 END AcctLineType_110;
57386 --
57387 
57388 ---------------------------------------
57389 --
57390 -- PRIVATE FUNCTION
57391 --         AcctLineType_111
57392 --
57393 ---------------------------------------
57394 PROCEDURE AcctLineType_111 (
57395   p_application_id        IN NUMBER
57396  ,p_event_id              IN NUMBER
57397  ,p_calculate_acctd_flag  IN VARCHAR2
57398  ,p_calculate_g_l_flag    IN VARCHAR2
57399  ,p_actual_flag           IN OUT VARCHAR2
57400  ,p_balance_type_code     OUT VARCHAR2
57401  ,p_gain_or_loss_ref      OUT VARCHAR2
57402  
57403 --Payment Distribution (Payment Rate) Ledger Amount
57404  , p_source_9            IN NUMBER
57405 --Invoice Distribution Account
57406  , p_source_17            IN NUMBER
57407 --Invoice Distribution Type
57408  , p_source_20            IN VARCHAR2
57409  , p_source_20_meaning    IN VARCHAR2
57410 --When to Account for Payment Option
57411  , p_source_38            IN VARCHAR2
57412 --Payment Distribution Type
57413  , p_source_39            IN VARCHAR2
57414  , p_source_39_meaning    IN VARCHAR2
57415 --Accounting Reversal Indicator
57416  , p_source_40            IN VARCHAR2
57417 --Payment Distribution Amount
57418  , p_source_41            IN NUMBER
57419 --Business Flow Accounts Payable Application Identifier
57420  , p_source_42            IN NUMBER
57421 --Payment Distribution Identifier
57422  , p_source_47            IN NUMBER
57423 --Distribution Link Type
57424  , p_source_48            IN VARCHAR2
57425 --Payment Currency Code
57426  , p_source_49            IN VARCHAR2
57427 --Override Accounted Amount Indicator
57428  , p_source_53            IN VARCHAR2
57429  , p_source_53_meaning    IN VARCHAR2
57430 --Payment Supplier Identifier
57431  , p_source_54            IN NUMBER
57432 --Payment Supplier Site Identifier
57433  , p_source_55            IN NUMBER
57434 --Third Party Type
57435  , p_source_56            IN VARCHAR2
57436 --Payment Distribution Reversed Identifier
57437  , p_source_57            IN NUMBER
57438 --Invoice Distribution Tax Line Identifier
57439  , p_source_58            IN NUMBER
57440 --Invoice Distribution Summary Tax Line Identifier
57441  , p_source_59            IN NUMBER
57442 --Payment Type
57443  , p_source_60            IN VARCHAR2
57444  , p_source_60_meaning    IN VARCHAR2
57445 --Invoice Distribution Amount of the Payment Distribution
57446  , p_source_61            IN NUMBER
57447 --Business Flow Invoice Distribution Type
57448  , p_source_62            IN VARCHAR2
57449 --Business Flow Invoice Entity Code
57453 --Business Flow Invoice Identifier
57450  , p_source_63            IN VARCHAR2
57451 --Business Flow Invoice Distribution Identifier
57452  , p_source_64            IN NUMBER
57454  , p_source_65            IN NUMBER
57455 --Invoice Distribution Tax Distribution Identifier from Tax
57456  , p_source_66            IN NUMBER
57457 --Accrue on Receipt Option
57458  , p_source_100            IN VARCHAR2
57459  , p_source_100_meaning    IN VARCHAR2
57460 --Payment Exchange Date
57461  , p_source_114            IN DATE
57462 --Payment Exchange Rate
57463  , p_source_115            IN NUMBER
57464 --Payment Exchange Rate Type
57465  , p_source_116            IN VARCHAR2
57466 )
57467 IS
57468 
57469 l_component_type              VARCHAR2(80);
57470 l_component_code              VARCHAR2(30);
57471 l_component_type_code         VARCHAR2(1);
57472 l_component_appl_id           INTEGER;
57473 l_amb_context_code            VARCHAR2(30);
57474 l_entity_code                 VARCHAR2(30);
57475 l_event_class_code            VARCHAR2(30);
57476 l_ae_header_id                NUMBER;
57477 l_event_type_code             VARCHAR2(30);
57478 l_line_definition_code        VARCHAR2(30);
57479 l_line_definition_owner_code  VARCHAR2(1);
57480 --
57481 -- adr variables
57482 l_segment                     VARCHAR2(30);
57483 l_ccid                        NUMBER;
57484 l_adr_transaction_coa_id      NUMBER;
57485 l_adr_accounting_coa_id       NUMBER;
57486 l_adr_flexfield_segment_code  VARCHAR2(30);
57487 l_adr_flex_value_set_id       NUMBER;
57488 l_adr_value_type_code         VARCHAR2(30);
57489 l_adr_value_combination_id    NUMBER;
57490 l_adr_value_segment_code      VARCHAR2(30);
57491 
57492 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
57493 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
57494 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
57495 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
57496 
57497 -- 4262811 Variables ------------------------------------------------------------------------------------------
57498 l_entered_amt_idx             NUMBER;
57499 l_accted_amt_idx              NUMBER;
57500 l_acc_rev_flag                VARCHAR2(1);
57501 l_accrual_line_num            NUMBER;
57502 l_tmp_amt                     NUMBER;
57503 l_acc_rev_natural_side_code   VARCHAR2(1);
57504 
57505 l_num_entries                 NUMBER;
57506 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
57507 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
57508 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
57509 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
57510 l_recog_line_1                NUMBER;
57511 l_recog_line_2                NUMBER;
57512 
57513 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
57514 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
57515 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
57516 
57517 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57518 
57519 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
57520 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
57521 
57522 ---------------------------------------------------------------------------------------------------------------
57523 
57524 
57525 --
57526 -- bulk performance
57527 --
57528 l_balance_type_code           VARCHAR2(1);
57529 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
57530 l_log_module                  VARCHAR2(240);
57531 
57532 --
57533 -- Upgrade strategy
57534 --
57535 l_actual_upg_option           VARCHAR2(1);
57536 l_enc_upg_option           VARCHAR2(1);
57537 
57538 --
57539 BEGIN
57540 --
57541 IF g_log_enabled THEN
57542       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
57543 END IF;
57544 --
57545 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57546 
57547       trace
57548          (p_msg      => 'BEGIN of AcctLineType_111'
57549          ,p_level    => C_LEVEL_PROCEDURE
57550          ,p_module   => l_log_module);
57551 
57552 END IF;
57553 --
57554 l_component_type             := 'AMB_JLT';
57555 l_component_code             := 'AP_INV_PRICE_VAR_PMT';
57556 l_component_type_code        := 'S';
57557 l_component_appl_id          :=  200;
57558 l_amb_context_code           := 'DEFAULT';
57559 l_entity_code                := 'AP_PAYMENTS';
57560 l_event_class_code           := 'PAYMENTS';
57561 l_event_type_code            := 'PAYMENTS_ALL';
57562 l_line_definition_owner_code := 'S';
57563 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
57564 --
57565 l_balance_type_code          := 'A';
57566 l_segment                     := NULL;
57567 l_ccid                        := NULL;
57568 l_adr_transaction_coa_id      := NULL;
57569 l_adr_accounting_coa_id       := NULL;
57570 l_adr_flexfield_segment_code  := NULL;
57571 l_adr_flex_value_set_id       := NULL;
57572 l_adr_value_type_code         := NULL;
57573 l_adr_value_combination_id    := NULL;
57574 l_adr_value_segment_code      := NULL;
57575 
57576 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
57577 l_bflow_class_code           := '';    -- 4219869 Business Flow
57578 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57579 l_budgetary_control_flag     := 'N';
57583 l_entered_amt_idx            := NULL;          -- 4262811
57580 
57581 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57582 l_bflow_applied_to_amt       := NULL; -- 5132302
57584 l_accted_amt_idx             := NULL;          -- 4262811
57585 l_acc_rev_flag               := NULL;          -- 4262811
57586 l_accrual_line_num           := NULL;          -- 4262811
57587 l_tmp_amt                    := NULL;          -- 4262811
57588 --
57589  
57590 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57591     l_balance_type_code <> 'B' THEN
57592 IF NVL(p_source_38,'
57593 ') <>  'CLEAR_CLEAR' AND 
57594 NVL(p_source_20,'
57595 ') =  'IPV' AND 
57596 NVL(p_source_100,'
57597 ') =  'Y' AND 
57598 (NVL(p_source_39,'
57599 ') =  'CASH' OR 
57600 NVL(p_source_39,'
57601 ') =  'AWT' OR 
57602 NVL(p_source_39,'
57603 ') =  'DISCOUNT') AND 
57604 NVL(p_source_60,'
57605 ') <>  'R'
57606  THEN 
57607 
57608    --
57609    XLA_AE_LINES_PKG.SetNewLine;
57610 
57611    p_balance_type_code          := l_balance_type_code;
57612    -- set the flag so later we will know whether the gain loss line needs to be created
57613    
57614    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57615      p_actual_flag :='A';
57616    END IF;
57617 
57618    --
57619    -- bulk performance
57620    --
57621    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57622                                       p_header_num   => 0); -- 4262811
57623    --
57624    -- set accounting line options
57625    --
57626    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57627            p_natural_side_code          => 'D'
57628          , p_gain_or_loss_flag          => 'N'
57629          , p_gl_transfer_mode_code      => 'S'
57630          , p_acct_entry_type_code       => 'A'
57631          , p_switch_side_flag           => 'Y'
57632          , p_merge_duplicate_code       => 'A'
57633          );
57634    --
57635    l_acc_rev_natural_side_code := 'C';  -- 4262811
57636    -- 
57637    --
57638    -- set accounting line type info
57639    --
57640    xla_ae_lines_pkg.SetAcctLineType
57641       (p_component_type             => l_component_type
57642       ,p_event_type_code            => l_event_type_code
57643       ,p_line_definition_owner_code => l_line_definition_owner_code
57644       ,p_line_definition_code       => l_line_definition_code
57645       ,p_accounting_line_code       => l_component_code
57646       ,p_accounting_line_type_code  => l_component_type_code
57647       ,p_accounting_line_appl_id    => l_component_appl_id
57648       ,p_amb_context_code           => l_amb_context_code
57649       ,p_entity_code                => l_entity_code
57650       ,p_event_class_code           => l_event_class_code);
57651    --
57652    -- set accounting class
57653    --
57654    xla_ae_lines_pkg.SetAcctClass(
57655            p_accounting_class_code  => 'IPV'
57656          , p_ae_header_id           => l_ae_header_id
57657          );
57658 
57659    --
57660    -- set rounding class
57661    --
57662    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57663                       'IPV';
57664 
57665    --
57666    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57667    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57668    --
57669    -- bulk performance
57670    --
57671    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57672 
57673    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57674       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57675 
57676    -- 4955764
57677    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57678       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57679 
57680    -- 4458381 Public Sector Enh
57681    
57682    --
57683    -- set accounting attributes for the line type
57684    --
57685    l_entered_amt_idx := 10;
57686    l_accted_amt_idx  := 15;
57687    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
57688    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57689    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
57690    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
57691    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
57692    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
57693    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
57694    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57695    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
57696    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
57697    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
57698    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
57699    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
57700    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57701    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
57702    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
57703    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
57704    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
57708    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
57705    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
57706    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
57707    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
57709    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
57710    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
57711    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
57712    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
57713    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
57714    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
57715    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
57716    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
57717    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
57718    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
57719    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
57720    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
57721    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
57722    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
57723    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
57724    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
57725    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
57726    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
57727    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
57728    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
57729    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
57730    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
57731    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
57732    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
57733    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
57734    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
57735    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
57736 
57737    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57738    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57739 
57740    ---------------------------------------------------------------------------------------------------------------
57741    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57742    ---------------------------------------------------------------------------------------------------------------
57743    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57744 
57745    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57746    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57747 
57748    IF xla_accounting_cache_pkg.GetValueChar
57749          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57750          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57751    AND l_bflow_method_code = 'PRIOR_ENTRY'
57752 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57753    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57754          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57755        )
57756    THEN
57757          xla_ae_lines_pkg.BflowUpgEntry
57758            (p_business_method_code    => l_bflow_method_code
57759            ,p_business_class_code     => l_bflow_class_code
57760            ,p_balance_type            => l_balance_type_code);
57761    ELSE
57762       NULL;
57763 -- No business flow processing for business flow method of NONE.
57764    END IF;
57765 
57766    --
57767    -- call analytical criteria
57768    --
57769    
57770    --
57771    -- call description
57772    --
57773    -- No description or it is inherited.
57774    --
57775    -- call ADRs
57776    -- Bug 4922099
57777    --
57778    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57779         (NVL(l_actual_upg_option, 'N') = 'O') OR
57780         (NVL(l_enc_upg_option, 'N') = 'O')
57781       )
57782    THEN
57783    NULL;
57784    --
57785    --
57786    
57787   l_ccid := AcctDerRule_26(
57788            p_application_id           => p_application_id
57789          , p_ae_header_id             => l_ae_header_id 
57790 , p_source_17 => p_source_17
57791          , x_transaction_coa_id       => l_adr_transaction_coa_id
57792          , x_accounting_coa_id        => l_adr_accounting_coa_id
57793          , x_value_type_code          => l_adr_value_type_code
57794          , p_side                     => 'NA'
57795    );
57796 
57797    xla_ae_lines_pkg.set_ccid(
57798     p_code_combination_id          => l_ccid
57799   , p_value_type_code              => l_adr_value_type_code
57800   , p_transaction_coa_id           => l_adr_transaction_coa_id
57801   , p_accounting_coa_id            => l_adr_accounting_coa_id
57802   , p_adr_code                     => 'AP_INVOICE_DIST'
57803   , p_adr_type_code                => 'S'
57804   , p_component_type               => l_component_type
57805   , p_component_code               => l_component_code
57806   , p_component_type_code          => l_component_type_code
57807   , p_component_appl_id            => l_component_appl_id
57808   , p_amb_context_code             => l_amb_context_code
57809   , p_side                         => 'NA'
57810   );
57811 
57812 
57813    --
57814    --
57818    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57815    END IF;
57816    --
57817    -- Bug 4922099
57819           (NVL(l_enc_upg_option, 'N') = 'O')
57820         ) AND
57821         (l_bflow_method_code = 'PRIOR_ENTRY')
57822       )
57823    THEN
57824       IF
57825       --
57826       1 = 2
57827       --
57828       THEN
57829       xla_accounting_err_pkg.build_message
57830                                     (p_appli_s_name            => 'XLA'
57831                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57832                                     ,p_token_1                 => 'LINE_NUMBER'
57833                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57834                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57835                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57836                                                                              l_component_type
57837                                                                             ,l_component_code
57838                                                                             ,l_component_type_code
57839                                                                             ,l_component_appl_id
57840                                                                             ,l_amb_context_code
57841                                                                             ,l_entity_code
57842                                                                             ,l_event_class_code
57843                                                                            )
57844                                     ,p_token_3                 => 'OWNER'
57845                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57846                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57847                                                                           ,p_lookup_code    => l_component_type_code
57848                                                                          )
57849                                     ,p_token_4                 => 'PRODUCT_NAME'
57850                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57851                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57852                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57853                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57854                                     ,p_ae_header_id            =>  NULL
57855                                        );
57856 
57857         IF (C_LEVEL_ERROR>= g_log_level) THEN
57858                  trace
57859                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57860                       ,p_level    => C_LEVEL_ERROR
57861                       ,p_module   => l_log_module);
57862         END IF;
57863       END IF;
57864    END IF;
57865    --
57866    --
57867    ------------------------------------------------------------------------------------------------
57868    -- 4219869 Business Flow
57869    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57870    -- Prior Entry.  Currently, the following code is always generated.
57871    ------------------------------------------------------------------------------------------------
57872    XLA_AE_LINES_PKG.ValidateCurrentLine;
57873 
57874    ------------------------------------------------------------------------------------
57875    -- 4219869 Business Flow
57876    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57877    ------------------------------------------------------------------------------------
57878    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57879 
57880    ----------------------------------------------------------------------------------
57881    -- 4219869 Business Flow
57882    -- Update journal entry status -- Need to generate this within IF <condition>
57883    ----------------------------------------------------------------------------------
57884    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57885          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57886          ,p_balance_type_code => l_balance_type_code
57887          );
57888 
57889    -------------------------------------------------------------------------------------------
57890    -- 4262811 - Generate the Accrual Reversal lines
57891    -------------------------------------------------------------------------------------------
57892    BEGIN
57893       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57894                               (g_array_event(p_event_id).array_value_num('header_index'));
57895       IF l_acc_rev_flag IS NULL THEN
57896          l_acc_rev_flag := 'N';
57897       END IF;
57898    EXCEPTION
57899       WHEN OTHERS THEN
57900          l_acc_rev_flag := 'N';
57901    END;
57902    --
57903    IF (l_acc_rev_flag = 'Y') THEN
57904 
57905        -- 4645092  ------------------------------------------------------------------------------
57906        -- To allow MPA report to determine if it should generate report process
57907        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57911        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57908        ------------------------------------------------------------------------------------------
57909 
57910        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57912    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57913    -- call ADRs
57914    -- Bug 4922099
57915    --
57916    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57917         (NVL(l_actual_upg_option, 'N') = 'O') OR
57918         (NVL(l_enc_upg_option, 'N') = 'O')
57919       )
57920    THEN
57921    NULL;
57922    --
57923    --
57924    
57925   l_ccid := AcctDerRule_26(
57926            p_application_id           => p_application_id
57927          , p_ae_header_id             => l_ae_header_id 
57928 , p_source_17 => p_source_17
57929          , x_transaction_coa_id       => l_adr_transaction_coa_id
57930          , x_accounting_coa_id        => l_adr_accounting_coa_id
57931          , x_value_type_code          => l_adr_value_type_code
57932          , p_side                     => 'NA'
57933    );
57934 
57935    xla_ae_lines_pkg.set_ccid(
57936     p_code_combination_id          => l_ccid
57937   , p_value_type_code              => l_adr_value_type_code
57938   , p_transaction_coa_id           => l_adr_transaction_coa_id
57939   , p_accounting_coa_id            => l_adr_accounting_coa_id
57940   , p_adr_code                     => 'AP_INVOICE_DIST'
57941   , p_adr_type_code                => 'S'
57942   , p_component_type               => l_component_type
57943   , p_component_code               => l_component_code
57944   , p_component_type_code          => l_component_type_code
57945   , p_component_appl_id            => l_component_appl_id
57946   , p_amb_context_code             => l_amb_context_code
57947   , p_side                         => 'NA'
57948   );
57949 
57950 
57951    --
57952    --
57953    END IF;
57954 
57955        --
57956        -- Update the line information that should be overwritten
57957        --
57958        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57959                                          p_header_num   => 1);
57960        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57961 
57962        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57963 
57964        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57965           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57966        END IF;
57967 
57968       --
57969       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57970       --
57971       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57972           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57973       ELSE
57974           ---------------------------------------------------------------------------------------------------
57975           -- 4262811a Switch Sign
57976           ---------------------------------------------------------------------------------------------------
57977           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57978           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57979                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57980           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57981                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57982           -- 5132302
57983           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57984                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57985 
57986       END IF;
57987 
57988       -- 4955764
57989       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57990       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57991 
57992 
57993       XLA_AE_LINES_PKG.ValidateCurrentLine;
57994       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57995 
57996       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57997                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57998                ,p_balance_type_code => l_balance_type_code);
57999 
58000    END IF;
58001 
58002    -----------------------------------------------------------------------------------------
58003    -- 4262811 Multiperiod Accounting
58004    -----------------------------------------------------------------------------------------
58005      -- No MPA option is assigned.
58006 
58007 
58008 END IF;
58009 END IF;
58010 --
58011 
58012 --
58013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58014    trace
58015       (p_msg      => 'END of AcctLineType_111'
58016       ,p_level    => C_LEVEL_PROCEDURE
58017       ,p_module   => l_log_module);
58018 END IF;
58019 --
58020 EXCEPTION
58021   WHEN xla_exceptions_pkg.application_exception THEN
58022       RAISE;
58023   WHEN OTHERS THEN
58024        xla_exceptions_pkg.raise_message
58028 
58025            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_111');
58026 END AcctLineType_111;
58027 --
58029 ---------------------------------------
58030 --
58031 -- PRIVATE FUNCTION
58032 --         AcctLineType_112
58033 --
58034 ---------------------------------------
58035 PROCEDURE AcctLineType_112 (
58036   p_application_id        IN NUMBER
58037  ,p_event_id              IN NUMBER
58038  ,p_calculate_acctd_flag  IN VARCHAR2
58039  ,p_calculate_g_l_flag    IN VARCHAR2
58040  ,p_actual_flag           IN OUT VARCHAR2
58041  ,p_balance_type_code     OUT VARCHAR2
58042  ,p_gain_or_loss_ref      OUT VARCHAR2
58043  
58044 --Payment Distribution (Payment Rate) Ledger Amount
58045  , p_source_9            IN NUMBER
58046 --Invoice Distribution Type
58047  , p_source_20            IN VARCHAR2
58048  , p_source_20_meaning    IN VARCHAR2
58049 --When to Account for Payment Option
58050  , p_source_38            IN VARCHAR2
58051 --Payment Distribution Type
58052  , p_source_39            IN VARCHAR2
58053  , p_source_39_meaning    IN VARCHAR2
58054 --Accounting Reversal Indicator
58055  , p_source_40            IN VARCHAR2
58056 --Payment Distribution Amount
58057  , p_source_41            IN NUMBER
58058 --Business Flow Accounts Payable Application Identifier
58059  , p_source_42            IN NUMBER
58060 --Payment Distribution Identifier
58061  , p_source_47            IN NUMBER
58062 --Distribution Link Type
58063  , p_source_48            IN VARCHAR2
58064 --Payment Currency Code
58065  , p_source_49            IN VARCHAR2
58066 --Override Accounted Amount Indicator
58067  , p_source_53            IN VARCHAR2
58068  , p_source_53_meaning    IN VARCHAR2
58069 --Third Party Type
58070  , p_source_56            IN VARCHAR2
58071 --Payment Distribution Reversed Identifier
58072  , p_source_57            IN NUMBER
58073 --Invoice Distribution Tax Line Identifier
58074  , p_source_58            IN NUMBER
58075 --Invoice Distribution Summary Tax Line Identifier
58076  , p_source_59            IN NUMBER
58077 --Payment Type
58078  , p_source_60            IN VARCHAR2
58079  , p_source_60_meaning    IN VARCHAR2
58080 --Invoice Distribution Amount of the Payment Distribution
58081  , p_source_61            IN NUMBER
58082 --Business Flow Invoice Distribution Type
58083  , p_source_62            IN VARCHAR2
58084 --Business Flow Invoice Entity Code
58085  , p_source_63            IN VARCHAR2
58086 --Business Flow Invoice Distribution Identifier
58087  , p_source_64            IN NUMBER
58088 --Business Flow Invoice Identifier
58089  , p_source_65            IN NUMBER
58090 --Invoice Distribution Tax Distribution Identifier from Tax
58091  , p_source_66            IN NUMBER
58092 --Purchasing Encumbrance Option
58093  , p_source_102            IN VARCHAR2
58094  , p_source_102_meaning    IN VARCHAR2
58095 --Invoice Encumbered Option
58096  , p_source_104            IN VARCHAR2
58097  , p_source_104_meaning    IN VARCHAR2
58098 )
58099 IS
58100 
58101 l_component_type              VARCHAR2(80);
58102 l_component_code              VARCHAR2(30);
58103 l_component_type_code         VARCHAR2(1);
58104 l_component_appl_id           INTEGER;
58105 l_amb_context_code            VARCHAR2(30);
58106 l_entity_code                 VARCHAR2(30);
58107 l_event_class_code            VARCHAR2(30);
58108 l_ae_header_id                NUMBER;
58109 l_event_type_code             VARCHAR2(30);
58110 l_line_definition_code        VARCHAR2(30);
58111 l_line_definition_owner_code  VARCHAR2(1);
58112 --
58113 -- adr variables
58114 l_segment                     VARCHAR2(30);
58115 l_ccid                        NUMBER;
58116 l_adr_transaction_coa_id      NUMBER;
58117 l_adr_accounting_coa_id       NUMBER;
58118 l_adr_flexfield_segment_code  VARCHAR2(30);
58119 l_adr_flex_value_set_id       NUMBER;
58120 l_adr_value_type_code         VARCHAR2(30);
58121 l_adr_value_combination_id    NUMBER;
58122 l_adr_value_segment_code      VARCHAR2(30);
58123 
58124 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58125 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58126 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58127 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58128 
58129 -- 4262811 Variables ------------------------------------------------------------------------------------------
58130 l_entered_amt_idx             NUMBER;
58131 l_accted_amt_idx              NUMBER;
58132 l_acc_rev_flag                VARCHAR2(1);
58133 l_accrual_line_num            NUMBER;
58134 l_tmp_amt                     NUMBER;
58135 l_acc_rev_natural_side_code   VARCHAR2(1);
58136 
58137 l_num_entries                 NUMBER;
58138 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58139 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58140 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58141 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58142 l_recog_line_1                NUMBER;
58143 l_recog_line_2                NUMBER;
58144 
58145 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58146 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58147 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58148 
58152 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58149 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58150 
58151 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58153 
58154 ---------------------------------------------------------------------------------------------------------------
58155 
58156 
58157 --
58158 -- bulk performance
58159 --
58160 l_balance_type_code           VARCHAR2(1);
58161 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58162 l_log_module                  VARCHAR2(240);
58163 
58164 --
58165 -- Upgrade strategy
58166 --
58167 l_actual_upg_option           VARCHAR2(1);
58168 l_enc_upg_option           VARCHAR2(1);
58169 
58170 --
58171 BEGIN
58172 --
58173 IF g_log_enabled THEN
58174       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
58175 END IF;
58176 --
58177 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58178 
58179       trace
58180          (p_msg      => 'BEGIN of AcctLineType_112'
58181          ,p_level    => C_LEVEL_PROCEDURE
58182          ,p_module   => l_log_module);
58183 
58184 END IF;
58185 --
58186 l_component_type             := 'AMB_JLT';
58187 l_component_code             := 'AP_INV_PRICE_VAR_PMT_ENC';
58188 l_component_type_code        := 'S';
58189 l_component_appl_id          :=  200;
58190 l_amb_context_code           := 'DEFAULT';
58191 l_entity_code                := 'AP_PAYMENTS';
58192 l_event_class_code           := 'PAYMENTS';
58193 l_event_type_code            := 'PAYMENTS_ALL';
58194 l_line_definition_owner_code := 'S';
58195 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
58196 --
58197 l_balance_type_code          := 'E';
58198 l_segment                     := NULL;
58199 l_ccid                        := NULL;
58200 l_adr_transaction_coa_id      := NULL;
58201 l_adr_accounting_coa_id       := NULL;
58202 l_adr_flexfield_segment_code  := NULL;
58203 l_adr_flex_value_set_id       := NULL;
58204 l_adr_value_type_code         := NULL;
58205 l_adr_value_combination_id    := NULL;
58206 l_adr_value_segment_code      := NULL;
58207 
58208 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
58209 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
58210 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58211 l_budgetary_control_flag     := 'N';
58212 
58213 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
58214 l_bflow_applied_to_amt       := NULL; -- 5132302
58215 l_entered_amt_idx            := NULL;          -- 4262811
58216 l_accted_amt_idx             := NULL;          -- 4262811
58217 l_acc_rev_flag               := NULL;          -- 4262811
58218 l_accrual_line_num           := NULL;          -- 4262811
58219 l_tmp_amt                    := NULL;          -- 4262811
58220 --
58221  
58222 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58223     l_balance_type_code <> 'B' THEN
58224 IF NVL(p_source_38,'
58225 ') <>  'CLEAR_CLEAR' AND 
58226 NVL(p_source_20,'
58227 ') =  'IPV' AND 
58228 (NVL(p_source_39,'
58229 ') =  'CASH' OR 
58230 NVL(p_source_39,'
58231 ') =  'DISCOUNT') AND 
58232 NVL(p_source_60,'
58233 ') <>  'R' AND 
58234 NVL(p_source_102,'
58235 ') =  'Y' AND 
58236 NVL(p_source_104,'
58237 ') =  'Y'
58238  THEN 
58239 
58240    --
58241    XLA_AE_LINES_PKG.SetNewLine;
58242 
58243    p_balance_type_code          := l_balance_type_code;
58244    -- set the flag so later we will know whether the gain loss line needs to be created
58245    
58246    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58247      p_actual_flag :='A';
58248    END IF;
58249 
58250    --
58251    -- bulk performance
58252    --
58253    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58254                                       p_header_num   => 0); -- 4262811
58255    --
58256    -- set accounting line options
58257    --
58258    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58259            p_natural_side_code          => 'C'
58260          , p_gain_or_loss_flag          => 'N'
58261          , p_gl_transfer_mode_code      => 'S'
58262          , p_acct_entry_type_code       => 'E'
58263          , p_switch_side_flag           => 'Y'
58264          , p_merge_duplicate_code       => 'A'
58265          );
58266    --
58267    l_acc_rev_natural_side_code := 'D';  -- 4262811
58268    -- 
58269    --
58270    -- set accounting line type info
58271    --
58272    xla_ae_lines_pkg.SetAcctLineType
58273       (p_component_type             => l_component_type
58274       ,p_event_type_code            => l_event_type_code
58275       ,p_line_definition_owner_code => l_line_definition_owner_code
58276       ,p_line_definition_code       => l_line_definition_code
58277       ,p_accounting_line_code       => l_component_code
58278       ,p_accounting_line_type_code  => l_component_type_code
58279       ,p_accounting_line_appl_id    => l_component_appl_id
58280       ,p_amb_context_code           => l_amb_context_code
58281       ,p_entity_code                => l_entity_code
58282       ,p_event_class_code           => l_event_class_code);
58283    --
58284    -- set accounting class
58285    --
58286    xla_ae_lines_pkg.SetAcctClass(
58287            p_accounting_class_code  => 'IPV'
58288          , p_ae_header_id           => l_ae_header_id
58292    -- set rounding class
58289          );
58290 
58291    --
58293    --
58294    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58295                       'IPV';
58296 
58297    --
58298    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58299    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58300    --
58301    -- bulk performance
58302    --
58303    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58304 
58305    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58306       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58307 
58308    -- 4955764
58309    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58310       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58311 
58312    -- 4458381 Public Sector Enh
58313    
58314    --
58315    -- set accounting attributes for the line type
58316    --
58317    l_entered_amt_idx := 10;
58318    l_accted_amt_idx  := 12;
58319    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
58320    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58321    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
58322    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
58323    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
58324    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
58325    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
58326    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58327    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
58328    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
58329    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
58330    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
58331    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
58332    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58333    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
58334    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
58335    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
58336    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
58337    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
58338    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
58339    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
58340    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
58341    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
58342    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
58343    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
58344    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
58345    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
58346    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
58347    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
58348    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
58349    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
58350    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
58351    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
58352    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
58353    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
58354    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
58355    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
58356    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
58357    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
58358 
58359    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58360    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58361 
58362    ---------------------------------------------------------------------------------------------------------------
58363    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58364    ---------------------------------------------------------------------------------------------------------------
58365    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58366 
58367    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58368    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58369 
58370    IF xla_accounting_cache_pkg.GetValueChar
58371          (p_source_code         => 'LEDGER_CATEGORY_CODE'
58372          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58373    AND l_bflow_method_code = 'PRIOR_ENTRY'
58374 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58375    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58376          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58377        )
58378    THEN
58379          xla_ae_lines_pkg.BflowUpgEntry
58380            (p_business_method_code    => l_bflow_method_code
58381            ,p_business_class_code     => l_bflow_class_code
58382            ,p_balance_type            => l_balance_type_code);
58383    ELSE
58384       NULL;
58385 XLA_AE_LINES_PKG.business_flow_validation(
58389    END IF;
58386                                 p_business_method_code     => l_bflow_method_code
58387                                ,p_business_class_code      => l_bflow_class_code
58388                                ,p_inherit_description_flag => l_inherit_desc_flag);
58390 
58391    --
58392    -- call analytical criteria
58393    --
58394    -- Inherited Analytical Criteria for business flow method of Prior Entry.
58395    --
58396    -- call description
58397    --
58398    -- No description or it is inherited.
58399    --
58400    -- call ADRs
58401    -- Bug 4922099
58402    --
58403    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58404         (NVL(l_actual_upg_option, 'N') = 'O') OR
58405         (NVL(l_enc_upg_option, 'N') = 'O')
58406       )
58407    THEN
58408    NULL;
58409    --
58410    --
58411    
58412    --
58413    --
58414    END IF;
58415    --
58416    -- Bug 4922099
58417    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58418           (NVL(l_enc_upg_option, 'N') = 'O')
58419         ) AND
58420         (l_bflow_method_code = 'PRIOR_ENTRY')
58421       )
58422    THEN
58423       IF
58424       --
58425       1 = 1
58426       --
58427       THEN
58428       xla_accounting_err_pkg.build_message
58429                                     (p_appli_s_name            => 'XLA'
58430                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58431                                     ,p_token_1                 => 'LINE_NUMBER'
58432                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
58433                                     ,p_token_2                 => 'LINE_TYPE_NAME'
58434                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
58435                                                                              l_component_type
58436                                                                             ,l_component_code
58437                                                                             ,l_component_type_code
58438                                                                             ,l_component_appl_id
58439                                                                             ,l_amb_context_code
58440                                                                             ,l_entity_code
58441                                                                             ,l_event_class_code
58442                                                                            )
58443                                     ,p_token_3                 => 'OWNER'
58444                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58445                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58446                                                                           ,p_lookup_code    => l_component_type_code
58447                                                                          )
58448                                     ,p_token_4                 => 'PRODUCT_NAME'
58449                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58450                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58451                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58452                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58453                                     ,p_ae_header_id            =>  NULL
58454                                        );
58455 
58456         IF (C_LEVEL_ERROR>= g_log_level) THEN
58457                  trace
58458                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58459                       ,p_level    => C_LEVEL_ERROR
58460                       ,p_module   => l_log_module);
58461         END IF;
58462       END IF;
58463    END IF;
58464    --
58465    --
58466    ------------------------------------------------------------------------------------------------
58467    -- 4219869 Business Flow
58468    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58469    -- Prior Entry.  Currently, the following code is always generated.
58470    ------------------------------------------------------------------------------------------------
58471    -- No ValidateCurrentLine for business flow method of Prior Entry
58472 
58473    ------------------------------------------------------------------------------------
58474    -- 4219869 Business Flow
58475    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58476    ------------------------------------------------------------------------------------
58477    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58478 
58479    ----------------------------------------------------------------------------------
58480    -- 4219869 Business Flow
58481    -- Update journal entry status -- Need to generate this within IF <condition>
58482    ----------------------------------------------------------------------------------
58483    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58484          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58485          ,p_balance_type_code => l_balance_type_code
58486          );
58487 
58488    -------------------------------------------------------------------------------------------
58489    -- 4262811 - Generate the Accrual Reversal lines
58493                               (g_array_event(p_event_id).array_value_num('header_index'));
58490    -------------------------------------------------------------------------------------------
58491    BEGIN
58492       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58494       IF l_acc_rev_flag IS NULL THEN
58495          l_acc_rev_flag := 'N';
58496       END IF;
58497    EXCEPTION
58498       WHEN OTHERS THEN
58499          l_acc_rev_flag := 'N';
58500    END;
58501    --
58502    IF (l_acc_rev_flag = 'Y') THEN
58503 
58504        -- 4645092  ------------------------------------------------------------------------------
58505        -- To allow MPA report to determine if it should generate report process
58506        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58507        ------------------------------------------------------------------------------------------
58508 
58509        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58510        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58511    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58512    -- call ADRs
58513    -- Bug 4922099
58514    --
58515    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58516         (NVL(l_actual_upg_option, 'N') = 'O') OR
58517         (NVL(l_enc_upg_option, 'N') = 'O')
58518       )
58519    THEN
58520    NULL;
58521    --
58522    --
58523    
58524    --
58525    --
58526    END IF;
58527 
58528        --
58529        -- Update the line information that should be overwritten
58530        --
58531        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58532                                          p_header_num   => 1);
58533        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58534 
58535        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58536 
58537        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58538           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58539        END IF;
58540 
58541       --
58542       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58543       --
58544       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58545           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58546       ELSE
58547           ---------------------------------------------------------------------------------------------------
58548           -- 4262811a Switch Sign
58549           ---------------------------------------------------------------------------------------------------
58550           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58551           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58552                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58553           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58554                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58555           -- 5132302
58556           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58557                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58558 
58559       END IF;
58560 
58561       -- 4955764
58562       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58563       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58564 
58565 
58566       XLA_AE_LINES_PKG.ValidateCurrentLine;
58567       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58568 
58569       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58570                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58571                ,p_balance_type_code => l_balance_type_code);
58572 
58573    END IF;
58574 
58575    -----------------------------------------------------------------------------------------
58576    -- 4262811 Multiperiod Accounting
58577    -----------------------------------------------------------------------------------------
58578      -- No MPA option is assigned.
58579 
58580 
58581 END IF;
58582 END IF;
58583 --
58584 
58585 --
58586 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58587    trace
58588       (p_msg      => 'END of AcctLineType_112'
58589       ,p_level    => C_LEVEL_PROCEDURE
58590       ,p_module   => l_log_module);
58591 END IF;
58592 --
58593 EXCEPTION
58594   WHEN xla_exceptions_pkg.application_exception THEN
58595       RAISE;
58596   WHEN OTHERS THEN
58597        xla_exceptions_pkg.raise_message
58598            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_112');
58599 END AcctLineType_112;
58600 --
58601 
58602 ---------------------------------------
58603 --
58604 -- PRIVATE FUNCTION
58605 --         AcctLineType_113
58606 --
58607 ---------------------------------------
58608 PROCEDURE AcctLineType_113 (
58609   p_application_id        IN NUMBER
58610  ,p_event_id              IN NUMBER
58611  ,p_calculate_acctd_flag  IN VARCHAR2
58615  ,p_gain_or_loss_ref      OUT VARCHAR2
58612  ,p_calculate_g_l_flag    IN VARCHAR2
58613  ,p_actual_flag           IN OUT VARCHAR2
58614  ,p_balance_type_code     OUT VARCHAR2
58616  
58617 --Payment Distribution (Payment Rate) Ledger Amount
58618  , p_source_9            IN NUMBER
58619 --Invoice Distribution Account
58620  , p_source_17            IN NUMBER
58621 --Invoice Distribution Type
58622  , p_source_20            IN VARCHAR2
58623  , p_source_20_meaning    IN VARCHAR2
58624 --When to Account for Payment Option
58625  , p_source_38            IN VARCHAR2
58626 --Payment Distribution Type
58627  , p_source_39            IN VARCHAR2
58628  , p_source_39_meaning    IN VARCHAR2
58629 --Accounting Reversal Indicator
58630  , p_source_40            IN VARCHAR2
58631 --Payment Distribution Amount
58632  , p_source_41            IN NUMBER
58633 --Business Flow Accounts Payable Application Identifier
58634  , p_source_42            IN NUMBER
58635 --Payment Distribution Identifier
58636  , p_source_47            IN NUMBER
58637 --Distribution Link Type
58638  , p_source_48            IN VARCHAR2
58639 --Payment Currency Code
58640  , p_source_49            IN VARCHAR2
58641 --Override Accounted Amount Indicator
58642  , p_source_53            IN VARCHAR2
58643  , p_source_53_meaning    IN VARCHAR2
58644 --Payment Supplier Identifier
58645  , p_source_54            IN NUMBER
58646 --Payment Supplier Site Identifier
58647  , p_source_55            IN NUMBER
58648 --Third Party Type
58649  , p_source_56            IN VARCHAR2
58650 --Payment Distribution Reversed Identifier
58651  , p_source_57            IN NUMBER
58652 --Invoice Distribution Tax Line Identifier
58653  , p_source_58            IN NUMBER
58654 --Invoice Distribution Summary Tax Line Identifier
58655  , p_source_59            IN NUMBER
58656 --Payment Type
58657  , p_source_60            IN VARCHAR2
58658  , p_source_60_meaning    IN VARCHAR2
58659 --Business Flow Invoice Distribution Type
58660  , p_source_62            IN VARCHAR2
58661 --Business Flow Invoice Entity Code
58662  , p_source_63            IN VARCHAR2
58663 --Business Flow Invoice Distribution Identifier
58664  , p_source_64            IN NUMBER
58665 --Business Flow Invoice Identifier
58666  , p_source_65            IN NUMBER
58667 --Invoice Distribution Tax Distribution Identifier from Tax
58668  , p_source_66            IN NUMBER
58669 --Accrue on Receipt Option
58670  , p_source_100            IN VARCHAR2
58671  , p_source_100_meaning    IN VARCHAR2
58672 --Payment Exchange Date
58673  , p_source_114            IN DATE
58674 --Payment Exchange Rate
58675  , p_source_115            IN NUMBER
58676 --Payment Exchange Rate Type
58677  , p_source_116            IN VARCHAR2
58678 )
58679 IS
58680 
58681 l_component_type              VARCHAR2(80);
58682 l_component_code              VARCHAR2(30);
58683 l_component_type_code         VARCHAR2(1);
58684 l_component_appl_id           INTEGER;
58685 l_amb_context_code            VARCHAR2(30);
58686 l_entity_code                 VARCHAR2(30);
58687 l_event_class_code            VARCHAR2(30);
58688 l_ae_header_id                NUMBER;
58689 l_event_type_code             VARCHAR2(30);
58690 l_line_definition_code        VARCHAR2(30);
58691 l_line_definition_owner_code  VARCHAR2(1);
58692 --
58693 -- adr variables
58694 l_segment                     VARCHAR2(30);
58695 l_ccid                        NUMBER;
58696 l_adr_transaction_coa_id      NUMBER;
58697 l_adr_accounting_coa_id       NUMBER;
58698 l_adr_flexfield_segment_code  VARCHAR2(30);
58699 l_adr_flex_value_set_id       NUMBER;
58700 l_adr_value_type_code         VARCHAR2(30);
58701 l_adr_value_combination_id    NUMBER;
58702 l_adr_value_segment_code      VARCHAR2(30);
58703 
58704 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58705 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58706 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58707 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58708 
58709 -- 4262811 Variables ------------------------------------------------------------------------------------------
58710 l_entered_amt_idx             NUMBER;
58711 l_accted_amt_idx              NUMBER;
58712 l_acc_rev_flag                VARCHAR2(1);
58713 l_accrual_line_num            NUMBER;
58714 l_tmp_amt                     NUMBER;
58715 l_acc_rev_natural_side_code   VARCHAR2(1);
58716 
58717 l_num_entries                 NUMBER;
58718 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58719 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58720 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58721 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58722 l_recog_line_1                NUMBER;
58723 l_recog_line_2                NUMBER;
58724 
58725 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58726 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58727 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58728 
58729 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58730 
58731 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58732 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58736 
58733 
58734 ---------------------------------------------------------------------------------------------------------------
58735 
58737 --
58738 -- bulk performance
58739 --
58740 l_balance_type_code           VARCHAR2(1);
58741 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58742 l_log_module                  VARCHAR2(240);
58743 
58744 --
58745 -- Upgrade strategy
58746 --
58747 l_actual_upg_option           VARCHAR2(1);
58748 l_enc_upg_option           VARCHAR2(1);
58749 
58750 --
58751 BEGIN
58752 --
58753 IF g_log_enabled THEN
58754       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
58755 END IF;
58756 --
58757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58758 
58759       trace
58760          (p_msg      => 'BEGIN of AcctLineType_113'
58761          ,p_level    => C_LEVEL_PROCEDURE
58762          ,p_module   => l_log_module);
58763 
58764 END IF;
58765 --
58766 l_component_type             := 'AMB_JLT';
58767 l_component_code             := 'AP_INV_PRICE_VAR_REF';
58768 l_component_type_code        := 'S';
58769 l_component_appl_id          :=  200;
58770 l_amb_context_code           := 'DEFAULT';
58771 l_entity_code                := 'AP_PAYMENTS';
58772 l_event_class_code           := 'REFUNDS';
58773 l_event_type_code            := 'REFUNDS_ALL';
58774 l_line_definition_owner_code := 'S';
58775 l_line_definition_code       := 'CASH_REFUNDS_ALL';
58776 --
58777 l_balance_type_code          := 'A';
58778 l_segment                     := NULL;
58779 l_ccid                        := NULL;
58780 l_adr_transaction_coa_id      := NULL;
58781 l_adr_accounting_coa_id       := NULL;
58782 l_adr_flexfield_segment_code  := NULL;
58783 l_adr_flex_value_set_id       := NULL;
58784 l_adr_value_type_code         := NULL;
58785 l_adr_value_combination_id    := NULL;
58786 l_adr_value_segment_code      := NULL;
58787 
58788 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
58789 l_bflow_class_code           := '';    -- 4219869 Business Flow
58790 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58791 l_budgetary_control_flag     := 'N';
58792 
58793 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
58794 l_bflow_applied_to_amt       := NULL; -- 5132302
58795 l_entered_amt_idx            := NULL;          -- 4262811
58796 l_accted_amt_idx             := NULL;          -- 4262811
58797 l_acc_rev_flag               := NULL;          -- 4262811
58798 l_accrual_line_num           := NULL;          -- 4262811
58799 l_tmp_amt                    := NULL;          -- 4262811
58800 --
58801  
58802 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58803     l_balance_type_code <> 'B' THEN
58804 IF NVL(p_source_38,'
58805 ') <>  'CLEAR_CLEAR' AND 
58806 NVL(p_source_20,'
58807 ') =  'IPV' AND 
58808 NVL(p_source_100,'
58809 ') =  'Y' AND 
58810 (NVL(p_source_39,'
58811 ') =  'CASH' OR 
58812 NVL(p_source_39,'
58813 ') =  'DISCOUNT') AND 
58814 NVL(p_source_60,'
58815 ') =  'R'
58816  THEN 
58817 
58818    --
58819    XLA_AE_LINES_PKG.SetNewLine;
58820 
58821    p_balance_type_code          := l_balance_type_code;
58822    -- set the flag so later we will know whether the gain loss line needs to be created
58823    
58824    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58825      p_actual_flag :='A';
58826    END IF;
58827 
58828    --
58829    -- bulk performance
58830    --
58831    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58832                                       p_header_num   => 0); -- 4262811
58833    --
58834    -- set accounting line options
58835    --
58836    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58837            p_natural_side_code          => 'D'
58838          , p_gain_or_loss_flag          => 'N'
58839          , p_gl_transfer_mode_code      => 'S'
58840          , p_acct_entry_type_code       => 'A'
58841          , p_switch_side_flag           => 'Y'
58842          , p_merge_duplicate_code       => 'A'
58843          );
58844    --
58845    l_acc_rev_natural_side_code := 'C';  -- 4262811
58846    -- 
58847    --
58848    -- set accounting line type info
58849    --
58850    xla_ae_lines_pkg.SetAcctLineType
58851       (p_component_type             => l_component_type
58852       ,p_event_type_code            => l_event_type_code
58853       ,p_line_definition_owner_code => l_line_definition_owner_code
58854       ,p_line_definition_code       => l_line_definition_code
58855       ,p_accounting_line_code       => l_component_code
58856       ,p_accounting_line_type_code  => l_component_type_code
58857       ,p_accounting_line_appl_id    => l_component_appl_id
58858       ,p_amb_context_code           => l_amb_context_code
58859       ,p_entity_code                => l_entity_code
58860       ,p_event_class_code           => l_event_class_code);
58861    --
58862    -- set accounting class
58863    --
58864    xla_ae_lines_pkg.SetAcctClass(
58865            p_accounting_class_code  => 'IPV'
58866          , p_ae_header_id           => l_ae_header_id
58867          );
58868 
58869    --
58870    -- set rounding class
58871    --
58872    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58873                       'IPV';
58874 
58875    --
58876    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58880    --
58877    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58878    --
58879    -- bulk performance
58881    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58882 
58883    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58884       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58885 
58886    -- 4955764
58887    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58888       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58889 
58890    -- 4458381 Public Sector Enh
58891    
58892    --
58893    -- set accounting attributes for the line type
58894    --
58895    l_entered_amt_idx := 9;
58896    l_accted_amt_idx  := 14;
58897    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
58898    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58899    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
58900    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
58901    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
58902    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58903    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
58904    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
58905    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
58906    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
58907    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
58908    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58909    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
58910    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
58911    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
58912    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
58913    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
58914    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
58915    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
58916    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
58917    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
58918    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
58919    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
58920    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
58921    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
58922    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
58923    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
58924    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
58925    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
58926    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
58927    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
58928    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
58929    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
58930    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
58931    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
58932    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
58933    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
58934    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
58935    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
58936    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
58937    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
58938    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
58939    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
58940    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
58941    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
58942    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
58943    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
58944 
58945    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58946    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58947 
58948    ---------------------------------------------------------------------------------------------------------------
58949    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58950    ---------------------------------------------------------------------------------------------------------------
58951    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58952 
58953    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58954    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58955 
58956    IF xla_accounting_cache_pkg.GetValueChar
58957          (p_source_code         => 'LEDGER_CATEGORY_CODE'
58958          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58959    AND l_bflow_method_code = 'PRIOR_ENTRY'
58960 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58961    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58962          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58963        )
58964    THEN
58965          xla_ae_lines_pkg.BflowUpgEntry
58966            (p_business_method_code    => l_bflow_method_code
58967            ,p_business_class_code     => l_bflow_class_code
58971 -- No business flow processing for business flow method of NONE.
58968            ,p_balance_type            => l_balance_type_code);
58969    ELSE
58970       NULL;
58972    END IF;
58973 
58974    --
58975    -- call analytical criteria
58976    --
58977    
58978    --
58979    -- call description
58980    --
58981    -- No description or it is inherited.
58982    --
58983    -- call ADRs
58984    -- Bug 4922099
58985    --
58986    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58987         (NVL(l_actual_upg_option, 'N') = 'O') OR
58988         (NVL(l_enc_upg_option, 'N') = 'O')
58989       )
58990    THEN
58991    NULL;
58992    --
58993    --
58994    
58995   l_ccid := AcctDerRule_26(
58996            p_application_id           => p_application_id
58997          , p_ae_header_id             => l_ae_header_id 
58998 , p_source_17 => p_source_17
58999          , x_transaction_coa_id       => l_adr_transaction_coa_id
59000          , x_accounting_coa_id        => l_adr_accounting_coa_id
59001          , x_value_type_code          => l_adr_value_type_code
59002          , p_side                     => 'NA'
59003    );
59004 
59005    xla_ae_lines_pkg.set_ccid(
59006     p_code_combination_id          => l_ccid
59007   , p_value_type_code              => l_adr_value_type_code
59008   , p_transaction_coa_id           => l_adr_transaction_coa_id
59009   , p_accounting_coa_id            => l_adr_accounting_coa_id
59010   , p_adr_code                     => 'AP_INVOICE_DIST'
59011   , p_adr_type_code                => 'S'
59012   , p_component_type               => l_component_type
59013   , p_component_code               => l_component_code
59014   , p_component_type_code          => l_component_type_code
59015   , p_component_appl_id            => l_component_appl_id
59016   , p_amb_context_code             => l_amb_context_code
59017   , p_side                         => 'NA'
59018   );
59019 
59020 
59021    --
59022    --
59023    END IF;
59024    --
59025    -- Bug 4922099
59026    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59027           (NVL(l_enc_upg_option, 'N') = 'O')
59028         ) AND
59029         (l_bflow_method_code = 'PRIOR_ENTRY')
59030       )
59031    THEN
59032       IF
59033       --
59034       1 = 2
59035       --
59036       THEN
59037       xla_accounting_err_pkg.build_message
59038                                     (p_appli_s_name            => 'XLA'
59039                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59040                                     ,p_token_1                 => 'LINE_NUMBER'
59041                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59042                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59043                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59044                                                                              l_component_type
59045                                                                             ,l_component_code
59046                                                                             ,l_component_type_code
59047                                                                             ,l_component_appl_id
59048                                                                             ,l_amb_context_code
59049                                                                             ,l_entity_code
59050                                                                             ,l_event_class_code
59051                                                                            )
59052                                     ,p_token_3                 => 'OWNER'
59053                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59054                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59055                                                                           ,p_lookup_code    => l_component_type_code
59056                                                                          )
59057                                     ,p_token_4                 => 'PRODUCT_NAME'
59058                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59059                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59060                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59061                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59062                                     ,p_ae_header_id            =>  NULL
59063                                        );
59064 
59065         IF (C_LEVEL_ERROR>= g_log_level) THEN
59066                  trace
59067                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59068                       ,p_level    => C_LEVEL_ERROR
59069                       ,p_module   => l_log_module);
59070         END IF;
59071       END IF;
59072    END IF;
59073    --
59074    --
59075    ------------------------------------------------------------------------------------------------
59076    -- 4219869 Business Flow
59077    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59078    -- Prior Entry.  Currently, the following code is always generated.
59079    ------------------------------------------------------------------------------------------------
59080    XLA_AE_LINES_PKG.ValidateCurrentLine;
59081 
59085    ------------------------------------------------------------------------------------
59082    ------------------------------------------------------------------------------------
59083    -- 4219869 Business Flow
59084    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59086    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59087 
59088    ----------------------------------------------------------------------------------
59089    -- 4219869 Business Flow
59090    -- Update journal entry status -- Need to generate this within IF <condition>
59091    ----------------------------------------------------------------------------------
59092    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59093          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59094          ,p_balance_type_code => l_balance_type_code
59095          );
59096 
59097    -------------------------------------------------------------------------------------------
59098    -- 4262811 - Generate the Accrual Reversal lines
59099    -------------------------------------------------------------------------------------------
59100    BEGIN
59101       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59102                               (g_array_event(p_event_id).array_value_num('header_index'));
59103       IF l_acc_rev_flag IS NULL THEN
59104          l_acc_rev_flag := 'N';
59105       END IF;
59106    EXCEPTION
59107       WHEN OTHERS THEN
59108          l_acc_rev_flag := 'N';
59109    END;
59110    --
59111    IF (l_acc_rev_flag = 'Y') THEN
59112 
59113        -- 4645092  ------------------------------------------------------------------------------
59114        -- To allow MPA report to determine if it should generate report process
59115        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59116        ------------------------------------------------------------------------------------------
59117 
59118        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59119        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59120    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59121    -- call ADRs
59122    -- Bug 4922099
59123    --
59124    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59125         (NVL(l_actual_upg_option, 'N') = 'O') OR
59126         (NVL(l_enc_upg_option, 'N') = 'O')
59127       )
59128    THEN
59129    NULL;
59130    --
59131    --
59132    
59133   l_ccid := AcctDerRule_26(
59134            p_application_id           => p_application_id
59135          , p_ae_header_id             => l_ae_header_id 
59136 , p_source_17 => p_source_17
59137          , x_transaction_coa_id       => l_adr_transaction_coa_id
59138          , x_accounting_coa_id        => l_adr_accounting_coa_id
59139          , x_value_type_code          => l_adr_value_type_code
59140          , p_side                     => 'NA'
59141    );
59142 
59143    xla_ae_lines_pkg.set_ccid(
59144     p_code_combination_id          => l_ccid
59145   , p_value_type_code              => l_adr_value_type_code
59146   , p_transaction_coa_id           => l_adr_transaction_coa_id
59147   , p_accounting_coa_id            => l_adr_accounting_coa_id
59148   , p_adr_code                     => 'AP_INVOICE_DIST'
59149   , p_adr_type_code                => 'S'
59150   , p_component_type               => l_component_type
59151   , p_component_code               => l_component_code
59152   , p_component_type_code          => l_component_type_code
59153   , p_component_appl_id            => l_component_appl_id
59154   , p_amb_context_code             => l_amb_context_code
59155   , p_side                         => 'NA'
59156   );
59157 
59158 
59159    --
59160    --
59161    END IF;
59162 
59163        --
59164        -- Update the line information that should be overwritten
59165        --
59166        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59167                                          p_header_num   => 1);
59168        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
59169 
59170        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59171 
59172        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
59173           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59174        END IF;
59175 
59176       --
59177       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59178       --
59179       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59180           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
59181       ELSE
59182           ---------------------------------------------------------------------------------------------------
59183           -- 4262811a Switch Sign
59184           ---------------------------------------------------------------------------------------------------
59185           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
59186           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59187                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59188           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59192                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59189                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59190           -- 5132302
59191           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59193 
59194       END IF;
59195 
59196       -- 4955764
59197       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59198       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59199 
59200 
59201       XLA_AE_LINES_PKG.ValidateCurrentLine;
59202       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59203 
59204       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59205                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59206                ,p_balance_type_code => l_balance_type_code);
59207 
59208    END IF;
59209 
59210    -----------------------------------------------------------------------------------------
59211    -- 4262811 Multiperiod Accounting
59212    -----------------------------------------------------------------------------------------
59213      -- No MPA option is assigned.
59214 
59215 
59216 END IF;
59217 END IF;
59218 --
59219 
59220 --
59221 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59222    trace
59223       (p_msg      => 'END of AcctLineType_113'
59224       ,p_level    => C_LEVEL_PROCEDURE
59225       ,p_module   => l_log_module);
59226 END IF;
59227 --
59228 EXCEPTION
59229   WHEN xla_exceptions_pkg.application_exception THEN
59230       RAISE;
59231   WHEN OTHERS THEN
59232        xla_exceptions_pkg.raise_message
59233            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_113');
59234 END AcctLineType_113;
59235 --
59236 
59237 ---------------------------------------
59238 --
59239 -- PRIVATE FUNCTION
59240 --         AcctLineType_114
59241 --
59242 ---------------------------------------
59243 PROCEDURE AcctLineType_114 (
59244   p_application_id        IN NUMBER
59245  ,p_event_id              IN NUMBER
59246  ,p_calculate_acctd_flag  IN VARCHAR2
59247  ,p_calculate_g_l_flag    IN VARCHAR2
59248  ,p_actual_flag           IN OUT VARCHAR2
59249  ,p_balance_type_code     OUT VARCHAR2
59250  ,p_gain_or_loss_ref      OUT VARCHAR2
59251  
59252 --Payment Distribution (Payment Rate) Ledger Amount
59253  , p_source_9            IN NUMBER
59254 --Invoice Distribution Type
59255  , p_source_20            IN VARCHAR2
59256  , p_source_20_meaning    IN VARCHAR2
59257 --When to Account for Payment Option
59258  , p_source_38            IN VARCHAR2
59259 --Payment Distribution Type
59260  , p_source_39            IN VARCHAR2
59261  , p_source_39_meaning    IN VARCHAR2
59262 --Accounting Reversal Indicator
59263  , p_source_40            IN VARCHAR2
59264 --Payment Distribution Amount
59265  , p_source_41            IN NUMBER
59266 --Business Flow Accounts Payable Application Identifier
59267  , p_source_42            IN NUMBER
59268 --Payment Distribution Identifier
59269  , p_source_47            IN NUMBER
59270 --Distribution Link Type
59271  , p_source_48            IN VARCHAR2
59272 --Payment Currency Code
59273  , p_source_49            IN VARCHAR2
59274 --Override Accounted Amount Indicator
59275  , p_source_53            IN VARCHAR2
59276  , p_source_53_meaning    IN VARCHAR2
59277 --Third Party Type
59278  , p_source_56            IN VARCHAR2
59279 --Payment Distribution Reversed Identifier
59280  , p_source_57            IN NUMBER
59281 --Invoice Distribution Tax Line Identifier
59282  , p_source_58            IN NUMBER
59283 --Invoice Distribution Summary Tax Line Identifier
59284  , p_source_59            IN NUMBER
59285 --Payment Type
59286  , p_source_60            IN VARCHAR2
59287  , p_source_60_meaning    IN VARCHAR2
59288 --Business Flow Invoice Distribution Type
59289  , p_source_62            IN VARCHAR2
59290 --Business Flow Invoice Entity Code
59291  , p_source_63            IN VARCHAR2
59292 --Business Flow Invoice Distribution Identifier
59293  , p_source_64            IN NUMBER
59294 --Business Flow Invoice Identifier
59295  , p_source_65            IN NUMBER
59296 --Invoice Distribution Tax Distribution Identifier from Tax
59297  , p_source_66            IN NUMBER
59298 --Purchasing Encumbrance Option
59299  , p_source_102            IN VARCHAR2
59300  , p_source_102_meaning    IN VARCHAR2
59301 --Invoice Encumbered Option
59302  , p_source_104            IN VARCHAR2
59303  , p_source_104_meaning    IN VARCHAR2
59304 )
59305 IS
59306 
59307 l_component_type              VARCHAR2(80);
59308 l_component_code              VARCHAR2(30);
59309 l_component_type_code         VARCHAR2(1);
59310 l_component_appl_id           INTEGER;
59311 l_amb_context_code            VARCHAR2(30);
59312 l_entity_code                 VARCHAR2(30);
59313 l_event_class_code            VARCHAR2(30);
59314 l_ae_header_id                NUMBER;
59315 l_event_type_code             VARCHAR2(30);
59316 l_line_definition_code        VARCHAR2(30);
59317 l_line_definition_owner_code  VARCHAR2(1);
59318 --
59319 -- adr variables
59320 l_segment                     VARCHAR2(30);
59321 l_ccid                        NUMBER;
59322 l_adr_transaction_coa_id      NUMBER;
59326 l_adr_value_type_code         VARCHAR2(30);
59323 l_adr_accounting_coa_id       NUMBER;
59324 l_adr_flexfield_segment_code  VARCHAR2(30);
59325 l_adr_flex_value_set_id       NUMBER;
59327 l_adr_value_combination_id    NUMBER;
59328 l_adr_value_segment_code      VARCHAR2(30);
59329 
59330 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59331 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59332 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59333 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59334 
59335 -- 4262811 Variables ------------------------------------------------------------------------------------------
59336 l_entered_amt_idx             NUMBER;
59337 l_accted_amt_idx              NUMBER;
59338 l_acc_rev_flag                VARCHAR2(1);
59339 l_accrual_line_num            NUMBER;
59340 l_tmp_amt                     NUMBER;
59341 l_acc_rev_natural_side_code   VARCHAR2(1);
59342 
59343 l_num_entries                 NUMBER;
59344 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59345 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59346 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59347 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59348 l_recog_line_1                NUMBER;
59349 l_recog_line_2                NUMBER;
59350 
59351 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59352 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59353 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59354 
59355 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59356 
59357 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59358 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59359 
59360 ---------------------------------------------------------------------------------------------------------------
59361 
59362 
59363 --
59364 -- bulk performance
59365 --
59366 l_balance_type_code           VARCHAR2(1);
59367 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59368 l_log_module                  VARCHAR2(240);
59369 
59370 --
59371 -- Upgrade strategy
59372 --
59373 l_actual_upg_option           VARCHAR2(1);
59374 l_enc_upg_option           VARCHAR2(1);
59375 
59376 --
59377 BEGIN
59378 --
59379 IF g_log_enabled THEN
59380       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
59381 END IF;
59382 --
59383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59384 
59385       trace
59386          (p_msg      => 'BEGIN of AcctLineType_114'
59387          ,p_level    => C_LEVEL_PROCEDURE
59388          ,p_module   => l_log_module);
59389 
59390 END IF;
59391 --
59392 l_component_type             := 'AMB_JLT';
59393 l_component_code             := 'AP_INV_PRICE_VAR_REF_ENC';
59394 l_component_type_code        := 'S';
59395 l_component_appl_id          :=  200;
59396 l_amb_context_code           := 'DEFAULT';
59397 l_entity_code                := 'AP_PAYMENTS';
59398 l_event_class_code           := 'REFUNDS';
59399 l_event_type_code            := 'REFUNDS_ALL';
59400 l_line_definition_owner_code := 'S';
59401 l_line_definition_code       := 'ENC_REFUNDS_ALL';
59402 --
59403 l_balance_type_code          := 'E';
59404 l_segment                     := NULL;
59405 l_ccid                        := NULL;
59406 l_adr_transaction_coa_id      := NULL;
59407 l_adr_accounting_coa_id       := NULL;
59408 l_adr_flexfield_segment_code  := NULL;
59409 l_adr_flex_value_set_id       := NULL;
59410 l_adr_value_type_code         := NULL;
59411 l_adr_value_combination_id    := NULL;
59412 l_adr_value_segment_code      := NULL;
59413 
59414 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
59415 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
59416 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59417 l_budgetary_control_flag     := 'N';
59418 
59419 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59420 l_bflow_applied_to_amt       := NULL; -- 5132302
59421 l_entered_amt_idx            := NULL;          -- 4262811
59422 l_accted_amt_idx             := NULL;          -- 4262811
59423 l_acc_rev_flag               := NULL;          -- 4262811
59424 l_accrual_line_num           := NULL;          -- 4262811
59425 l_tmp_amt                    := NULL;          -- 4262811
59426 --
59427  
59428 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59429     l_balance_type_code <> 'B' THEN
59430 IF NVL(p_source_38,'
59431 ') <>  'CLEAR_CLEAR' AND 
59432 NVL(p_source_20,'
59433 ') =  'IPV' AND 
59434 (NVL(p_source_39,'
59435 ') =  'CASH' OR 
59436 NVL(p_source_39,'
59437 ') =  'DISCOUNT') AND 
59438 NVL(p_source_60,'
59439 ') =  'R' AND 
59440 NVL(p_source_102,'
59441 ') =  'Y' AND 
59442 NVL(p_source_104,'
59443 ') =  'Y'
59444  THEN 
59445 
59446    --
59447    XLA_AE_LINES_PKG.SetNewLine;
59448 
59449    p_balance_type_code          := l_balance_type_code;
59450    -- set the flag so later we will know whether the gain loss line needs to be created
59451    
59452    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59456    --
59453      p_actual_flag :='A';
59454    END IF;
59455 
59457    -- bulk performance
59458    --
59459    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59460                                       p_header_num   => 0); -- 4262811
59461    --
59462    -- set accounting line options
59463    --
59464    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59465            p_natural_side_code          => 'C'
59466          , p_gain_or_loss_flag          => 'N'
59467          , p_gl_transfer_mode_code      => 'S'
59468          , p_acct_entry_type_code       => 'E'
59469          , p_switch_side_flag           => 'Y'
59470          , p_merge_duplicate_code       => 'A'
59471          );
59472    --
59473    l_acc_rev_natural_side_code := 'D';  -- 4262811
59474    -- 
59475    --
59476    -- set accounting line type info
59477    --
59478    xla_ae_lines_pkg.SetAcctLineType
59479       (p_component_type             => l_component_type
59480       ,p_event_type_code            => l_event_type_code
59481       ,p_line_definition_owner_code => l_line_definition_owner_code
59482       ,p_line_definition_code       => l_line_definition_code
59483       ,p_accounting_line_code       => l_component_code
59484       ,p_accounting_line_type_code  => l_component_type_code
59485       ,p_accounting_line_appl_id    => l_component_appl_id
59486       ,p_amb_context_code           => l_amb_context_code
59487       ,p_entity_code                => l_entity_code
59488       ,p_event_class_code           => l_event_class_code);
59489    --
59490    -- set accounting class
59491    --
59492    xla_ae_lines_pkg.SetAcctClass(
59493            p_accounting_class_code  => 'IPV'
59494          , p_ae_header_id           => l_ae_header_id
59495          );
59496 
59497    --
59498    -- set rounding class
59499    --
59500    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59501                       'IPV';
59502 
59503    --
59504    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59505    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59506    --
59507    -- bulk performance
59508    --
59509    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59510 
59511    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59512       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59513 
59514    -- 4955764
59515    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59516       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59517 
59518    -- 4458381 Public Sector Enh
59519    
59520    --
59521    -- set accounting attributes for the line type
59522    --
59523    l_entered_amt_idx := 9;
59524    l_accted_amt_idx  := 11;
59525    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
59526    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59527    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
59528    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
59529    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
59530    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59531    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
59532    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
59533    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
59534    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
59535    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
59536    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59537    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
59538    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
59539    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
59540    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
59541    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
59542    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
59543    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
59544    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
59545    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
59546    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
59547    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
59548    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
59549    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
59550    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
59551    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
59552    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
59553    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
59554    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
59555    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
59556    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
59557    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
59558    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
59559    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
59560    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
59561    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
59562 
59563    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59567    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59564    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59565 
59566    ---------------------------------------------------------------------------------------------------------------
59568    ---------------------------------------------------------------------------------------------------------------
59569    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59570 
59571    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59572    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59573 
59574    IF xla_accounting_cache_pkg.GetValueChar
59575          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59576          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59577    AND l_bflow_method_code = 'PRIOR_ENTRY'
59578 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59579    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59580          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59581        )
59582    THEN
59583          xla_ae_lines_pkg.BflowUpgEntry
59584            (p_business_method_code    => l_bflow_method_code
59585            ,p_business_class_code     => l_bflow_class_code
59586            ,p_balance_type            => l_balance_type_code);
59587    ELSE
59588       NULL;
59589 XLA_AE_LINES_PKG.business_flow_validation(
59590                                 p_business_method_code     => l_bflow_method_code
59591                                ,p_business_class_code      => l_bflow_class_code
59592                                ,p_inherit_description_flag => l_inherit_desc_flag);
59593    END IF;
59594 
59595    --
59596    -- call analytical criteria
59597    --
59598    -- Inherited Analytical Criteria for business flow method of Prior Entry.
59599    --
59600    -- call description
59601    --
59602    -- No description or it is inherited.
59603    --
59604    -- call ADRs
59605    -- Bug 4922099
59606    --
59607    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59608         (NVL(l_actual_upg_option, 'N') = 'O') OR
59609         (NVL(l_enc_upg_option, 'N') = 'O')
59610       )
59611    THEN
59612    NULL;
59613    --
59614    --
59615    
59616    --
59617    --
59618    END IF;
59619    --
59620    -- Bug 4922099
59621    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59622           (NVL(l_enc_upg_option, 'N') = 'O')
59623         ) AND
59624         (l_bflow_method_code = 'PRIOR_ENTRY')
59625       )
59626    THEN
59627       IF
59628       --
59629       1 = 1
59630       --
59631       THEN
59632       xla_accounting_err_pkg.build_message
59633                                     (p_appli_s_name            => 'XLA'
59634                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59635                                     ,p_token_1                 => 'LINE_NUMBER'
59636                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59637                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59638                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59639                                                                              l_component_type
59640                                                                             ,l_component_code
59641                                                                             ,l_component_type_code
59642                                                                             ,l_component_appl_id
59643                                                                             ,l_amb_context_code
59644                                                                             ,l_entity_code
59645                                                                             ,l_event_class_code
59646                                                                            )
59647                                     ,p_token_3                 => 'OWNER'
59648                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59649                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59650                                                                           ,p_lookup_code    => l_component_type_code
59651                                                                          )
59652                                     ,p_token_4                 => 'PRODUCT_NAME'
59653                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59654                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59655                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59656                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59657                                     ,p_ae_header_id            =>  NULL
59658                                        );
59659 
59660         IF (C_LEVEL_ERROR>= g_log_level) THEN
59661                  trace
59662                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59663                       ,p_level    => C_LEVEL_ERROR
59664                       ,p_module   => l_log_module);
59668    --
59665         END IF;
59666       END IF;
59667    END IF;
59669    --
59670    ------------------------------------------------------------------------------------------------
59671    -- 4219869 Business Flow
59672    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59673    -- Prior Entry.  Currently, the following code is always generated.
59674    ------------------------------------------------------------------------------------------------
59675    -- No ValidateCurrentLine for business flow method of Prior Entry
59676 
59677    ------------------------------------------------------------------------------------
59678    -- 4219869 Business Flow
59679    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59680    ------------------------------------------------------------------------------------
59681    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59682 
59683    ----------------------------------------------------------------------------------
59684    -- 4219869 Business Flow
59685    -- Update journal entry status -- Need to generate this within IF <condition>
59686    ----------------------------------------------------------------------------------
59687    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59688          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59689          ,p_balance_type_code => l_balance_type_code
59690          );
59691 
59692    -------------------------------------------------------------------------------------------
59693    -- 4262811 - Generate the Accrual Reversal lines
59694    -------------------------------------------------------------------------------------------
59695    BEGIN
59696       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59697                               (g_array_event(p_event_id).array_value_num('header_index'));
59698       IF l_acc_rev_flag IS NULL THEN
59699          l_acc_rev_flag := 'N';
59700       END IF;
59701    EXCEPTION
59702       WHEN OTHERS THEN
59703          l_acc_rev_flag := 'N';
59704    END;
59705    --
59706    IF (l_acc_rev_flag = 'Y') THEN
59707 
59708        -- 4645092  ------------------------------------------------------------------------------
59709        -- To allow MPA report to determine if it should generate report process
59710        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59711        ------------------------------------------------------------------------------------------
59712 
59713        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59714        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59715    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59716    -- call ADRs
59717    -- Bug 4922099
59718    --
59719    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59720         (NVL(l_actual_upg_option, 'N') = 'O') OR
59721         (NVL(l_enc_upg_option, 'N') = 'O')
59722       )
59723    THEN
59724    NULL;
59725    --
59726    --
59727    
59728    --
59729    --
59730    END IF;
59731 
59732        --
59733        -- Update the line information that should be overwritten
59734        --
59735        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59736                                          p_header_num   => 1);
59737        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
59738 
59739        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59740 
59741        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
59742           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59743        END IF;
59744 
59745       --
59746       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59747       --
59748       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59749           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
59750       ELSE
59751           ---------------------------------------------------------------------------------------------------
59752           -- 4262811a Switch Sign
59753           ---------------------------------------------------------------------------------------------------
59754           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
59755           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59756                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59757           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59758                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59759           -- 5132302
59760           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59761                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59762 
59763       END IF;
59764 
59765       -- 4955764
59766       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59767       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59768 
59769 
59770       XLA_AE_LINES_PKG.ValidateCurrentLine;
59771       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59772 
59773       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59777    END IF;
59774                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59775                ,p_balance_type_code => l_balance_type_code);
59776 
59778 
59779    -----------------------------------------------------------------------------------------
59780    -- 4262811 Multiperiod Accounting
59781    -----------------------------------------------------------------------------------------
59782      -- No MPA option is assigned.
59783 
59784 
59785 END IF;
59786 END IF;
59787 --
59788 
59789 --
59790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59791    trace
59792       (p_msg      => 'END of AcctLineType_114'
59793       ,p_level    => C_LEVEL_PROCEDURE
59794       ,p_module   => l_log_module);
59795 END IF;
59796 --
59797 EXCEPTION
59798   WHEN xla_exceptions_pkg.application_exception THEN
59799       RAISE;
59800   WHEN OTHERS THEN
59801        xla_exceptions_pkg.raise_message
59802            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_114');
59803 END AcctLineType_114;
59804 --
59805 
59806 ---------------------------------------
59807 --
59808 -- PRIVATE FUNCTION
59809 --         AcctLineType_115
59810 --
59811 ---------------------------------------
59812 PROCEDURE AcctLineType_115 (
59813   p_application_id        IN NUMBER
59814  ,p_event_id              IN NUMBER
59815  ,p_calculate_acctd_flag  IN VARCHAR2
59816  ,p_calculate_g_l_flag    IN VARCHAR2
59817  ,p_actual_flag           IN OUT VARCHAR2
59818  ,p_balance_type_code     OUT VARCHAR2
59819  ,p_gain_or_loss_ref      OUT VARCHAR2
59820  
59821 --Recipient Invoice Distribution Account
59822  , p_source_36            IN NUMBER
59823 --When to Account for Payment Option
59824  , p_source_38            IN VARCHAR2
59825 --Accounting Reversal Indicator
59826  , p_source_40            IN VARCHAR2
59827 --Business Flow Accounts Payable Application Identifier
59828  , p_source_42            IN NUMBER
59829 --Distribution Link Type
59830  , p_source_48            IN VARCHAR2
59831 --Override Accounted Amount Indicator
59832  , p_source_53            IN VARCHAR2
59833  , p_source_53_meaning    IN VARCHAR2
59834 --Third Party Type
59835  , p_source_56            IN VARCHAR2
59836 --Invoice Distribution Tax Line Identifier
59837  , p_source_58            IN NUMBER
59838 --Invoice Distribution Summary Tax Line Identifier
59839  , p_source_59            IN NUMBER
59840 --Invoice Distribution Tax Distribution Identifier from Tax
59841  , p_source_66            IN NUMBER
59842 --Prepayment Distribution Type
59843  , p_source_67            IN VARCHAR2
59844 --Recipient Invoice Distribution Type
59845  , p_source_68            IN VARCHAR2
59846  , p_source_68_meaning    IN VARCHAR2
59847 --Prepayment Application Distribution Identifier
59848  , p_source_71            IN NUMBER
59849 --Invoice Identifier
59850  , p_source_72            IN NUMBER
59851 --Business Flow Prepayment Invoice Distribution Type
59852  , p_source_73            IN VARCHAR2
59853 --Business Flow Prepayment Invoice Entity Code
59854  , p_source_74            IN VARCHAR2
59855 --Business Flow Prepayment Invoice Distribution Identifier
59856  , p_source_75            IN NUMBER
59857 --Business Flow Prepayment Invoice Identifier
59858  , p_source_76            IN NUMBER
59859 --Upgrade Encumbrance Credit Account Class
59860  , p_source_77            IN VARCHAR2
59861 --Payables Encumbrance Upgrade Credit Account
59862  , p_source_78            IN NUMBER
59863 --Payables Encumbrance Upgrade Credit Amount
59864  , p_source_79            IN NUMBER
59865 --Invoice Currency Code
59866  , p_source_80            IN VARCHAR2
59867 --Payables Encumbrance Upgrade Credit Base Amount
59868  , p_source_81            IN NUMBER
59869 --Upgrade Encumbrance Debit Account Class
59870  , p_source_82            IN VARCHAR2
59871 --Payables Encumbrance Upgrade Debit Account
59872  , p_source_83            IN NUMBER
59873 --Payables Encumbrance Upgrade Debit Amount
59874  , p_source_84            IN NUMBER
59875 --Payables Encumbrance Upgrade Debit Base Amount
59876  , p_source_85            IN NUMBER
59877 --Payables Encumbrance Upgrade Option
59878  , p_source_86            IN VARCHAR2
59879 --Prepayment Distribution Amount
59880  , p_source_87            IN NUMBER
59881 --Prepayment Clearing Currency Code
59882  , p_source_88            IN VARCHAR2
59883 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
59884  , p_source_89            IN NUMBER
59885 --Deferred Accounting End Date
59886  , p_source_90            IN DATE
59887 --Deferred Accounting Option
59888  , p_source_91            IN VARCHAR2
59889 --Deferred Accounting Start Date
59890  , p_source_92            IN DATE
59891 --Invoice Supplier Identifier
59892  , p_source_93            IN NUMBER
59893 --Invoice Supplier Site Identifier
59894  , p_source_94            IN NUMBER
59895 --Identifier of the Prepayment Application Reversed
59896  , p_source_95            IN NUMBER
59897 --Payables Upgrade Credit Encumbrance Type Identifier
59898  , p_source_96            IN NUMBER
59899 --Payables Upgrade Debit Encumbrance Type Identifier
59900  , p_source_97            IN NUMBER
59901 --Accrue on Receipt Option
59902  , p_source_100            IN VARCHAR2
59903  , p_source_100_meaning    IN VARCHAR2
59904 --Prepayment Clearing Exchange Date
59905  , p_source_118            IN DATE
59909  , p_source_120            IN VARCHAR2
59906 --Prepayment Clearing Exchange Rate
59907  , p_source_119            IN NUMBER
59908 --Prepayment Clearing Exchange Rate Type
59910 )
59911 IS
59912 
59913 l_component_type              VARCHAR2(80);
59914 l_component_code              VARCHAR2(30);
59915 l_component_type_code         VARCHAR2(1);
59916 l_component_appl_id           INTEGER;
59917 l_amb_context_code            VARCHAR2(30);
59918 l_entity_code                 VARCHAR2(30);
59919 l_event_class_code            VARCHAR2(30);
59920 l_ae_header_id                NUMBER;
59921 l_event_type_code             VARCHAR2(30);
59922 l_line_definition_code        VARCHAR2(30);
59923 l_line_definition_owner_code  VARCHAR2(1);
59924 --
59925 -- adr variables
59926 l_segment                     VARCHAR2(30);
59927 l_ccid                        NUMBER;
59928 l_adr_transaction_coa_id      NUMBER;
59929 l_adr_accounting_coa_id       NUMBER;
59930 l_adr_flexfield_segment_code  VARCHAR2(30);
59931 l_adr_flex_value_set_id       NUMBER;
59932 l_adr_value_type_code         VARCHAR2(30);
59933 l_adr_value_combination_id    NUMBER;
59934 l_adr_value_segment_code      VARCHAR2(30);
59935 
59936 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59937 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59938 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59939 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59940 
59941 -- 4262811 Variables ------------------------------------------------------------------------------------------
59942 l_entered_amt_idx             NUMBER;
59943 l_accted_amt_idx              NUMBER;
59944 l_acc_rev_flag                VARCHAR2(1);
59945 l_accrual_line_num            NUMBER;
59946 l_tmp_amt                     NUMBER;
59947 l_acc_rev_natural_side_code   VARCHAR2(1);
59948 
59949 l_num_entries                 NUMBER;
59950 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59951 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59952 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59953 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59954 l_recog_line_1                NUMBER;
59955 l_recog_line_2                NUMBER;
59956 
59957 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59958 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59959 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59960 
59961 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59962 
59963 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59964 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59965 
59966 ---------------------------------------------------------------------------------------------------------------
59967 
59968 
59969 --
59970 -- bulk performance
59971 --
59972 l_balance_type_code           VARCHAR2(1);
59973 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59974 l_log_module                  VARCHAR2(240);
59975 
59976 --
59977 -- Upgrade strategy
59978 --
59979 l_actual_upg_option           VARCHAR2(1);
59980 l_enc_upg_option           VARCHAR2(1);
59981 
59982 --
59983 BEGIN
59984 --
59985 IF g_log_enabled THEN
59986       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
59987 END IF;
59988 --
59989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59990 
59991       trace
59992          (p_msg      => 'BEGIN of AcctLineType_115'
59993          ,p_level    => C_LEVEL_PROCEDURE
59994          ,p_module   => l_log_module);
59995 
59996 END IF;
59997 --
59998 l_component_type             := 'AMB_JLT';
59999 l_component_code             := 'AP_IPV_PREPAY_CLR_RATE_APP';
60000 l_component_type_code        := 'S';
60001 l_component_appl_id          :=  200;
60002 l_amb_context_code           := 'DEFAULT';
60003 l_entity_code                := 'AP_INVOICES';
60004 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
60005 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
60006 l_line_definition_owner_code := 'S';
60007 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
60008 --
60009 l_balance_type_code          := 'A';
60010 l_segment                     := NULL;
60011 l_ccid                        := NULL;
60012 l_adr_transaction_coa_id      := NULL;
60013 l_adr_accounting_coa_id       := NULL;
60014 l_adr_flexfield_segment_code  := NULL;
60015 l_adr_flex_value_set_id       := NULL;
60016 l_adr_value_type_code         := NULL;
60017 l_adr_value_combination_id    := NULL;
60018 l_adr_value_segment_code      := NULL;
60019 
60020 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
60021 l_bflow_class_code           := '';    -- 4219869 Business Flow
60022 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60023 l_budgetary_control_flag     := 'N';
60024 
60025 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60026 l_bflow_applied_to_amt       := NULL; -- 5132302
60027 l_entered_amt_idx            := NULL;          -- 4262811
60028 l_accted_amt_idx             := NULL;          -- 4262811
60029 l_acc_rev_flag               := NULL;          -- 4262811
60030 l_accrual_line_num           := NULL;          -- 4262811
60034 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60031 l_tmp_amt                    := NULL;          -- 4262811
60032 --
60033  
60035     l_balance_type_code <> 'B' THEN
60036 IF NVL(p_source_38,'
60037 ') =  'CLEAR_CLEAR' AND 
60038 (NVL(p_source_67,'
60039 ') =  'PREPAY APPL' OR 
60040 NVL(p_source_67,'
60041 ') =  'PREPAY APPL NONREC TAX' OR 
60042 NVL(p_source_67,'
60043 ') =  'PREPAY APPL REC TAX') AND 
60044 NVL(p_source_68,'
60045 ') =  'IPV' AND 
60046 NVL(p_source_100,'
60047 ') =  'Y'
60048  THEN 
60049 
60050    --
60051    XLA_AE_LINES_PKG.SetNewLine;
60052 
60053    p_balance_type_code          := l_balance_type_code;
60054    -- set the flag so later we will know whether the gain loss line needs to be created
60055    
60056    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60057      p_actual_flag :='A';
60058    END IF;
60059 
60060    --
60061    -- bulk performance
60062    --
60063    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60064                                       p_header_num   => 0); -- 4262811
60065    --
60066    -- set accounting line options
60067    --
60068    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60069            p_natural_side_code          => 'C'
60070          , p_gain_or_loss_flag          => 'N'
60071          , p_gl_transfer_mode_code      => 'S'
60072          , p_acct_entry_type_code       => 'A'
60073          , p_switch_side_flag           => 'Y'
60074          , p_merge_duplicate_code       => 'A'
60075          );
60076    --
60077    l_acc_rev_natural_side_code := 'D';  -- 4262811
60078    -- 
60079    --
60080    -- set accounting line type info
60081    --
60082    xla_ae_lines_pkg.SetAcctLineType
60083       (p_component_type             => l_component_type
60084       ,p_event_type_code            => l_event_type_code
60085       ,p_line_definition_owner_code => l_line_definition_owner_code
60086       ,p_line_definition_code       => l_line_definition_code
60087       ,p_accounting_line_code       => l_component_code
60088       ,p_accounting_line_type_code  => l_component_type_code
60089       ,p_accounting_line_appl_id    => l_component_appl_id
60090       ,p_amb_context_code           => l_amb_context_code
60091       ,p_entity_code                => l_entity_code
60092       ,p_event_class_code           => l_event_class_code);
60093    --
60094    -- set accounting class
60095    --
60096    xla_ae_lines_pkg.SetAcctClass(
60097            p_accounting_class_code  => 'IPV'
60098          , p_ae_header_id           => l_ae_header_id
60099          );
60100 
60101    --
60102    -- set rounding class
60103    --
60104    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60105                       'IPV';
60106 
60107    --
60108    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60109    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60110    --
60111    -- bulk performance
60112    --
60113    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60114 
60115    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60116       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60117 
60118    -- 4955764
60119    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60120       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60121 
60122    -- 4458381 Public Sector Enh
60123    
60124    --
60125    -- set accounting attributes for the line type
60126    --
60127    l_entered_amt_idx := 25;
60128    l_accted_amt_idx  := 30;
60129    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
60130    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60131    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
60132    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
60133    l_rec_acct_attrs.array_num_value(2)  := 
60134 xla_ae_sources_pkg.GetSystemSourceNum(
60135    p_source_code           => 'XLA_EVENT_APPL_ID'
60136  , p_source_type_code      => 'Y'
60137  , p_source_application_id =>  602
60138 );
60139    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
60140    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
60141    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
60142    l_rec_acct_attrs.array_char_value(4)  := 
60143 xla_ae_sources_pkg.GetSystemSourceChar(
60144    p_source_code           => 'XLA_ENTITY_CODE'
60145  , p_source_type_code      => 'Y'
60146  , p_source_application_id =>  602
60147 );
60148    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
60149    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
60150    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
60151    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
60152    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
60153    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
60154    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60155    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
60159    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
60156    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
60157    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
60158    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
60160    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60161    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
60162    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
60163    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
60164    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
60165    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
60166    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
60167    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
60168    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
60169    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
60170    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
60171    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
60172    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
60173    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
60174    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
60175    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
60176    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
60177    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
60178    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
60179    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
60180    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
60181    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
60182    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
60183    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
60184    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
60185    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
60186    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
60187    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
60188    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
60189    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
60190    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
60191    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
60192    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
60193    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
60194    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
60195    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
60196    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
60197    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
60198    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
60199    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
60200    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
60201    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
60202    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
60203    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
60204    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
60205    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
60206    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
60207    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
60208    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
60209    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
60210    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
60211    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
60212    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
60213    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
60214    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
60215    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
60216    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
60217    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
60218    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
60219    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
60220    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
60221    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
60222    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
60223    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
60224    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
60225    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
60226    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
60227    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
60228 
60229    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60230    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60231 
60232    ---------------------------------------------------------------------------------------------------------------
60233    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60234    ---------------------------------------------------------------------------------------------------------------
60235    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60236 
60237    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60238    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60239 
60243    AND l_bflow_method_code = 'PRIOR_ENTRY'
60240    IF xla_accounting_cache_pkg.GetValueChar
60241          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60242          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60244 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60245    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60246          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60247        )
60248    THEN
60249          xla_ae_lines_pkg.BflowUpgEntry
60250            (p_business_method_code    => l_bflow_method_code
60251            ,p_business_class_code     => l_bflow_class_code
60252            ,p_balance_type            => l_balance_type_code);
60253    ELSE
60254       NULL;
60255 -- No business flow processing for business flow method of NONE.
60256    END IF;
60257 
60258    --
60259    -- call analytical criteria
60260    --
60261    
60262    --
60263    -- call description
60264    --
60265    -- No description or it is inherited.
60266    --
60267    -- call ADRs
60268    -- Bug 4922099
60269    --
60270    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60271         (NVL(l_actual_upg_option, 'N') = 'O') OR
60272         (NVL(l_enc_upg_option, 'N') = 'O')
60273       )
60274    THEN
60275    NULL;
60276    --
60277    --
60278    
60279   l_ccid := AcctDerRule_33(
60280            p_application_id           => p_application_id
60281          , p_ae_header_id             => l_ae_header_id 
60282 , p_source_36 => p_source_36
60283          , x_transaction_coa_id       => l_adr_transaction_coa_id
60284          , x_accounting_coa_id        => l_adr_accounting_coa_id
60285          , x_value_type_code          => l_adr_value_type_code
60286          , p_side                     => 'NA'
60287    );
60288 
60289    xla_ae_lines_pkg.set_ccid(
60290     p_code_combination_id          => l_ccid
60291   , p_value_type_code              => l_adr_value_type_code
60292   , p_transaction_coa_id           => l_adr_transaction_coa_id
60293   , p_accounting_coa_id            => l_adr_accounting_coa_id
60294   , p_adr_code                     => 'AP_RECP_INV_DIST'
60295   , p_adr_type_code                => 'S'
60296   , p_component_type               => l_component_type
60297   , p_component_code               => l_component_code
60298   , p_component_type_code          => l_component_type_code
60299   , p_component_appl_id            => l_component_appl_id
60300   , p_amb_context_code             => l_amb_context_code
60301   , p_side                         => 'NA'
60302   );
60303 
60304 
60305    --
60306    --
60307    END IF;
60308    --
60309    -- Bug 4922099
60310    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60311           (NVL(l_enc_upg_option, 'N') = 'O')
60312         ) AND
60313         (l_bflow_method_code = 'PRIOR_ENTRY')
60314       )
60315    THEN
60316       IF
60317       --
60318       1 = 2
60319       --
60320       THEN
60321       xla_accounting_err_pkg.build_message
60322                                     (p_appli_s_name            => 'XLA'
60323                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60324                                     ,p_token_1                 => 'LINE_NUMBER'
60325                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
60326                                     ,p_token_2                 => 'LINE_TYPE_NAME'
60327                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
60328                                                                              l_component_type
60329                                                                             ,l_component_code
60330                                                                             ,l_component_type_code
60331                                                                             ,l_component_appl_id
60332                                                                             ,l_amb_context_code
60333                                                                             ,l_entity_code
60334                                                                             ,l_event_class_code
60335                                                                            )
60336                                     ,p_token_3                 => 'OWNER'
60337                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60338                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60339                                                                           ,p_lookup_code    => l_component_type_code
60340                                                                          )
60341                                     ,p_token_4                 => 'PRODUCT_NAME'
60342                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60343                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60344                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60345                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60346                                     ,p_ae_header_id            =>  NULL
60347                                        );
60348 
60352                       ,p_level    => C_LEVEL_ERROR
60349         IF (C_LEVEL_ERROR>= g_log_level) THEN
60350                  trace
60351                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60353                       ,p_module   => l_log_module);
60354         END IF;
60355       END IF;
60356    END IF;
60357    --
60358    --
60359    ------------------------------------------------------------------------------------------------
60360    -- 4219869 Business Flow
60361    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60362    -- Prior Entry.  Currently, the following code is always generated.
60363    ------------------------------------------------------------------------------------------------
60364    XLA_AE_LINES_PKG.ValidateCurrentLine;
60365 
60366    ------------------------------------------------------------------------------------
60367    -- 4219869 Business Flow
60368    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60369    ------------------------------------------------------------------------------------
60370    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60371 
60372    ----------------------------------------------------------------------------------
60373    -- 4219869 Business Flow
60374    -- Update journal entry status -- Need to generate this within IF <condition>
60375    ----------------------------------------------------------------------------------
60376    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60377          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60378          ,p_balance_type_code => l_balance_type_code
60379          );
60380 
60381    -------------------------------------------------------------------------------------------
60382    -- 4262811 - Generate the Accrual Reversal lines
60383    -------------------------------------------------------------------------------------------
60384    BEGIN
60385       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60386                               (g_array_event(p_event_id).array_value_num('header_index'));
60387       IF l_acc_rev_flag IS NULL THEN
60388          l_acc_rev_flag := 'N';
60389       END IF;
60390    EXCEPTION
60391       WHEN OTHERS THEN
60392          l_acc_rev_flag := 'N';
60393    END;
60394    --
60395    IF (l_acc_rev_flag = 'Y') THEN
60396 
60397        -- 4645092  ------------------------------------------------------------------------------
60398        -- To allow MPA report to determine if it should generate report process
60399        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60400        ------------------------------------------------------------------------------------------
60401 
60402        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60403        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60404    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60405    -- call ADRs
60406    -- Bug 4922099
60407    --
60408    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60409         (NVL(l_actual_upg_option, 'N') = 'O') OR
60410         (NVL(l_enc_upg_option, 'N') = 'O')
60411       )
60412    THEN
60413    NULL;
60414    --
60415    --
60416    
60417   l_ccid := AcctDerRule_33(
60418            p_application_id           => p_application_id
60419          , p_ae_header_id             => l_ae_header_id 
60420 , p_source_36 => p_source_36
60421          , x_transaction_coa_id       => l_adr_transaction_coa_id
60422          , x_accounting_coa_id        => l_adr_accounting_coa_id
60423          , x_value_type_code          => l_adr_value_type_code
60424          , p_side                     => 'NA'
60425    );
60426 
60427    xla_ae_lines_pkg.set_ccid(
60428     p_code_combination_id          => l_ccid
60429   , p_value_type_code              => l_adr_value_type_code
60430   , p_transaction_coa_id           => l_adr_transaction_coa_id
60431   , p_accounting_coa_id            => l_adr_accounting_coa_id
60432   , p_adr_code                     => 'AP_RECP_INV_DIST'
60433   , p_adr_type_code                => 'S'
60434   , p_component_type               => l_component_type
60435   , p_component_code               => l_component_code
60436   , p_component_type_code          => l_component_type_code
60437   , p_component_appl_id            => l_component_appl_id
60438   , p_amb_context_code             => l_amb_context_code
60439   , p_side                         => 'NA'
60440   );
60441 
60442 
60443    --
60444    --
60445    END IF;
60446 
60447        --
60448        -- Update the line information that should be overwritten
60449        --
60450        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60451                                          p_header_num   => 1);
60452        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60453 
60454        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60455 
60456        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60457           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60458        END IF;
60459 
60460       --
60461       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60462       --
60463       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60467           -- 4262811a Switch Sign
60464           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60465       ELSE
60466           ---------------------------------------------------------------------------------------------------
60468           ---------------------------------------------------------------------------------------------------
60469           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60470           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60471                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60472           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60473                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60474           -- 5132302
60475           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60476                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60477 
60478       END IF;
60479 
60480       -- 4955764
60481       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60482       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60483 
60484 
60485       XLA_AE_LINES_PKG.ValidateCurrentLine;
60486       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60487 
60488       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60489                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60490                ,p_balance_type_code => l_balance_type_code);
60491 
60492    END IF;
60493 
60494    -----------------------------------------------------------------------------------------
60495    -- 4262811 Multiperiod Accounting
60496    -----------------------------------------------------------------------------------------
60497      -- No MPA option is assigned.
60498 
60499 
60500 END IF;
60501 END IF;
60502 --
60503 
60504 --
60505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60506    trace
60507       (p_msg      => 'END of AcctLineType_115'
60508       ,p_level    => C_LEVEL_PROCEDURE
60509       ,p_module   => l_log_module);
60510 END IF;
60511 --
60512 EXCEPTION
60513   WHEN xla_exceptions_pkg.application_exception THEN
60514       RAISE;
60515   WHEN OTHERS THEN
60516        xla_exceptions_pkg.raise_message
60517            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_115');
60518 END AcctLineType_115;
60519 --
60520 
60521 ---------------------------------------
60522 --
60523 -- PRIVATE FUNCTION
60524 --         AcctLineType_116
60525 --
60526 ---------------------------------------
60527 PROCEDURE AcctLineType_116 (
60528   p_application_id        IN NUMBER
60529  ,p_event_id              IN NUMBER
60530  ,p_calculate_acctd_flag  IN VARCHAR2
60531  ,p_calculate_g_l_flag    IN VARCHAR2
60532  ,p_actual_flag           IN OUT VARCHAR2
60533  ,p_balance_type_code     OUT VARCHAR2
60534  ,p_gain_or_loss_ref      OUT VARCHAR2
60535  
60536 --Recipient Invoice Distribution Account
60537  , p_source_36            IN NUMBER
60538 --When to Account for Payment Option
60539  , p_source_38            IN VARCHAR2
60540 --Accounting Reversal Indicator
60541  , p_source_40            IN VARCHAR2
60542 --Business Flow Accounts Payable Application Identifier
60543  , p_source_42            IN NUMBER
60544 --Distribution Link Type
60545  , p_source_48            IN VARCHAR2
60546 --Override Accounted Amount Indicator
60547  , p_source_53            IN VARCHAR2
60548  , p_source_53_meaning    IN VARCHAR2
60549 --Third Party Type
60550  , p_source_56            IN VARCHAR2
60551 --Invoice Distribution Tax Line Identifier
60552  , p_source_58            IN NUMBER
60553 --Invoice Distribution Summary Tax Line Identifier
60554  , p_source_59            IN NUMBER
60555 --Invoice Distribution Tax Distribution Identifier from Tax
60556  , p_source_66            IN NUMBER
60557 --Prepayment Distribution Type
60558  , p_source_67            IN VARCHAR2
60559 --Recipient Invoice Distribution Type
60560  , p_source_68            IN VARCHAR2
60561  , p_source_68_meaning    IN VARCHAR2
60562 --Prepayment Application Distribution Identifier
60563  , p_source_71            IN NUMBER
60564 --Invoice Identifier
60565  , p_source_72            IN NUMBER
60566 --Business Flow Prepayment Invoice Distribution Type
60567  , p_source_73            IN VARCHAR2
60568 --Business Flow Prepayment Invoice Entity Code
60569  , p_source_74            IN VARCHAR2
60570 --Business Flow Prepayment Invoice Distribution Identifier
60571  , p_source_75            IN NUMBER
60572 --Business Flow Prepayment Invoice Identifier
60573  , p_source_76            IN NUMBER
60574 --Upgrade Encumbrance Credit Account Class
60575  , p_source_77            IN VARCHAR2
60576 --Payables Encumbrance Upgrade Credit Account
60577  , p_source_78            IN NUMBER
60578 --Payables Encumbrance Upgrade Credit Amount
60579  , p_source_79            IN NUMBER
60580 --Invoice Currency Code
60581  , p_source_80            IN VARCHAR2
60582 --Payables Encumbrance Upgrade Credit Base Amount
60583  , p_source_81            IN NUMBER
60584 --Upgrade Encumbrance Debit Account Class
60585  , p_source_82            IN VARCHAR2
60589  , p_source_84            IN NUMBER
60586 --Payables Encumbrance Upgrade Debit Account
60587  , p_source_83            IN NUMBER
60588 --Payables Encumbrance Upgrade Debit Amount
60590 --Payables Encumbrance Upgrade Debit Base Amount
60591  , p_source_85            IN NUMBER
60592 --Payables Encumbrance Upgrade Option
60593  , p_source_86            IN VARCHAR2
60594 --Prepayment Distribution Amount
60595  , p_source_87            IN NUMBER
60596 --Deferred Accounting End Date
60597  , p_source_90            IN DATE
60598 --Deferred Accounting Option
60599  , p_source_91            IN VARCHAR2
60600 --Deferred Accounting Start Date
60601  , p_source_92            IN DATE
60602 --Invoice Supplier Identifier
60603  , p_source_93            IN NUMBER
60604 --Invoice Supplier Site Identifier
60605  , p_source_94            IN NUMBER
60606 --Identifier of the Prepayment Application Reversed
60607  , p_source_95            IN NUMBER
60608 --Payables Upgrade Credit Encumbrance Type Identifier
60609  , p_source_96            IN NUMBER
60610 --Payables Upgrade Debit Encumbrance Type Identifier
60611  , p_source_97            IN NUMBER
60612 --Prepayment Payment Currency Code
60613  , p_source_98            IN VARCHAR2
60614 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
60615  , p_source_99            IN NUMBER
60616 --Accrue on Receipt Option
60617  , p_source_100            IN VARCHAR2
60618  , p_source_100_meaning    IN VARCHAR2
60619 --Prepayment Clearing Exchange Date
60620  , p_source_118            IN DATE
60621 --Prepayment Payment Exchange Rate
60622  , p_source_122            IN NUMBER
60623 --Prepayment Payment Exchange Rate Type
60624  , p_source_123            IN VARCHAR2
60625 )
60626 IS
60627 
60628 l_component_type              VARCHAR2(80);
60629 l_component_code              VARCHAR2(30);
60630 l_component_type_code         VARCHAR2(1);
60631 l_component_appl_id           INTEGER;
60632 l_amb_context_code            VARCHAR2(30);
60633 l_entity_code                 VARCHAR2(30);
60634 l_event_class_code            VARCHAR2(30);
60635 l_ae_header_id                NUMBER;
60636 l_event_type_code             VARCHAR2(30);
60637 l_line_definition_code        VARCHAR2(30);
60638 l_line_definition_owner_code  VARCHAR2(1);
60639 --
60640 -- adr variables
60641 l_segment                     VARCHAR2(30);
60642 l_ccid                        NUMBER;
60643 l_adr_transaction_coa_id      NUMBER;
60644 l_adr_accounting_coa_id       NUMBER;
60645 l_adr_flexfield_segment_code  VARCHAR2(30);
60646 l_adr_flex_value_set_id       NUMBER;
60647 l_adr_value_type_code         VARCHAR2(30);
60648 l_adr_value_combination_id    NUMBER;
60649 l_adr_value_segment_code      VARCHAR2(30);
60650 
60651 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60652 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60653 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60654 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60655 
60656 -- 4262811 Variables ------------------------------------------------------------------------------------------
60657 l_entered_amt_idx             NUMBER;
60658 l_accted_amt_idx              NUMBER;
60659 l_acc_rev_flag                VARCHAR2(1);
60660 l_accrual_line_num            NUMBER;
60661 l_tmp_amt                     NUMBER;
60662 l_acc_rev_natural_side_code   VARCHAR2(1);
60663 
60664 l_num_entries                 NUMBER;
60665 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60666 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60667 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60668 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60669 l_recog_line_1                NUMBER;
60670 l_recog_line_2                NUMBER;
60671 
60672 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60673 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60674 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60675 
60676 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60677 
60678 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60679 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60680 
60681 ---------------------------------------------------------------------------------------------------------------
60682 
60683 
60684 --
60685 -- bulk performance
60686 --
60687 l_balance_type_code           VARCHAR2(1);
60688 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60689 l_log_module                  VARCHAR2(240);
60690 
60691 --
60692 -- Upgrade strategy
60693 --
60694 l_actual_upg_option           VARCHAR2(1);
60695 l_enc_upg_option           VARCHAR2(1);
60696 
60697 --
60698 BEGIN
60699 --
60700 IF g_log_enabled THEN
60701       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
60702 END IF;
60703 --
60704 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60705 
60706       trace
60707          (p_msg      => 'BEGIN of AcctLineType_116'
60708          ,p_level    => C_LEVEL_PROCEDURE
60709          ,p_module   => l_log_module);
60710 
60711 END IF;
60712 --
60713 l_component_type             := 'AMB_JLT';
60714 l_component_code             := 'AP_IPV_PREPAY_PAY_RATE_APP';
60718 l_entity_code                := 'AP_INVOICES';
60715 l_component_type_code        := 'S';
60716 l_component_appl_id          :=  200;
60717 l_amb_context_code           := 'DEFAULT';
60719 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
60720 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
60721 l_line_definition_owner_code := 'S';
60722 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
60723 --
60724 l_balance_type_code          := 'A';
60725 l_segment                     := NULL;
60726 l_ccid                        := NULL;
60727 l_adr_transaction_coa_id      := NULL;
60728 l_adr_accounting_coa_id       := NULL;
60729 l_adr_flexfield_segment_code  := NULL;
60730 l_adr_flex_value_set_id       := NULL;
60731 l_adr_value_type_code         := NULL;
60732 l_adr_value_combination_id    := NULL;
60733 l_adr_value_segment_code      := NULL;
60734 
60735 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
60736 l_bflow_class_code           := '';    -- 4219869 Business Flow
60737 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60738 l_budgetary_control_flag     := 'N';
60739 
60740 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60741 l_bflow_applied_to_amt       := NULL; -- 5132302
60742 l_entered_amt_idx            := NULL;          -- 4262811
60743 l_accted_amt_idx             := NULL;          -- 4262811
60744 l_acc_rev_flag               := NULL;          -- 4262811
60745 l_accrual_line_num           := NULL;          -- 4262811
60746 l_tmp_amt                    := NULL;          -- 4262811
60747 --
60748  
60749 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60750     l_balance_type_code <> 'B' THEN
60751 IF NVL(p_source_38,'
60752 ') <>  'CLEAR_CLEAR' AND 
60753 (NVL(p_source_67,'
60754 ') =  'PREPAY APPL' OR 
60755 NVL(p_source_67,'
60756 ') =  'PREPAY APPL NONREC TAX' OR 
60757 NVL(p_source_67,'
60758 ') =  'PREPAY APPL REC TAX') AND 
60759 NVL(p_source_68,'
60760 ') =  'IPV' AND 
60761 NVL(p_source_100,'
60762 ') =  'Y'
60763  THEN 
60764 
60765    --
60766    XLA_AE_LINES_PKG.SetNewLine;
60767 
60768    p_balance_type_code          := l_balance_type_code;
60769    -- set the flag so later we will know whether the gain loss line needs to be created
60770    
60771    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60772      p_actual_flag :='A';
60773    END IF;
60774 
60775    --
60776    -- bulk performance
60777    --
60778    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60779                                       p_header_num   => 0); -- 4262811
60780    --
60781    -- set accounting line options
60782    --
60783    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60784            p_natural_side_code          => 'C'
60785          , p_gain_or_loss_flag          => 'N'
60786          , p_gl_transfer_mode_code      => 'S'
60787          , p_acct_entry_type_code       => 'A'
60788          , p_switch_side_flag           => 'Y'
60789          , p_merge_duplicate_code       => 'A'
60790          );
60791    --
60792    l_acc_rev_natural_side_code := 'D';  -- 4262811
60793    -- 
60794    --
60795    -- set accounting line type info
60796    --
60797    xla_ae_lines_pkg.SetAcctLineType
60798       (p_component_type             => l_component_type
60799       ,p_event_type_code            => l_event_type_code
60800       ,p_line_definition_owner_code => l_line_definition_owner_code
60801       ,p_line_definition_code       => l_line_definition_code
60802       ,p_accounting_line_code       => l_component_code
60803       ,p_accounting_line_type_code  => l_component_type_code
60804       ,p_accounting_line_appl_id    => l_component_appl_id
60805       ,p_amb_context_code           => l_amb_context_code
60806       ,p_entity_code                => l_entity_code
60807       ,p_event_class_code           => l_event_class_code);
60808    --
60809    -- set accounting class
60810    --
60811    xla_ae_lines_pkg.SetAcctClass(
60812            p_accounting_class_code  => 'IPV'
60813          , p_ae_header_id           => l_ae_header_id
60814          );
60815 
60816    --
60817    -- set rounding class
60818    --
60819    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60820                       'IPV';
60821 
60822    --
60823    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60824    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60825    --
60826    -- bulk performance
60827    --
60828    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60829 
60830    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60831       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60832 
60833    -- 4955764
60834    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60835       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60836 
60837    -- 4458381 Public Sector Enh
60838    
60839    --
60840    -- set accounting attributes for the line type
60841    --
60842    l_entered_amt_idx := 25;
60843    l_accted_amt_idx  := 30;
60844    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
60848    l_rec_acct_attrs.array_num_value(2)  := 
60845    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60846    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
60847    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
60849 xla_ae_sources_pkg.GetSystemSourceNum(
60850    p_source_code           => 'XLA_EVENT_APPL_ID'
60851  , p_source_type_code      => 'Y'
60852  , p_source_application_id =>  602
60853 );
60854    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
60855    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
60856    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
60857    l_rec_acct_attrs.array_char_value(4)  := 
60858 xla_ae_sources_pkg.GetSystemSourceChar(
60859    p_source_code           => 'XLA_ENTITY_CODE'
60860  , p_source_type_code      => 'Y'
60861  , p_source_application_id =>  602
60862 );
60863    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
60864    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
60865    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
60866    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
60867    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
60868    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
60869    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60870    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
60871    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
60872    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
60873    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
60874    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
60875    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60876    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
60877    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
60878    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
60879    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
60880    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
60881    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
60882    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
60883    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
60884    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
60885    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
60886    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
60887    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
60888    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
60889    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
60890    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
60891    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
60892    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
60893    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
60894    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
60895    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
60896    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
60897    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
60898    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
60899    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
60900    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
60901    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
60902    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
60903    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
60904    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
60905    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
60906    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
60907    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
60908    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
60909    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
60910    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
60911    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
60912    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
60913    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
60914    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
60915    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
60916    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
60917    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
60918    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
60919    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
60920    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
60921    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
60922    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
60923    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
60924    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
60925    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
60926    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
60927    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
60928    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
60929    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
60930    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
60931    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
60932    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
60936    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
60933    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
60934    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
60935    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
60937    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
60938    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
60939    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
60940    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
60941    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
60942    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
60943 
60944    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60945    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60946 
60947    ---------------------------------------------------------------------------------------------------------------
60948    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60949    ---------------------------------------------------------------------------------------------------------------
60950    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60951 
60952    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60953    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60954 
60955    IF xla_accounting_cache_pkg.GetValueChar
60956          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60957          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60958    AND l_bflow_method_code = 'PRIOR_ENTRY'
60959 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60960    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60961          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60962        )
60963    THEN
60964          xla_ae_lines_pkg.BflowUpgEntry
60965            (p_business_method_code    => l_bflow_method_code
60966            ,p_business_class_code     => l_bflow_class_code
60967            ,p_balance_type            => l_balance_type_code);
60968    ELSE
60969       NULL;
60970 -- No business flow processing for business flow method of NONE.
60971    END IF;
60972 
60973    --
60974    -- call analytical criteria
60975    --
60976    
60977    --
60978    -- call description
60979    --
60980    -- No description or it is inherited.
60981    --
60982    -- call ADRs
60983    -- Bug 4922099
60984    --
60985    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60986         (NVL(l_actual_upg_option, 'N') = 'O') OR
60987         (NVL(l_enc_upg_option, 'N') = 'O')
60988       )
60989    THEN
60990    NULL;
60991    --
60992    --
60993    
60994   l_ccid := AcctDerRule_33(
60995            p_application_id           => p_application_id
60996          , p_ae_header_id             => l_ae_header_id 
60997 , p_source_36 => p_source_36
60998          , x_transaction_coa_id       => l_adr_transaction_coa_id
60999          , x_accounting_coa_id        => l_adr_accounting_coa_id
61000          , x_value_type_code          => l_adr_value_type_code
61001          , p_side                     => 'NA'
61002    );
61003 
61004    xla_ae_lines_pkg.set_ccid(
61005     p_code_combination_id          => l_ccid
61006   , p_value_type_code              => l_adr_value_type_code
61007   , p_transaction_coa_id           => l_adr_transaction_coa_id
61008   , p_accounting_coa_id            => l_adr_accounting_coa_id
61009   , p_adr_code                     => 'AP_RECP_INV_DIST'
61010   , p_adr_type_code                => 'S'
61011   , p_component_type               => l_component_type
61012   , p_component_code               => l_component_code
61013   , p_component_type_code          => l_component_type_code
61014   , p_component_appl_id            => l_component_appl_id
61015   , p_amb_context_code             => l_amb_context_code
61016   , p_side                         => 'NA'
61017   );
61018 
61019 
61020    --
61021    --
61022    END IF;
61023    --
61024    -- Bug 4922099
61025    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61026           (NVL(l_enc_upg_option, 'N') = 'O')
61027         ) AND
61028         (l_bflow_method_code = 'PRIOR_ENTRY')
61029       )
61030    THEN
61031       IF
61032       --
61033       1 = 2
61034       --
61035       THEN
61036       xla_accounting_err_pkg.build_message
61037                                     (p_appli_s_name            => 'XLA'
61038                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61039                                     ,p_token_1                 => 'LINE_NUMBER'
61040                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61041                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61042                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61043                                                                              l_component_type
61044                                                                             ,l_component_code
61045                                                                             ,l_component_type_code
61046                                                                             ,l_component_appl_id
61050                                                                            )
61047                                                                             ,l_amb_context_code
61048                                                                             ,l_entity_code
61049                                                                             ,l_event_class_code
61051                                     ,p_token_3                 => 'OWNER'
61052                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61053                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61054                                                                           ,p_lookup_code    => l_component_type_code
61055                                                                          )
61056                                     ,p_token_4                 => 'PRODUCT_NAME'
61057                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61058                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61059                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61060                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61061                                     ,p_ae_header_id            =>  NULL
61062                                        );
61063 
61064         IF (C_LEVEL_ERROR>= g_log_level) THEN
61065                  trace
61066                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61067                       ,p_level    => C_LEVEL_ERROR
61068                       ,p_module   => l_log_module);
61069         END IF;
61070       END IF;
61071    END IF;
61072    --
61073    --
61074    ------------------------------------------------------------------------------------------------
61075    -- 4219869 Business Flow
61076    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61077    -- Prior Entry.  Currently, the following code is always generated.
61078    ------------------------------------------------------------------------------------------------
61079    XLA_AE_LINES_PKG.ValidateCurrentLine;
61080 
61081    ------------------------------------------------------------------------------------
61082    -- 4219869 Business Flow
61083    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61084    ------------------------------------------------------------------------------------
61085    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61086 
61087    ----------------------------------------------------------------------------------
61088    -- 4219869 Business Flow
61089    -- Update journal entry status -- Need to generate this within IF <condition>
61090    ----------------------------------------------------------------------------------
61091    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61092          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61093          ,p_balance_type_code => l_balance_type_code
61094          );
61095 
61096    -------------------------------------------------------------------------------------------
61097    -- 4262811 - Generate the Accrual Reversal lines
61098    -------------------------------------------------------------------------------------------
61099    BEGIN
61100       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61101                               (g_array_event(p_event_id).array_value_num('header_index'));
61102       IF l_acc_rev_flag IS NULL THEN
61103          l_acc_rev_flag := 'N';
61104       END IF;
61105    EXCEPTION
61106       WHEN OTHERS THEN
61107          l_acc_rev_flag := 'N';
61108    END;
61109    --
61110    IF (l_acc_rev_flag = 'Y') THEN
61111 
61112        -- 4645092  ------------------------------------------------------------------------------
61113        -- To allow MPA report to determine if it should generate report process
61114        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61115        ------------------------------------------------------------------------------------------
61116 
61117        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61118        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61119    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61120    -- call ADRs
61121    -- Bug 4922099
61122    --
61123    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61124         (NVL(l_actual_upg_option, 'N') = 'O') OR
61125         (NVL(l_enc_upg_option, 'N') = 'O')
61126       )
61127    THEN
61128    NULL;
61129    --
61130    --
61131    
61132   l_ccid := AcctDerRule_33(
61133            p_application_id           => p_application_id
61134          , p_ae_header_id             => l_ae_header_id 
61135 , p_source_36 => p_source_36
61136          , x_transaction_coa_id       => l_adr_transaction_coa_id
61137          , x_accounting_coa_id        => l_adr_accounting_coa_id
61138          , x_value_type_code          => l_adr_value_type_code
61139          , p_side                     => 'NA'
61140    );
61141 
61142    xla_ae_lines_pkg.set_ccid(
61143     p_code_combination_id          => l_ccid
61144   , p_value_type_code              => l_adr_value_type_code
61145   , p_transaction_coa_id           => l_adr_transaction_coa_id
61146   , p_accounting_coa_id            => l_adr_accounting_coa_id
61147   , p_adr_code                     => 'AP_RECP_INV_DIST'
61148   , p_adr_type_code                => 'S'
61152   , p_component_appl_id            => l_component_appl_id
61149   , p_component_type               => l_component_type
61150   , p_component_code               => l_component_code
61151   , p_component_type_code          => l_component_type_code
61153   , p_amb_context_code             => l_amb_context_code
61154   , p_side                         => 'NA'
61155   );
61156 
61157 
61158    --
61159    --
61160    END IF;
61161 
61162        --
61163        -- Update the line information that should be overwritten
61164        --
61165        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61166                                          p_header_num   => 1);
61167        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61168 
61169        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61170 
61171        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61172           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61173        END IF;
61174 
61175       --
61176       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61177       --
61178       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61179           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61180       ELSE
61181           ---------------------------------------------------------------------------------------------------
61182           -- 4262811a Switch Sign
61183           ---------------------------------------------------------------------------------------------------
61184           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61185           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61186                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61187           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61188                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61189           -- 5132302
61190           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61191                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61192 
61193       END IF;
61194 
61195       -- 4955764
61196       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61197       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61198 
61199 
61200       XLA_AE_LINES_PKG.ValidateCurrentLine;
61201       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61202 
61203       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61204                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61205                ,p_balance_type_code => l_balance_type_code);
61206 
61207    END IF;
61208 
61209    -----------------------------------------------------------------------------------------
61210    -- 4262811 Multiperiod Accounting
61211    -----------------------------------------------------------------------------------------
61212      -- No MPA option is assigned.
61213 
61214 
61215 END IF;
61216 END IF;
61217 --
61218 
61219 --
61220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61221    trace
61222       (p_msg      => 'END of AcctLineType_116'
61223       ,p_level    => C_LEVEL_PROCEDURE
61224       ,p_module   => l_log_module);
61225 END IF;
61226 --
61227 EXCEPTION
61228   WHEN xla_exceptions_pkg.application_exception THEN
61229       RAISE;
61230   WHEN OTHERS THEN
61231        xla_exceptions_pkg.raise_message
61232            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_116');
61233 END AcctLineType_116;
61234 --
61235 
61236 ---------------------------------------
61237 --
61238 -- PRIVATE FUNCTION
61239 --         AcctLineType_117
61240 --
61241 ---------------------------------------
61242 PROCEDURE AcctLineType_117 (
61243   p_application_id        IN NUMBER
61244  ,p_event_id              IN NUMBER
61245  ,p_calculate_acctd_flag  IN VARCHAR2
61246  ,p_calculate_g_l_flag    IN VARCHAR2
61247  ,p_actual_flag           IN OUT VARCHAR2
61248  ,p_balance_type_code     OUT VARCHAR2
61249  ,p_gain_or_loss_ref      OUT VARCHAR2
61250  
61251 --Payment Distribution (Cleared Rate) Ledger Amount
61252  , p_source_10            IN NUMBER
61253 --Invoice Distribution Account
61254  , p_source_17            IN NUMBER
61255 --Invoice Distribution Type
61256  , p_source_20            IN VARCHAR2
61257  , p_source_20_meaning    IN VARCHAR2
61258 --When to Account for Payment Option
61259  , p_source_38            IN VARCHAR2
61260 --Payment Distribution Type
61261  , p_source_39            IN VARCHAR2
61262  , p_source_39_meaning    IN VARCHAR2
61263 --Accounting Reversal Indicator
61264  , p_source_40            IN VARCHAR2
61265 --Payment Distribution Amount
61266  , p_source_41            IN NUMBER
61267 --Business Flow Accounts Payable Application Identifier
61268  , p_source_42            IN NUMBER
61269 --Business Flow Payment Distribution Type
61273 --Business Flow Payment Distribution Identifier
61270  , p_source_43            IN VARCHAR2
61271 --Business Flow Payment Entity Code
61272  , p_source_44            IN VARCHAR2
61274  , p_source_45            IN NUMBER
61275 --Business Flow Payment Identifier
61276  , p_source_46            IN NUMBER
61277 --Payment Distribution Identifier
61278  , p_source_47            IN NUMBER
61279 --Distribution Link Type
61280  , p_source_48            IN VARCHAR2
61281 --Payment Currency Code
61282  , p_source_49            IN VARCHAR2
61283 --Override Accounted Amount Indicator
61284  , p_source_53            IN VARCHAR2
61285  , p_source_53_meaning    IN VARCHAR2
61286 --Payment Supplier Identifier
61287  , p_source_54            IN NUMBER
61288 --Payment Supplier Site Identifier
61289  , p_source_55            IN NUMBER
61290 --Third Party Type
61291  , p_source_56            IN VARCHAR2
61292 --Payment Distribution Reversed Identifier
61293  , p_source_57            IN NUMBER
61294 --Invoice Distribution Tax Line Identifier
61295  , p_source_58            IN NUMBER
61296 --Invoice Distribution Summary Tax Line Identifier
61297  , p_source_59            IN NUMBER
61298 --Accrue on Receipt Option
61299  , p_source_100            IN VARCHAR2
61300  , p_source_100_meaning    IN VARCHAR2
61301 --Invoice Type Paid
61302  , p_source_101            IN VARCHAR2
61303  , p_source_101_meaning    IN VARCHAR2
61304 --Cleared Exchange Date
61305  , p_source_107            IN DATE
61306 --Cleared Exchange Rate
61307  , p_source_108            IN NUMBER
61308 --Cleared Exchange Rate Type
61309  , p_source_109            IN VARCHAR2
61310 )
61311 IS
61312 
61313 l_component_type              VARCHAR2(80);
61314 l_component_code              VARCHAR2(30);
61315 l_component_type_code         VARCHAR2(1);
61316 l_component_appl_id           INTEGER;
61317 l_amb_context_code            VARCHAR2(30);
61318 l_entity_code                 VARCHAR2(30);
61319 l_event_class_code            VARCHAR2(30);
61320 l_ae_header_id                NUMBER;
61321 l_event_type_code             VARCHAR2(30);
61322 l_line_definition_code        VARCHAR2(30);
61323 l_line_definition_owner_code  VARCHAR2(1);
61324 --
61325 -- adr variables
61326 l_segment                     VARCHAR2(30);
61327 l_ccid                        NUMBER;
61328 l_adr_transaction_coa_id      NUMBER;
61329 l_adr_accounting_coa_id       NUMBER;
61330 l_adr_flexfield_segment_code  VARCHAR2(30);
61331 l_adr_flex_value_set_id       NUMBER;
61332 l_adr_value_type_code         VARCHAR2(30);
61333 l_adr_value_combination_id    NUMBER;
61334 l_adr_value_segment_code      VARCHAR2(30);
61335 
61336 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
61337 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
61338 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
61339 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
61340 
61341 -- 4262811 Variables ------------------------------------------------------------------------------------------
61342 l_entered_amt_idx             NUMBER;
61343 l_accted_amt_idx              NUMBER;
61344 l_acc_rev_flag                VARCHAR2(1);
61345 l_accrual_line_num            NUMBER;
61346 l_tmp_amt                     NUMBER;
61347 l_acc_rev_natural_side_code   VARCHAR2(1);
61348 
61349 l_num_entries                 NUMBER;
61350 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
61351 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
61352 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
61353 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
61354 l_recog_line_1                NUMBER;
61355 l_recog_line_2                NUMBER;
61356 
61357 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
61358 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
61359 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
61360 
61361 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61362 
61363 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
61364 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
61365 
61366 ---------------------------------------------------------------------------------------------------------------
61367 
61368 
61369 --
61370 -- bulk performance
61371 --
61372 l_balance_type_code           VARCHAR2(1);
61373 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
61374 l_log_module                  VARCHAR2(240);
61375 
61376 --
61377 -- Upgrade strategy
61378 --
61379 l_actual_upg_option           VARCHAR2(1);
61380 l_enc_upg_option           VARCHAR2(1);
61381 
61382 --
61383 BEGIN
61384 --
61385 IF g_log_enabled THEN
61386       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
61387 END IF;
61388 --
61389 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61390 
61391       trace
61392          (p_msg      => 'BEGIN of AcctLineType_117'
61393          ,p_level    => C_LEVEL_PROCEDURE
61394          ,p_module   => l_log_module);
61395 
61396 END IF;
61397 --
61398 l_component_type             := 'AMB_JLT';
61399 l_component_code             := 'AP_ITEM_EXPENSE_CLEAR';
61400 l_component_type_code        := 'S';
61401 l_component_appl_id          :=  200;
61405 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
61402 l_amb_context_code           := 'DEFAULT';
61403 l_entity_code                := 'AP_PAYMENTS';
61404 l_event_class_code           := 'RECONCILED PAYMENTS';
61406 l_line_definition_owner_code := 'S';
61407 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
61408 --
61409 l_balance_type_code          := 'A';
61410 l_segment                     := NULL;
61411 l_ccid                        := NULL;
61412 l_adr_transaction_coa_id      := NULL;
61413 l_adr_accounting_coa_id       := NULL;
61414 l_adr_flexfield_segment_code  := NULL;
61415 l_adr_flex_value_set_id       := NULL;
61416 l_adr_value_type_code         := NULL;
61417 l_adr_value_combination_id    := NULL;
61418 l_adr_value_segment_code      := NULL;
61419 
61420 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
61421 l_bflow_class_code           := '';    -- 4219869 Business Flow
61422 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
61423 l_budgetary_control_flag     := 'N';
61424 
61425 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
61426 l_bflow_applied_to_amt       := NULL; -- 5132302
61427 l_entered_amt_idx            := NULL;          -- 4262811
61428 l_accted_amt_idx             := NULL;          -- 4262811
61429 l_acc_rev_flag               := NULL;          -- 4262811
61430 l_accrual_line_num           := NULL;          -- 4262811
61431 l_tmp_amt                    := NULL;          -- 4262811
61432 --
61433  
61434 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61435     l_balance_type_code <> 'B' THEN
61436 IF NVL(p_source_38,'
61437 ') =  'CLEAR_CLEAR' AND 
61438 (NVL(p_source_20,'
61439 ') =  'ITEM' OR 
61440 NVL(p_source_20,'
61441 ') =  'RETROEXPENSE' OR 
61442 NVL(p_source_20,'
61443 ') =  'ERV' AND 
61444 NVL(p_source_100,'
61445 ') <>  'Y' OR 
61446 NVL(p_source_20,'
61447 ') =  'IPV' AND 
61448 NVL(p_source_100,'
61449 ') <>  'Y') AND 
61450 NVL(p_source_101,'
61451 ') <>  'INTEREST' AND 
61452 (NVL(p_source_39,'
61453 ') =  'CASH' OR 
61454 NVL(p_source_39,'
61455 ') =  'AWT' OR 
61456 NVL(p_source_39,'
61457 ') =  'DISCOUNT')
61458  THEN 
61459 
61460    --
61461    XLA_AE_LINES_PKG.SetNewLine;
61462 
61463    p_balance_type_code          := l_balance_type_code;
61464    -- set the flag so later we will know whether the gain loss line needs to be created
61465    
61466    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61467      p_actual_flag :='A';
61468    END IF;
61469 
61470    --
61471    -- bulk performance
61472    --
61473    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61474                                       p_header_num   => 0); -- 4262811
61475    --
61476    -- set accounting line options
61477    --
61478    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61479            p_natural_side_code          => 'D'
61480          , p_gain_or_loss_flag          => 'N'
61481          , p_gl_transfer_mode_code      => 'S'
61482          , p_acct_entry_type_code       => 'A'
61483          , p_switch_side_flag           => 'Y'
61484          , p_merge_duplicate_code       => 'A'
61485          );
61486    --
61487    l_acc_rev_natural_side_code := 'C';  -- 4262811
61488    -- 
61489    --
61490    -- set accounting line type info
61491    --
61492    xla_ae_lines_pkg.SetAcctLineType
61493       (p_component_type             => l_component_type
61494       ,p_event_type_code            => l_event_type_code
61495       ,p_line_definition_owner_code => l_line_definition_owner_code
61496       ,p_line_definition_code       => l_line_definition_code
61497       ,p_accounting_line_code       => l_component_code
61498       ,p_accounting_line_type_code  => l_component_type_code
61499       ,p_accounting_line_appl_id    => l_component_appl_id
61500       ,p_amb_context_code           => l_amb_context_code
61501       ,p_entity_code                => l_entity_code
61502       ,p_event_class_code           => l_event_class_code);
61503    --
61504    -- set accounting class
61505    --
61506    xla_ae_lines_pkg.SetAcctClass(
61507            p_accounting_class_code  => 'ITEM EXPENSE'
61508          , p_ae_header_id           => l_ae_header_id
61509          );
61510 
61511    --
61512    -- set rounding class
61513    --
61514    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61515                       'ITEM EXPENSE';
61516 
61517    --
61518    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61519    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61520    --
61521    -- bulk performance
61522    --
61523    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61524 
61525    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61526       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61527 
61528    -- 4955764
61529    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61530       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61531 
61532    -- 4458381 Public Sector Enh
61533    
61534    --
61538    l_accted_amt_idx  := 15;
61535    -- set accounting attributes for the line type
61536    --
61537    l_entered_amt_idx := 10;
61539    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
61540    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61541    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
61542    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
61543    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
61544    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
61545    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
61546    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61547    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
61548    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
61549    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
61550    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
61551    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
61552    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61553    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
61554    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
61555    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
61556    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
61557    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
61558    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
61559    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
61560    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
61561    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
61562    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
61563    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
61564    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
61565    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
61566    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
61567    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
61568    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
61569    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
61570    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
61571    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
61572    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
61573    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
61574    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
61575    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
61576    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
61577    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
61578    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
61579    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
61580    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
61581    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
61582    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
61583    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
61584    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
61585    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
61586    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
61587    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
61588 
61589    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61590    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61591 
61592    ---------------------------------------------------------------------------------------------------------------
61593    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61594    ---------------------------------------------------------------------------------------------------------------
61595    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61596 
61597    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61598    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61599 
61600    IF xla_accounting_cache_pkg.GetValueChar
61601          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61602          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61603    AND l_bflow_method_code = 'PRIOR_ENTRY'
61604 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61605    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61606          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61607        )
61608    THEN
61609          xla_ae_lines_pkg.BflowUpgEntry
61610            (p_business_method_code    => l_bflow_method_code
61611            ,p_business_class_code     => l_bflow_class_code
61612            ,p_balance_type            => l_balance_type_code);
61613    ELSE
61614       NULL;
61615 -- No business flow processing for business flow method of NONE.
61616    END IF;
61617 
61618    --
61619    -- call analytical criteria
61620    --
61621    
61622    --
61623    -- call description
61624    --
61625    -- No description or it is inherited.
61626    --
61627    -- call ADRs
61628    -- Bug 4922099
61629    --
61630    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61631         (NVL(l_actual_upg_option, 'N') = 'O') OR
61632         (NVL(l_enc_upg_option, 'N') = 'O')
61633       )
61634    THEN
61635    NULL;
61639   l_ccid := AcctDerRule_26(
61636    --
61637    --
61638    
61640            p_application_id           => p_application_id
61641          , p_ae_header_id             => l_ae_header_id 
61642 , p_source_17 => p_source_17
61643          , x_transaction_coa_id       => l_adr_transaction_coa_id
61644          , x_accounting_coa_id        => l_adr_accounting_coa_id
61645          , x_value_type_code          => l_adr_value_type_code
61646          , p_side                     => 'NA'
61647    );
61648 
61649    xla_ae_lines_pkg.set_ccid(
61650     p_code_combination_id          => l_ccid
61651   , p_value_type_code              => l_adr_value_type_code
61652   , p_transaction_coa_id           => l_adr_transaction_coa_id
61653   , p_accounting_coa_id            => l_adr_accounting_coa_id
61654   , p_adr_code                     => 'AP_INVOICE_DIST'
61655   , p_adr_type_code                => 'S'
61656   , p_component_type               => l_component_type
61657   , p_component_code               => l_component_code
61658   , p_component_type_code          => l_component_type_code
61659   , p_component_appl_id            => l_component_appl_id
61660   , p_amb_context_code             => l_amb_context_code
61661   , p_side                         => 'NA'
61662   );
61663 
61664 
61665    --
61666    --
61667    END IF;
61668    --
61669    -- Bug 4922099
61670    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61671           (NVL(l_enc_upg_option, 'N') = 'O')
61672         ) AND
61673         (l_bflow_method_code = 'PRIOR_ENTRY')
61674       )
61675    THEN
61676       IF
61677       --
61678       1 = 2
61679       --
61680       THEN
61681       xla_accounting_err_pkg.build_message
61682                                     (p_appli_s_name            => 'XLA'
61683                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61684                                     ,p_token_1                 => 'LINE_NUMBER'
61685                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61686                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61687                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61688                                                                              l_component_type
61689                                                                             ,l_component_code
61690                                                                             ,l_component_type_code
61691                                                                             ,l_component_appl_id
61692                                                                             ,l_amb_context_code
61693                                                                             ,l_entity_code
61694                                                                             ,l_event_class_code
61695                                                                            )
61696                                     ,p_token_3                 => 'OWNER'
61697                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61698                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61699                                                                           ,p_lookup_code    => l_component_type_code
61700                                                                          )
61701                                     ,p_token_4                 => 'PRODUCT_NAME'
61702                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61703                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61704                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61705                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61706                                     ,p_ae_header_id            =>  NULL
61707                                        );
61708 
61709         IF (C_LEVEL_ERROR>= g_log_level) THEN
61710                  trace
61711                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61712                       ,p_level    => C_LEVEL_ERROR
61713                       ,p_module   => l_log_module);
61714         END IF;
61715       END IF;
61716    END IF;
61717    --
61718    --
61719    ------------------------------------------------------------------------------------------------
61720    -- 4219869 Business Flow
61721    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61722    -- Prior Entry.  Currently, the following code is always generated.
61723    ------------------------------------------------------------------------------------------------
61724    XLA_AE_LINES_PKG.ValidateCurrentLine;
61725 
61726    ------------------------------------------------------------------------------------
61727    -- 4219869 Business Flow
61728    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61729    ------------------------------------------------------------------------------------
61730    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61731 
61732    ----------------------------------------------------------------------------------
61733    -- 4219869 Business Flow
61734    -- Update journal entry status -- Need to generate this within IF <condition>
61735    ----------------------------------------------------------------------------------
61739          );
61736    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61737          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61738          ,p_balance_type_code => l_balance_type_code
61740 
61741    -------------------------------------------------------------------------------------------
61742    -- 4262811 - Generate the Accrual Reversal lines
61743    -------------------------------------------------------------------------------------------
61744    BEGIN
61745       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61746                               (g_array_event(p_event_id).array_value_num('header_index'));
61747       IF l_acc_rev_flag IS NULL THEN
61748          l_acc_rev_flag := 'N';
61749       END IF;
61750    EXCEPTION
61751       WHEN OTHERS THEN
61752          l_acc_rev_flag := 'N';
61753    END;
61754    --
61755    IF (l_acc_rev_flag = 'Y') THEN
61756 
61757        -- 4645092  ------------------------------------------------------------------------------
61758        -- To allow MPA report to determine if it should generate report process
61759        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61760        ------------------------------------------------------------------------------------------
61761 
61762        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61763        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61764    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61765    -- call ADRs
61766    -- Bug 4922099
61767    --
61768    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61769         (NVL(l_actual_upg_option, 'N') = 'O') OR
61770         (NVL(l_enc_upg_option, 'N') = 'O')
61771       )
61772    THEN
61773    NULL;
61774    --
61775    --
61776    
61777   l_ccid := AcctDerRule_26(
61778            p_application_id           => p_application_id
61779          , p_ae_header_id             => l_ae_header_id 
61780 , p_source_17 => p_source_17
61781          , x_transaction_coa_id       => l_adr_transaction_coa_id
61782          , x_accounting_coa_id        => l_adr_accounting_coa_id
61783          , x_value_type_code          => l_adr_value_type_code
61784          , p_side                     => 'NA'
61785    );
61786 
61787    xla_ae_lines_pkg.set_ccid(
61788     p_code_combination_id          => l_ccid
61789   , p_value_type_code              => l_adr_value_type_code
61790   , p_transaction_coa_id           => l_adr_transaction_coa_id
61791   , p_accounting_coa_id            => l_adr_accounting_coa_id
61792   , p_adr_code                     => 'AP_INVOICE_DIST'
61793   , p_adr_type_code                => 'S'
61794   , p_component_type               => l_component_type
61795   , p_component_code               => l_component_code
61796   , p_component_type_code          => l_component_type_code
61797   , p_component_appl_id            => l_component_appl_id
61798   , p_amb_context_code             => l_amb_context_code
61799   , p_side                         => 'NA'
61800   );
61801 
61802 
61803    --
61804    --
61805    END IF;
61806 
61807        --
61808        -- Update the line information that should be overwritten
61809        --
61810        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61811                                          p_header_num   => 1);
61812        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61813 
61814        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61815 
61816        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61817           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61818        END IF;
61819 
61820       --
61821       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61822       --
61823       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61824           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61825       ELSE
61826           ---------------------------------------------------------------------------------------------------
61827           -- 4262811a Switch Sign
61828           ---------------------------------------------------------------------------------------------------
61829           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61830           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61831                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61832           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61833                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61834           -- 5132302
61835           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61836                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61837 
61838       END IF;
61839 
61840       -- 4955764
61841       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61842       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61843 
61844 
61848       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61845       XLA_AE_LINES_PKG.ValidateCurrentLine;
61846       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61847 
61849                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61850                ,p_balance_type_code => l_balance_type_code);
61851 
61852    END IF;
61853 
61854    -----------------------------------------------------------------------------------------
61855    -- 4262811 Multiperiod Accounting
61856    -----------------------------------------------------------------------------------------
61857      -- No MPA option is assigned.
61858 
61859 
61860 END IF;
61861 END IF;
61862 --
61863 
61864 --
61865 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61866    trace
61867       (p_msg      => 'END of AcctLineType_117'
61868       ,p_level    => C_LEVEL_PROCEDURE
61869       ,p_module   => l_log_module);
61870 END IF;
61871 --
61872 EXCEPTION
61873   WHEN xla_exceptions_pkg.application_exception THEN
61874       RAISE;
61875   WHEN OTHERS THEN
61876        xla_exceptions_pkg.raise_message
61877            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_117');
61878 END AcctLineType_117;
61879 --
61880 
61881 ---------------------------------------
61882 --
61883 -- PRIVATE FUNCTION
61884 --         AcctLineType_118
61885 --
61886 ---------------------------------------
61887 PROCEDURE AcctLineType_118 (
61888   p_application_id        IN NUMBER
61889  ,p_event_id              IN NUMBER
61890  ,p_calculate_acctd_flag  IN VARCHAR2
61891  ,p_calculate_g_l_flag    IN VARCHAR2
61892  ,p_actual_flag           IN OUT VARCHAR2
61893  ,p_balance_type_code     OUT VARCHAR2
61894  ,p_gain_or_loss_ref      OUT VARCHAR2
61895  
61896 --Payment Distribution (Payment Rate) Ledger Amount
61897  , p_source_9            IN NUMBER
61898 --Invoice Distribution Type
61899  , p_source_20            IN VARCHAR2
61900  , p_source_20_meaning    IN VARCHAR2
61901 --When to Account for Payment Option
61902  , p_source_38            IN VARCHAR2
61903 --Payment Distribution Type
61904  , p_source_39            IN VARCHAR2
61905  , p_source_39_meaning    IN VARCHAR2
61906 --Accounting Reversal Indicator
61907  , p_source_40            IN VARCHAR2
61908 --Payment Distribution Amount
61909  , p_source_41            IN NUMBER
61910 --Business Flow Accounts Payable Application Identifier
61911  , p_source_42            IN NUMBER
61912 --Payment Distribution Identifier
61913  , p_source_47            IN NUMBER
61914 --Distribution Link Type
61915  , p_source_48            IN VARCHAR2
61916 --Payment Currency Code
61917  , p_source_49            IN VARCHAR2
61918 --Override Accounted Amount Indicator
61919  , p_source_53            IN VARCHAR2
61920  , p_source_53_meaning    IN VARCHAR2
61921 --Third Party Type
61922  , p_source_56            IN VARCHAR2
61923 --Payment Distribution Reversed Identifier
61924  , p_source_57            IN NUMBER
61925 --Invoice Distribution Tax Line Identifier
61926  , p_source_58            IN NUMBER
61927 --Invoice Distribution Summary Tax Line Identifier
61928  , p_source_59            IN NUMBER
61929 --Business Flow Invoice Distribution Type
61930  , p_source_62            IN VARCHAR2
61931 --Business Flow Invoice Entity Code
61932  , p_source_63            IN VARCHAR2
61933 --Business Flow Invoice Distribution Identifier
61934  , p_source_64            IN NUMBER
61935 --Business Flow Invoice Identifier
61936  , p_source_65            IN NUMBER
61937 --Invoice Type Paid
61938  , p_source_101            IN VARCHAR2
61939  , p_source_101_meaning    IN VARCHAR2
61940 --Purchasing Encumbrance Option
61941  , p_source_102            IN VARCHAR2
61942  , p_source_102_meaning    IN VARCHAR2
61943 --Invoice Encumbered Option
61944  , p_source_104            IN VARCHAR2
61945  , p_source_104_meaning    IN VARCHAR2
61946 )
61947 IS
61948 
61949 l_component_type              VARCHAR2(80);
61950 l_component_code              VARCHAR2(30);
61951 l_component_type_code         VARCHAR2(1);
61952 l_component_appl_id           INTEGER;
61953 l_amb_context_code            VARCHAR2(30);
61954 l_entity_code                 VARCHAR2(30);
61955 l_event_class_code            VARCHAR2(30);
61956 l_ae_header_id                NUMBER;
61957 l_event_type_code             VARCHAR2(30);
61958 l_line_definition_code        VARCHAR2(30);
61959 l_line_definition_owner_code  VARCHAR2(1);
61960 --
61961 -- adr variables
61962 l_segment                     VARCHAR2(30);
61963 l_ccid                        NUMBER;
61964 l_adr_transaction_coa_id      NUMBER;
61965 l_adr_accounting_coa_id       NUMBER;
61966 l_adr_flexfield_segment_code  VARCHAR2(30);
61967 l_adr_flex_value_set_id       NUMBER;
61968 l_adr_value_type_code         VARCHAR2(30);
61969 l_adr_value_combination_id    NUMBER;
61970 l_adr_value_segment_code      VARCHAR2(30);
61971 
61972 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
61973 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
61974 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
61975 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
61976 
61977 -- 4262811 Variables ------------------------------------------------------------------------------------------
61978 l_entered_amt_idx             NUMBER;
61979 l_accted_amt_idx              NUMBER;
61983 l_acc_rev_natural_side_code   VARCHAR2(1);
61980 l_acc_rev_flag                VARCHAR2(1);
61981 l_accrual_line_num            NUMBER;
61982 l_tmp_amt                     NUMBER;
61984 
61985 l_num_entries                 NUMBER;
61986 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
61987 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
61988 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
61989 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
61990 l_recog_line_1                NUMBER;
61991 l_recog_line_2                NUMBER;
61992 
61993 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
61994 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
61995 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
61996 
61997 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61998 
61999 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62000 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62001 
62002 ---------------------------------------------------------------------------------------------------------------
62003 
62004 
62005 --
62006 -- bulk performance
62007 --
62008 l_balance_type_code           VARCHAR2(1);
62009 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62010 l_log_module                  VARCHAR2(240);
62011 
62012 --
62013 -- Upgrade strategy
62014 --
62015 l_actual_upg_option           VARCHAR2(1);
62016 l_enc_upg_option           VARCHAR2(1);
62017 
62018 --
62019 BEGIN
62020 --
62021 IF g_log_enabled THEN
62022       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
62023 END IF;
62024 --
62025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62026 
62027       trace
62028          (p_msg      => 'BEGIN of AcctLineType_118'
62029          ,p_level    => C_LEVEL_PROCEDURE
62030          ,p_module   => l_log_module);
62031 
62032 END IF;
62033 --
62034 l_component_type             := 'AMB_JLT';
62035 l_component_code             := 'AP_ITEM_EXPENSE_CLR_ENC';
62036 l_component_type_code        := 'S';
62037 l_component_appl_id          :=  200;
62038 l_amb_context_code           := 'DEFAULT';
62039 l_entity_code                := 'AP_PAYMENTS';
62040 l_event_class_code           := 'RECONCILED PAYMENTS';
62041 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
62042 l_line_definition_owner_code := 'S';
62043 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
62044 --
62045 l_balance_type_code          := 'E';
62046 l_segment                     := NULL;
62047 l_ccid                        := NULL;
62048 l_adr_transaction_coa_id      := NULL;
62049 l_adr_accounting_coa_id       := NULL;
62050 l_adr_flexfield_segment_code  := NULL;
62051 l_adr_flex_value_set_id       := NULL;
62052 l_adr_value_type_code         := NULL;
62053 l_adr_value_combination_id    := NULL;
62054 l_adr_value_segment_code      := NULL;
62055 
62056 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
62057 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
62058 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62059 l_budgetary_control_flag     := 'N';
62060 
62061 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62062 l_bflow_applied_to_amt       := NULL; -- 5132302
62063 l_entered_amt_idx            := NULL;          -- 4262811
62064 l_accted_amt_idx             := NULL;          -- 4262811
62065 l_acc_rev_flag               := NULL;          -- 4262811
62066 l_accrual_line_num           := NULL;          -- 4262811
62067 l_tmp_amt                    := NULL;          -- 4262811
62068 --
62069  
62070 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62071     l_balance_type_code <> 'B' THEN
62072 IF NVL(p_source_38,'
62073 ') =  'CLEAR_CLEAR' AND 
62074 NVL(p_source_20,'
62075 ') =  'ITEM' AND 
62076 NVL(p_source_101,'
62077 ') <>  'INTEREST' AND 
62078 (NVL(p_source_39,'
62079 ') =  'CASH' OR 
62080 NVL(p_source_39,'
62081 ') =  'DISCOUNT') AND 
62082 NVL(p_source_102,'
62083 ') =  'Y' AND 
62084 NVL(p_source_104,'
62085 ') =  'Y'
62086  THEN 
62087 
62088    --
62089    XLA_AE_LINES_PKG.SetNewLine;
62090 
62091    p_balance_type_code          := l_balance_type_code;
62092    -- set the flag so later we will know whether the gain loss line needs to be created
62093    
62094    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62095      p_actual_flag :='A';
62096    END IF;
62097 
62098    --
62099    -- bulk performance
62100    --
62101    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62102                                       p_header_num   => 0); -- 4262811
62103    --
62104    -- set accounting line options
62105    --
62106    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62107            p_natural_side_code          => 'C'
62108          , p_gain_or_loss_flag          => 'N'
62109          , p_gl_transfer_mode_code      => 'S'
62110          , p_acct_entry_type_code       => 'E'
62111          , p_switch_side_flag           => 'Y'
62112          , p_merge_duplicate_code       => 'A'
62113          );
62114    --
62115    l_acc_rev_natural_side_code := 'D';  -- 4262811
62119    --
62116    -- 
62117    --
62118    -- set accounting line type info
62120    xla_ae_lines_pkg.SetAcctLineType
62121       (p_component_type             => l_component_type
62122       ,p_event_type_code            => l_event_type_code
62123       ,p_line_definition_owner_code => l_line_definition_owner_code
62124       ,p_line_definition_code       => l_line_definition_code
62125       ,p_accounting_line_code       => l_component_code
62126       ,p_accounting_line_type_code  => l_component_type_code
62127       ,p_accounting_line_appl_id    => l_component_appl_id
62128       ,p_amb_context_code           => l_amb_context_code
62129       ,p_entity_code                => l_entity_code
62130       ,p_event_class_code           => l_event_class_code);
62131    --
62132    -- set accounting class
62133    --
62134    xla_ae_lines_pkg.SetAcctClass(
62135            p_accounting_class_code  => 'ITEM EXPENSE'
62136          , p_ae_header_id           => l_ae_header_id
62137          );
62138 
62139    --
62140    -- set rounding class
62141    --
62142    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62143                       'ITEM EXPENSE';
62144 
62145    --
62146    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62147    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62148    --
62149    -- bulk performance
62150    --
62151    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62152 
62153    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62154       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62155 
62156    -- 4955764
62157    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62158       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62159 
62160    -- 4458381 Public Sector Enh
62161    
62162    --
62163    -- set accounting attributes for the line type
62164    --
62165    l_entered_amt_idx := 10;
62166    l_accted_amt_idx  := 12;
62167    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
62168    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62169    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
62170    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
62171    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
62172    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
62173    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
62174    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62175    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
62176    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
62177    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
62178    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
62179    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
62180    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62181    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
62182    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
62183    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
62184    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
62185    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
62186    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
62187    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
62188    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
62189    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
62190    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
62191    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
62192    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
62193    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
62194    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
62195    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
62196    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
62197    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
62198    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
62199    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
62200    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
62201    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
62202    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
62203    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
62204    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
62205    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
62206 
62207    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62208    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62209 
62210    ---------------------------------------------------------------------------------------------------------------
62211    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62212    ---------------------------------------------------------------------------------------------------------------
62213    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62214 
62215    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62219          (p_source_code         => 'LEDGER_CATEGORY_CODE'
62216    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62217 
62218    IF xla_accounting_cache_pkg.GetValueChar
62220          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62221    AND l_bflow_method_code = 'PRIOR_ENTRY'
62222 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62223    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62224          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62225        )
62226    THEN
62227          xla_ae_lines_pkg.BflowUpgEntry
62228            (p_business_method_code    => l_bflow_method_code
62229            ,p_business_class_code     => l_bflow_class_code
62230            ,p_balance_type            => l_balance_type_code);
62231    ELSE
62232       NULL;
62233 XLA_AE_LINES_PKG.business_flow_validation(
62234                                 p_business_method_code     => l_bflow_method_code
62235                                ,p_business_class_code      => l_bflow_class_code
62236                                ,p_inherit_description_flag => l_inherit_desc_flag);
62237    END IF;
62238 
62239    --
62240    -- call analytical criteria
62241    --
62242    -- Inherited Analytical Criteria for business flow method of Prior Entry.
62243    --
62244    -- call description
62245    --
62246    -- No description or it is inherited.
62247    --
62248    -- call ADRs
62249    -- Bug 4922099
62250    --
62251    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62252         (NVL(l_actual_upg_option, 'N') = 'O') OR
62253         (NVL(l_enc_upg_option, 'N') = 'O')
62254       )
62255    THEN
62256    NULL;
62257    --
62258    --
62259    
62260    --
62261    --
62262    END IF;
62263    --
62264    -- Bug 4922099
62265    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62266           (NVL(l_enc_upg_option, 'N') = 'O')
62267         ) AND
62268         (l_bflow_method_code = 'PRIOR_ENTRY')
62269       )
62270    THEN
62271       IF
62272       --
62273       1 = 1
62274       --
62275       THEN
62276       xla_accounting_err_pkg.build_message
62277                                     (p_appli_s_name            => 'XLA'
62278                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62279                                     ,p_token_1                 => 'LINE_NUMBER'
62280                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62281                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62282                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62283                                                                              l_component_type
62284                                                                             ,l_component_code
62285                                                                             ,l_component_type_code
62286                                                                             ,l_component_appl_id
62287                                                                             ,l_amb_context_code
62288                                                                             ,l_entity_code
62289                                                                             ,l_event_class_code
62290                                                                            )
62291                                     ,p_token_3                 => 'OWNER'
62292                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62293                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62294                                                                           ,p_lookup_code    => l_component_type_code
62295                                                                          )
62296                                     ,p_token_4                 => 'PRODUCT_NAME'
62297                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62298                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62299                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62300                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62301                                     ,p_ae_header_id            =>  NULL
62302                                        );
62303 
62304         IF (C_LEVEL_ERROR>= g_log_level) THEN
62305                  trace
62306                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62307                       ,p_level    => C_LEVEL_ERROR
62308                       ,p_module   => l_log_module);
62309         END IF;
62310       END IF;
62311    END IF;
62312    --
62313    --
62314    ------------------------------------------------------------------------------------------------
62315    -- 4219869 Business Flow
62316    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62317    -- Prior Entry.  Currently, the following code is always generated.
62318    ------------------------------------------------------------------------------------------------
62319    -- No ValidateCurrentLine for business flow method of Prior Entry
62320 
62321    ------------------------------------------------------------------------------------
62322    -- 4219869 Business Flow
62326 
62323    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62324    ------------------------------------------------------------------------------------
62325    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62327    ----------------------------------------------------------------------------------
62328    -- 4219869 Business Flow
62329    -- Update journal entry status -- Need to generate this within IF <condition>
62330    ----------------------------------------------------------------------------------
62331    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62332          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62333          ,p_balance_type_code => l_balance_type_code
62334          );
62335 
62336    -------------------------------------------------------------------------------------------
62337    -- 4262811 - Generate the Accrual Reversal lines
62338    -------------------------------------------------------------------------------------------
62339    BEGIN
62340       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62341                               (g_array_event(p_event_id).array_value_num('header_index'));
62342       IF l_acc_rev_flag IS NULL THEN
62343          l_acc_rev_flag := 'N';
62344       END IF;
62345    EXCEPTION
62346       WHEN OTHERS THEN
62347          l_acc_rev_flag := 'N';
62348    END;
62349    --
62350    IF (l_acc_rev_flag = 'Y') THEN
62351 
62352        -- 4645092  ------------------------------------------------------------------------------
62353        -- To allow MPA report to determine if it should generate report process
62354        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62355        ------------------------------------------------------------------------------------------
62356 
62357        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62358        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62359    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62360    -- call ADRs
62361    -- Bug 4922099
62362    --
62363    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62364         (NVL(l_actual_upg_option, 'N') = 'O') OR
62365         (NVL(l_enc_upg_option, 'N') = 'O')
62366       )
62367    THEN
62368    NULL;
62369    --
62370    --
62371    
62372    --
62373    --
62374    END IF;
62375 
62376        --
62377        -- Update the line information that should be overwritten
62378        --
62379        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62380                                          p_header_num   => 1);
62381        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
62382 
62383        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62384 
62385        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
62386           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62387        END IF;
62388 
62389       --
62390       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62391       --
62392       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62393           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
62394       ELSE
62395           ---------------------------------------------------------------------------------------------------
62396           -- 4262811a Switch Sign
62397           ---------------------------------------------------------------------------------------------------
62398           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
62399           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62400                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62401           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62402                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62403           -- 5132302
62404           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62405                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62406 
62407       END IF;
62408 
62409       -- 4955764
62410       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62411       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62412 
62413 
62414       XLA_AE_LINES_PKG.ValidateCurrentLine;
62415       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62416 
62417       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62418                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62419                ,p_balance_type_code => l_balance_type_code);
62420 
62421    END IF;
62422 
62423    -----------------------------------------------------------------------------------------
62424    -- 4262811 Multiperiod Accounting
62425    -----------------------------------------------------------------------------------------
62426      -- No MPA option is assigned.
62427 
62428 
62429 END IF;
62430 END IF;
62431 --
62432 
62433 --
62437       ,p_level    => C_LEVEL_PROCEDURE
62434 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62435    trace
62436       (p_msg      => 'END of AcctLineType_118'
62438       ,p_module   => l_log_module);
62439 END IF;
62440 --
62441 EXCEPTION
62442   WHEN xla_exceptions_pkg.application_exception THEN
62443       RAISE;
62444   WHEN OTHERS THEN
62445        xla_exceptions_pkg.raise_message
62446            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_118');
62447 END AcctLineType_118;
62448 --
62449 
62450 ---------------------------------------
62451 --
62452 -- PRIVATE FUNCTION
62453 --         AcctLineType_119
62454 --
62455 ---------------------------------------
62456 PROCEDURE AcctLineType_119 (
62457   p_application_id        IN NUMBER
62458  ,p_event_id              IN NUMBER
62459  ,p_calculate_acctd_flag  IN VARCHAR2
62460  ,p_calculate_g_l_flag    IN VARCHAR2
62461  ,p_actual_flag           IN OUT VARCHAR2
62462  ,p_balance_type_code     OUT VARCHAR2
62463  ,p_gain_or_loss_ref      OUT VARCHAR2
62464  
62465 --Payment Distribution (Payment Rate) Ledger Amount
62466  , p_source_9            IN NUMBER
62467 --Invoice Distribution Account
62468  , p_source_17            IN NUMBER
62469 --Invoice Distribution Type
62470  , p_source_20            IN VARCHAR2
62471  , p_source_20_meaning    IN VARCHAR2
62472 --When to Account for Payment Option
62473  , p_source_38            IN VARCHAR2
62474 --Payment Distribution Type
62475  , p_source_39            IN VARCHAR2
62476  , p_source_39_meaning    IN VARCHAR2
62477 --Accounting Reversal Indicator
62478  , p_source_40            IN VARCHAR2
62479 --Payment Distribution Amount
62480  , p_source_41            IN NUMBER
62481 --Business Flow Accounts Payable Application Identifier
62482  , p_source_42            IN NUMBER
62483 --Payment Distribution Identifier
62484  , p_source_47            IN NUMBER
62485 --Distribution Link Type
62486  , p_source_48            IN VARCHAR2
62487 --Payment Currency Code
62488  , p_source_49            IN VARCHAR2
62489 --Override Accounted Amount Indicator
62490  , p_source_53            IN VARCHAR2
62491  , p_source_53_meaning    IN VARCHAR2
62492 --Payment Supplier Identifier
62493  , p_source_54            IN NUMBER
62494 --Payment Supplier Site Identifier
62495  , p_source_55            IN NUMBER
62496 --Third Party Type
62497  , p_source_56            IN VARCHAR2
62498 --Payment Distribution Reversed Identifier
62499  , p_source_57            IN NUMBER
62500 --Invoice Distribution Tax Line Identifier
62501  , p_source_58            IN NUMBER
62502 --Invoice Distribution Summary Tax Line Identifier
62503  , p_source_59            IN NUMBER
62504 --Payment Type
62505  , p_source_60            IN VARCHAR2
62506  , p_source_60_meaning    IN VARCHAR2
62507 --Invoice Distribution Amount of the Payment Distribution
62508  , p_source_61            IN NUMBER
62509 --Business Flow Invoice Distribution Type
62510  , p_source_62            IN VARCHAR2
62511 --Business Flow Invoice Entity Code
62512  , p_source_63            IN VARCHAR2
62513 --Business Flow Invoice Distribution Identifier
62514  , p_source_64            IN NUMBER
62515 --Business Flow Invoice Identifier
62516  , p_source_65            IN NUMBER
62517 --Invoice Distribution Tax Distribution Identifier from Tax
62518  , p_source_66            IN NUMBER
62519 --Accrue on Receipt Option
62520  , p_source_100            IN VARCHAR2
62521  , p_source_100_meaning    IN VARCHAR2
62522 --Invoice Type Paid
62523  , p_source_101            IN VARCHAR2
62524  , p_source_101_meaning    IN VARCHAR2
62525 --Payment Exchange Date
62526  , p_source_114            IN DATE
62527 --Payment Exchange Rate
62528  , p_source_115            IN NUMBER
62529 --Payment Exchange Rate Type
62530  , p_source_116            IN VARCHAR2
62531 )
62532 IS
62533 
62534 l_component_type              VARCHAR2(80);
62535 l_component_code              VARCHAR2(30);
62536 l_component_type_code         VARCHAR2(1);
62537 l_component_appl_id           INTEGER;
62538 l_amb_context_code            VARCHAR2(30);
62539 l_entity_code                 VARCHAR2(30);
62540 l_event_class_code            VARCHAR2(30);
62541 l_ae_header_id                NUMBER;
62542 l_event_type_code             VARCHAR2(30);
62543 l_line_definition_code        VARCHAR2(30);
62544 l_line_definition_owner_code  VARCHAR2(1);
62545 --
62546 -- adr variables
62547 l_segment                     VARCHAR2(30);
62548 l_ccid                        NUMBER;
62549 l_adr_transaction_coa_id      NUMBER;
62550 l_adr_accounting_coa_id       NUMBER;
62551 l_adr_flexfield_segment_code  VARCHAR2(30);
62552 l_adr_flex_value_set_id       NUMBER;
62553 l_adr_value_type_code         VARCHAR2(30);
62554 l_adr_value_combination_id    NUMBER;
62555 l_adr_value_segment_code      VARCHAR2(30);
62556 
62557 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62558 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62559 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62560 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62561 
62562 -- 4262811 Variables ------------------------------------------------------------------------------------------
62563 l_entered_amt_idx             NUMBER;
62564 l_accted_amt_idx              NUMBER;
62565 l_acc_rev_flag                VARCHAR2(1);
62569 
62566 l_accrual_line_num            NUMBER;
62567 l_tmp_amt                     NUMBER;
62568 l_acc_rev_natural_side_code   VARCHAR2(1);
62570 l_num_entries                 NUMBER;
62571 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62572 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62573 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62574 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62575 l_recog_line_1                NUMBER;
62576 l_recog_line_2                NUMBER;
62577 
62578 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62579 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62580 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62581 
62582 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62583 
62584 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62585 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62586 
62587 ---------------------------------------------------------------------------------------------------------------
62588 
62589 
62590 --
62591 -- bulk performance
62592 --
62593 l_balance_type_code           VARCHAR2(1);
62594 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62595 l_log_module                  VARCHAR2(240);
62596 
62597 --
62598 -- Upgrade strategy
62599 --
62600 l_actual_upg_option           VARCHAR2(1);
62601 l_enc_upg_option           VARCHAR2(1);
62602 
62603 --
62604 BEGIN
62605 --
62606 IF g_log_enabled THEN
62607       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
62608 END IF;
62609 --
62610 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62611 
62612       trace
62613          (p_msg      => 'BEGIN of AcctLineType_119'
62614          ,p_level    => C_LEVEL_PROCEDURE
62615          ,p_module   => l_log_module);
62616 
62617 END IF;
62618 --
62619 l_component_type             := 'AMB_JLT';
62620 l_component_code             := 'AP_ITEM_EXPENSE_PMT';
62621 l_component_type_code        := 'S';
62622 l_component_appl_id          :=  200;
62623 l_amb_context_code           := 'DEFAULT';
62624 l_entity_code                := 'AP_PAYMENTS';
62625 l_event_class_code           := 'PAYMENTS';
62626 l_event_type_code            := 'PAYMENTS_ALL';
62627 l_line_definition_owner_code := 'S';
62628 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
62629 --
62630 l_balance_type_code          := 'A';
62631 l_segment                     := NULL;
62632 l_ccid                        := NULL;
62633 l_adr_transaction_coa_id      := NULL;
62634 l_adr_accounting_coa_id       := NULL;
62635 l_adr_flexfield_segment_code  := NULL;
62636 l_adr_flex_value_set_id       := NULL;
62637 l_adr_value_type_code         := NULL;
62638 l_adr_value_combination_id    := NULL;
62639 l_adr_value_segment_code      := NULL;
62640 
62641 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
62642 l_bflow_class_code           := '';    -- 4219869 Business Flow
62643 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62644 l_budgetary_control_flag     := 'N';
62645 
62646 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62647 l_bflow_applied_to_amt       := NULL; -- 5132302
62648 l_entered_amt_idx            := NULL;          -- 4262811
62649 l_accted_amt_idx             := NULL;          -- 4262811
62650 l_acc_rev_flag               := NULL;          -- 4262811
62651 l_accrual_line_num           := NULL;          -- 4262811
62652 l_tmp_amt                    := NULL;          -- 4262811
62653 --
62654  
62655 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62656     l_balance_type_code <> 'B' THEN
62657 IF NVL(p_source_38,'
62658 ') <>  'CLEAR_CLEAR' AND 
62659 (NVL(p_source_20,'
62660 ') =  'ITEM' OR 
62661 NVL(p_source_20,'
62662 ') =  'RETROEXPENSE' OR 
62663 NVL(p_source_20,'
62664 ') =  'ERV' AND 
62665 NVL(p_source_100,'
62666 ') <>  'Y' OR 
62667 NVL(p_source_20,'
62668 ') =  'IPV' AND 
62669 NVL(p_source_100,'
62670 ') <>  'Y') AND 
62671 NVL(p_source_101,'
62672 ') <>  'PREPAYMENT' AND 
62673 NVL(p_source_101,'
62674 ') <>  'INTEREST' AND 
62675 (NVL(p_source_39,'
62676 ') =  'CASH' OR 
62677 NVL(p_source_39,'
62678 ') =  'AWT' OR 
62679 NVL(p_source_39,'
62680 ') =  'DISCOUNT') AND 
62681 NVL(p_source_60,'
62682 ') <>  'R'
62683  THEN 
62684 
62685    --
62686    XLA_AE_LINES_PKG.SetNewLine;
62687 
62688    p_balance_type_code          := l_balance_type_code;
62689    -- set the flag so later we will know whether the gain loss line needs to be created
62690    
62691    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62692      p_actual_flag :='A';
62693    END IF;
62694 
62695    --
62696    -- bulk performance
62697    --
62698    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62699                                       p_header_num   => 0); -- 4262811
62700    --
62701    -- set accounting line options
62702    --
62703    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62704            p_natural_side_code          => 'D'
62705          , p_gain_or_loss_flag          => 'N'
62706          , p_gl_transfer_mode_code      => 'S'
62710          );
62707          , p_acct_entry_type_code       => 'A'
62708          , p_switch_side_flag           => 'Y'
62709          , p_merge_duplicate_code       => 'A'
62711    --
62712    l_acc_rev_natural_side_code := 'C';  -- 4262811
62713    -- 
62714    --
62715    -- set accounting line type info
62716    --
62717    xla_ae_lines_pkg.SetAcctLineType
62718       (p_component_type             => l_component_type
62719       ,p_event_type_code            => l_event_type_code
62720       ,p_line_definition_owner_code => l_line_definition_owner_code
62721       ,p_line_definition_code       => l_line_definition_code
62722       ,p_accounting_line_code       => l_component_code
62723       ,p_accounting_line_type_code  => l_component_type_code
62724       ,p_accounting_line_appl_id    => l_component_appl_id
62725       ,p_amb_context_code           => l_amb_context_code
62726       ,p_entity_code                => l_entity_code
62727       ,p_event_class_code           => l_event_class_code);
62728    --
62729    -- set accounting class
62730    --
62731    xla_ae_lines_pkg.SetAcctClass(
62732            p_accounting_class_code  => 'ITEM EXPENSE'
62733          , p_ae_header_id           => l_ae_header_id
62734          );
62735 
62736    --
62737    -- set rounding class
62738    --
62739    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62740                       'ITEM EXPENSE';
62741 
62742    --
62743    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62744    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62745    --
62746    -- bulk performance
62747    --
62748    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62749 
62750    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62751       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62752 
62753    -- 4955764
62754    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62755       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62756 
62757    -- 4458381 Public Sector Enh
62758    
62759    --
62760    -- set accounting attributes for the line type
62761    --
62762    l_entered_amt_idx := 10;
62763    l_accted_amt_idx  := 15;
62764    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
62765    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62766    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
62767    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
62768    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
62769    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
62770    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
62771    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62772    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
62773    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
62774    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
62775    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
62776    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
62777    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62778    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
62779    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
62780    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
62781    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
62782    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
62783    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
62784    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
62785    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
62786    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
62787    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
62788    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
62789    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
62790    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
62791    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
62792    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
62793    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
62794    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
62795    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
62796    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
62797    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
62798    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
62799    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
62800    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
62801    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
62802    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
62803    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
62804    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
62805    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
62806    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
62807    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
62808    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
62809    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
62810    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
62814    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62811    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
62812    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
62813 
62815    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62816 
62817    ---------------------------------------------------------------------------------------------------------------
62818    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62819    ---------------------------------------------------------------------------------------------------------------
62820    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62821 
62822    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62823    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62824 
62825    IF xla_accounting_cache_pkg.GetValueChar
62826          (p_source_code         => 'LEDGER_CATEGORY_CODE'
62827          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62828    AND l_bflow_method_code = 'PRIOR_ENTRY'
62829 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62830    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62831          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62832        )
62833    THEN
62834          xla_ae_lines_pkg.BflowUpgEntry
62835            (p_business_method_code    => l_bflow_method_code
62836            ,p_business_class_code     => l_bflow_class_code
62837            ,p_balance_type            => l_balance_type_code);
62838    ELSE
62839       NULL;
62840 -- No business flow processing for business flow method of NONE.
62841    END IF;
62842 
62843    --
62844    -- call analytical criteria
62845    --
62846    
62847    --
62848    -- call description
62849    --
62850    -- No description or it is inherited.
62851    --
62852    -- call ADRs
62853    -- Bug 4922099
62854    --
62855    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62856         (NVL(l_actual_upg_option, 'N') = 'O') OR
62857         (NVL(l_enc_upg_option, 'N') = 'O')
62858       )
62859    THEN
62860    NULL;
62861    --
62862    --
62863    
62864   l_ccid := AcctDerRule_26(
62865            p_application_id           => p_application_id
62866          , p_ae_header_id             => l_ae_header_id 
62867 , p_source_17 => p_source_17
62868          , x_transaction_coa_id       => l_adr_transaction_coa_id
62869          , x_accounting_coa_id        => l_adr_accounting_coa_id
62870          , x_value_type_code          => l_adr_value_type_code
62871          , p_side                     => 'NA'
62872    );
62873 
62874    xla_ae_lines_pkg.set_ccid(
62875     p_code_combination_id          => l_ccid
62876   , p_value_type_code              => l_adr_value_type_code
62877   , p_transaction_coa_id           => l_adr_transaction_coa_id
62878   , p_accounting_coa_id            => l_adr_accounting_coa_id
62879   , p_adr_code                     => 'AP_INVOICE_DIST'
62880   , p_adr_type_code                => 'S'
62881   , p_component_type               => l_component_type
62882   , p_component_code               => l_component_code
62883   , p_component_type_code          => l_component_type_code
62884   , p_component_appl_id            => l_component_appl_id
62885   , p_amb_context_code             => l_amb_context_code
62886   , p_side                         => 'NA'
62887   );
62888 
62889 
62890    --
62891    --
62892    END IF;
62893    --
62894    -- Bug 4922099
62895    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62896           (NVL(l_enc_upg_option, 'N') = 'O')
62897         ) AND
62898         (l_bflow_method_code = 'PRIOR_ENTRY')
62899       )
62900    THEN
62901       IF
62902       --
62903       1 = 2
62904       --
62905       THEN
62906       xla_accounting_err_pkg.build_message
62907                                     (p_appli_s_name            => 'XLA'
62908                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62909                                     ,p_token_1                 => 'LINE_NUMBER'
62910                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62911                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62912                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62913                                                                              l_component_type
62914                                                                             ,l_component_code
62915                                                                             ,l_component_type_code
62916                                                                             ,l_component_appl_id
62917                                                                             ,l_amb_context_code
62918                                                                             ,l_entity_code
62919                                                                             ,l_event_class_code
62920                                                                            )
62921                                     ,p_token_3                 => 'OWNER'
62922                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62923                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62927                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62924                                                                           ,p_lookup_code    => l_component_type_code
62925                                                                          )
62926                                     ,p_token_4                 => 'PRODUCT_NAME'
62928                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62929                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62930                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62931                                     ,p_ae_header_id            =>  NULL
62932                                        );
62933 
62934         IF (C_LEVEL_ERROR>= g_log_level) THEN
62935                  trace
62936                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62937                       ,p_level    => C_LEVEL_ERROR
62938                       ,p_module   => l_log_module);
62939         END IF;
62940       END IF;
62941    END IF;
62942    --
62943    --
62944    ------------------------------------------------------------------------------------------------
62945    -- 4219869 Business Flow
62946    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62947    -- Prior Entry.  Currently, the following code is always generated.
62948    ------------------------------------------------------------------------------------------------
62949    XLA_AE_LINES_PKG.ValidateCurrentLine;
62950 
62951    ------------------------------------------------------------------------------------
62952    -- 4219869 Business Flow
62953    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62954    ------------------------------------------------------------------------------------
62955    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62956 
62957    ----------------------------------------------------------------------------------
62958    -- 4219869 Business Flow
62959    -- Update journal entry status -- Need to generate this within IF <condition>
62960    ----------------------------------------------------------------------------------
62961    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62962          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62963          ,p_balance_type_code => l_balance_type_code
62964          );
62965 
62966    -------------------------------------------------------------------------------------------
62967    -- 4262811 - Generate the Accrual Reversal lines
62968    -------------------------------------------------------------------------------------------
62969    BEGIN
62970       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62971                               (g_array_event(p_event_id).array_value_num('header_index'));
62972       IF l_acc_rev_flag IS NULL THEN
62973          l_acc_rev_flag := 'N';
62974       END IF;
62975    EXCEPTION
62976       WHEN OTHERS THEN
62977          l_acc_rev_flag := 'N';
62978    END;
62979    --
62980    IF (l_acc_rev_flag = 'Y') THEN
62981 
62982        -- 4645092  ------------------------------------------------------------------------------
62983        -- To allow MPA report to determine if it should generate report process
62984        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62985        ------------------------------------------------------------------------------------------
62986 
62987        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62988        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62989    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62990    -- call ADRs
62991    -- Bug 4922099
62992    --
62993    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62994         (NVL(l_actual_upg_option, 'N') = 'O') OR
62995         (NVL(l_enc_upg_option, 'N') = 'O')
62996       )
62997    THEN
62998    NULL;
62999    --
63000    --
63001    
63002   l_ccid := AcctDerRule_26(
63003            p_application_id           => p_application_id
63004          , p_ae_header_id             => l_ae_header_id 
63005 , p_source_17 => p_source_17
63006          , x_transaction_coa_id       => l_adr_transaction_coa_id
63007          , x_accounting_coa_id        => l_adr_accounting_coa_id
63008          , x_value_type_code          => l_adr_value_type_code
63009          , p_side                     => 'NA'
63010    );
63011 
63012    xla_ae_lines_pkg.set_ccid(
63013     p_code_combination_id          => l_ccid
63014   , p_value_type_code              => l_adr_value_type_code
63015   , p_transaction_coa_id           => l_adr_transaction_coa_id
63016   , p_accounting_coa_id            => l_adr_accounting_coa_id
63017   , p_adr_code                     => 'AP_INVOICE_DIST'
63018   , p_adr_type_code                => 'S'
63019   , p_component_type               => l_component_type
63020   , p_component_code               => l_component_code
63021   , p_component_type_code          => l_component_type_code
63022   , p_component_appl_id            => l_component_appl_id
63023   , p_amb_context_code             => l_amb_context_code
63024   , p_side                         => 'NA'
63025   );
63026 
63027 
63028    --
63029    --
63030    END IF;
63031 
63035        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63032        --
63033        -- Update the line information that should be overwritten
63034        --
63036                                          p_header_num   => 1);
63037        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63038 
63039        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63040 
63041        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63042           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63043        END IF;
63044 
63045       --
63046       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63047       --
63048       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63049           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63050       ELSE
63051           ---------------------------------------------------------------------------------------------------
63052           -- 4262811a Switch Sign
63053           ---------------------------------------------------------------------------------------------------
63054           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63055           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63056                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63057           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63058                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63059           -- 5132302
63060           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63061                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63062 
63063       END IF;
63064 
63065       -- 4955764
63066       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63067       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63068 
63069 
63070       XLA_AE_LINES_PKG.ValidateCurrentLine;
63071       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63072 
63073       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63074                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63075                ,p_balance_type_code => l_balance_type_code);
63076 
63077    END IF;
63078 
63079    -----------------------------------------------------------------------------------------
63080    -- 4262811 Multiperiod Accounting
63081    -----------------------------------------------------------------------------------------
63082      -- No MPA option is assigned.
63083 
63084 
63085 END IF;
63086 END IF;
63087 --
63088 
63089 --
63090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63091    trace
63092       (p_msg      => 'END of AcctLineType_119'
63093       ,p_level    => C_LEVEL_PROCEDURE
63094       ,p_module   => l_log_module);
63095 END IF;
63096 --
63097 EXCEPTION
63098   WHEN xla_exceptions_pkg.application_exception THEN
63099       RAISE;
63100   WHEN OTHERS THEN
63101        xla_exceptions_pkg.raise_message
63102            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_119');
63103 END AcctLineType_119;
63104 --
63105 
63106 ---------------------------------------
63107 --
63108 -- PRIVATE FUNCTION
63109 --         AcctLineType_120
63110 --
63111 ---------------------------------------
63112 PROCEDURE AcctLineType_120 (
63113   p_application_id        IN NUMBER
63114  ,p_event_id              IN NUMBER
63115  ,p_calculate_acctd_flag  IN VARCHAR2
63116  ,p_calculate_g_l_flag    IN VARCHAR2
63117  ,p_actual_flag           IN OUT VARCHAR2
63118  ,p_balance_type_code     OUT VARCHAR2
63119  ,p_gain_or_loss_ref      OUT VARCHAR2
63120  
63121 --Payment Distribution (Payment Rate) Ledger Amount
63122  , p_source_9            IN NUMBER
63123 --Invoice Distribution Type
63124  , p_source_20            IN VARCHAR2
63125  , p_source_20_meaning    IN VARCHAR2
63126 --When to Account for Payment Option
63127  , p_source_38            IN VARCHAR2
63128 --Payment Distribution Type
63129  , p_source_39            IN VARCHAR2
63130  , p_source_39_meaning    IN VARCHAR2
63131 --Accounting Reversal Indicator
63132  , p_source_40            IN VARCHAR2
63133 --Payment Distribution Amount
63134  , p_source_41            IN NUMBER
63135 --Business Flow Accounts Payable Application Identifier
63136  , p_source_42            IN NUMBER
63137 --Payment Distribution Identifier
63138  , p_source_47            IN NUMBER
63139 --Distribution Link Type
63140  , p_source_48            IN VARCHAR2
63141 --Payment Currency Code
63142  , p_source_49            IN VARCHAR2
63143 --Override Accounted Amount Indicator
63144  , p_source_53            IN VARCHAR2
63145  , p_source_53_meaning    IN VARCHAR2
63146 --Third Party Type
63147  , p_source_56            IN VARCHAR2
63148 --Payment Distribution Reversed Identifier
63149  , p_source_57            IN NUMBER
63150 --Invoice Distribution Tax Line Identifier
63151  , p_source_58            IN NUMBER
63155  , p_source_60            IN VARCHAR2
63152 --Invoice Distribution Summary Tax Line Identifier
63153  , p_source_59            IN NUMBER
63154 --Payment Type
63156  , p_source_60_meaning    IN VARCHAR2
63157 --Invoice Distribution Amount of the Payment Distribution
63158  , p_source_61            IN NUMBER
63159 --Business Flow Invoice Distribution Type
63160  , p_source_62            IN VARCHAR2
63161 --Business Flow Invoice Entity Code
63162  , p_source_63            IN VARCHAR2
63163 --Business Flow Invoice Distribution Identifier
63164  , p_source_64            IN NUMBER
63165 --Business Flow Invoice Identifier
63166  , p_source_65            IN NUMBER
63167 --Invoice Distribution Tax Distribution Identifier from Tax
63168  , p_source_66            IN NUMBER
63169 --Invoice Type Paid
63170  , p_source_101            IN VARCHAR2
63171  , p_source_101_meaning    IN VARCHAR2
63172 --Purchasing Encumbrance Option
63173  , p_source_102            IN VARCHAR2
63174  , p_source_102_meaning    IN VARCHAR2
63175 --Invoice Encumbered Option
63176  , p_source_104            IN VARCHAR2
63177  , p_source_104_meaning    IN VARCHAR2
63178 )
63179 IS
63180 
63181 l_component_type              VARCHAR2(80);
63182 l_component_code              VARCHAR2(30);
63183 l_component_type_code         VARCHAR2(1);
63184 l_component_appl_id           INTEGER;
63185 l_amb_context_code            VARCHAR2(30);
63186 l_entity_code                 VARCHAR2(30);
63187 l_event_class_code            VARCHAR2(30);
63188 l_ae_header_id                NUMBER;
63189 l_event_type_code             VARCHAR2(30);
63190 l_line_definition_code        VARCHAR2(30);
63191 l_line_definition_owner_code  VARCHAR2(1);
63192 --
63193 -- adr variables
63194 l_segment                     VARCHAR2(30);
63195 l_ccid                        NUMBER;
63196 l_adr_transaction_coa_id      NUMBER;
63197 l_adr_accounting_coa_id       NUMBER;
63198 l_adr_flexfield_segment_code  VARCHAR2(30);
63199 l_adr_flex_value_set_id       NUMBER;
63200 l_adr_value_type_code         VARCHAR2(30);
63201 l_adr_value_combination_id    NUMBER;
63202 l_adr_value_segment_code      VARCHAR2(30);
63203 
63204 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63205 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63206 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63207 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63208 
63209 -- 4262811 Variables ------------------------------------------------------------------------------------------
63210 l_entered_amt_idx             NUMBER;
63211 l_accted_amt_idx              NUMBER;
63212 l_acc_rev_flag                VARCHAR2(1);
63213 l_accrual_line_num            NUMBER;
63214 l_tmp_amt                     NUMBER;
63215 l_acc_rev_natural_side_code   VARCHAR2(1);
63216 
63217 l_num_entries                 NUMBER;
63218 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63219 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63220 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63221 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63222 l_recog_line_1                NUMBER;
63223 l_recog_line_2                NUMBER;
63224 
63225 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63226 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63227 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63228 
63229 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63230 
63231 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63232 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63233 
63234 ---------------------------------------------------------------------------------------------------------------
63235 
63236 
63237 --
63238 -- bulk performance
63239 --
63240 l_balance_type_code           VARCHAR2(1);
63241 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63242 l_log_module                  VARCHAR2(240);
63243 
63244 --
63245 -- Upgrade strategy
63246 --
63247 l_actual_upg_option           VARCHAR2(1);
63248 l_enc_upg_option           VARCHAR2(1);
63249 
63250 --
63251 BEGIN
63252 --
63253 IF g_log_enabled THEN
63254       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
63255 END IF;
63256 --
63257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63258 
63259       trace
63260          (p_msg      => 'BEGIN of AcctLineType_120'
63261          ,p_level    => C_LEVEL_PROCEDURE
63262          ,p_module   => l_log_module);
63263 
63264 END IF;
63265 --
63266 l_component_type             := 'AMB_JLT';
63267 l_component_code             := 'AP_ITEM_EXPENSE_PMT_ENC';
63268 l_component_type_code        := 'S';
63269 l_component_appl_id          :=  200;
63270 l_amb_context_code           := 'DEFAULT';
63271 l_entity_code                := 'AP_PAYMENTS';
63272 l_event_class_code           := 'PAYMENTS';
63273 l_event_type_code            := 'PAYMENTS_ALL';
63274 l_line_definition_owner_code := 'S';
63275 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
63276 --
63277 l_balance_type_code          := 'E';
63278 l_segment                     := NULL;
63279 l_ccid                        := NULL;
63280 l_adr_transaction_coa_id      := NULL;
63284 l_adr_value_type_code         := NULL;
63281 l_adr_accounting_coa_id       := NULL;
63282 l_adr_flexfield_segment_code  := NULL;
63283 l_adr_flex_value_set_id       := NULL;
63285 l_adr_value_combination_id    := NULL;
63286 l_adr_value_segment_code      := NULL;
63287 
63288 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
63289 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
63290 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63291 l_budgetary_control_flag     := 'N';
63292 
63293 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63294 l_bflow_applied_to_amt       := NULL; -- 5132302
63295 l_entered_amt_idx            := NULL;          -- 4262811
63296 l_accted_amt_idx             := NULL;          -- 4262811
63297 l_acc_rev_flag               := NULL;          -- 4262811
63298 l_accrual_line_num           := NULL;          -- 4262811
63299 l_tmp_amt                    := NULL;          -- 4262811
63300 --
63301  
63302 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63303     l_balance_type_code <> 'B' THEN
63304 IF NVL(p_source_38,'
63305 ') <>  'CLEAR_CLEAR' AND 
63306 NVL(p_source_20,'
63307 ') =  'ITEM' AND 
63308 NVL(p_source_101,'
63309 ') <>  'INTEREST' AND 
63310 (NVL(p_source_39,'
63311 ') =  'CASH' OR 
63312 NVL(p_source_39,'
63313 ') =  'DISCOUNT') AND 
63314 NVL(p_source_60,'
63315 ') <>  'R' AND 
63316 NVL(p_source_102,'
63317 ') =  'Y' AND 
63318 NVL(p_source_104,'
63319 ') =  'Y'
63320  THEN 
63321 
63322    --
63323    XLA_AE_LINES_PKG.SetNewLine;
63324 
63325    p_balance_type_code          := l_balance_type_code;
63326    -- set the flag so later we will know whether the gain loss line needs to be created
63327    
63328    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63329      p_actual_flag :='A';
63330    END IF;
63331 
63332    --
63333    -- bulk performance
63334    --
63335    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63336                                       p_header_num   => 0); -- 4262811
63337    --
63338    -- set accounting line options
63339    --
63340    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63341            p_natural_side_code          => 'C'
63342          , p_gain_or_loss_flag          => 'N'
63343          , p_gl_transfer_mode_code      => 'S'
63344          , p_acct_entry_type_code       => 'E'
63345          , p_switch_side_flag           => 'Y'
63346          , p_merge_duplicate_code       => 'A'
63347          );
63348    --
63349    l_acc_rev_natural_side_code := 'D';  -- 4262811
63350    -- 
63351    --
63352    -- set accounting line type info
63353    --
63354    xla_ae_lines_pkg.SetAcctLineType
63355       (p_component_type             => l_component_type
63356       ,p_event_type_code            => l_event_type_code
63357       ,p_line_definition_owner_code => l_line_definition_owner_code
63358       ,p_line_definition_code       => l_line_definition_code
63359       ,p_accounting_line_code       => l_component_code
63360       ,p_accounting_line_type_code  => l_component_type_code
63361       ,p_accounting_line_appl_id    => l_component_appl_id
63362       ,p_amb_context_code           => l_amb_context_code
63363       ,p_entity_code                => l_entity_code
63364       ,p_event_class_code           => l_event_class_code);
63365    --
63366    -- set accounting class
63367    --
63368    xla_ae_lines_pkg.SetAcctClass(
63369            p_accounting_class_code  => 'ITEM EXPENSE'
63370          , p_ae_header_id           => l_ae_header_id
63371          );
63372 
63373    --
63374    -- set rounding class
63375    --
63376    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63377                       'ITEM EXPENSE';
63378 
63379    --
63380    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63381    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63382    --
63383    -- bulk performance
63384    --
63385    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63386 
63387    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63388       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63389 
63390    -- 4955764
63391    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63392       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63393 
63394    -- 4458381 Public Sector Enh
63395    
63396    --
63397    -- set accounting attributes for the line type
63398    --
63399    l_entered_amt_idx := 10;
63400    l_accted_amt_idx  := 12;
63401    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
63402    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63403    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
63404    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
63405    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
63406    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
63407    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
63408    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63409    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
63413    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
63410    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
63411    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
63412    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
63414    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63415    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
63416    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
63417    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
63418    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
63419    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
63420    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
63421    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
63422    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
63423    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
63424    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
63425    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
63426    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
63427    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
63428    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
63429    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
63430    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
63431    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
63432    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
63433    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
63434    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
63435    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
63436    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
63437    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
63438    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
63439    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
63440 
63441    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63442    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63443 
63444    ---------------------------------------------------------------------------------------------------------------
63445    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63446    ---------------------------------------------------------------------------------------------------------------
63447    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63448 
63449    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63450    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63451 
63452    IF xla_accounting_cache_pkg.GetValueChar
63453          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63454          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63455    AND l_bflow_method_code = 'PRIOR_ENTRY'
63456 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63457    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63458          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63459        )
63460    THEN
63461          xla_ae_lines_pkg.BflowUpgEntry
63462            (p_business_method_code    => l_bflow_method_code
63463            ,p_business_class_code     => l_bflow_class_code
63464            ,p_balance_type            => l_balance_type_code);
63465    ELSE
63466       NULL;
63467 XLA_AE_LINES_PKG.business_flow_validation(
63468                                 p_business_method_code     => l_bflow_method_code
63469                                ,p_business_class_code      => l_bflow_class_code
63470                                ,p_inherit_description_flag => l_inherit_desc_flag);
63471    END IF;
63472 
63473    --
63474    -- call analytical criteria
63475    --
63476    -- Inherited Analytical Criteria for business flow method of Prior Entry.
63477    --
63478    -- call description
63479    --
63480    -- No description or it is inherited.
63481    --
63482    -- call ADRs
63483    -- Bug 4922099
63484    --
63485    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63486         (NVL(l_actual_upg_option, 'N') = 'O') OR
63487         (NVL(l_enc_upg_option, 'N') = 'O')
63488       )
63489    THEN
63490    NULL;
63491    --
63492    --
63493    
63494    --
63495    --
63496    END IF;
63497    --
63498    -- Bug 4922099
63499    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63500           (NVL(l_enc_upg_option, 'N') = 'O')
63501         ) AND
63502         (l_bflow_method_code = 'PRIOR_ENTRY')
63503       )
63504    THEN
63505       IF
63506       --
63507       1 = 1
63508       --
63509       THEN
63510       xla_accounting_err_pkg.build_message
63511                                     (p_appli_s_name            => 'XLA'
63512                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63513                                     ,p_token_1                 => 'LINE_NUMBER'
63514                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63515                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63516                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63520                                                                             ,l_component_appl_id
63517                                                                              l_component_type
63518                                                                             ,l_component_code
63519                                                                             ,l_component_type_code
63521                                                                             ,l_amb_context_code
63522                                                                             ,l_entity_code
63523                                                                             ,l_event_class_code
63524                                                                            )
63525                                     ,p_token_3                 => 'OWNER'
63526                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63527                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63528                                                                           ,p_lookup_code    => l_component_type_code
63529                                                                          )
63530                                     ,p_token_4                 => 'PRODUCT_NAME'
63531                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63532                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63533                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63534                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63535                                     ,p_ae_header_id            =>  NULL
63536                                        );
63537 
63538         IF (C_LEVEL_ERROR>= g_log_level) THEN
63539                  trace
63540                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63541                       ,p_level    => C_LEVEL_ERROR
63542                       ,p_module   => l_log_module);
63543         END IF;
63544       END IF;
63545    END IF;
63546    --
63547    --
63548    ------------------------------------------------------------------------------------------------
63549    -- 4219869 Business Flow
63550    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63551    -- Prior Entry.  Currently, the following code is always generated.
63552    ------------------------------------------------------------------------------------------------
63553    -- No ValidateCurrentLine for business flow method of Prior Entry
63554 
63555    ------------------------------------------------------------------------------------
63556    -- 4219869 Business Flow
63557    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63558    ------------------------------------------------------------------------------------
63559    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63560 
63561    ----------------------------------------------------------------------------------
63562    -- 4219869 Business Flow
63563    -- Update journal entry status -- Need to generate this within IF <condition>
63564    ----------------------------------------------------------------------------------
63565    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63566          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63567          ,p_balance_type_code => l_balance_type_code
63568          );
63569 
63570    -------------------------------------------------------------------------------------------
63571    -- 4262811 - Generate the Accrual Reversal lines
63572    -------------------------------------------------------------------------------------------
63573    BEGIN
63574       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63575                               (g_array_event(p_event_id).array_value_num('header_index'));
63576       IF l_acc_rev_flag IS NULL THEN
63577          l_acc_rev_flag := 'N';
63578       END IF;
63579    EXCEPTION
63580       WHEN OTHERS THEN
63581          l_acc_rev_flag := 'N';
63582    END;
63583    --
63584    IF (l_acc_rev_flag = 'Y') THEN
63585 
63586        -- 4645092  ------------------------------------------------------------------------------
63587        -- To allow MPA report to determine if it should generate report process
63588        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63589        ------------------------------------------------------------------------------------------
63590 
63591        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63592        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63593    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63594    -- call ADRs
63595    -- Bug 4922099
63596    --
63597    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63598         (NVL(l_actual_upg_option, 'N') = 'O') OR
63599         (NVL(l_enc_upg_option, 'N') = 'O')
63600       )
63601    THEN
63602    NULL;
63603    --
63604    --
63605    
63606    --
63607    --
63608    END IF;
63609 
63610        --
63611        -- Update the line information that should be overwritten
63612        --
63613        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63614                                          p_header_num   => 1);
63618 
63615        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63616 
63617        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63619        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63620           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63621        END IF;
63622 
63623       --
63624       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63625       --
63626       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63627           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63628       ELSE
63629           ---------------------------------------------------------------------------------------------------
63630           -- 4262811a Switch Sign
63631           ---------------------------------------------------------------------------------------------------
63632           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63633           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63634                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63635           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63636                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63637           -- 5132302
63638           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63639                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63640 
63641       END IF;
63642 
63643       -- 4955764
63644       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63645       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63646 
63647 
63648       XLA_AE_LINES_PKG.ValidateCurrentLine;
63649       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63650 
63651       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63652                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63653                ,p_balance_type_code => l_balance_type_code);
63654 
63655    END IF;
63656 
63657    -----------------------------------------------------------------------------------------
63658    -- 4262811 Multiperiod Accounting
63659    -----------------------------------------------------------------------------------------
63660      -- No MPA option is assigned.
63661 
63662 
63663 END IF;
63664 END IF;
63665 --
63666 
63667 --
63668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63669    trace
63670       (p_msg      => 'END of AcctLineType_120'
63671       ,p_level    => C_LEVEL_PROCEDURE
63672       ,p_module   => l_log_module);
63673 END IF;
63674 --
63675 EXCEPTION
63676   WHEN xla_exceptions_pkg.application_exception THEN
63677       RAISE;
63678   WHEN OTHERS THEN
63679        xla_exceptions_pkg.raise_message
63680            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_120');
63681 END AcctLineType_120;
63682 --
63683 
63684 ---------------------------------------
63685 --
63686 -- PRIVATE FUNCTION
63687 --         AcctLineType_121
63688 --
63689 ---------------------------------------
63690 PROCEDURE AcctLineType_121 (
63691   p_application_id        IN NUMBER
63692  ,p_event_id              IN NUMBER
63693  ,p_calculate_acctd_flag  IN VARCHAR2
63694  ,p_calculate_g_l_flag    IN VARCHAR2
63695  ,p_actual_flag           IN OUT VARCHAR2
63696  ,p_balance_type_code     OUT VARCHAR2
63697  ,p_gain_or_loss_ref      OUT VARCHAR2
63698  
63699 --Payment Distribution (Payment Rate) Ledger Amount
63700  , p_source_9            IN NUMBER
63701 --Invoice Distribution Account
63702  , p_source_17            IN NUMBER
63703 --Invoice Distribution Type
63704  , p_source_20            IN VARCHAR2
63705  , p_source_20_meaning    IN VARCHAR2
63706 --When to Account for Payment Option
63707  , p_source_38            IN VARCHAR2
63708 --Payment Distribution Type
63709  , p_source_39            IN VARCHAR2
63710  , p_source_39_meaning    IN VARCHAR2
63711 --Accounting Reversal Indicator
63712  , p_source_40            IN VARCHAR2
63713 --Payment Distribution Amount
63714  , p_source_41            IN NUMBER
63715 --Business Flow Accounts Payable Application Identifier
63716  , p_source_42            IN NUMBER
63717 --Payment Distribution Identifier
63718  , p_source_47            IN NUMBER
63719 --Distribution Link Type
63720  , p_source_48            IN VARCHAR2
63721 --Payment Currency Code
63722  , p_source_49            IN VARCHAR2
63723 --Override Accounted Amount Indicator
63724  , p_source_53            IN VARCHAR2
63725  , p_source_53_meaning    IN VARCHAR2
63726 --Payment Supplier Identifier
63727  , p_source_54            IN NUMBER
63728 --Payment Supplier Site Identifier
63729  , p_source_55            IN NUMBER
63730 --Third Party Type
63731  , p_source_56            IN VARCHAR2
63732 --Payment Distribution Reversed Identifier
63733  , p_source_57            IN NUMBER
63734 --Invoice Distribution Tax Line Identifier
63735  , p_source_58            IN NUMBER
63739  , p_source_60            IN VARCHAR2
63736 --Invoice Distribution Summary Tax Line Identifier
63737  , p_source_59            IN NUMBER
63738 --Payment Type
63740  , p_source_60_meaning    IN VARCHAR2
63741 --Business Flow Invoice Distribution Type
63742  , p_source_62            IN VARCHAR2
63743 --Business Flow Invoice Entity Code
63744  , p_source_63            IN VARCHAR2
63745 --Business Flow Invoice Distribution Identifier
63746  , p_source_64            IN NUMBER
63747 --Business Flow Invoice Identifier
63748  , p_source_65            IN NUMBER
63749 --Invoice Distribution Tax Distribution Identifier from Tax
63750  , p_source_66            IN NUMBER
63751 --Accrue on Receipt Option
63752  , p_source_100            IN VARCHAR2
63753  , p_source_100_meaning    IN VARCHAR2
63754 --Payment Exchange Date
63755  , p_source_114            IN DATE
63756 --Payment Exchange Rate
63757  , p_source_115            IN NUMBER
63758 --Payment Exchange Rate Type
63759  , p_source_116            IN VARCHAR2
63760 )
63761 IS
63762 
63763 l_component_type              VARCHAR2(80);
63764 l_component_code              VARCHAR2(30);
63765 l_component_type_code         VARCHAR2(1);
63766 l_component_appl_id           INTEGER;
63767 l_amb_context_code            VARCHAR2(30);
63768 l_entity_code                 VARCHAR2(30);
63769 l_event_class_code            VARCHAR2(30);
63770 l_ae_header_id                NUMBER;
63771 l_event_type_code             VARCHAR2(30);
63772 l_line_definition_code        VARCHAR2(30);
63773 l_line_definition_owner_code  VARCHAR2(1);
63774 --
63775 -- adr variables
63776 l_segment                     VARCHAR2(30);
63777 l_ccid                        NUMBER;
63778 l_adr_transaction_coa_id      NUMBER;
63779 l_adr_accounting_coa_id       NUMBER;
63780 l_adr_flexfield_segment_code  VARCHAR2(30);
63781 l_adr_flex_value_set_id       NUMBER;
63782 l_adr_value_type_code         VARCHAR2(30);
63783 l_adr_value_combination_id    NUMBER;
63784 l_adr_value_segment_code      VARCHAR2(30);
63785 
63786 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63787 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63788 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63789 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63790 
63791 -- 4262811 Variables ------------------------------------------------------------------------------------------
63792 l_entered_amt_idx             NUMBER;
63793 l_accted_amt_idx              NUMBER;
63794 l_acc_rev_flag                VARCHAR2(1);
63795 l_accrual_line_num            NUMBER;
63796 l_tmp_amt                     NUMBER;
63797 l_acc_rev_natural_side_code   VARCHAR2(1);
63798 
63799 l_num_entries                 NUMBER;
63800 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63801 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63802 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63803 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63804 l_recog_line_1                NUMBER;
63805 l_recog_line_2                NUMBER;
63806 
63807 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63808 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63809 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63810 
63811 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63812 
63813 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63814 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63815 
63816 ---------------------------------------------------------------------------------------------------------------
63817 
63818 
63819 --
63820 -- bulk performance
63821 --
63822 l_balance_type_code           VARCHAR2(1);
63823 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63824 l_log_module                  VARCHAR2(240);
63825 
63826 --
63827 -- Upgrade strategy
63828 --
63829 l_actual_upg_option           VARCHAR2(1);
63830 l_enc_upg_option           VARCHAR2(1);
63831 
63832 --
63833 BEGIN
63834 --
63835 IF g_log_enabled THEN
63836       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
63837 END IF;
63838 --
63839 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63840 
63841       trace
63842          (p_msg      => 'BEGIN of AcctLineType_121'
63843          ,p_level    => C_LEVEL_PROCEDURE
63844          ,p_module   => l_log_module);
63845 
63846 END IF;
63847 --
63848 l_component_type             := 'AMB_JLT';
63849 l_component_code             := 'AP_ITEM_EXPENSE_REF';
63850 l_component_type_code        := 'S';
63851 l_component_appl_id          :=  200;
63852 l_amb_context_code           := 'DEFAULT';
63853 l_entity_code                := 'AP_PAYMENTS';
63854 l_event_class_code           := 'REFUNDS';
63855 l_event_type_code            := 'REFUNDS_ALL';
63856 l_line_definition_owner_code := 'S';
63857 l_line_definition_code       := 'CASH_REFUNDS_ALL';
63858 --
63859 l_balance_type_code          := 'A';
63860 l_segment                     := NULL;
63861 l_ccid                        := NULL;
63862 l_adr_transaction_coa_id      := NULL;
63863 l_adr_accounting_coa_id       := NULL;
63864 l_adr_flexfield_segment_code  := NULL;
63865 l_adr_flex_value_set_id       := NULL;
63869 
63866 l_adr_value_type_code         := NULL;
63867 l_adr_value_combination_id    := NULL;
63868 l_adr_value_segment_code      := NULL;
63870 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
63871 l_bflow_class_code           := '';    -- 4219869 Business Flow
63872 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63873 l_budgetary_control_flag     := 'N';
63874 
63875 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63876 l_bflow_applied_to_amt       := NULL; -- 5132302
63877 l_entered_amt_idx            := NULL;          -- 4262811
63878 l_accted_amt_idx             := NULL;          -- 4262811
63879 l_acc_rev_flag               := NULL;          -- 4262811
63880 l_accrual_line_num           := NULL;          -- 4262811
63881 l_tmp_amt                    := NULL;          -- 4262811
63882 --
63883  
63884 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63885     l_balance_type_code <> 'B' THEN
63886 IF NVL(p_source_38,'
63887 ') <>  'CLEAR_CLEAR' AND 
63888 (NVL(p_source_20,'
63889 ') =  'ITEM' OR 
63890 NVL(p_source_20,'
63891 ') =  'RETROEXPENSE' OR 
63892 NVL(p_source_20,'
63893 ') =  'ERV' AND 
63894 NVL(p_source_100,'
63895 ') <>  'Y' OR 
63896 NVL(p_source_20,'
63897 ') =  'IPV' AND 
63898 NVL(p_source_100,'
63899 ') <>  'Y') AND 
63900 (NVL(p_source_39,'
63901 ') =  'CASH' OR 
63902 NVL(p_source_39,'
63903 ') =  'DISCOUNT') AND 
63904 NVL(p_source_60,'
63905 ') =  'R'
63906  THEN 
63907 
63908    --
63909    XLA_AE_LINES_PKG.SetNewLine;
63910 
63911    p_balance_type_code          := l_balance_type_code;
63912    -- set the flag so later we will know whether the gain loss line needs to be created
63913    
63914    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63915      p_actual_flag :='A';
63916    END IF;
63917 
63918    --
63919    -- bulk performance
63920    --
63921    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63922                                       p_header_num   => 0); -- 4262811
63923    --
63924    -- set accounting line options
63925    --
63926    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63927            p_natural_side_code          => 'D'
63928          , p_gain_or_loss_flag          => 'N'
63929          , p_gl_transfer_mode_code      => 'S'
63930          , p_acct_entry_type_code       => 'A'
63931          , p_switch_side_flag           => 'Y'
63932          , p_merge_duplicate_code       => 'A'
63933          );
63934    --
63935    l_acc_rev_natural_side_code := 'C';  -- 4262811
63936    -- 
63937    --
63938    -- set accounting line type info
63939    --
63940    xla_ae_lines_pkg.SetAcctLineType
63941       (p_component_type             => l_component_type
63942       ,p_event_type_code            => l_event_type_code
63943       ,p_line_definition_owner_code => l_line_definition_owner_code
63944       ,p_line_definition_code       => l_line_definition_code
63945       ,p_accounting_line_code       => l_component_code
63946       ,p_accounting_line_type_code  => l_component_type_code
63947       ,p_accounting_line_appl_id    => l_component_appl_id
63948       ,p_amb_context_code           => l_amb_context_code
63949       ,p_entity_code                => l_entity_code
63950       ,p_event_class_code           => l_event_class_code);
63951    --
63952    -- set accounting class
63953    --
63954    xla_ae_lines_pkg.SetAcctClass(
63955            p_accounting_class_code  => 'ITEM EXPENSE'
63956          , p_ae_header_id           => l_ae_header_id
63957          );
63958 
63959    --
63960    -- set rounding class
63961    --
63962    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63963                       'ITEM EXPENSE';
63964 
63965    --
63966    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63967    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63968    --
63969    -- bulk performance
63970    --
63971    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63972 
63973    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63974       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63975 
63976    -- 4955764
63977    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63978       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63979 
63980    -- 4458381 Public Sector Enh
63981    
63982    --
63983    -- set accounting attributes for the line type
63984    --
63985    l_entered_amt_idx := 9;
63986    l_accted_amt_idx  := 14;
63987    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
63988    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63989    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
63990    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
63991    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
63992    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63993    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
63994    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
63995    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
63996    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
64000    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
63997    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
63998    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63999    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
64001    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
64002    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
64003    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
64004    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
64005    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
64006    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
64007    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
64008    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
64009    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
64010    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
64011    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
64012    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
64013    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
64014    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
64015    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
64016    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
64017    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
64018    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
64019    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
64020    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
64021    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
64022    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
64023    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
64024    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
64025    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
64026    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
64027    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
64028    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
64029    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
64030    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
64031    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
64032    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
64033    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
64034 
64035    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64036    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64037 
64038    ---------------------------------------------------------------------------------------------------------------
64039    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64040    ---------------------------------------------------------------------------------------------------------------
64041    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64042 
64043    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64044    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64045 
64046    IF xla_accounting_cache_pkg.GetValueChar
64047          (p_source_code         => 'LEDGER_CATEGORY_CODE'
64048          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64049    AND l_bflow_method_code = 'PRIOR_ENTRY'
64050 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64051    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64052          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64053        )
64054    THEN
64055          xla_ae_lines_pkg.BflowUpgEntry
64056            (p_business_method_code    => l_bflow_method_code
64057            ,p_business_class_code     => l_bflow_class_code
64058            ,p_balance_type            => l_balance_type_code);
64059    ELSE
64060       NULL;
64061 -- No business flow processing for business flow method of NONE.
64062    END IF;
64063 
64064    --
64065    -- call analytical criteria
64066    --
64067    
64068    --
64069    -- call description
64070    --
64071    -- No description or it is inherited.
64072    --
64073    -- call ADRs
64074    -- Bug 4922099
64075    --
64076    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64077         (NVL(l_actual_upg_option, 'N') = 'O') OR
64078         (NVL(l_enc_upg_option, 'N') = 'O')
64079       )
64080    THEN
64081    NULL;
64082    --
64083    --
64084    
64085   l_ccid := AcctDerRule_26(
64086            p_application_id           => p_application_id
64087          , p_ae_header_id             => l_ae_header_id 
64088 , p_source_17 => p_source_17
64089          , x_transaction_coa_id       => l_adr_transaction_coa_id
64090          , x_accounting_coa_id        => l_adr_accounting_coa_id
64091          , x_value_type_code          => l_adr_value_type_code
64092          , p_side                     => 'NA'
64093    );
64094 
64095    xla_ae_lines_pkg.set_ccid(
64096     p_code_combination_id          => l_ccid
64097   , p_value_type_code              => l_adr_value_type_code
64098   , p_transaction_coa_id           => l_adr_transaction_coa_id
64099   , p_accounting_coa_id            => l_adr_accounting_coa_id
64100   , p_adr_code                     => 'AP_INVOICE_DIST'
64101   , p_adr_type_code                => 'S'
64105   , p_component_appl_id            => l_component_appl_id
64102   , p_component_type               => l_component_type
64103   , p_component_code               => l_component_code
64104   , p_component_type_code          => l_component_type_code
64106   , p_amb_context_code             => l_amb_context_code
64107   , p_side                         => 'NA'
64108   );
64109 
64110 
64111    --
64112    --
64113    END IF;
64114    --
64115    -- Bug 4922099
64116    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64117           (NVL(l_enc_upg_option, 'N') = 'O')
64118         ) AND
64119         (l_bflow_method_code = 'PRIOR_ENTRY')
64120       )
64121    THEN
64122       IF
64123       --
64124       1 = 2
64125       --
64126       THEN
64127       xla_accounting_err_pkg.build_message
64128                                     (p_appli_s_name            => 'XLA'
64129                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64130                                     ,p_token_1                 => 'LINE_NUMBER'
64131                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64132                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64133                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64134                                                                              l_component_type
64135                                                                             ,l_component_code
64136                                                                             ,l_component_type_code
64137                                                                             ,l_component_appl_id
64138                                                                             ,l_amb_context_code
64139                                                                             ,l_entity_code
64140                                                                             ,l_event_class_code
64141                                                                            )
64142                                     ,p_token_3                 => 'OWNER'
64143                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64144                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64145                                                                           ,p_lookup_code    => l_component_type_code
64146                                                                          )
64147                                     ,p_token_4                 => 'PRODUCT_NAME'
64148                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64149                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64150                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64151                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64152                                     ,p_ae_header_id            =>  NULL
64153                                        );
64154 
64155         IF (C_LEVEL_ERROR>= g_log_level) THEN
64156                  trace
64157                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64158                       ,p_level    => C_LEVEL_ERROR
64159                       ,p_module   => l_log_module);
64160         END IF;
64161       END IF;
64162    END IF;
64163    --
64164    --
64165    ------------------------------------------------------------------------------------------------
64166    -- 4219869 Business Flow
64167    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64168    -- Prior Entry.  Currently, the following code is always generated.
64169    ------------------------------------------------------------------------------------------------
64170    XLA_AE_LINES_PKG.ValidateCurrentLine;
64171 
64172    ------------------------------------------------------------------------------------
64173    -- 4219869 Business Flow
64174    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64175    ------------------------------------------------------------------------------------
64176    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64177 
64178    ----------------------------------------------------------------------------------
64179    -- 4219869 Business Flow
64180    -- Update journal entry status -- Need to generate this within IF <condition>
64181    ----------------------------------------------------------------------------------
64182    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64183          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64184          ,p_balance_type_code => l_balance_type_code
64185          );
64186 
64187    -------------------------------------------------------------------------------------------
64188    -- 4262811 - Generate the Accrual Reversal lines
64189    -------------------------------------------------------------------------------------------
64190    BEGIN
64191       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64192                               (g_array_event(p_event_id).array_value_num('header_index'));
64193       IF l_acc_rev_flag IS NULL THEN
64194          l_acc_rev_flag := 'N';
64195       END IF;
64196    EXCEPTION
64200    --
64197       WHEN OTHERS THEN
64198          l_acc_rev_flag := 'N';
64199    END;
64201    IF (l_acc_rev_flag = 'Y') THEN
64202 
64203        -- 4645092  ------------------------------------------------------------------------------
64204        -- To allow MPA report to determine if it should generate report process
64205        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64206        ------------------------------------------------------------------------------------------
64207 
64208        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64209        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64210    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64211    -- call ADRs
64212    -- Bug 4922099
64213    --
64214    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64215         (NVL(l_actual_upg_option, 'N') = 'O') OR
64216         (NVL(l_enc_upg_option, 'N') = 'O')
64217       )
64218    THEN
64219    NULL;
64220    --
64221    --
64222    
64223   l_ccid := AcctDerRule_26(
64224            p_application_id           => p_application_id
64225          , p_ae_header_id             => l_ae_header_id 
64226 , p_source_17 => p_source_17
64227          , x_transaction_coa_id       => l_adr_transaction_coa_id
64228          , x_accounting_coa_id        => l_adr_accounting_coa_id
64229          , x_value_type_code          => l_adr_value_type_code
64230          , p_side                     => 'NA'
64231    );
64232 
64233    xla_ae_lines_pkg.set_ccid(
64234     p_code_combination_id          => l_ccid
64235   , p_value_type_code              => l_adr_value_type_code
64236   , p_transaction_coa_id           => l_adr_transaction_coa_id
64237   , p_accounting_coa_id            => l_adr_accounting_coa_id
64238   , p_adr_code                     => 'AP_INVOICE_DIST'
64239   , p_adr_type_code                => 'S'
64240   , p_component_type               => l_component_type
64241   , p_component_code               => l_component_code
64242   , p_component_type_code          => l_component_type_code
64243   , p_component_appl_id            => l_component_appl_id
64244   , p_amb_context_code             => l_amb_context_code
64245   , p_side                         => 'NA'
64246   );
64247 
64248 
64249    --
64250    --
64251    END IF;
64252 
64253        --
64254        -- Update the line information that should be overwritten
64255        --
64256        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64257                                          p_header_num   => 1);
64258        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
64259 
64260        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64261 
64262        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64263           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64264        END IF;
64265 
64266       --
64267       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64268       --
64269       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64270           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64271       ELSE
64272           ---------------------------------------------------------------------------------------------------
64273           -- 4262811a Switch Sign
64274           ---------------------------------------------------------------------------------------------------
64275           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64276           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64277                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64278           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64279                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64280           -- 5132302
64281           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64282                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64283 
64284       END IF;
64285 
64286       -- 4955764
64287       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64288       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64289 
64290 
64291       XLA_AE_LINES_PKG.ValidateCurrentLine;
64292       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64293 
64294       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64295                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64296                ,p_balance_type_code => l_balance_type_code);
64297 
64298    END IF;
64299 
64300    -----------------------------------------------------------------------------------------
64301    -- 4262811 Multiperiod Accounting
64302    -----------------------------------------------------------------------------------------
64303      -- No MPA option is assigned.
64304 
64305 
64306 END IF;
64307 END IF;
64308 --
64309 
64310 --
64314       ,p_level    => C_LEVEL_PROCEDURE
64311 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64312    trace
64313       (p_msg      => 'END of AcctLineType_121'
64315       ,p_module   => l_log_module);
64316 END IF;
64317 --
64318 EXCEPTION
64319   WHEN xla_exceptions_pkg.application_exception THEN
64320       RAISE;
64321   WHEN OTHERS THEN
64322        xla_exceptions_pkg.raise_message
64323            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_121');
64324 END AcctLineType_121;
64325 --
64326 
64327 ---------------------------------------
64328 --
64329 -- PRIVATE FUNCTION
64330 --         AcctLineType_122
64331 --
64332 ---------------------------------------
64333 PROCEDURE AcctLineType_122 (
64334   p_application_id        IN NUMBER
64335  ,p_event_id              IN NUMBER
64336  ,p_calculate_acctd_flag  IN VARCHAR2
64337  ,p_calculate_g_l_flag    IN VARCHAR2
64338  ,p_actual_flag           IN OUT VARCHAR2
64339  ,p_balance_type_code     OUT VARCHAR2
64340  ,p_gain_or_loss_ref      OUT VARCHAR2
64341  
64342 --Payment Distribution (Payment Rate) Ledger Amount
64343  , p_source_9            IN NUMBER
64344 --Invoice Distribution Type
64345  , p_source_20            IN VARCHAR2
64346  , p_source_20_meaning    IN VARCHAR2
64347 --When to Account for Payment Option
64348  , p_source_38            IN VARCHAR2
64349 --Payment Distribution Type
64350  , p_source_39            IN VARCHAR2
64351  , p_source_39_meaning    IN VARCHAR2
64352 --Accounting Reversal Indicator
64353  , p_source_40            IN VARCHAR2
64354 --Payment Distribution Amount
64355  , p_source_41            IN NUMBER
64356 --Business Flow Accounts Payable Application Identifier
64357  , p_source_42            IN NUMBER
64358 --Payment Distribution Identifier
64359  , p_source_47            IN NUMBER
64360 --Distribution Link Type
64361  , p_source_48            IN VARCHAR2
64362 --Payment Currency Code
64363  , p_source_49            IN VARCHAR2
64364 --Override Accounted Amount Indicator
64365  , p_source_53            IN VARCHAR2
64366  , p_source_53_meaning    IN VARCHAR2
64367 --Third Party Type
64368  , p_source_56            IN VARCHAR2
64369 --Payment Distribution Reversed Identifier
64370  , p_source_57            IN NUMBER
64371 --Invoice Distribution Tax Line Identifier
64372  , p_source_58            IN NUMBER
64373 --Invoice Distribution Summary Tax Line Identifier
64374  , p_source_59            IN NUMBER
64375 --Payment Type
64376  , p_source_60            IN VARCHAR2
64377  , p_source_60_meaning    IN VARCHAR2
64378 --Business Flow Invoice Distribution Type
64379  , p_source_62            IN VARCHAR2
64380 --Business Flow Invoice Entity Code
64381  , p_source_63            IN VARCHAR2
64382 --Business Flow Invoice Distribution Identifier
64383  , p_source_64            IN NUMBER
64384 --Business Flow Invoice Identifier
64385  , p_source_65            IN NUMBER
64386 --Invoice Distribution Tax Distribution Identifier from Tax
64387  , p_source_66            IN NUMBER
64388 --Invoice Type Paid
64389  , p_source_101            IN VARCHAR2
64390  , p_source_101_meaning    IN VARCHAR2
64391 --Purchasing Encumbrance Option
64392  , p_source_102            IN VARCHAR2
64393  , p_source_102_meaning    IN VARCHAR2
64394 --Invoice Encumbered Option
64395  , p_source_104            IN VARCHAR2
64396  , p_source_104_meaning    IN VARCHAR2
64397 )
64398 IS
64399 
64400 l_component_type              VARCHAR2(80);
64401 l_component_code              VARCHAR2(30);
64402 l_component_type_code         VARCHAR2(1);
64403 l_component_appl_id           INTEGER;
64404 l_amb_context_code            VARCHAR2(30);
64405 l_entity_code                 VARCHAR2(30);
64406 l_event_class_code            VARCHAR2(30);
64407 l_ae_header_id                NUMBER;
64408 l_event_type_code             VARCHAR2(30);
64409 l_line_definition_code        VARCHAR2(30);
64410 l_line_definition_owner_code  VARCHAR2(1);
64411 --
64412 -- adr variables
64413 l_segment                     VARCHAR2(30);
64414 l_ccid                        NUMBER;
64415 l_adr_transaction_coa_id      NUMBER;
64416 l_adr_accounting_coa_id       NUMBER;
64417 l_adr_flexfield_segment_code  VARCHAR2(30);
64418 l_adr_flex_value_set_id       NUMBER;
64419 l_adr_value_type_code         VARCHAR2(30);
64420 l_adr_value_combination_id    NUMBER;
64421 l_adr_value_segment_code      VARCHAR2(30);
64422 
64423 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
64424 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
64425 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
64426 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
64427 
64428 -- 4262811 Variables ------------------------------------------------------------------------------------------
64429 l_entered_amt_idx             NUMBER;
64430 l_accted_amt_idx              NUMBER;
64431 l_acc_rev_flag                VARCHAR2(1);
64432 l_accrual_line_num            NUMBER;
64433 l_tmp_amt                     NUMBER;
64434 l_acc_rev_natural_side_code   VARCHAR2(1);
64435 
64436 l_num_entries                 NUMBER;
64437 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
64438 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
64439 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
64440 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
64441 l_recog_line_1                NUMBER;
64445 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
64442 l_recog_line_2                NUMBER;
64443 
64444 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
64446 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
64447 
64448 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64449 
64450 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
64451 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
64452 
64453 ---------------------------------------------------------------------------------------------------------------
64454 
64455 
64456 --
64457 -- bulk performance
64458 --
64459 l_balance_type_code           VARCHAR2(1);
64460 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
64461 l_log_module                  VARCHAR2(240);
64462 
64463 --
64464 -- Upgrade strategy
64465 --
64466 l_actual_upg_option           VARCHAR2(1);
64467 l_enc_upg_option           VARCHAR2(1);
64468 
64469 --
64470 BEGIN
64471 --
64472 IF g_log_enabled THEN
64473       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
64474 END IF;
64475 --
64476 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64477 
64478       trace
64479          (p_msg      => 'BEGIN of AcctLineType_122'
64480          ,p_level    => C_LEVEL_PROCEDURE
64481          ,p_module   => l_log_module);
64482 
64483 END IF;
64484 --
64485 l_component_type             := 'AMB_JLT';
64486 l_component_code             := 'AP_ITEM_EXPENSE_REF_ENC';
64487 l_component_type_code        := 'S';
64488 l_component_appl_id          :=  200;
64489 l_amb_context_code           := 'DEFAULT';
64490 l_entity_code                := 'AP_PAYMENTS';
64491 l_event_class_code           := 'REFUNDS';
64492 l_event_type_code            := 'REFUNDS_ALL';
64493 l_line_definition_owner_code := 'S';
64494 l_line_definition_code       := 'ENC_REFUNDS_ALL';
64495 --
64496 l_balance_type_code          := 'E';
64497 l_segment                     := NULL;
64498 l_ccid                        := NULL;
64499 l_adr_transaction_coa_id      := NULL;
64500 l_adr_accounting_coa_id       := NULL;
64501 l_adr_flexfield_segment_code  := NULL;
64502 l_adr_flex_value_set_id       := NULL;
64503 l_adr_value_type_code         := NULL;
64504 l_adr_value_combination_id    := NULL;
64505 l_adr_value_segment_code      := NULL;
64506 
64507 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
64508 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
64509 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
64510 l_budgetary_control_flag     := 'N';
64511 
64512 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
64513 l_bflow_applied_to_amt       := NULL; -- 5132302
64514 l_entered_amt_idx            := NULL;          -- 4262811
64515 l_accted_amt_idx             := NULL;          -- 4262811
64516 l_acc_rev_flag               := NULL;          -- 4262811
64517 l_accrual_line_num           := NULL;          -- 4262811
64518 l_tmp_amt                    := NULL;          -- 4262811
64519 --
64520  
64521 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64522     l_balance_type_code <> 'B' THEN
64523 IF NVL(p_source_38,'
64524 ') <>  'CLEAR_CLEAR' AND 
64525 NVL(p_source_20,'
64526 ') =  'ITEM' AND 
64527 NVL(p_source_101,'
64528 ') =  'INTEREST' AND 
64529 (NVL(p_source_39,'
64530 ') =  'CASH' OR 
64531 NVL(p_source_39,'
64532 ') =  'DISCOUNT') AND 
64533 NVL(p_source_60,'
64534 ') =  'R' AND 
64535 NVL(p_source_102,'
64536 ') =  'Y' AND 
64537 NVL(p_source_104,'
64538 ') =  'Y'
64539  THEN 
64540 
64541    --
64542    XLA_AE_LINES_PKG.SetNewLine;
64543 
64544    p_balance_type_code          := l_balance_type_code;
64545    -- set the flag so later we will know whether the gain loss line needs to be created
64546    
64547    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64548      p_actual_flag :='A';
64549    END IF;
64550 
64551    --
64552    -- bulk performance
64553    --
64554    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64555                                       p_header_num   => 0); -- 4262811
64556    --
64557    -- set accounting line options
64558    --
64559    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64560            p_natural_side_code          => 'D'
64561          , p_gain_or_loss_flag          => 'N'
64562          , p_gl_transfer_mode_code      => 'S'
64563          , p_acct_entry_type_code       => 'E'
64564          , p_switch_side_flag           => 'Y'
64565          , p_merge_duplicate_code       => 'A'
64566          );
64567    --
64568    l_acc_rev_natural_side_code := 'C';  -- 4262811
64569    -- 
64570    --
64571    -- set accounting line type info
64572    --
64573    xla_ae_lines_pkg.SetAcctLineType
64574       (p_component_type             => l_component_type
64575       ,p_event_type_code            => l_event_type_code
64576       ,p_line_definition_owner_code => l_line_definition_owner_code
64577       ,p_line_definition_code       => l_line_definition_code
64578       ,p_accounting_line_code       => l_component_code
64579       ,p_accounting_line_type_code  => l_component_type_code
64580       ,p_accounting_line_appl_id    => l_component_appl_id
64584    --
64581       ,p_amb_context_code           => l_amb_context_code
64582       ,p_entity_code                => l_entity_code
64583       ,p_event_class_code           => l_event_class_code);
64585    -- set accounting class
64586    --
64587    xla_ae_lines_pkg.SetAcctClass(
64588            p_accounting_class_code  => 'ITEM EXPENSE'
64589          , p_ae_header_id           => l_ae_header_id
64590          );
64591 
64592    --
64593    -- set rounding class
64594    --
64595    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64596                       'ITEM EXPENSE';
64597 
64598    --
64599    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64600    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64601    --
64602    -- bulk performance
64603    --
64604    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64605 
64606    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64607       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64608 
64609    -- 4955764
64610    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64611       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64612 
64613    -- 4458381 Public Sector Enh
64614    
64615    --
64616    -- set accounting attributes for the line type
64617    --
64618    l_entered_amt_idx := 9;
64619    l_accted_amt_idx  := 11;
64620    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
64621    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64622    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
64623    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
64624    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
64625    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64626    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
64627    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
64628    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
64629    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
64630    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
64631    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64632    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
64633    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
64634    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
64635    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
64636    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
64637    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
64638    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
64639    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
64640    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
64641    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
64642    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
64643    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
64644    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
64645    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
64646    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
64647    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
64648    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
64649    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
64650    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
64651    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
64652    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
64653    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
64654    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
64655    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
64656    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
64657 
64658    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64659    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64660 
64661    ---------------------------------------------------------------------------------------------------------------
64662    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64663    ---------------------------------------------------------------------------------------------------------------
64664    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64665 
64666    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64667    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64668 
64669    IF xla_accounting_cache_pkg.GetValueChar
64670          (p_source_code         => 'LEDGER_CATEGORY_CODE'
64671          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64672    AND l_bflow_method_code = 'PRIOR_ENTRY'
64673 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64674    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64675          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64676        )
64677    THEN
64678          xla_ae_lines_pkg.BflowUpgEntry
64679            (p_business_method_code    => l_bflow_method_code
64683       NULL;
64680            ,p_business_class_code     => l_bflow_class_code
64681            ,p_balance_type            => l_balance_type_code);
64682    ELSE
64684 XLA_AE_LINES_PKG.business_flow_validation(
64685                                 p_business_method_code     => l_bflow_method_code
64686                                ,p_business_class_code      => l_bflow_class_code
64687                                ,p_inherit_description_flag => l_inherit_desc_flag);
64688    END IF;
64689 
64690    --
64691    -- call analytical criteria
64692    --
64693    -- Inherited Analytical Criteria for business flow method of Prior Entry.
64694    --
64695    -- call description
64696    --
64697    -- No description or it is inherited.
64698    --
64699    -- call ADRs
64700    -- Bug 4922099
64701    --
64702    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64703         (NVL(l_actual_upg_option, 'N') = 'O') OR
64704         (NVL(l_enc_upg_option, 'N') = 'O')
64705       )
64706    THEN
64707    NULL;
64708    --
64709    --
64710    
64711    --
64712    --
64713    END IF;
64714    --
64715    -- Bug 4922099
64716    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64717           (NVL(l_enc_upg_option, 'N') = 'O')
64718         ) AND
64719         (l_bflow_method_code = 'PRIOR_ENTRY')
64720       )
64721    THEN
64722       IF
64723       --
64724       1 = 1
64725       --
64726       THEN
64727       xla_accounting_err_pkg.build_message
64728                                     (p_appli_s_name            => 'XLA'
64729                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64730                                     ,p_token_1                 => 'LINE_NUMBER'
64731                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64732                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64733                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64734                                                                              l_component_type
64735                                                                             ,l_component_code
64736                                                                             ,l_component_type_code
64737                                                                             ,l_component_appl_id
64738                                                                             ,l_amb_context_code
64739                                                                             ,l_entity_code
64740                                                                             ,l_event_class_code
64741                                                                            )
64742                                     ,p_token_3                 => 'OWNER'
64743                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64744                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64745                                                                           ,p_lookup_code    => l_component_type_code
64746                                                                          )
64747                                     ,p_token_4                 => 'PRODUCT_NAME'
64748                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64749                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64750                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64751                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64752                                     ,p_ae_header_id            =>  NULL
64753                                        );
64754 
64755         IF (C_LEVEL_ERROR>= g_log_level) THEN
64756                  trace
64757                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64758                       ,p_level    => C_LEVEL_ERROR
64759                       ,p_module   => l_log_module);
64760         END IF;
64761       END IF;
64762    END IF;
64763    --
64764    --
64765    ------------------------------------------------------------------------------------------------
64766    -- 4219869 Business Flow
64767    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64768    -- Prior Entry.  Currently, the following code is always generated.
64769    ------------------------------------------------------------------------------------------------
64770    -- No ValidateCurrentLine for business flow method of Prior Entry
64771 
64772    ------------------------------------------------------------------------------------
64773    -- 4219869 Business Flow
64774    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64775    ------------------------------------------------------------------------------------
64776    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64777 
64778    ----------------------------------------------------------------------------------
64779    -- 4219869 Business Flow
64780    -- Update journal entry status -- Need to generate this within IF <condition>
64781    ----------------------------------------------------------------------------------
64782    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64786 
64783          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64784          ,p_balance_type_code => l_balance_type_code
64785          );
64787    -------------------------------------------------------------------------------------------
64788    -- 4262811 - Generate the Accrual Reversal lines
64789    -------------------------------------------------------------------------------------------
64790    BEGIN
64791       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64792                               (g_array_event(p_event_id).array_value_num('header_index'));
64793       IF l_acc_rev_flag IS NULL THEN
64794          l_acc_rev_flag := 'N';
64795       END IF;
64796    EXCEPTION
64797       WHEN OTHERS THEN
64798          l_acc_rev_flag := 'N';
64799    END;
64800    --
64801    IF (l_acc_rev_flag = 'Y') THEN
64802 
64803        -- 4645092  ------------------------------------------------------------------------------
64804        -- To allow MPA report to determine if it should generate report process
64805        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64806        ------------------------------------------------------------------------------------------
64807 
64808        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64809        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64810    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64811    -- call ADRs
64812    -- Bug 4922099
64813    --
64814    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64815         (NVL(l_actual_upg_option, 'N') = 'O') OR
64816         (NVL(l_enc_upg_option, 'N') = 'O')
64817       )
64818    THEN
64819    NULL;
64820    --
64821    --
64822    
64823    --
64824    --
64825    END IF;
64826 
64827        --
64828        -- Update the line information that should be overwritten
64829        --
64830        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64831                                          p_header_num   => 1);
64832        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
64833 
64834        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64835 
64836        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64837           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64838        END IF;
64839 
64840       --
64841       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64842       --
64843       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64844           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64845       ELSE
64846           ---------------------------------------------------------------------------------------------------
64847           -- 4262811a Switch Sign
64848           ---------------------------------------------------------------------------------------------------
64849           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64850           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64851                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64852           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64853                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64854           -- 5132302
64855           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64856                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64857 
64858       END IF;
64859 
64860       -- 4955764
64861       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64862       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64863 
64864 
64865       XLA_AE_LINES_PKG.ValidateCurrentLine;
64866       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64867 
64868       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64869                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64870                ,p_balance_type_code => l_balance_type_code);
64871 
64872    END IF;
64873 
64874    -----------------------------------------------------------------------------------------
64875    -- 4262811 Multiperiod Accounting
64876    -----------------------------------------------------------------------------------------
64877      -- No MPA option is assigned.
64878 
64879 
64880 END IF;
64881 END IF;
64882 --
64883 
64884 --
64885 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64886    trace
64887       (p_msg      => 'END of AcctLineType_122'
64888       ,p_level    => C_LEVEL_PROCEDURE
64889       ,p_module   => l_log_module);
64890 END IF;
64891 --
64892 EXCEPTION
64893   WHEN xla_exceptions_pkg.application_exception THEN
64894       RAISE;
64895   WHEN OTHERS THEN
64896        xla_exceptions_pkg.raise_message
64897            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_122');
64898 END AcctLineType_122;
64899 --
64900 
64904 --         AcctLineType_123
64901 ---------------------------------------
64902 --
64903 -- PRIVATE FUNCTION
64905 --
64906 ---------------------------------------
64907 PROCEDURE AcctLineType_123 (
64908   p_application_id        IN NUMBER
64909  ,p_event_id              IN NUMBER
64910  ,p_calculate_acctd_flag  IN VARCHAR2
64911  ,p_calculate_g_l_flag    IN VARCHAR2
64912  ,p_actual_flag           IN OUT VARCHAR2
64913  ,p_balance_type_code     OUT VARCHAR2
64914  ,p_gain_or_loss_ref      OUT VARCHAR2
64915  
64916 --Recipient Invoice Distribution Account
64917  , p_source_36            IN NUMBER
64918 --When to Account for Payment Option
64919  , p_source_38            IN VARCHAR2
64920 --Accounting Reversal Indicator
64921  , p_source_40            IN VARCHAR2
64922 --Business Flow Accounts Payable Application Identifier
64923  , p_source_42            IN NUMBER
64924 --Distribution Link Type
64925  , p_source_48            IN VARCHAR2
64926 --Override Accounted Amount Indicator
64927  , p_source_53            IN VARCHAR2
64928  , p_source_53_meaning    IN VARCHAR2
64929 --Third Party Type
64930  , p_source_56            IN VARCHAR2
64931 --Invoice Distribution Tax Line Identifier
64932  , p_source_58            IN NUMBER
64933 --Invoice Distribution Summary Tax Line Identifier
64934  , p_source_59            IN NUMBER
64935 --Invoice Distribution Tax Distribution Identifier from Tax
64936  , p_source_66            IN NUMBER
64937 --Prepayment Distribution Type
64938  , p_source_67            IN VARCHAR2
64939 --Recipient Invoice Distribution Type
64940  , p_source_68            IN VARCHAR2
64941  , p_source_68_meaning    IN VARCHAR2
64942 --Prepayment Application Distribution Identifier
64943  , p_source_71            IN NUMBER
64944 --Invoice Identifier
64945  , p_source_72            IN NUMBER
64946 --Business Flow Prepayment Invoice Distribution Type
64947  , p_source_73            IN VARCHAR2
64948 --Business Flow Prepayment Invoice Entity Code
64949  , p_source_74            IN VARCHAR2
64950 --Business Flow Prepayment Invoice Distribution Identifier
64951  , p_source_75            IN NUMBER
64952 --Business Flow Prepayment Invoice Identifier
64953  , p_source_76            IN NUMBER
64954 --Upgrade Encumbrance Credit Account Class
64955  , p_source_77            IN VARCHAR2
64956 --Payables Encumbrance Upgrade Credit Account
64957  , p_source_78            IN NUMBER
64958 --Payables Encumbrance Upgrade Credit Amount
64959  , p_source_79            IN NUMBER
64960 --Invoice Currency Code
64961  , p_source_80            IN VARCHAR2
64962 --Payables Encumbrance Upgrade Credit Base Amount
64963  , p_source_81            IN NUMBER
64964 --Upgrade Encumbrance Debit Account Class
64965  , p_source_82            IN VARCHAR2
64966 --Payables Encumbrance Upgrade Debit Account
64967  , p_source_83            IN NUMBER
64968 --Payables Encumbrance Upgrade Debit Amount
64969  , p_source_84            IN NUMBER
64970 --Payables Encumbrance Upgrade Debit Base Amount
64971  , p_source_85            IN NUMBER
64972 --Payables Encumbrance Upgrade Option
64973  , p_source_86            IN VARCHAR2
64974 --Prepayment Distribution Amount
64975  , p_source_87            IN NUMBER
64976 --Prepayment Clearing Currency Code
64977  , p_source_88            IN VARCHAR2
64978 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
64979  , p_source_89            IN NUMBER
64980 --Deferred Accounting End Date
64981  , p_source_90            IN DATE
64982 --Deferred Accounting Option
64983  , p_source_91            IN VARCHAR2
64984 --Deferred Accounting Start Date
64985  , p_source_92            IN DATE
64986 --Invoice Supplier Identifier
64987  , p_source_93            IN NUMBER
64988 --Invoice Supplier Site Identifier
64989  , p_source_94            IN NUMBER
64990 --Identifier of the Prepayment Application Reversed
64991  , p_source_95            IN NUMBER
64992 --Payables Upgrade Credit Encumbrance Type Identifier
64993  , p_source_96            IN NUMBER
64994 --Payables Upgrade Debit Encumbrance Type Identifier
64995  , p_source_97            IN NUMBER
64996 --Accrue on Receipt Option
64997  , p_source_100            IN VARCHAR2
64998  , p_source_100_meaning    IN VARCHAR2
64999 --Prepayment Clearing Exchange Date
65000  , p_source_118            IN DATE
65001 --Prepayment Clearing Exchange Rate
65002  , p_source_119            IN NUMBER
65003 --Prepayment Clearing Exchange Rate Type
65004  , p_source_120            IN VARCHAR2
65005 )
65006 IS
65007 
65008 l_component_type              VARCHAR2(80);
65009 l_component_code              VARCHAR2(30);
65010 l_component_type_code         VARCHAR2(1);
65011 l_component_appl_id           INTEGER;
65012 l_amb_context_code            VARCHAR2(30);
65013 l_entity_code                 VARCHAR2(30);
65014 l_event_class_code            VARCHAR2(30);
65015 l_ae_header_id                NUMBER;
65016 l_event_type_code             VARCHAR2(30);
65017 l_line_definition_code        VARCHAR2(30);
65018 l_line_definition_owner_code  VARCHAR2(1);
65019 --
65020 -- adr variables
65021 l_segment                     VARCHAR2(30);
65022 l_ccid                        NUMBER;
65023 l_adr_transaction_coa_id      NUMBER;
65024 l_adr_accounting_coa_id       NUMBER;
65025 l_adr_flexfield_segment_code  VARCHAR2(30);
65026 l_adr_flex_value_set_id       NUMBER;
65027 l_adr_value_type_code         VARCHAR2(30);
65028 l_adr_value_combination_id    NUMBER;
65032 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
65029 l_adr_value_segment_code      VARCHAR2(30);
65030 
65031 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
65033 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
65034 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
65035 
65036 -- 4262811 Variables ------------------------------------------------------------------------------------------
65037 l_entered_amt_idx             NUMBER;
65038 l_accted_amt_idx              NUMBER;
65039 l_acc_rev_flag                VARCHAR2(1);
65040 l_accrual_line_num            NUMBER;
65041 l_tmp_amt                     NUMBER;
65042 l_acc_rev_natural_side_code   VARCHAR2(1);
65043 
65044 l_num_entries                 NUMBER;
65045 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
65046 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
65047 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
65048 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
65049 l_recog_line_1                NUMBER;
65050 l_recog_line_2                NUMBER;
65051 
65052 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
65053 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
65054 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
65055 
65056 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65057 
65058 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
65059 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
65060 
65061 ---------------------------------------------------------------------------------------------------------------
65062 
65063 
65064 --
65065 -- bulk performance
65066 --
65067 l_balance_type_code           VARCHAR2(1);
65068 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
65069 l_log_module                  VARCHAR2(240);
65070 
65071 --
65072 -- Upgrade strategy
65073 --
65074 l_actual_upg_option           VARCHAR2(1);
65075 l_enc_upg_option           VARCHAR2(1);
65076 
65077 --
65078 BEGIN
65079 --
65080 IF g_log_enabled THEN
65081       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
65082 END IF;
65083 --
65084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65085 
65086       trace
65087          (p_msg      => 'BEGIN of AcctLineType_123'
65088          ,p_level    => C_LEVEL_PROCEDURE
65089          ,p_module   => l_log_module);
65090 
65091 END IF;
65092 --
65093 l_component_type             := 'AMB_JLT';
65094 l_component_code             := 'AP_ITEM_PREPAY_CLR_RATE_APP';
65095 l_component_type_code        := 'S';
65096 l_component_appl_id          :=  200;
65097 l_amb_context_code           := 'DEFAULT';
65098 l_entity_code                := 'AP_INVOICES';
65099 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
65100 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
65101 l_line_definition_owner_code := 'S';
65102 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
65103 --
65104 l_balance_type_code          := 'A';
65105 l_segment                     := NULL;
65106 l_ccid                        := NULL;
65107 l_adr_transaction_coa_id      := NULL;
65108 l_adr_accounting_coa_id       := NULL;
65109 l_adr_flexfield_segment_code  := NULL;
65110 l_adr_flex_value_set_id       := NULL;
65111 l_adr_value_type_code         := NULL;
65112 l_adr_value_combination_id    := NULL;
65113 l_adr_value_segment_code      := NULL;
65114 
65115 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
65116 l_bflow_class_code           := '';    -- 4219869 Business Flow
65117 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
65118 l_budgetary_control_flag     := 'N';
65119 
65120 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
65121 l_bflow_applied_to_amt       := NULL; -- 5132302
65122 l_entered_amt_idx            := NULL;          -- 4262811
65123 l_accted_amt_idx             := NULL;          -- 4262811
65124 l_acc_rev_flag               := NULL;          -- 4262811
65125 l_accrual_line_num           := NULL;          -- 4262811
65126 l_tmp_amt                    := NULL;          -- 4262811
65127 --
65128  
65129 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65130     l_balance_type_code <> 'B' THEN
65131 IF NVL(p_source_38,'
65132 ') =  'CLEAR_CLEAR' AND 
65133 (NVL(p_source_67,'
65134 ') =  'PREPAY APPL' OR 
65135 NVL(p_source_67,'
65136 ') =  'PREPAY APPL NONREC TAX' OR 
65137 NVL(p_source_67,'
65138 ') =  'PREPAY APPL REC TAX') AND 
65139 (NVL(p_source_68,'
65140 ') =  'ITEM' OR 
65141 NVL(p_source_68,'
65142 ') =  'RETROEXPENSE' OR 
65143 NVL(p_source_68,'
65144 ') =  'ERV' AND 
65145 NVL(p_source_100,'
65146 ') <>  'Y' OR 
65147 NVL(p_source_68,'
65148 ') =  'IPV' AND 
65149 NVL(p_source_100,'
65150 ') <>  'Y')
65151  THEN 
65152 
65153    --
65154    XLA_AE_LINES_PKG.SetNewLine;
65155 
65156    p_balance_type_code          := l_balance_type_code;
65157    -- set the flag so later we will know whether the gain loss line needs to be created
65158    
65159    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65160      p_actual_flag :='A';
65161    END IF;
65162 
65163    --
65164    -- bulk performance
65168    --
65165    --
65166    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65167                                       p_header_num   => 0); -- 4262811
65169    -- set accounting line options
65170    --
65171    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65172            p_natural_side_code          => 'C'
65173          , p_gain_or_loss_flag          => 'N'
65174          , p_gl_transfer_mode_code      => 'S'
65175          , p_acct_entry_type_code       => 'A'
65176          , p_switch_side_flag           => 'Y'
65177          , p_merge_duplicate_code       => 'A'
65178          );
65179    --
65180    l_acc_rev_natural_side_code := 'D';  -- 4262811
65181    -- 
65182    --
65183    -- set accounting line type info
65184    --
65185    xla_ae_lines_pkg.SetAcctLineType
65186       (p_component_type             => l_component_type
65187       ,p_event_type_code            => l_event_type_code
65188       ,p_line_definition_owner_code => l_line_definition_owner_code
65189       ,p_line_definition_code       => l_line_definition_code
65190       ,p_accounting_line_code       => l_component_code
65191       ,p_accounting_line_type_code  => l_component_type_code
65192       ,p_accounting_line_appl_id    => l_component_appl_id
65193       ,p_amb_context_code           => l_amb_context_code
65194       ,p_entity_code                => l_entity_code
65195       ,p_event_class_code           => l_event_class_code);
65196    --
65197    -- set accounting class
65198    --
65199    xla_ae_lines_pkg.SetAcctClass(
65200            p_accounting_class_code  => 'ITEM EXPENSE'
65201          , p_ae_header_id           => l_ae_header_id
65202          );
65203 
65204    --
65205    -- set rounding class
65206    --
65207    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65208                       'ITEM EXPENSE';
65209 
65210    --
65211    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65212    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65213    --
65214    -- bulk performance
65215    --
65216    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65217 
65218    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65219       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65220 
65221    -- 4955764
65222    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65223       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65224 
65225    -- 4458381 Public Sector Enh
65226    
65227    --
65228    -- set accounting attributes for the line type
65229    --
65230    l_entered_amt_idx := 25;
65231    l_accted_amt_idx  := 30;
65232    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
65233    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65234    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
65235    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
65236    l_rec_acct_attrs.array_num_value(2)  := 
65237 xla_ae_sources_pkg.GetSystemSourceNum(
65238    p_source_code           => 'XLA_EVENT_APPL_ID'
65239  , p_source_type_code      => 'Y'
65240  , p_source_application_id =>  602
65241 );
65242    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
65243    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
65244    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
65245    l_rec_acct_attrs.array_char_value(4)  := 
65246 xla_ae_sources_pkg.GetSystemSourceChar(
65247    p_source_code           => 'XLA_ENTITY_CODE'
65248  , p_source_type_code      => 'Y'
65249  , p_source_application_id =>  602
65250 );
65251    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
65252    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
65253    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
65254    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
65255    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
65256    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
65257    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65258    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
65259    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
65260    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
65261    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
65262    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
65263    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65264    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
65265    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
65266    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
65267    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
65268    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
65269    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
65270    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
65271    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
65272    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
65273    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
65274    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
65278    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
65275    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
65276    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
65277    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
65279    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
65280    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
65281    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
65282    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
65283    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
65284    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
65285    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
65286    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
65287    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
65288    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
65289    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
65290    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
65291    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
65292    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
65293    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
65294    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
65295    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
65296    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
65297    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
65298    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
65299    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
65300    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
65301    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
65302    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
65303    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
65304    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
65305    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
65306    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
65307    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
65308    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
65309    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
65310    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
65311    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
65312    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
65313    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
65314    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
65315    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
65316    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
65317    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
65318    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
65319    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
65320    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
65321    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
65322    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
65323    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
65324    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
65325    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
65326    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
65327    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
65328    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
65329    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
65330    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
65331 
65332    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65333    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65334 
65335    ---------------------------------------------------------------------------------------------------------------
65336    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65337    ---------------------------------------------------------------------------------------------------------------
65338    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65339 
65340    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65341    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65342 
65343    IF xla_accounting_cache_pkg.GetValueChar
65344          (p_source_code         => 'LEDGER_CATEGORY_CODE'
65345          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65346    AND l_bflow_method_code = 'PRIOR_ENTRY'
65347 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65348    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65349          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65350        )
65351    THEN
65352          xla_ae_lines_pkg.BflowUpgEntry
65353            (p_business_method_code    => l_bflow_method_code
65354            ,p_business_class_code     => l_bflow_class_code
65355            ,p_balance_type            => l_balance_type_code);
65356    ELSE
65357       NULL;
65358 -- No business flow processing for business flow method of NONE.
65359    END IF;
65360 
65361    --
65362    -- call analytical criteria
65363    --
65367    --
65364    
65365    --
65366    -- call description
65368    -- No description or it is inherited.
65369    --
65370    -- call ADRs
65371    -- Bug 4922099
65372    --
65373    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65374         (NVL(l_actual_upg_option, 'N') = 'O') OR
65375         (NVL(l_enc_upg_option, 'N') = 'O')
65376       )
65377    THEN
65378    NULL;
65379    --
65380    --
65381    
65382   l_ccid := AcctDerRule_33(
65383            p_application_id           => p_application_id
65384          , p_ae_header_id             => l_ae_header_id 
65385 , p_source_36 => p_source_36
65386          , x_transaction_coa_id       => l_adr_transaction_coa_id
65387          , x_accounting_coa_id        => l_adr_accounting_coa_id
65388          , x_value_type_code          => l_adr_value_type_code
65389          , p_side                     => 'NA'
65390    );
65391 
65392    xla_ae_lines_pkg.set_ccid(
65393     p_code_combination_id          => l_ccid
65394   , p_value_type_code              => l_adr_value_type_code
65395   , p_transaction_coa_id           => l_adr_transaction_coa_id
65396   , p_accounting_coa_id            => l_adr_accounting_coa_id
65397   , p_adr_code                     => 'AP_RECP_INV_DIST'
65398   , p_adr_type_code                => 'S'
65399   , p_component_type               => l_component_type
65400   , p_component_code               => l_component_code
65401   , p_component_type_code          => l_component_type_code
65402   , p_component_appl_id            => l_component_appl_id
65403   , p_amb_context_code             => l_amb_context_code
65404   , p_side                         => 'NA'
65405   );
65406 
65407 
65408    --
65409    --
65410    END IF;
65411    --
65412    -- Bug 4922099
65413    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65414           (NVL(l_enc_upg_option, 'N') = 'O')
65415         ) AND
65416         (l_bflow_method_code = 'PRIOR_ENTRY')
65417       )
65418    THEN
65419       IF
65420       --
65421       1 = 2
65422       --
65423       THEN
65424       xla_accounting_err_pkg.build_message
65425                                     (p_appli_s_name            => 'XLA'
65426                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65427                                     ,p_token_1                 => 'LINE_NUMBER'
65428                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
65429                                     ,p_token_2                 => 'LINE_TYPE_NAME'
65430                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
65431                                                                              l_component_type
65432                                                                             ,l_component_code
65433                                                                             ,l_component_type_code
65434                                                                             ,l_component_appl_id
65435                                                                             ,l_amb_context_code
65436                                                                             ,l_entity_code
65437                                                                             ,l_event_class_code
65438                                                                            )
65439                                     ,p_token_3                 => 'OWNER'
65440                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
65441                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
65442                                                                           ,p_lookup_code    => l_component_type_code
65443                                                                          )
65444                                     ,p_token_4                 => 'PRODUCT_NAME'
65445                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65446                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65447                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65448                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65449                                     ,p_ae_header_id            =>  NULL
65450                                        );
65451 
65452         IF (C_LEVEL_ERROR>= g_log_level) THEN
65453                  trace
65454                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65455                       ,p_level    => C_LEVEL_ERROR
65456                       ,p_module   => l_log_module);
65457         END IF;
65458       END IF;
65459    END IF;
65460    --
65461    --
65462    ------------------------------------------------------------------------------------------------
65463    -- 4219869 Business Flow
65464    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65465    -- Prior Entry.  Currently, the following code is always generated.
65466    ------------------------------------------------------------------------------------------------
65467    XLA_AE_LINES_PKG.ValidateCurrentLine;
65468 
65469    ------------------------------------------------------------------------------------
65470    -- 4219869 Business Flow
65474 
65471    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65472    ------------------------------------------------------------------------------------
65473    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65475    ----------------------------------------------------------------------------------
65476    -- 4219869 Business Flow
65477    -- Update journal entry status -- Need to generate this within IF <condition>
65478    ----------------------------------------------------------------------------------
65479    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65480          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65481          ,p_balance_type_code => l_balance_type_code
65482          );
65483 
65484    -------------------------------------------------------------------------------------------
65485    -- 4262811 - Generate the Accrual Reversal lines
65486    -------------------------------------------------------------------------------------------
65487    BEGIN
65488       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65489                               (g_array_event(p_event_id).array_value_num('header_index'));
65490       IF l_acc_rev_flag IS NULL THEN
65491          l_acc_rev_flag := 'N';
65492       END IF;
65493    EXCEPTION
65494       WHEN OTHERS THEN
65495          l_acc_rev_flag := 'N';
65496    END;
65497    --
65498    IF (l_acc_rev_flag = 'Y') THEN
65499 
65500        -- 4645092  ------------------------------------------------------------------------------
65501        -- To allow MPA report to determine if it should generate report process
65502        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65503        ------------------------------------------------------------------------------------------
65504 
65505        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65506        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65507    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
65508    -- call ADRs
65509    -- Bug 4922099
65510    --
65511    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65512         (NVL(l_actual_upg_option, 'N') = 'O') OR
65513         (NVL(l_enc_upg_option, 'N') = 'O')
65514       )
65515    THEN
65516    NULL;
65517    --
65518    --
65519    
65520   l_ccid := AcctDerRule_33(
65521            p_application_id           => p_application_id
65522          , p_ae_header_id             => l_ae_header_id 
65523 , p_source_36 => p_source_36
65524          , x_transaction_coa_id       => l_adr_transaction_coa_id
65525          , x_accounting_coa_id        => l_adr_accounting_coa_id
65526          , x_value_type_code          => l_adr_value_type_code
65527          , p_side                     => 'NA'
65528    );
65529 
65530    xla_ae_lines_pkg.set_ccid(
65531     p_code_combination_id          => l_ccid
65532   , p_value_type_code              => l_adr_value_type_code
65533   , p_transaction_coa_id           => l_adr_transaction_coa_id
65534   , p_accounting_coa_id            => l_adr_accounting_coa_id
65535   , p_adr_code                     => 'AP_RECP_INV_DIST'
65536   , p_adr_type_code                => 'S'
65537   , p_component_type               => l_component_type
65538   , p_component_code               => l_component_code
65539   , p_component_type_code          => l_component_type_code
65540   , p_component_appl_id            => l_component_appl_id
65541   , p_amb_context_code             => l_amb_context_code
65542   , p_side                         => 'NA'
65543   );
65544 
65545 
65546    --
65547    --
65548    END IF;
65549 
65550        --
65551        -- Update the line information that should be overwritten
65552        --
65553        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65554                                          p_header_num   => 1);
65555        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
65556 
65557        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65558 
65559        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
65560           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65561        END IF;
65562 
65563       --
65564       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65565       --
65566       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65567           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
65568       ELSE
65569           ---------------------------------------------------------------------------------------------------
65570           -- 4262811a Switch Sign
65571           ---------------------------------------------------------------------------------------------------
65572           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
65573           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65574                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65575           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65576                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65577           -- 5132302
65581       END IF;
65578           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65579                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65580 
65582 
65583       -- 4955764
65584       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65585       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65586 
65587 
65588       XLA_AE_LINES_PKG.ValidateCurrentLine;
65589       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65590 
65591       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65592                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65593                ,p_balance_type_code => l_balance_type_code);
65594 
65595    END IF;
65596 
65597    -----------------------------------------------------------------------------------------
65598    -- 4262811 Multiperiod Accounting
65599    -----------------------------------------------------------------------------------------
65600      -- No MPA option is assigned.
65601 
65602 
65603 END IF;
65604 END IF;
65605 --
65606 
65607 --
65608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65609    trace
65610       (p_msg      => 'END of AcctLineType_123'
65611       ,p_level    => C_LEVEL_PROCEDURE
65612       ,p_module   => l_log_module);
65613 END IF;
65614 --
65615 EXCEPTION
65616   WHEN xla_exceptions_pkg.application_exception THEN
65617       RAISE;
65618   WHEN OTHERS THEN
65619        xla_exceptions_pkg.raise_message
65620            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_123');
65621 END AcctLineType_123;
65622 --
65623 
65624 ---------------------------------------
65625 --
65626 -- PRIVATE FUNCTION
65627 --         AcctLineType_124
65628 --
65629 ---------------------------------------
65630 PROCEDURE AcctLineType_124 (
65631   p_application_id        IN NUMBER
65632  ,p_event_id              IN NUMBER
65633  ,p_calculate_acctd_flag  IN VARCHAR2
65634  ,p_calculate_g_l_flag    IN VARCHAR2
65635  ,p_actual_flag           IN OUT VARCHAR2
65636  ,p_balance_type_code     OUT VARCHAR2
65637  ,p_gain_or_loss_ref      OUT VARCHAR2
65638  
65639 --Recipient Invoice Distribution Account
65640  , p_source_36            IN NUMBER
65641 --When to Account for Payment Option
65642  , p_source_38            IN VARCHAR2
65643 --Accounting Reversal Indicator
65644  , p_source_40            IN VARCHAR2
65645 --Business Flow Accounts Payable Application Identifier
65646  , p_source_42            IN NUMBER
65647 --Distribution Link Type
65648  , p_source_48            IN VARCHAR2
65649 --Override Accounted Amount Indicator
65650  , p_source_53            IN VARCHAR2
65651  , p_source_53_meaning    IN VARCHAR2
65652 --Third Party Type
65653  , p_source_56            IN VARCHAR2
65654 --Invoice Distribution Tax Line Identifier
65655  , p_source_58            IN NUMBER
65656 --Invoice Distribution Summary Tax Line Identifier
65657  , p_source_59            IN NUMBER
65658 --Invoice Distribution Tax Distribution Identifier from Tax
65659  , p_source_66            IN NUMBER
65660 --Prepayment Distribution Type
65661  , p_source_67            IN VARCHAR2
65662 --Recipient Invoice Distribution Type
65663  , p_source_68            IN VARCHAR2
65664  , p_source_68_meaning    IN VARCHAR2
65665 --Prepayment Application Distribution Identifier
65666  , p_source_71            IN NUMBER
65667 --Invoice Identifier
65668  , p_source_72            IN NUMBER
65669 --Business Flow Prepayment Invoice Distribution Type
65670  , p_source_73            IN VARCHAR2
65671 --Business Flow Prepayment Invoice Entity Code
65672  , p_source_74            IN VARCHAR2
65673 --Business Flow Prepayment Invoice Distribution Identifier
65674  , p_source_75            IN NUMBER
65675 --Business Flow Prepayment Invoice Identifier
65676  , p_source_76            IN NUMBER
65677 --Upgrade Encumbrance Credit Account Class
65678  , p_source_77            IN VARCHAR2
65679 --Payables Encumbrance Upgrade Credit Account
65680  , p_source_78            IN NUMBER
65681 --Payables Encumbrance Upgrade Credit Amount
65682  , p_source_79            IN NUMBER
65683 --Invoice Currency Code
65684  , p_source_80            IN VARCHAR2
65685 --Payables Encumbrance Upgrade Credit Base Amount
65686  , p_source_81            IN NUMBER
65687 --Upgrade Encumbrance Debit Account Class
65688  , p_source_82            IN VARCHAR2
65689 --Payables Encumbrance Upgrade Debit Account
65690  , p_source_83            IN NUMBER
65691 --Payables Encumbrance Upgrade Debit Amount
65692  , p_source_84            IN NUMBER
65693 --Payables Encumbrance Upgrade Debit Base Amount
65694  , p_source_85            IN NUMBER
65695 --Payables Encumbrance Upgrade Option
65696  , p_source_86            IN VARCHAR2
65697 --Prepayment Distribution Amount
65698  , p_source_87            IN NUMBER
65699 --Deferred Accounting End Date
65700  , p_source_90            IN DATE
65701 --Deferred Accounting Option
65702  , p_source_91            IN VARCHAR2
65703 --Deferred Accounting Start Date
65704  , p_source_92            IN DATE
65705 --Invoice Supplier Identifier
65706  , p_source_93            IN NUMBER
65707 --Invoice Supplier Site Identifier
65708  , p_source_94            IN NUMBER
65709 --Identifier of the Prepayment Application Reversed
65710  , p_source_95            IN NUMBER
65711 --Payables Upgrade Credit Encumbrance Type Identifier
65715 --Prepayment Payment Currency Code
65712  , p_source_96            IN NUMBER
65713 --Payables Upgrade Debit Encumbrance Type Identifier
65714  , p_source_97            IN NUMBER
65716  , p_source_98            IN VARCHAR2
65717 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
65718  , p_source_99            IN NUMBER
65719 --Accrue on Receipt Option
65720  , p_source_100            IN VARCHAR2
65721  , p_source_100_meaning    IN VARCHAR2
65722 --Prepayment Payment Exchange Date
65723  , p_source_121            IN DATE
65724 --Prepayment Payment Exchange Rate
65725  , p_source_122            IN NUMBER
65726 --Prepayment Payment Exchange Rate Type
65727  , p_source_123            IN VARCHAR2
65728 )
65729 IS
65730 
65731 l_component_type              VARCHAR2(80);
65732 l_component_code              VARCHAR2(30);
65733 l_component_type_code         VARCHAR2(1);
65734 l_component_appl_id           INTEGER;
65735 l_amb_context_code            VARCHAR2(30);
65736 l_entity_code                 VARCHAR2(30);
65737 l_event_class_code            VARCHAR2(30);
65738 l_ae_header_id                NUMBER;
65739 l_event_type_code             VARCHAR2(30);
65740 l_line_definition_code        VARCHAR2(30);
65741 l_line_definition_owner_code  VARCHAR2(1);
65742 --
65743 -- adr variables
65744 l_segment                     VARCHAR2(30);
65745 l_ccid                        NUMBER;
65746 l_adr_transaction_coa_id      NUMBER;
65747 l_adr_accounting_coa_id       NUMBER;
65748 l_adr_flexfield_segment_code  VARCHAR2(30);
65749 l_adr_flex_value_set_id       NUMBER;
65750 l_adr_value_type_code         VARCHAR2(30);
65751 l_adr_value_combination_id    NUMBER;
65752 l_adr_value_segment_code      VARCHAR2(30);
65753 
65754 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
65755 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
65756 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
65757 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
65758 
65759 -- 4262811 Variables ------------------------------------------------------------------------------------------
65760 l_entered_amt_idx             NUMBER;
65761 l_accted_amt_idx              NUMBER;
65762 l_acc_rev_flag                VARCHAR2(1);
65763 l_accrual_line_num            NUMBER;
65764 l_tmp_amt                     NUMBER;
65765 l_acc_rev_natural_side_code   VARCHAR2(1);
65766 
65767 l_num_entries                 NUMBER;
65768 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
65769 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
65770 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
65771 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
65772 l_recog_line_1                NUMBER;
65773 l_recog_line_2                NUMBER;
65774 
65775 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
65776 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
65777 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
65778 
65779 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65780 
65781 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
65782 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
65783 
65784 ---------------------------------------------------------------------------------------------------------------
65785 
65786 
65787 --
65788 -- bulk performance
65789 --
65790 l_balance_type_code           VARCHAR2(1);
65791 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
65792 l_log_module                  VARCHAR2(240);
65793 
65794 --
65795 -- Upgrade strategy
65796 --
65797 l_actual_upg_option           VARCHAR2(1);
65798 l_enc_upg_option           VARCHAR2(1);
65799 
65800 --
65801 BEGIN
65802 --
65803 IF g_log_enabled THEN
65804       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
65805 END IF;
65806 --
65807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65808 
65809       trace
65810          (p_msg      => 'BEGIN of AcctLineType_124'
65811          ,p_level    => C_LEVEL_PROCEDURE
65812          ,p_module   => l_log_module);
65813 
65814 END IF;
65815 --
65816 l_component_type             := 'AMB_JLT';
65817 l_component_code             := 'AP_ITEM_PREPAY_PAY_RATE_APP';
65818 l_component_type_code        := 'S';
65819 l_component_appl_id          :=  200;
65820 l_amb_context_code           := 'DEFAULT';
65821 l_entity_code                := 'AP_INVOICES';
65822 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
65823 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
65824 l_line_definition_owner_code := 'S';
65825 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
65826 --
65827 l_balance_type_code          := 'A';
65828 l_segment                     := NULL;
65829 l_ccid                        := NULL;
65830 l_adr_transaction_coa_id      := NULL;
65831 l_adr_accounting_coa_id       := NULL;
65832 l_adr_flexfield_segment_code  := NULL;
65833 l_adr_flex_value_set_id       := NULL;
65834 l_adr_value_type_code         := NULL;
65835 l_adr_value_combination_id    := NULL;
65836 l_adr_value_segment_code      := NULL;
65837 
65838 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
65842 
65839 l_bflow_class_code           := '';    -- 4219869 Business Flow
65840 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
65841 l_budgetary_control_flag     := 'N';
65843 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
65844 l_bflow_applied_to_amt       := NULL; -- 5132302
65845 l_entered_amt_idx            := NULL;          -- 4262811
65846 l_accted_amt_idx             := NULL;          -- 4262811
65847 l_acc_rev_flag               := NULL;          -- 4262811
65848 l_accrual_line_num           := NULL;          -- 4262811
65849 l_tmp_amt                    := NULL;          -- 4262811
65850 --
65851  
65852 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65853     l_balance_type_code <> 'B' THEN
65854 IF NVL(p_source_38,'
65855 ') <>  'CLEAR_CLEAR' AND 
65856 (NVL(p_source_67,'
65857 ') =  'PREPAY APPL' OR 
65858 NVL(p_source_67,'
65859 ') =  'PREPAY APPL NONREC TAX' OR 
65860 NVL(p_source_67,'
65861 ') =  'PREPAY APPL REC TAX') AND 
65862 (NVL(p_source_68,'
65863 ') =  'ITEM' OR 
65864 NVL(p_source_68,'
65865 ') =  'RETROEXPENSE' OR 
65866 NVL(p_source_68,'
65867 ') =  'ERV' AND 
65868 NVL(p_source_100,'
65869 ') <>  'Y' OR 
65870 NVL(p_source_68,'
65871 ') =  'IPV' AND 
65872 NVL(p_source_100,'
65873 ') <>  'Y')
65874  THEN 
65875 
65876    --
65877    XLA_AE_LINES_PKG.SetNewLine;
65878 
65879    p_balance_type_code          := l_balance_type_code;
65880    -- set the flag so later we will know whether the gain loss line needs to be created
65881    
65882    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65883      p_actual_flag :='A';
65884    END IF;
65885 
65886    --
65887    -- bulk performance
65888    --
65889    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65890                                       p_header_num   => 0); -- 4262811
65891    --
65892    -- set accounting line options
65893    --
65894    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65895            p_natural_side_code          => 'C'
65896          , p_gain_or_loss_flag          => 'N'
65897          , p_gl_transfer_mode_code      => 'S'
65898          , p_acct_entry_type_code       => 'A'
65899          , p_switch_side_flag           => 'Y'
65900          , p_merge_duplicate_code       => 'A'
65901          );
65902    --
65903    l_acc_rev_natural_side_code := 'D';  -- 4262811
65904    -- 
65905    --
65906    -- set accounting line type info
65907    --
65908    xla_ae_lines_pkg.SetAcctLineType
65909       (p_component_type             => l_component_type
65910       ,p_event_type_code            => l_event_type_code
65911       ,p_line_definition_owner_code => l_line_definition_owner_code
65912       ,p_line_definition_code       => l_line_definition_code
65913       ,p_accounting_line_code       => l_component_code
65914       ,p_accounting_line_type_code  => l_component_type_code
65915       ,p_accounting_line_appl_id    => l_component_appl_id
65916       ,p_amb_context_code           => l_amb_context_code
65917       ,p_entity_code                => l_entity_code
65918       ,p_event_class_code           => l_event_class_code);
65919    --
65920    -- set accounting class
65921    --
65922    xla_ae_lines_pkg.SetAcctClass(
65923            p_accounting_class_code  => 'ITEM EXPENSE'
65924          , p_ae_header_id           => l_ae_header_id
65925          );
65926 
65927    --
65928    -- set rounding class
65929    --
65930    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65931                       'ITEM EXPENSE';
65932 
65933    --
65934    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65935    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65936    --
65937    -- bulk performance
65938    --
65939    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65940 
65941    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65942       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65943 
65944    -- 4955764
65945    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65946       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65947 
65948    -- 4458381 Public Sector Enh
65949    
65950    --
65951    -- set accounting attributes for the line type
65952    --
65953    l_entered_amt_idx := 25;
65954    l_accted_amt_idx  := 30;
65955    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
65956    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65957    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
65958    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
65959    l_rec_acct_attrs.array_num_value(2)  := 
65960 xla_ae_sources_pkg.GetSystemSourceNum(
65961    p_source_code           => 'XLA_EVENT_APPL_ID'
65962  , p_source_type_code      => 'Y'
65963  , p_source_application_id =>  602
65964 );
65965    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
65966    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
65967    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
65968    l_rec_acct_attrs.array_char_value(4)  := 
65972  , p_source_application_id =>  602
65969 xla_ae_sources_pkg.GetSystemSourceChar(
65970    p_source_code           => 'XLA_ENTITY_CODE'
65971  , p_source_type_code      => 'Y'
65973 );
65974    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
65975    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
65976    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
65977    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
65978    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
65979    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
65980    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65981    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
65982    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
65983    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
65984    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
65985    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
65986    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65987    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
65988    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
65989    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
65990    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
65991    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
65992    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
65993    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
65994    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
65995    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
65996    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
65997    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
65998    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
65999    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
66000    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
66001    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
66002    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
66003    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
66004    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
66005    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
66006    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
66007    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
66008    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
66009    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
66010    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
66011    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
66012    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
66013    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
66014    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
66015    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
66016    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
66017    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
66018    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
66019    l_rec_acct_attrs.array_date_value(27)  := p_source_121;
66020    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
66021    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
66022    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
66023    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
66024    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
66025    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
66026    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
66027    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
66028    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
66029    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
66030    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
66031    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
66032    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
66033    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
66034    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
66035    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
66036    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
66037    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
66038    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
66039    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
66040    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
66041    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
66042    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
66043    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
66044    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
66045    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
66046    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
66047    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
66048    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
66049    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
66050    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
66051    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
66052    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
66056    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66053    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
66054 
66055    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66057 
66058    ---------------------------------------------------------------------------------------------------------------
66059    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66060    ---------------------------------------------------------------------------------------------------------------
66061    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66062 
66063    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66064    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66065 
66066    IF xla_accounting_cache_pkg.GetValueChar
66067          (p_source_code         => 'LEDGER_CATEGORY_CODE'
66068          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66069    AND l_bflow_method_code = 'PRIOR_ENTRY'
66070 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66071    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66072          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66073        )
66074    THEN
66075          xla_ae_lines_pkg.BflowUpgEntry
66076            (p_business_method_code    => l_bflow_method_code
66077            ,p_business_class_code     => l_bflow_class_code
66078            ,p_balance_type            => l_balance_type_code);
66079    ELSE
66080       NULL;
66081 -- No business flow processing for business flow method of NONE.
66082    END IF;
66083 
66084    --
66085    -- call analytical criteria
66086    --
66087    
66088    --
66089    -- call description
66090    --
66091    -- No description or it is inherited.
66092    --
66093    -- call ADRs
66094    -- Bug 4922099
66095    --
66096    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66097         (NVL(l_actual_upg_option, 'N') = 'O') OR
66098         (NVL(l_enc_upg_option, 'N') = 'O')
66099       )
66100    THEN
66101    NULL;
66102    --
66103    --
66104    
66105   l_ccid := AcctDerRule_33(
66106            p_application_id           => p_application_id
66107          , p_ae_header_id             => l_ae_header_id 
66108 , p_source_36 => p_source_36
66109          , x_transaction_coa_id       => l_adr_transaction_coa_id
66110          , x_accounting_coa_id        => l_adr_accounting_coa_id
66111          , x_value_type_code          => l_adr_value_type_code
66112          , p_side                     => 'NA'
66113    );
66114 
66115    xla_ae_lines_pkg.set_ccid(
66116     p_code_combination_id          => l_ccid
66117   , p_value_type_code              => l_adr_value_type_code
66118   , p_transaction_coa_id           => l_adr_transaction_coa_id
66119   , p_accounting_coa_id            => l_adr_accounting_coa_id
66120   , p_adr_code                     => 'AP_RECP_INV_DIST'
66121   , p_adr_type_code                => 'S'
66122   , p_component_type               => l_component_type
66123   , p_component_code               => l_component_code
66124   , p_component_type_code          => l_component_type_code
66125   , p_component_appl_id            => l_component_appl_id
66126   , p_amb_context_code             => l_amb_context_code
66127   , p_side                         => 'NA'
66128   );
66129 
66130 
66131    --
66132    --
66133    END IF;
66134    --
66135    -- Bug 4922099
66136    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66137           (NVL(l_enc_upg_option, 'N') = 'O')
66138         ) AND
66139         (l_bflow_method_code = 'PRIOR_ENTRY')
66140       )
66141    THEN
66142       IF
66143       --
66144       1 = 2
66145       --
66146       THEN
66147       xla_accounting_err_pkg.build_message
66148                                     (p_appli_s_name            => 'XLA'
66149                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66150                                     ,p_token_1                 => 'LINE_NUMBER'
66151                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
66152                                     ,p_token_2                 => 'LINE_TYPE_NAME'
66153                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
66154                                                                              l_component_type
66155                                                                             ,l_component_code
66156                                                                             ,l_component_type_code
66157                                                                             ,l_component_appl_id
66158                                                                             ,l_amb_context_code
66159                                                                             ,l_entity_code
66160                                                                             ,l_event_class_code
66161                                                                            )
66162                                     ,p_token_3                 => 'OWNER'
66163                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
66167                                     ,p_token_4                 => 'PRODUCT_NAME'
66164                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
66165                                                                           ,p_lookup_code    => l_component_type_code
66166                                                                          )
66168                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66169                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66170                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66171                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66172                                     ,p_ae_header_id            =>  NULL
66173                                        );
66174 
66175         IF (C_LEVEL_ERROR>= g_log_level) THEN
66176                  trace
66177                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66178                       ,p_level    => C_LEVEL_ERROR
66179                       ,p_module   => l_log_module);
66180         END IF;
66181       END IF;
66182    END IF;
66183    --
66184    --
66185    ------------------------------------------------------------------------------------------------
66186    -- 4219869 Business Flow
66187    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66188    -- Prior Entry.  Currently, the following code is always generated.
66189    ------------------------------------------------------------------------------------------------
66190    XLA_AE_LINES_PKG.ValidateCurrentLine;
66191 
66192    ------------------------------------------------------------------------------------
66193    -- 4219869 Business Flow
66194    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66195    ------------------------------------------------------------------------------------
66196    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66197 
66198    ----------------------------------------------------------------------------------
66199    -- 4219869 Business Flow
66200    -- Update journal entry status -- Need to generate this within IF <condition>
66201    ----------------------------------------------------------------------------------
66202    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66203          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66204          ,p_balance_type_code => l_balance_type_code
66205          );
66206 
66207    -------------------------------------------------------------------------------------------
66208    -- 4262811 - Generate the Accrual Reversal lines
66209    -------------------------------------------------------------------------------------------
66210    BEGIN
66211       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66212                               (g_array_event(p_event_id).array_value_num('header_index'));
66213       IF l_acc_rev_flag IS NULL THEN
66214          l_acc_rev_flag := 'N';
66215       END IF;
66216    EXCEPTION
66217       WHEN OTHERS THEN
66218          l_acc_rev_flag := 'N';
66219    END;
66220    --
66221    IF (l_acc_rev_flag = 'Y') THEN
66222 
66223        -- 4645092  ------------------------------------------------------------------------------
66224        -- To allow MPA report to determine if it should generate report process
66225        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66226        ------------------------------------------------------------------------------------------
66227 
66228        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66229        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66230    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
66231    -- call ADRs
66232    -- Bug 4922099
66233    --
66234    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66235         (NVL(l_actual_upg_option, 'N') = 'O') OR
66236         (NVL(l_enc_upg_option, 'N') = 'O')
66237       )
66238    THEN
66239    NULL;
66240    --
66241    --
66242    
66243   l_ccid := AcctDerRule_33(
66244            p_application_id           => p_application_id
66245          , p_ae_header_id             => l_ae_header_id 
66246 , p_source_36 => p_source_36
66247          , x_transaction_coa_id       => l_adr_transaction_coa_id
66248          , x_accounting_coa_id        => l_adr_accounting_coa_id
66249          , x_value_type_code          => l_adr_value_type_code
66250          , p_side                     => 'NA'
66251    );
66252 
66253    xla_ae_lines_pkg.set_ccid(
66254     p_code_combination_id          => l_ccid
66255   , p_value_type_code              => l_adr_value_type_code
66256   , p_transaction_coa_id           => l_adr_transaction_coa_id
66257   , p_accounting_coa_id            => l_adr_accounting_coa_id
66258   , p_adr_code                     => 'AP_RECP_INV_DIST'
66259   , p_adr_type_code                => 'S'
66260   , p_component_type               => l_component_type
66261   , p_component_code               => l_component_code
66262   , p_component_type_code          => l_component_type_code
66263   , p_component_appl_id            => l_component_appl_id
66264   , p_amb_context_code             => l_amb_context_code
66265   , p_side                         => 'NA'
66266   );
66267 
66268 
66269    --
66270    --
66271    END IF;
66272 
66273        --
66277                                          p_header_num   => 1);
66274        -- Update the line information that should be overwritten
66275        --
66276        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66278        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
66279 
66280        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66281 
66282        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
66283           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66284        END IF;
66285 
66286       --
66287       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66288       --
66289       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66290           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
66291       ELSE
66292           ---------------------------------------------------------------------------------------------------
66293           -- 4262811a Switch Sign
66294           ---------------------------------------------------------------------------------------------------
66295           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
66296           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66297                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66298           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66299                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66300           -- 5132302
66301           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66302                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66303 
66304       END IF;
66305 
66306       -- 4955764
66307       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66308       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66309 
66310 
66311       XLA_AE_LINES_PKG.ValidateCurrentLine;
66312       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66313 
66314       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66315                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66316                ,p_balance_type_code => l_balance_type_code);
66317 
66318    END IF;
66319 
66320    -----------------------------------------------------------------------------------------
66321    -- 4262811 Multiperiod Accounting
66322    -----------------------------------------------------------------------------------------
66323      -- No MPA option is assigned.
66324 
66325 
66326 END IF;
66327 END IF;
66328 --
66329 
66330 --
66331 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66332    trace
66333       (p_msg      => 'END of AcctLineType_124'
66334       ,p_level    => C_LEVEL_PROCEDURE
66335       ,p_module   => l_log_module);
66336 END IF;
66337 --
66338 EXCEPTION
66339   WHEN xla_exceptions_pkg.application_exception THEN
66340       RAISE;
66341   WHEN OTHERS THEN
66342        xla_exceptions_pkg.raise_message
66343            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_124');
66344 END AcctLineType_124;
66345 --
66346 
66347 ---------------------------------------
66348 --
66349 -- PRIVATE FUNCTION
66350 --         AcctLineType_125
66351 --
66352 ---------------------------------------
66353 PROCEDURE AcctLineType_125 (
66354   p_application_id        IN NUMBER
66355  ,p_event_id              IN NUMBER
66356  ,p_calculate_acctd_flag  IN VARCHAR2
66357  ,p_calculate_g_l_flag    IN VARCHAR2
66358  ,p_actual_flag           IN OUT VARCHAR2
66359  ,p_balance_type_code     OUT VARCHAR2
66360  ,p_gain_or_loss_ref      OUT VARCHAR2
66361  
66362 --Automatic Offsets Value
66363  , p_source_4            IN VARCHAR2
66364  , p_source_4_meaning    IN VARCHAR2
66365 --Invoice Distribution Account
66366  , p_source_17            IN NUMBER
66367 --Internal Realized Loss Account
66368  , p_source_34            IN NUMBER
66369 --Bank Loss Account
66370  , p_source_35            IN NUMBER
66371 --When to Account for Payment Option
66372  , p_source_38            IN VARCHAR2
66373 --Payment Distribution Type
66374  , p_source_39            IN VARCHAR2
66375  , p_source_39_meaning    IN VARCHAR2
66376 --Accounting Reversal Indicator
66377  , p_source_40            IN VARCHAR2
66378 --Payment Distribution Amount
66379  , p_source_41            IN NUMBER
66380 --Business Flow Accounts Payable Application Identifier
66381  , p_source_42            IN NUMBER
66382 --Business Flow Payment Distribution Type
66383  , p_source_43            IN VARCHAR2
66384 --Business Flow Payment Entity Code
66385  , p_source_44            IN VARCHAR2
66386 --Business Flow Payment Distribution Identifier
66387  , p_source_45            IN NUMBER
66388 --Business Flow Payment Identifier
66389  , p_source_46            IN NUMBER
66390 --Payment Distribution Identifier
66391  , p_source_47            IN NUMBER
66392 --Distribution Link Type
66393  , p_source_48            IN VARCHAR2
66394 --Payment Currency Code
66398  , p_source_53_meaning    IN VARCHAR2
66395  , p_source_49            IN VARCHAR2
66396 --Override Accounted Amount Indicator
66397  , p_source_53            IN VARCHAR2
66399 --Payment Supplier Identifier
66400  , p_source_54            IN NUMBER
66401 --Payment Supplier Site Identifier
66402  , p_source_55            IN NUMBER
66403 --Third Party Type
66404  , p_source_56            IN VARCHAR2
66405 --Payment Distribution Reversed Identifier
66406  , p_source_57            IN NUMBER
66407 --Invoice Distribution Tax Line Identifier
66408  , p_source_58            IN NUMBER
66409 --Invoice Distribution Summary Tax Line Identifier
66410  , p_source_59            IN NUMBER
66411 --Cleared Exchange Date
66412  , p_source_107            IN DATE
66413 --Cleared Exchange Rate
66414  , p_source_108            IN NUMBER
66415 --Cleared Exchange Rate Type
66416  , p_source_109            IN VARCHAR2
66417 --Payment Maturity Date
66418  , p_source_111            IN DATE
66419 --Gain or Loss Indicator between Maturity and Clearing
66420  , p_source_129            IN VARCHAR2
66421 --Maturity/Clearing Ledger Amount Difference
66422  , p_source_130            IN NUMBER
66423 )
66424 IS
66425 
66426 l_component_type              VARCHAR2(80);
66427 l_component_code              VARCHAR2(30);
66428 l_component_type_code         VARCHAR2(1);
66429 l_component_appl_id           INTEGER;
66430 l_amb_context_code            VARCHAR2(30);
66431 l_entity_code                 VARCHAR2(30);
66432 l_event_class_code            VARCHAR2(30);
66433 l_ae_header_id                NUMBER;
66434 l_event_type_code             VARCHAR2(30);
66435 l_line_definition_code        VARCHAR2(30);
66436 l_line_definition_owner_code  VARCHAR2(1);
66437 --
66438 -- adr variables
66439 l_segment                     VARCHAR2(30);
66440 l_ccid                        NUMBER;
66441 l_adr_transaction_coa_id      NUMBER;
66442 l_adr_accounting_coa_id       NUMBER;
66443 l_adr_flexfield_segment_code  VARCHAR2(30);
66444 l_adr_flex_value_set_id       NUMBER;
66445 l_adr_value_type_code         VARCHAR2(30);
66446 l_adr_value_combination_id    NUMBER;
66447 l_adr_value_segment_code      VARCHAR2(30);
66448 
66449 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
66450 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
66451 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
66452 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
66453 
66454 -- 4262811 Variables ------------------------------------------------------------------------------------------
66455 l_entered_amt_idx             NUMBER;
66456 l_accted_amt_idx              NUMBER;
66457 l_acc_rev_flag                VARCHAR2(1);
66458 l_accrual_line_num            NUMBER;
66459 l_tmp_amt                     NUMBER;
66460 l_acc_rev_natural_side_code   VARCHAR2(1);
66461 
66462 l_num_entries                 NUMBER;
66463 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
66464 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
66465 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
66466 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
66467 l_recog_line_1                NUMBER;
66468 l_recog_line_2                NUMBER;
66469 
66470 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
66471 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
66472 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
66473 
66474 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66475 
66476 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
66477 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
66478 
66479 ---------------------------------------------------------------------------------------------------------------
66480 
66481 
66482 --
66483 -- bulk performance
66484 --
66485 l_balance_type_code           VARCHAR2(1);
66486 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
66487 l_log_module                  VARCHAR2(240);
66488 
66489 --
66490 -- Upgrade strategy
66491 --
66492 l_actual_upg_option           VARCHAR2(1);
66493 l_enc_upg_option           VARCHAR2(1);
66494 
66495 --
66496 BEGIN
66497 --
66498 IF g_log_enabled THEN
66499       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
66500 END IF;
66501 --
66502 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66503 
66504       trace
66505          (p_msg      => 'BEGIN of AcctLineType_125'
66506          ,p_level    => C_LEVEL_PROCEDURE
66507          ,p_module   => l_log_module);
66508 
66509 END IF;
66510 --
66511 l_component_type             := 'AMB_JLT';
66512 l_component_code             := 'AP_LOSS_MAT_CLEAR';
66513 l_component_type_code        := 'S';
66514 l_component_appl_id          :=  200;
66515 l_amb_context_code           := 'DEFAULT';
66516 l_entity_code                := 'AP_PAYMENTS';
66517 l_event_class_code           := 'RECONCILED PAYMENTS';
66518 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
66519 l_line_definition_owner_code := 'S';
66520 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
66521 --
66522 l_balance_type_code          := 'A';
66523 l_segment                     := NULL;
66524 l_ccid                        := NULL;
66525 l_adr_transaction_coa_id      := NULL;
66529 l_adr_value_type_code         := NULL;
66526 l_adr_accounting_coa_id       := NULL;
66527 l_adr_flexfield_segment_code  := NULL;
66528 l_adr_flex_value_set_id       := NULL;
66530 l_adr_value_combination_id    := NULL;
66531 l_adr_value_segment_code      := NULL;
66532 
66533 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
66534 l_bflow_class_code           := '';    -- 4219869 Business Flow
66535 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
66536 l_budgetary_control_flag     := 'N';
66537 
66538 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
66539 l_bflow_applied_to_amt       := NULL; -- 5132302
66540 l_entered_amt_idx            := NULL;          -- 4262811
66541 l_accted_amt_idx             := NULL;          -- 4262811
66542 l_acc_rev_flag               := NULL;          -- 4262811
66543 l_accrual_line_num           := NULL;          -- 4262811
66544 l_tmp_amt                    := NULL;          -- 4262811
66545 --
66546 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
66547             (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
66548                return;
66549   END IF;
66550   
66551 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66552     l_balance_type_code <> 'B' THEN
66553 IF NVL(p_source_38,'
66554 ') =  'ALWAYS_ALWAYS' AND 
66555 p_source_111 IS NOT NULL AND 
66556 NVL(p_source_129,'
66557 ') =  'LOSS' AND 
66558 NVL(p_source_39,'
66559 ') <>  'EXCHANGE RATE VARIANCE' AND 
66560 NVL(p_source_39,'
66561 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
66562 NVL(p_source_39,'
66563 ') <>  'BANK CHARGE' AND 
66564 NVL(p_source_39,'
66565 ') <>  'BANK ERROR'
66566  THEN 
66567 
66568    --
66569    XLA_AE_LINES_PKG.SetNewLine;
66570 
66571    p_balance_type_code          := l_balance_type_code;
66572    -- set the flag so later we will know whether the gain loss line needs to be created
66573    
66574    IF(l_balance_type_code = 'A' ) THEN
66575      p_actual_flag :='G';
66576    END IF;
66577 
66578    --
66579    -- bulk performance
66580    --
66581    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66582                                       p_header_num   => 0); -- 4262811
66583    --
66584    -- set accounting line options
66585    --
66586    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66587            p_natural_side_code          => 'C'
66588          , p_gain_or_loss_flag          => 'Y'
66589          , p_gl_transfer_mode_code      => 'S'
66590          , p_acct_entry_type_code       => 'A'
66591          , p_switch_side_flag           => 'Y'
66592          , p_merge_duplicate_code       => 'A'
66593          );
66594    --
66595    l_acc_rev_natural_side_code := 'D';  -- 4262811
66596    -- 
66597    --
66598    -- set accounting line type info
66599    --
66600    xla_ae_lines_pkg.SetAcctLineType
66601       (p_component_type             => l_component_type
66602       ,p_event_type_code            => l_event_type_code
66603       ,p_line_definition_owner_code => l_line_definition_owner_code
66604       ,p_line_definition_code       => l_line_definition_code
66605       ,p_accounting_line_code       => l_component_code
66606       ,p_accounting_line_type_code  => l_component_type_code
66607       ,p_accounting_line_appl_id    => l_component_appl_id
66608       ,p_amb_context_code           => l_amb_context_code
66609       ,p_entity_code                => l_entity_code
66610       ,p_event_class_code           => l_event_class_code);
66611    --
66612    -- set accounting class
66613    --
66614    xla_ae_lines_pkg.SetAcctClass(
66615            p_accounting_class_code  => 'LOSS'
66616          , p_ae_header_id           => l_ae_header_id
66617          );
66618 
66619    --
66620    -- set rounding class
66621    --
66622    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66623                       'LOSS';
66624 
66625    --
66626    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66627    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66628    --
66629    -- bulk performance
66630    --
66631    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66632 
66633    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66634       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66635 
66636    -- 4955764
66637    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66638       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66639 
66640    -- 4458381 Public Sector Enh
66641    
66642    --
66643    -- set accounting attributes for the line type
66644    --
66645    l_entered_amt_idx := 10;
66646    l_accted_amt_idx  := 15;
66647    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
66648    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66649    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
66650    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
66654    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66651    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
66652    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
66653    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
66655    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
66656    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
66657    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
66658    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
66659    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
66660    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66661    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
66662    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
66663    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
66664    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
66665    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
66666    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
66667    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
66668    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
66669    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
66670    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
66671    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
66672    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
66673    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
66674    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
66675    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
66676    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
66677    l_rec_acct_attrs.array_num_value(15)  := p_source_130;
66678    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
66679    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
66680    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
66681    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
66682    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
66683    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
66684    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
66685    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
66686    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
66687    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
66688    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
66689    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
66690    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
66691    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
66692    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
66693    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
66694    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
66695    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
66696 
66697    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66698    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66699 
66700    ---------------------------------------------------------------------------------------------------------------
66701    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66702    ---------------------------------------------------------------------------------------------------------------
66703    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66704 
66705    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66706    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66707 
66708    IF xla_accounting_cache_pkg.GetValueChar
66709          (p_source_code         => 'LEDGER_CATEGORY_CODE'
66710          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66711    AND l_bflow_method_code = 'PRIOR_ENTRY'
66712 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66713    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66714          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66715        )
66716    THEN
66717          xla_ae_lines_pkg.BflowUpgEntry
66718            (p_business_method_code    => l_bflow_method_code
66719            ,p_business_class_code     => l_bflow_class_code
66720            ,p_balance_type            => l_balance_type_code);
66721    ELSE
66722       NULL;
66723 -- No business flow processing for business flow method of NONE.
66724    END IF;
66725 
66726    --
66727    -- call analytical criteria
66728    --
66729    
66730    --
66731    -- call description
66732    --
66733    -- No description or it is inherited.
66734    --
66735    -- call ADRs
66736    -- Bug 4922099
66737    --
66738    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66739         (NVL(l_actual_upg_option, 'N') = 'O') OR
66740         (NVL(l_enc_upg_option, 'N') = 'O')
66741       )
66742    THEN
66743    NULL;
66744    --
66745    --
66746    
66747   l_ccid := AcctDerRule_32(
66748            p_application_id           => p_application_id
66749          , p_ae_header_id             => l_ae_header_id 
66750 , p_source_4 => p_source_4
66751 , p_source_4_meaning => p_source_4_meaning
66755          , x_transaction_coa_id       => l_adr_transaction_coa_id
66752 , p_source_17 => p_source_17
66753 , p_source_34 => p_source_34
66754 , p_source_35 => p_source_35
66756          , x_accounting_coa_id        => l_adr_accounting_coa_id
66757          , x_value_type_code          => l_adr_value_type_code
66758          , p_side                     => 'NA'
66759    );
66760 
66761    xla_ae_lines_pkg.set_ccid(
66762     p_code_combination_id          => l_ccid
66763   , p_value_type_code              => l_adr_value_type_code
66764   , p_transaction_coa_id           => l_adr_transaction_coa_id
66765   , p_accounting_coa_id            => l_adr_accounting_coa_id
66766   , p_adr_code                     => 'AP_REAL_LOSS'
66767   , p_adr_type_code                => 'S'
66768   , p_component_type               => l_component_type
66769   , p_component_code               => l_component_code
66770   , p_component_type_code          => l_component_type_code
66771   , p_component_appl_id            => l_component_appl_id
66772   , p_amb_context_code             => l_amb_context_code
66773   , p_side                         => 'NA'
66774   );
66775 
66776 
66777    --
66778    --
66779    END IF;
66780    --
66781    -- Bug 4922099
66782    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66783           (NVL(l_enc_upg_option, 'N') = 'O')
66784         ) AND
66785         (l_bflow_method_code = 'PRIOR_ENTRY')
66786       )
66787    THEN
66788       IF
66789       --
66790       1 = 2
66791       --
66792       THEN
66793       xla_accounting_err_pkg.build_message
66794                                     (p_appli_s_name            => 'XLA'
66795                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66796                                     ,p_token_1                 => 'LINE_NUMBER'
66797                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
66798                                     ,p_token_2                 => 'LINE_TYPE_NAME'
66799                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
66800                                                                              l_component_type
66801                                                                             ,l_component_code
66802                                                                             ,l_component_type_code
66803                                                                             ,l_component_appl_id
66804                                                                             ,l_amb_context_code
66805                                                                             ,l_entity_code
66806                                                                             ,l_event_class_code
66807                                                                            )
66808                                     ,p_token_3                 => 'OWNER'
66809                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
66810                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
66811                                                                           ,p_lookup_code    => l_component_type_code
66812                                                                          )
66813                                     ,p_token_4                 => 'PRODUCT_NAME'
66814                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66815                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66816                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66817                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66818                                     ,p_ae_header_id            =>  NULL
66819                                        );
66820 
66821         IF (C_LEVEL_ERROR>= g_log_level) THEN
66822                  trace
66823                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66824                       ,p_level    => C_LEVEL_ERROR
66825                       ,p_module   => l_log_module);
66826         END IF;
66827       END IF;
66828    END IF;
66829    --
66830    --
66831    ------------------------------------------------------------------------------------------------
66832    -- 4219869 Business Flow
66833    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66834    -- Prior Entry.  Currently, the following code is always generated.
66835    ------------------------------------------------------------------------------------------------
66836    XLA_AE_LINES_PKG.ValidateCurrentLine;
66837 
66838    ------------------------------------------------------------------------------------
66839    -- 4219869 Business Flow
66840    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66841    ------------------------------------------------------------------------------------
66842    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66843 
66844    ----------------------------------------------------------------------------------
66845    -- 4219869 Business Flow
66846    -- Update journal entry status -- Need to generate this within IF <condition>
66847    ----------------------------------------------------------------------------------
66848    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66849          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66853    -------------------------------------------------------------------------------------------
66850          ,p_balance_type_code => l_balance_type_code
66851          );
66852 
66854    -- 4262811 - Generate the Accrual Reversal lines
66855    -------------------------------------------------------------------------------------------
66856    BEGIN
66857       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66858                               (g_array_event(p_event_id).array_value_num('header_index'));
66859       IF l_acc_rev_flag IS NULL THEN
66860          l_acc_rev_flag := 'N';
66861       END IF;
66862    EXCEPTION
66863       WHEN OTHERS THEN
66864          l_acc_rev_flag := 'N';
66865    END;
66866    --
66867    IF (l_acc_rev_flag = 'Y') THEN
66868 
66869        -- 4645092  ------------------------------------------------------------------------------
66870        -- To allow MPA report to determine if it should generate report process
66871        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66872        ------------------------------------------------------------------------------------------
66873 
66874        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66875        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66876    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
66877    -- call ADRs
66878    -- Bug 4922099
66879    --
66880    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66881         (NVL(l_actual_upg_option, 'N') = 'O') OR
66882         (NVL(l_enc_upg_option, 'N') = 'O')
66883       )
66884    THEN
66885    NULL;
66886    --
66887    --
66888    
66889   l_ccid := AcctDerRule_32(
66890            p_application_id           => p_application_id
66891          , p_ae_header_id             => l_ae_header_id 
66892 , p_source_4 => p_source_4
66893 , p_source_4_meaning => p_source_4_meaning
66894 , p_source_17 => p_source_17
66895 , p_source_34 => p_source_34
66896 , p_source_35 => p_source_35
66897          , x_transaction_coa_id       => l_adr_transaction_coa_id
66898          , x_accounting_coa_id        => l_adr_accounting_coa_id
66899          , x_value_type_code          => l_adr_value_type_code
66900          , p_side                     => 'NA'
66901    );
66902 
66903    xla_ae_lines_pkg.set_ccid(
66904     p_code_combination_id          => l_ccid
66905   , p_value_type_code              => l_adr_value_type_code
66906   , p_transaction_coa_id           => l_adr_transaction_coa_id
66907   , p_accounting_coa_id            => l_adr_accounting_coa_id
66908   , p_adr_code                     => 'AP_REAL_LOSS'
66909   , p_adr_type_code                => 'S'
66910   , p_component_type               => l_component_type
66911   , p_component_code               => l_component_code
66912   , p_component_type_code          => l_component_type_code
66913   , p_component_appl_id            => l_component_appl_id
66914   , p_amb_context_code             => l_amb_context_code
66915   , p_side                         => 'NA'
66916   );
66917 
66918 
66919    --
66920    --
66921    END IF;
66922 
66923        --
66924        -- Update the line information that should be overwritten
66925        --
66926        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66927                                          p_header_num   => 1);
66928        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
66929 
66930        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66931 
66932        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
66933           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66934        END IF;
66935 
66936       --
66937       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66938       --
66939       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66940           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
66941       ELSE
66942           ---------------------------------------------------------------------------------------------------
66943           -- 4262811a Switch Sign
66944           ---------------------------------------------------------------------------------------------------
66945           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
66946           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66947                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66948           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66949                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66950           -- 5132302
66951           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66952                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66953 
66954       END IF;
66955 
66956       -- 4955764
66957       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66958       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66959 
66960 
66961       XLA_AE_LINES_PKG.ValidateCurrentLine;
66965                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66962       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66963 
66964       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66966                ,p_balance_type_code => l_balance_type_code);
66967 
66968    END IF;
66969 
66970    -----------------------------------------------------------------------------------------
66971    -- 4262811 Multiperiod Accounting
66972    -----------------------------------------------------------------------------------------
66973      -- No MPA option is assigned.
66974 
66975 
66976 END IF;
66977 END IF;
66978 --
66979 
66980 --
66981 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66982    trace
66983       (p_msg      => 'END of AcctLineType_125'
66984       ,p_level    => C_LEVEL_PROCEDURE
66985       ,p_module   => l_log_module);
66986 END IF;
66987 --
66988 EXCEPTION
66989   WHEN xla_exceptions_pkg.application_exception THEN
66990       RAISE;
66991   WHEN OTHERS THEN
66992        xla_exceptions_pkg.raise_message
66993            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_125');
66994 END AcctLineType_125;
66995 --
66996 
66997 ---------------------------------------
66998 --
66999 -- PRIVATE FUNCTION
67000 --         AcctLineType_126
67001 --
67002 ---------------------------------------
67003 PROCEDURE AcctLineType_126 (
67004   p_application_id        IN NUMBER
67005  ,p_event_id              IN NUMBER
67006  ,p_calculate_acctd_flag  IN VARCHAR2
67007  ,p_calculate_g_l_flag    IN VARCHAR2
67008  ,p_actual_flag           IN OUT VARCHAR2
67009  ,p_balance_type_code     OUT VARCHAR2
67010  ,p_gain_or_loss_ref      OUT VARCHAR2
67011  
67012 --Automatic Offsets Value
67013  , p_source_4            IN VARCHAR2
67014  , p_source_4_meaning    IN VARCHAR2
67015 --Invoice Distribution Account
67016  , p_source_17            IN NUMBER
67017 --Internal Realized Loss Account
67018  , p_source_34            IN NUMBER
67019 --Bank Loss Account
67020  , p_source_35            IN NUMBER
67021 --When to Account for Payment Option
67022  , p_source_38            IN VARCHAR2
67023 --Payment Distribution Type
67024  , p_source_39            IN VARCHAR2
67025  , p_source_39_meaning    IN VARCHAR2
67026 --Accounting Reversal Indicator
67027  , p_source_40            IN VARCHAR2
67028 --Payment Distribution Amount
67029  , p_source_41            IN NUMBER
67030 --Business Flow Accounts Payable Application Identifier
67031  , p_source_42            IN NUMBER
67032 --Business Flow Payment Distribution Type
67033  , p_source_43            IN VARCHAR2
67034 --Business Flow Payment Entity Code
67035  , p_source_44            IN VARCHAR2
67036 --Business Flow Payment Distribution Identifier
67037  , p_source_45            IN NUMBER
67038 --Business Flow Payment Identifier
67039  , p_source_46            IN NUMBER
67040 --Payment Distribution Identifier
67041  , p_source_47            IN NUMBER
67042 --Distribution Link Type
67043  , p_source_48            IN VARCHAR2
67044 --Payment Currency Code
67045  , p_source_49            IN VARCHAR2
67046 --Override Accounted Amount Indicator
67047  , p_source_53            IN VARCHAR2
67048  , p_source_53_meaning    IN VARCHAR2
67049 --Payment Supplier Identifier
67050  , p_source_54            IN NUMBER
67051 --Payment Supplier Site Identifier
67052  , p_source_55            IN NUMBER
67053 --Third Party Type
67054  , p_source_56            IN VARCHAR2
67055 --Payment Distribution Reversed Identifier
67056  , p_source_57            IN NUMBER
67057 --Invoice Distribution Tax Line Identifier
67058  , p_source_58            IN NUMBER
67059 --Invoice Distribution Summary Tax Line Identifier
67060  , p_source_59            IN NUMBER
67061 --Cleared Exchange Date
67062  , p_source_107            IN DATE
67063 --Cleared Exchange Rate
67064  , p_source_108            IN NUMBER
67065 --Cleared Exchange Rate Type
67066  , p_source_109            IN VARCHAR2
67067 --Payment Maturity Date
67068  , p_source_111            IN DATE
67069 --Gain or Loss Indicator between Payment and Clearing
67070  , p_source_131            IN VARCHAR2
67071 --Payment/Clearing Ledger Amount Difference
67072  , p_source_132            IN NUMBER
67073 )
67074 IS
67075 
67076 l_component_type              VARCHAR2(80);
67077 l_component_code              VARCHAR2(30);
67078 l_component_type_code         VARCHAR2(1);
67079 l_component_appl_id           INTEGER;
67080 l_amb_context_code            VARCHAR2(30);
67081 l_entity_code                 VARCHAR2(30);
67082 l_event_class_code            VARCHAR2(30);
67083 l_ae_header_id                NUMBER;
67084 l_event_type_code             VARCHAR2(30);
67085 l_line_definition_code        VARCHAR2(30);
67086 l_line_definition_owner_code  VARCHAR2(1);
67087 --
67088 -- adr variables
67089 l_segment                     VARCHAR2(30);
67090 l_ccid                        NUMBER;
67091 l_adr_transaction_coa_id      NUMBER;
67092 l_adr_accounting_coa_id       NUMBER;
67093 l_adr_flexfield_segment_code  VARCHAR2(30);
67094 l_adr_flex_value_set_id       NUMBER;
67095 l_adr_value_type_code         VARCHAR2(30);
67096 l_adr_value_combination_id    NUMBER;
67097 l_adr_value_segment_code      VARCHAR2(30);
67098 
67099 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
67100 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
67101 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
67105 l_entered_amt_idx             NUMBER;
67102 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
67103 
67104 -- 4262811 Variables ------------------------------------------------------------------------------------------
67106 l_accted_amt_idx              NUMBER;
67107 l_acc_rev_flag                VARCHAR2(1);
67108 l_accrual_line_num            NUMBER;
67109 l_tmp_amt                     NUMBER;
67110 l_acc_rev_natural_side_code   VARCHAR2(1);
67111 
67112 l_num_entries                 NUMBER;
67113 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
67114 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
67115 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
67116 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
67117 l_recog_line_1                NUMBER;
67118 l_recog_line_2                NUMBER;
67119 
67120 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
67121 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
67122 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
67123 
67124 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67125 
67126 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
67127 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
67128 
67129 ---------------------------------------------------------------------------------------------------------------
67130 
67131 
67132 --
67133 -- bulk performance
67134 --
67135 l_balance_type_code           VARCHAR2(1);
67136 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
67137 l_log_module                  VARCHAR2(240);
67138 
67139 --
67140 -- Upgrade strategy
67141 --
67142 l_actual_upg_option           VARCHAR2(1);
67143 l_enc_upg_option           VARCHAR2(1);
67144 
67145 --
67146 BEGIN
67147 --
67148 IF g_log_enabled THEN
67149       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
67150 END IF;
67151 --
67152 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67153 
67154       trace
67155          (p_msg      => 'BEGIN of AcctLineType_126'
67156          ,p_level    => C_LEVEL_PROCEDURE
67157          ,p_module   => l_log_module);
67158 
67159 END IF;
67160 --
67161 l_component_type             := 'AMB_JLT';
67162 l_component_code             := 'AP_LOSS_PMT_CLEAR';
67163 l_component_type_code        := 'S';
67164 l_component_appl_id          :=  200;
67165 l_amb_context_code           := 'DEFAULT';
67166 l_entity_code                := 'AP_PAYMENTS';
67167 l_event_class_code           := 'RECONCILED PAYMENTS';
67168 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
67169 l_line_definition_owner_code := 'S';
67170 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
67171 --
67172 l_balance_type_code          := 'A';
67173 l_segment                     := NULL;
67174 l_ccid                        := NULL;
67175 l_adr_transaction_coa_id      := NULL;
67176 l_adr_accounting_coa_id       := NULL;
67177 l_adr_flexfield_segment_code  := NULL;
67178 l_adr_flex_value_set_id       := NULL;
67179 l_adr_value_type_code         := NULL;
67180 l_adr_value_combination_id    := NULL;
67181 l_adr_value_segment_code      := NULL;
67182 
67183 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
67184 l_bflow_class_code           := '';    -- 4219869 Business Flow
67185 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
67186 l_budgetary_control_flag     := 'N';
67187 
67188 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
67189 l_bflow_applied_to_amt       := NULL; -- 5132302
67190 l_entered_amt_idx            := NULL;          -- 4262811
67191 l_accted_amt_idx             := NULL;          -- 4262811
67192 l_acc_rev_flag               := NULL;          -- 4262811
67193 l_accrual_line_num           := NULL;          -- 4262811
67194 l_tmp_amt                    := NULL;          -- 4262811
67195 --
67196 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67197             (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
67198                return;
67199   END IF;
67200   
67201 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67202     l_balance_type_code <> 'B' THEN
67203 IF NVL(p_source_38,'
67204 ') =  'ALWAYS_ALWAYS' AND 
67205 p_source_111 IS NULL AND 
67206 NVL(p_source_131,'
67207 ') =  'LOSS' AND 
67208 NVL(p_source_39,'
67209 ') <>  'EXCHANGE RATE VARIANCE' AND 
67210 NVL(p_source_39,'
67211 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
67212 NVL(p_source_39,'
67213 ') <>  'BANK CHARGE' AND 
67214 NVL(p_source_39,'
67215 ') <>  'BANK ERROR' AND 
67216 NVL(p_source_39,'
67217 ') <>  'AWT'
67218  THEN 
67219 
67220    --
67221    XLA_AE_LINES_PKG.SetNewLine;
67222 
67223    p_balance_type_code          := l_balance_type_code;
67224    -- set the flag so later we will know whether the gain loss line needs to be created
67225    
67226    IF(l_balance_type_code = 'A' ) THEN
67227      p_actual_flag :='G';
67228    END IF;
67229 
67230    --
67231    -- bulk performance
67232    --
67236    -- set accounting line options
67233    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67234                                       p_header_num   => 0); -- 4262811
67235    --
67237    --
67238    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67239            p_natural_side_code          => 'C'
67240          , p_gain_or_loss_flag          => 'Y'
67241          , p_gl_transfer_mode_code      => 'S'
67242          , p_acct_entry_type_code       => 'A'
67243          , p_switch_side_flag           => 'Y'
67244          , p_merge_duplicate_code       => 'A'
67245          );
67246    --
67247    l_acc_rev_natural_side_code := 'D';  -- 4262811
67248    -- 
67249    --
67250    -- set accounting line type info
67251    --
67252    xla_ae_lines_pkg.SetAcctLineType
67253       (p_component_type             => l_component_type
67254       ,p_event_type_code            => l_event_type_code
67255       ,p_line_definition_owner_code => l_line_definition_owner_code
67256       ,p_line_definition_code       => l_line_definition_code
67257       ,p_accounting_line_code       => l_component_code
67258       ,p_accounting_line_type_code  => l_component_type_code
67259       ,p_accounting_line_appl_id    => l_component_appl_id
67260       ,p_amb_context_code           => l_amb_context_code
67261       ,p_entity_code                => l_entity_code
67262       ,p_event_class_code           => l_event_class_code);
67263    --
67264    -- set accounting class
67265    --
67266    xla_ae_lines_pkg.SetAcctClass(
67267            p_accounting_class_code  => 'LOSS'
67268          , p_ae_header_id           => l_ae_header_id
67269          );
67270 
67271    --
67272    -- set rounding class
67273    --
67274    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67275                       'LOSS';
67276 
67277    --
67278    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67279    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67280    --
67281    -- bulk performance
67282    --
67283    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67284 
67285    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67286       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67287 
67288    -- 4955764
67289    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67290       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67291 
67292    -- 4458381 Public Sector Enh
67293    
67294    --
67295    -- set accounting attributes for the line type
67296    --
67297    l_entered_amt_idx := 10;
67298    l_accted_amt_idx  := 15;
67299    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
67300    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67301    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
67302    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
67303    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
67304    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
67305    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
67306    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67307    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
67308    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
67309    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
67310    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
67311    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
67312    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67313    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
67314    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
67315    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
67316    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
67317    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
67318    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
67319    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
67320    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
67321    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
67322    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
67323    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
67324    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
67325    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
67326    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
67327    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
67328    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
67329    l_rec_acct_attrs.array_num_value(15)  := p_source_132;
67330    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
67331    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
67332    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
67333    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
67334    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
67335    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
67336    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
67337    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
67341    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
67338    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
67339    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
67340    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
67342    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
67343    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
67344    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
67345    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
67346    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
67347    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
67348 
67349    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67350    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67351 
67352    ---------------------------------------------------------------------------------------------------------------
67353    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67354    ---------------------------------------------------------------------------------------------------------------
67355    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67356 
67357    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67358    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67359 
67360    IF xla_accounting_cache_pkg.GetValueChar
67361          (p_source_code         => 'LEDGER_CATEGORY_CODE'
67362          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67363    AND l_bflow_method_code = 'PRIOR_ENTRY'
67364 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67365    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67366          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67367        )
67368    THEN
67369          xla_ae_lines_pkg.BflowUpgEntry
67370            (p_business_method_code    => l_bflow_method_code
67371            ,p_business_class_code     => l_bflow_class_code
67372            ,p_balance_type            => l_balance_type_code);
67373    ELSE
67374       NULL;
67375 -- No business flow processing for business flow method of NONE.
67376    END IF;
67377 
67378    --
67379    -- call analytical criteria
67380    --
67381    
67382    --
67383    -- call description
67384    --
67385    -- No description or it is inherited.
67386    --
67387    -- call ADRs
67388    -- Bug 4922099
67389    --
67390    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67391         (NVL(l_actual_upg_option, 'N') = 'O') OR
67392         (NVL(l_enc_upg_option, 'N') = 'O')
67393       )
67394    THEN
67395    NULL;
67396    --
67397    --
67398    
67399   l_ccid := AcctDerRule_32(
67400            p_application_id           => p_application_id
67401          , p_ae_header_id             => l_ae_header_id 
67402 , p_source_4 => p_source_4
67403 , p_source_4_meaning => p_source_4_meaning
67404 , p_source_17 => p_source_17
67405 , p_source_34 => p_source_34
67406 , p_source_35 => p_source_35
67407          , x_transaction_coa_id       => l_adr_transaction_coa_id
67408          , x_accounting_coa_id        => l_adr_accounting_coa_id
67409          , x_value_type_code          => l_adr_value_type_code
67410          , p_side                     => 'NA'
67411    );
67412 
67413    xla_ae_lines_pkg.set_ccid(
67414     p_code_combination_id          => l_ccid
67415   , p_value_type_code              => l_adr_value_type_code
67416   , p_transaction_coa_id           => l_adr_transaction_coa_id
67417   , p_accounting_coa_id            => l_adr_accounting_coa_id
67418   , p_adr_code                     => 'AP_REAL_LOSS'
67419   , p_adr_type_code                => 'S'
67420   , p_component_type               => l_component_type
67421   , p_component_code               => l_component_code
67422   , p_component_type_code          => l_component_type_code
67423   , p_component_appl_id            => l_component_appl_id
67424   , p_amb_context_code             => l_amb_context_code
67425   , p_side                         => 'NA'
67426   );
67427 
67428 
67429    --
67430    --
67431    END IF;
67432    --
67433    -- Bug 4922099
67434    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67435           (NVL(l_enc_upg_option, 'N') = 'O')
67436         ) AND
67437         (l_bflow_method_code = 'PRIOR_ENTRY')
67438       )
67439    THEN
67440       IF
67441       --
67442       1 = 2
67443       --
67444       THEN
67445       xla_accounting_err_pkg.build_message
67446                                     (p_appli_s_name            => 'XLA'
67447                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67448                                     ,p_token_1                 => 'LINE_NUMBER'
67449                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
67450                                     ,p_token_2                 => 'LINE_TYPE_NAME'
67451                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
67452                                                                              l_component_type
67456                                                                             ,l_amb_context_code
67453                                                                             ,l_component_code
67454                                                                             ,l_component_type_code
67455                                                                             ,l_component_appl_id
67457                                                                             ,l_entity_code
67458                                                                             ,l_event_class_code
67459                                                                            )
67460                                     ,p_token_3                 => 'OWNER'
67461                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
67462                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
67463                                                                           ,p_lookup_code    => l_component_type_code
67464                                                                          )
67465                                     ,p_token_4                 => 'PRODUCT_NAME'
67466                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67467                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67468                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67469                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67470                                     ,p_ae_header_id            =>  NULL
67471                                        );
67472 
67473         IF (C_LEVEL_ERROR>= g_log_level) THEN
67474                  trace
67475                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67476                       ,p_level    => C_LEVEL_ERROR
67477                       ,p_module   => l_log_module);
67478         END IF;
67479       END IF;
67480    END IF;
67481    --
67482    --
67483    ------------------------------------------------------------------------------------------------
67484    -- 4219869 Business Flow
67485    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67486    -- Prior Entry.  Currently, the following code is always generated.
67487    ------------------------------------------------------------------------------------------------
67488    XLA_AE_LINES_PKG.ValidateCurrentLine;
67489 
67490    ------------------------------------------------------------------------------------
67491    -- 4219869 Business Flow
67492    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67493    ------------------------------------------------------------------------------------
67494    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67495 
67496    ----------------------------------------------------------------------------------
67497    -- 4219869 Business Flow
67498    -- Update journal entry status -- Need to generate this within IF <condition>
67499    ----------------------------------------------------------------------------------
67500    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67501          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67502          ,p_balance_type_code => l_balance_type_code
67503          );
67504 
67505    -------------------------------------------------------------------------------------------
67506    -- 4262811 - Generate the Accrual Reversal lines
67507    -------------------------------------------------------------------------------------------
67508    BEGIN
67509       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67510                               (g_array_event(p_event_id).array_value_num('header_index'));
67511       IF l_acc_rev_flag IS NULL THEN
67512          l_acc_rev_flag := 'N';
67513       END IF;
67514    EXCEPTION
67515       WHEN OTHERS THEN
67516          l_acc_rev_flag := 'N';
67517    END;
67518    --
67519    IF (l_acc_rev_flag = 'Y') THEN
67520 
67521        -- 4645092  ------------------------------------------------------------------------------
67522        -- To allow MPA report to determine if it should generate report process
67523        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67524        ------------------------------------------------------------------------------------------
67525 
67526        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67527        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67528    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
67529    -- call ADRs
67530    -- Bug 4922099
67531    --
67532    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67533         (NVL(l_actual_upg_option, 'N') = 'O') OR
67534         (NVL(l_enc_upg_option, 'N') = 'O')
67535       )
67536    THEN
67537    NULL;
67538    --
67539    --
67540    
67541   l_ccid := AcctDerRule_32(
67542            p_application_id           => p_application_id
67543          , p_ae_header_id             => l_ae_header_id 
67544 , p_source_4 => p_source_4
67545 , p_source_4_meaning => p_source_4_meaning
67546 , p_source_17 => p_source_17
67547 , p_source_34 => p_source_34
67548 , p_source_35 => p_source_35
67549          , x_transaction_coa_id       => l_adr_transaction_coa_id
67550          , x_accounting_coa_id        => l_adr_accounting_coa_id
67551          , x_value_type_code          => l_adr_value_type_code
67555    xla_ae_lines_pkg.set_ccid(
67552          , p_side                     => 'NA'
67553    );
67554 
67556     p_code_combination_id          => l_ccid
67557   , p_value_type_code              => l_adr_value_type_code
67558   , p_transaction_coa_id           => l_adr_transaction_coa_id
67559   , p_accounting_coa_id            => l_adr_accounting_coa_id
67560   , p_adr_code                     => 'AP_REAL_LOSS'
67561   , p_adr_type_code                => 'S'
67562   , p_component_type               => l_component_type
67563   , p_component_code               => l_component_code
67564   , p_component_type_code          => l_component_type_code
67565   , p_component_appl_id            => l_component_appl_id
67566   , p_amb_context_code             => l_amb_context_code
67567   , p_side                         => 'NA'
67568   );
67569 
67570 
67571    --
67572    --
67573    END IF;
67574 
67575        --
67576        -- Update the line information that should be overwritten
67577        --
67578        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67579                                          p_header_num   => 1);
67580        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
67581 
67582        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67583 
67584        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
67585           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67586        END IF;
67587 
67588       --
67589       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67590       --
67591       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67592           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
67593       ELSE
67594           ---------------------------------------------------------------------------------------------------
67595           -- 4262811a Switch Sign
67596           ---------------------------------------------------------------------------------------------------
67597           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
67598           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67599                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67600           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67601                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67602           -- 5132302
67603           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67604                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67605 
67606       END IF;
67607 
67608       -- 4955764
67609       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67610       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67611 
67612 
67613       XLA_AE_LINES_PKG.ValidateCurrentLine;
67614       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67615 
67616       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67617                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67618                ,p_balance_type_code => l_balance_type_code);
67619 
67620    END IF;
67621 
67622    -----------------------------------------------------------------------------------------
67623    -- 4262811 Multiperiod Accounting
67624    -----------------------------------------------------------------------------------------
67625      -- No MPA option is assigned.
67626 
67627 
67628 END IF;
67629 END IF;
67630 --
67631 
67632 --
67633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67634    trace
67635       (p_msg      => 'END of AcctLineType_126'
67636       ,p_level    => C_LEVEL_PROCEDURE
67637       ,p_module   => l_log_module);
67638 END IF;
67639 --
67640 EXCEPTION
67641   WHEN xla_exceptions_pkg.application_exception THEN
67642       RAISE;
67643   WHEN OTHERS THEN
67644        xla_exceptions_pkg.raise_message
67645            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_126');
67646 END AcctLineType_126;
67647 --
67648 
67649 ---------------------------------------
67650 --
67651 -- PRIVATE FUNCTION
67652 --         AcctLineType_127
67653 --
67654 ---------------------------------------
67655 PROCEDURE AcctLineType_127 (
67656   p_application_id        IN NUMBER
67657  ,p_event_id              IN NUMBER
67658  ,p_calculate_acctd_flag  IN VARCHAR2
67659  ,p_calculate_g_l_flag    IN VARCHAR2
67660  ,p_actual_flag           IN OUT VARCHAR2
67661  ,p_balance_type_code     OUT VARCHAR2
67662  ,p_gain_or_loss_ref      OUT VARCHAR2
67663  
67664 --Automatic Offsets Value
67665  , p_source_4            IN VARCHAR2
67666  , p_source_4_meaning    IN VARCHAR2
67667 --Invoice Distribution Account
67668  , p_source_17            IN NUMBER
67669 --Internal Realized Loss Account
67670  , p_source_34            IN NUMBER
67671 --Bank Loss Account
67672  , p_source_35            IN NUMBER
67673 --When to Account for Payment Option
67674  , p_source_38            IN VARCHAR2
67675 --Payment Distribution Type
67679  , p_source_40            IN VARCHAR2
67676  , p_source_39            IN VARCHAR2
67677  , p_source_39_meaning    IN VARCHAR2
67678 --Accounting Reversal Indicator
67680 --Payment Distribution Amount
67681  , p_source_41            IN NUMBER
67682 --Business Flow Accounts Payable Application Identifier
67683  , p_source_42            IN NUMBER
67684 --Business Flow Payment Distribution Type
67685  , p_source_43            IN VARCHAR2
67686 --Business Flow Payment Entity Code
67687  , p_source_44            IN VARCHAR2
67688 --Business Flow Payment Distribution Identifier
67689  , p_source_45            IN NUMBER
67690 --Business Flow Payment Identifier
67691  , p_source_46            IN NUMBER
67692 --Payment Distribution Identifier
67693  , p_source_47            IN NUMBER
67694 --Distribution Link Type
67695  , p_source_48            IN VARCHAR2
67696 --Payment Currency Code
67697  , p_source_49            IN VARCHAR2
67698 --Override Accounted Amount Indicator
67699  , p_source_53            IN VARCHAR2
67700  , p_source_53_meaning    IN VARCHAR2
67701 --Payment Supplier Identifier
67702  , p_source_54            IN NUMBER
67703 --Payment Supplier Site Identifier
67704  , p_source_55            IN NUMBER
67705 --Third Party Type
67706  , p_source_56            IN VARCHAR2
67707 --Payment Distribution Reversed Identifier
67708  , p_source_57            IN NUMBER
67709 --Payment Maturity Date
67710  , p_source_111            IN DATE
67711 --Payment Exchange Date
67712  , p_source_114            IN DATE
67713 --Payment Exchange Rate
67714  , p_source_115            IN NUMBER
67715 --Payment Exchange Rate Type
67716  , p_source_116            IN VARCHAR2
67717 --Payment/Maturity Ledger Amount Difference
67718  , p_source_128            IN NUMBER
67719 --Gain or Loss Indicator between Payment and Maturity
67720  , p_source_133            IN VARCHAR2
67721 )
67722 IS
67723 
67724 l_component_type              VARCHAR2(80);
67725 l_component_code              VARCHAR2(30);
67726 l_component_type_code         VARCHAR2(1);
67727 l_component_appl_id           INTEGER;
67728 l_amb_context_code            VARCHAR2(30);
67729 l_entity_code                 VARCHAR2(30);
67730 l_event_class_code            VARCHAR2(30);
67731 l_ae_header_id                NUMBER;
67732 l_event_type_code             VARCHAR2(30);
67733 l_line_definition_code        VARCHAR2(30);
67734 l_line_definition_owner_code  VARCHAR2(1);
67735 --
67736 -- adr variables
67737 l_segment                     VARCHAR2(30);
67738 l_ccid                        NUMBER;
67739 l_adr_transaction_coa_id      NUMBER;
67740 l_adr_accounting_coa_id       NUMBER;
67741 l_adr_flexfield_segment_code  VARCHAR2(30);
67742 l_adr_flex_value_set_id       NUMBER;
67743 l_adr_value_type_code         VARCHAR2(30);
67744 l_adr_value_combination_id    NUMBER;
67745 l_adr_value_segment_code      VARCHAR2(30);
67746 
67747 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
67748 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
67749 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
67750 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
67751 
67752 -- 4262811 Variables ------------------------------------------------------------------------------------------
67753 l_entered_amt_idx             NUMBER;
67754 l_accted_amt_idx              NUMBER;
67755 l_acc_rev_flag                VARCHAR2(1);
67756 l_accrual_line_num            NUMBER;
67757 l_tmp_amt                     NUMBER;
67758 l_acc_rev_natural_side_code   VARCHAR2(1);
67759 
67760 l_num_entries                 NUMBER;
67761 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
67762 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
67763 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
67764 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
67765 l_recog_line_1                NUMBER;
67766 l_recog_line_2                NUMBER;
67767 
67768 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
67769 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
67770 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
67771 
67772 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67773 
67774 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
67775 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
67776 
67777 ---------------------------------------------------------------------------------------------------------------
67778 
67779 
67780 --
67781 -- bulk performance
67782 --
67783 l_balance_type_code           VARCHAR2(1);
67784 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
67785 l_log_module                  VARCHAR2(240);
67786 
67787 --
67788 -- Upgrade strategy
67789 --
67790 l_actual_upg_option           VARCHAR2(1);
67791 l_enc_upg_option           VARCHAR2(1);
67792 
67793 --
67794 BEGIN
67795 --
67796 IF g_log_enabled THEN
67797       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
67798 END IF;
67799 --
67800 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67801 
67802       trace
67803          (p_msg      => 'BEGIN of AcctLineType_127'
67804          ,p_level    => C_LEVEL_PROCEDURE
67805          ,p_module   => l_log_module);
67806 
67807 END IF;
67808 --
67809 l_component_type             := 'AMB_JLT';
67813 l_amb_context_code           := 'DEFAULT';
67810 l_component_code             := 'AP_LOSS_PMT_MAT';
67811 l_component_type_code        := 'S';
67812 l_component_appl_id          :=  200;
67814 l_entity_code                := 'AP_PAYMENTS';
67815 l_event_class_code           := 'FUTURE DATED PAYMENTS';
67816 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
67817 l_line_definition_owner_code := 'S';
67818 l_line_definition_code       := 'CASH_FUTURE DATED PAYMENTS_ALL';
67819 --
67820 l_balance_type_code          := 'A';
67821 l_segment                     := NULL;
67822 l_ccid                        := NULL;
67823 l_adr_transaction_coa_id      := NULL;
67824 l_adr_accounting_coa_id       := NULL;
67825 l_adr_flexfield_segment_code  := NULL;
67826 l_adr_flex_value_set_id       := NULL;
67827 l_adr_value_type_code         := NULL;
67828 l_adr_value_combination_id    := NULL;
67829 l_adr_value_segment_code      := NULL;
67830 
67831 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
67832 l_bflow_class_code           := '';    -- 4219869 Business Flow
67833 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
67834 l_budgetary_control_flag     := 'N';
67835 
67836 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
67837 l_bflow_applied_to_amt       := NULL; -- 5132302
67838 l_entered_amt_idx            := NULL;          -- 4262811
67839 l_accted_amt_idx             := NULL;          -- 4262811
67840 l_acc_rev_flag               := NULL;          -- 4262811
67841 l_accrual_line_num           := NULL;          -- 4262811
67842 l_tmp_amt                    := NULL;          -- 4262811
67843 --
67844 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67845             (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
67846                return;
67847   END IF;
67848   
67849 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67850     l_balance_type_code <> 'B' THEN
67851 IF (NVL(p_source_38,'
67852 ') =  'ALWAYS_ALWAYS' OR 
67853 NVL(p_source_38,'
67854 ') =  'ISSUE_ISSUE') AND 
67855 p_source_111 IS NOT NULL AND 
67856 NVL(p_source_133,'
67857 ') =  'LOSS' AND 
67858 NVL(p_source_39,'
67859 ') <>  'EXCHANGE RATE VARIANCE' AND 
67860 NVL(p_source_39,'
67861 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
67862 NVL(p_source_39,'
67863 ') <>  'BANK CHARGE' AND 
67864 NVL(p_source_39,'
67865 ') <>  'BANK ERROR' AND 
67866 NVL(p_source_39,'
67867 ') <>  'AWT'
67868  THEN 
67869 
67870    --
67871    XLA_AE_LINES_PKG.SetNewLine;
67872 
67873    p_balance_type_code          := l_balance_type_code;
67874    -- set the flag so later we will know whether the gain loss line needs to be created
67875    
67876    IF(l_balance_type_code = 'A' ) THEN
67877      p_actual_flag :='G';
67878    END IF;
67879 
67880    --
67881    -- bulk performance
67882    --
67883    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67884                                       p_header_num   => 0); -- 4262811
67885    --
67886    -- set accounting line options
67887    --
67888    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67889            p_natural_side_code          => 'C'
67890          , p_gain_or_loss_flag          => 'Y'
67891          , p_gl_transfer_mode_code      => 'S'
67892          , p_acct_entry_type_code       => 'A'
67893          , p_switch_side_flag           => 'Y'
67894          , p_merge_duplicate_code       => 'A'
67895          );
67896    --
67897    l_acc_rev_natural_side_code := 'D';  -- 4262811
67898    -- 
67899    --
67900    -- set accounting line type info
67901    --
67902    xla_ae_lines_pkg.SetAcctLineType
67903       (p_component_type             => l_component_type
67904       ,p_event_type_code            => l_event_type_code
67905       ,p_line_definition_owner_code => l_line_definition_owner_code
67906       ,p_line_definition_code       => l_line_definition_code
67907       ,p_accounting_line_code       => l_component_code
67908       ,p_accounting_line_type_code  => l_component_type_code
67909       ,p_accounting_line_appl_id    => l_component_appl_id
67910       ,p_amb_context_code           => l_amb_context_code
67911       ,p_entity_code                => l_entity_code
67912       ,p_event_class_code           => l_event_class_code);
67913    --
67914    -- set accounting class
67915    --
67916    xla_ae_lines_pkg.SetAcctClass(
67917            p_accounting_class_code  => 'LOSS'
67918          , p_ae_header_id           => l_ae_header_id
67919          );
67920 
67921    --
67922    -- set rounding class
67923    --
67924    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67925                       'LOSS';
67926 
67927    --
67928    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67929    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67930    --
67931    -- bulk performance
67932    --
67933    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67934 
67935    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67939    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67936       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67937 
67938    -- 4955764
67940       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67941 
67942    -- 4458381 Public Sector Enh
67943    
67944    --
67945    -- set accounting attributes for the line type
67946    --
67947    l_entered_amt_idx := 9;
67948    l_accted_amt_idx  := 14;
67949    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
67950    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67951    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
67952    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
67953    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
67954    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67955    l_rec_acct_attrs.array_char_value(3)  := p_source_43;
67956    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
67957    l_rec_acct_attrs.array_char_value(4)  := p_source_44;
67958    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
67959    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_45);
67960    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67961    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_46);
67962    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
67963    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
67964    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
67965    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
67966    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
67967    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
67968    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
67969    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
67970    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
67971    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
67972    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
67973    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
67974    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
67975    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
67976    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
67977    l_rec_acct_attrs.array_num_value(14)  := p_source_128;
67978    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
67979    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
67980    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
67981    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
67982    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
67983    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
67984    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
67985    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
67986    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
67987    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
67988    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
67989    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
67990 
67991    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67992    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67993 
67994    ---------------------------------------------------------------------------------------------------------------
67995    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67996    ---------------------------------------------------------------------------------------------------------------
67997    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67998 
67999    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68000    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68001 
68002    IF xla_accounting_cache_pkg.GetValueChar
68003          (p_source_code         => 'LEDGER_CATEGORY_CODE'
68004          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68005    AND l_bflow_method_code = 'PRIOR_ENTRY'
68006 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68007    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68008          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68009        )
68010    THEN
68011          xla_ae_lines_pkg.BflowUpgEntry
68012            (p_business_method_code    => l_bflow_method_code
68013            ,p_business_class_code     => l_bflow_class_code
68014            ,p_balance_type            => l_balance_type_code);
68015    ELSE
68016       NULL;
68017 -- No business flow processing for business flow method of NONE.
68018    END IF;
68019 
68020    --
68021    -- call analytical criteria
68022    --
68023    
68024    --
68025    -- call description
68026    --
68027    -- No description or it is inherited.
68028    --
68029    -- call ADRs
68030    -- Bug 4922099
68031    --
68032    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68033         (NVL(l_actual_upg_option, 'N') = 'O') OR
68034         (NVL(l_enc_upg_option, 'N') = 'O')
68035       )
68036    THEN
68037    NULL;
68038    --
68042            p_application_id           => p_application_id
68039    --
68040    
68041   l_ccid := AcctDerRule_32(
68043          , p_ae_header_id             => l_ae_header_id 
68044 , p_source_4 => p_source_4
68045 , p_source_4_meaning => p_source_4_meaning
68046 , p_source_17 => p_source_17
68047 , p_source_34 => p_source_34
68048 , p_source_35 => p_source_35
68049          , x_transaction_coa_id       => l_adr_transaction_coa_id
68050          , x_accounting_coa_id        => l_adr_accounting_coa_id
68051          , x_value_type_code          => l_adr_value_type_code
68052          , p_side                     => 'NA'
68053    );
68054 
68055    xla_ae_lines_pkg.set_ccid(
68056     p_code_combination_id          => l_ccid
68057   , p_value_type_code              => l_adr_value_type_code
68058   , p_transaction_coa_id           => l_adr_transaction_coa_id
68059   , p_accounting_coa_id            => l_adr_accounting_coa_id
68060   , p_adr_code                     => 'AP_REAL_LOSS'
68061   , p_adr_type_code                => 'S'
68062   , p_component_type               => l_component_type
68063   , p_component_code               => l_component_code
68064   , p_component_type_code          => l_component_type_code
68065   , p_component_appl_id            => l_component_appl_id
68066   , p_amb_context_code             => l_amb_context_code
68067   , p_side                         => 'NA'
68068   );
68069 
68070 
68071    --
68072    --
68073    END IF;
68074    --
68075    -- Bug 4922099
68076    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68077           (NVL(l_enc_upg_option, 'N') = 'O')
68078         ) AND
68079         (l_bflow_method_code = 'PRIOR_ENTRY')
68080       )
68081    THEN
68082       IF
68083       --
68084       1 = 2
68085       --
68086       THEN
68087       xla_accounting_err_pkg.build_message
68088                                     (p_appli_s_name            => 'XLA'
68089                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68090                                     ,p_token_1                 => 'LINE_NUMBER'
68091                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
68092                                     ,p_token_2                 => 'LINE_TYPE_NAME'
68093                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
68094                                                                              l_component_type
68095                                                                             ,l_component_code
68096                                                                             ,l_component_type_code
68097                                                                             ,l_component_appl_id
68098                                                                             ,l_amb_context_code
68099                                                                             ,l_entity_code
68100                                                                             ,l_event_class_code
68101                                                                            )
68102                                     ,p_token_3                 => 'OWNER'
68103                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
68104                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
68105                                                                           ,p_lookup_code    => l_component_type_code
68106                                                                          )
68107                                     ,p_token_4                 => 'PRODUCT_NAME'
68108                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68109                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68110                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68111                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68112                                     ,p_ae_header_id            =>  NULL
68113                                        );
68114 
68115         IF (C_LEVEL_ERROR>= g_log_level) THEN
68116                  trace
68117                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68118                       ,p_level    => C_LEVEL_ERROR
68119                       ,p_module   => l_log_module);
68120         END IF;
68121       END IF;
68122    END IF;
68123    --
68124    --
68125    ------------------------------------------------------------------------------------------------
68126    -- 4219869 Business Flow
68127    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68128    -- Prior Entry.  Currently, the following code is always generated.
68129    ------------------------------------------------------------------------------------------------
68130    XLA_AE_LINES_PKG.ValidateCurrentLine;
68131 
68132    ------------------------------------------------------------------------------------
68133    -- 4219869 Business Flow
68134    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68135    ------------------------------------------------------------------------------------
68136    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68137 
68138    ----------------------------------------------------------------------------------
68142    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68139    -- 4219869 Business Flow
68140    -- Update journal entry status -- Need to generate this within IF <condition>
68141    ----------------------------------------------------------------------------------
68143          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68144          ,p_balance_type_code => l_balance_type_code
68145          );
68146 
68147    -------------------------------------------------------------------------------------------
68148    -- 4262811 - Generate the Accrual Reversal lines
68149    -------------------------------------------------------------------------------------------
68150    BEGIN
68151       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68152                               (g_array_event(p_event_id).array_value_num('header_index'));
68153       IF l_acc_rev_flag IS NULL THEN
68154          l_acc_rev_flag := 'N';
68155       END IF;
68156    EXCEPTION
68157       WHEN OTHERS THEN
68158          l_acc_rev_flag := 'N';
68159    END;
68160    --
68161    IF (l_acc_rev_flag = 'Y') THEN
68162 
68163        -- 4645092  ------------------------------------------------------------------------------
68164        -- To allow MPA report to determine if it should generate report process
68165        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68166        ------------------------------------------------------------------------------------------
68167 
68168        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68169        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68170    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
68171    -- call ADRs
68172    -- Bug 4922099
68173    --
68174    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68175         (NVL(l_actual_upg_option, 'N') = 'O') OR
68176         (NVL(l_enc_upg_option, 'N') = 'O')
68177       )
68178    THEN
68179    NULL;
68180    --
68181    --
68182    
68183   l_ccid := AcctDerRule_32(
68184            p_application_id           => p_application_id
68185          , p_ae_header_id             => l_ae_header_id 
68186 , p_source_4 => p_source_4
68187 , p_source_4_meaning => p_source_4_meaning
68188 , p_source_17 => p_source_17
68189 , p_source_34 => p_source_34
68190 , p_source_35 => p_source_35
68191          , x_transaction_coa_id       => l_adr_transaction_coa_id
68192          , x_accounting_coa_id        => l_adr_accounting_coa_id
68193          , x_value_type_code          => l_adr_value_type_code
68194          , p_side                     => 'NA'
68195    );
68196 
68197    xla_ae_lines_pkg.set_ccid(
68198     p_code_combination_id          => l_ccid
68199   , p_value_type_code              => l_adr_value_type_code
68200   , p_transaction_coa_id           => l_adr_transaction_coa_id
68201   , p_accounting_coa_id            => l_adr_accounting_coa_id
68202   , p_adr_code                     => 'AP_REAL_LOSS'
68203   , p_adr_type_code                => 'S'
68204   , p_component_type               => l_component_type
68205   , p_component_code               => l_component_code
68206   , p_component_type_code          => l_component_type_code
68207   , p_component_appl_id            => l_component_appl_id
68208   , p_amb_context_code             => l_amb_context_code
68209   , p_side                         => 'NA'
68210   );
68211 
68212 
68213    --
68214    --
68215    END IF;
68216 
68217        --
68218        -- Update the line information that should be overwritten
68219        --
68220        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68221                                          p_header_num   => 1);
68222        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
68223 
68224        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68225 
68226        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
68227           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68228        END IF;
68229 
68230       --
68231       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68232       --
68233       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68234           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
68235       ELSE
68236           ---------------------------------------------------------------------------------------------------
68237           -- 4262811a Switch Sign
68238           ---------------------------------------------------------------------------------------------------
68239           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
68240           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68241                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68242           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68243                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68244           -- 5132302
68245           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68246                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68247 
68248       END IF;
68249 
68250       -- 4955764
68254 
68251       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68252       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68253 
68255       XLA_AE_LINES_PKG.ValidateCurrentLine;
68256       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68257 
68258       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68259                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68260                ,p_balance_type_code => l_balance_type_code);
68261 
68262    END IF;
68263 
68264    -----------------------------------------------------------------------------------------
68265    -- 4262811 Multiperiod Accounting
68266    -----------------------------------------------------------------------------------------
68267      -- No MPA option is assigned.
68268 
68269 
68270 END IF;
68271 END IF;
68272 --
68273 
68274 --
68275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68276    trace
68277       (p_msg      => 'END of AcctLineType_127'
68278       ,p_level    => C_LEVEL_PROCEDURE
68279       ,p_module   => l_log_module);
68280 END IF;
68281 --
68282 EXCEPTION
68283   WHEN xla_exceptions_pkg.application_exception THEN
68284       RAISE;
68285   WHEN OTHERS THEN
68286        xla_exceptions_pkg.raise_message
68287            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_127');
68288 END AcctLineType_127;
68289 --
68290 
68291 ---------------------------------------
68292 --
68293 -- PRIVATE FUNCTION
68294 --         AcctLineType_128
68295 --
68296 ---------------------------------------
68297 PROCEDURE AcctLineType_128 (
68298   p_application_id        IN NUMBER
68299  ,p_event_id              IN NUMBER
68300  ,p_calculate_acctd_flag  IN VARCHAR2
68301  ,p_calculate_g_l_flag    IN VARCHAR2
68302  ,p_actual_flag           IN OUT VARCHAR2
68303  ,p_balance_type_code     OUT VARCHAR2
68304  ,p_gain_or_loss_ref      OUT VARCHAR2
68305  
68306 --Payment Distribution (Cleared Rate) Ledger Amount
68307  , p_source_10            IN NUMBER
68308 --Invoice Distribution Account
68309  , p_source_17            IN NUMBER
68310 --Invoice Distribution Type
68311  , p_source_20            IN VARCHAR2
68312  , p_source_20_meaning    IN VARCHAR2
68313 --When to Account for Payment Option
68314  , p_source_38            IN VARCHAR2
68315 --Payment Distribution Type
68316  , p_source_39            IN VARCHAR2
68317  , p_source_39_meaning    IN VARCHAR2
68318 --Accounting Reversal Indicator
68319  , p_source_40            IN VARCHAR2
68320 --Payment Distribution Amount
68321  , p_source_41            IN NUMBER
68322 --Business Flow Accounts Payable Application Identifier
68323  , p_source_42            IN NUMBER
68324 --Business Flow Payment Distribution Type
68325  , p_source_43            IN VARCHAR2
68326 --Business Flow Payment Entity Code
68327  , p_source_44            IN VARCHAR2
68328 --Business Flow Payment Distribution Identifier
68329  , p_source_45            IN NUMBER
68330 --Business Flow Payment Identifier
68331  , p_source_46            IN NUMBER
68332 --Payment Distribution Identifier
68333  , p_source_47            IN NUMBER
68334 --Distribution Link Type
68335  , p_source_48            IN VARCHAR2
68336 --Payment Currency Code
68337  , p_source_49            IN VARCHAR2
68338 --Override Accounted Amount Indicator
68339  , p_source_53            IN VARCHAR2
68340  , p_source_53_meaning    IN VARCHAR2
68341 --Payment Supplier Identifier
68342  , p_source_54            IN NUMBER
68343 --Payment Supplier Site Identifier
68344  , p_source_55            IN NUMBER
68345 --Third Party Type
68346  , p_source_56            IN VARCHAR2
68347 --Payment Distribution Reversed Identifier
68348  , p_source_57            IN NUMBER
68349 --Invoice Distribution Tax Line Identifier
68350  , p_source_58            IN NUMBER
68351 --Invoice Distribution Summary Tax Line Identifier
68352  , p_source_59            IN NUMBER
68353 --Cleared Exchange Date
68354  , p_source_107            IN DATE
68355 --Cleared Exchange Rate
68356  , p_source_108            IN NUMBER
68357 --Cleared Exchange Rate Type
68358  , p_source_109            IN VARCHAR2
68359 )
68360 IS
68361 
68362 l_component_type              VARCHAR2(80);
68363 l_component_code              VARCHAR2(30);
68364 l_component_type_code         VARCHAR2(1);
68365 l_component_appl_id           INTEGER;
68366 l_amb_context_code            VARCHAR2(30);
68367 l_entity_code                 VARCHAR2(30);
68368 l_event_class_code            VARCHAR2(30);
68369 l_ae_header_id                NUMBER;
68370 l_event_type_code             VARCHAR2(30);
68371 l_line_definition_code        VARCHAR2(30);
68372 l_line_definition_owner_code  VARCHAR2(1);
68373 --
68374 -- adr variables
68375 l_segment                     VARCHAR2(30);
68376 l_ccid                        NUMBER;
68377 l_adr_transaction_coa_id      NUMBER;
68378 l_adr_accounting_coa_id       NUMBER;
68379 l_adr_flexfield_segment_code  VARCHAR2(30);
68380 l_adr_flex_value_set_id       NUMBER;
68381 l_adr_value_type_code         VARCHAR2(30);
68382 l_adr_value_combination_id    NUMBER;
68383 l_adr_value_segment_code      VARCHAR2(30);
68384 
68385 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
68386 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
68387 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
68391 l_entered_amt_idx             NUMBER;
68388 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
68389 
68390 -- 4262811 Variables ------------------------------------------------------------------------------------------
68392 l_accted_amt_idx              NUMBER;
68393 l_acc_rev_flag                VARCHAR2(1);
68394 l_accrual_line_num            NUMBER;
68395 l_tmp_amt                     NUMBER;
68396 l_acc_rev_natural_side_code   VARCHAR2(1);
68397 
68398 l_num_entries                 NUMBER;
68399 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
68400 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
68401 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
68402 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
68403 l_recog_line_1                NUMBER;
68404 l_recog_line_2                NUMBER;
68405 
68406 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
68407 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
68408 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
68409 
68410 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68411 
68412 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
68413 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
68414 
68415 ---------------------------------------------------------------------------------------------------------------
68416 
68417 
68418 --
68419 -- bulk performance
68420 --
68421 l_balance_type_code           VARCHAR2(1);
68422 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
68423 l_log_module                  VARCHAR2(240);
68424 
68425 --
68426 -- Upgrade strategy
68427 --
68428 l_actual_upg_option           VARCHAR2(1);
68429 l_enc_upg_option           VARCHAR2(1);
68430 
68431 --
68432 BEGIN
68433 --
68434 IF g_log_enabled THEN
68435       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
68436 END IF;
68437 --
68438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68439 
68440       trace
68441          (p_msg      => 'BEGIN of AcctLineType_128'
68442          ,p_level    => C_LEVEL_PROCEDURE
68443          ,p_module   => l_log_module);
68444 
68445 END IF;
68446 --
68447 l_component_type             := 'AMB_JLT';
68448 l_component_code             := 'AP_MISC_EXPENSE_CLEAR';
68449 l_component_type_code        := 'S';
68450 l_component_appl_id          :=  200;
68451 l_amb_context_code           := 'DEFAULT';
68452 l_entity_code                := 'AP_PAYMENTS';
68453 l_event_class_code           := 'RECONCILED PAYMENTS';
68454 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
68455 l_line_definition_owner_code := 'S';
68456 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
68457 --
68458 l_balance_type_code          := 'A';
68459 l_segment                     := NULL;
68460 l_ccid                        := NULL;
68461 l_adr_transaction_coa_id      := NULL;
68462 l_adr_accounting_coa_id       := NULL;
68463 l_adr_flexfield_segment_code  := NULL;
68464 l_adr_flex_value_set_id       := NULL;
68465 l_adr_value_type_code         := NULL;
68466 l_adr_value_combination_id    := NULL;
68467 l_adr_value_segment_code      := NULL;
68468 
68469 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
68470 l_bflow_class_code           := '';    -- 4219869 Business Flow
68471 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
68472 l_budgetary_control_flag     := 'N';
68473 
68474 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
68475 l_bflow_applied_to_amt       := NULL; -- 5132302
68476 l_entered_amt_idx            := NULL;          -- 4262811
68477 l_accted_amt_idx             := NULL;          -- 4262811
68478 l_acc_rev_flag               := NULL;          -- 4262811
68479 l_accrual_line_num           := NULL;          -- 4262811
68480 l_tmp_amt                    := NULL;          -- 4262811
68481 --
68482  
68483 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68484     l_balance_type_code <> 'B' THEN
68485 IF NVL(p_source_38,'
68486 ') =  'CLEAR_CLEAR' AND 
68487 NVL(p_source_20,'
68488 ') =  'MISCELLANEOUS' AND 
68489 (NVL(p_source_39,'
68490 ') =  'CASH' OR 
68491 NVL(p_source_39,'
68492 ') =  'AWT' OR 
68493 NVL(p_source_39,'
68494 ') =  'DISCOUNT')
68495  THEN 
68496 
68497    --
68498    XLA_AE_LINES_PKG.SetNewLine;
68499 
68500    p_balance_type_code          := l_balance_type_code;
68501    -- set the flag so later we will know whether the gain loss line needs to be created
68502    
68503    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
68504      p_actual_flag :='A';
68505    END IF;
68506 
68507    --
68508    -- bulk performance
68509    --
68510    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68511                                       p_header_num   => 0); -- 4262811
68512    --
68513    -- set accounting line options
68514    --
68515    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68516            p_natural_side_code          => 'D'
68517          , p_gain_or_loss_flag          => 'N'
68518          , p_gl_transfer_mode_code      => 'S'
68519          , p_acct_entry_type_code       => 'A'
68523    --
68520          , p_switch_side_flag           => 'Y'
68521          , p_merge_duplicate_code       => 'A'
68522          );
68524    l_acc_rev_natural_side_code := 'C';  -- 4262811
68525    -- 
68526    --
68527    -- set accounting line type info
68528    --
68529    xla_ae_lines_pkg.SetAcctLineType
68530       (p_component_type             => l_component_type
68531       ,p_event_type_code            => l_event_type_code
68532       ,p_line_definition_owner_code => l_line_definition_owner_code
68533       ,p_line_definition_code       => l_line_definition_code
68534       ,p_accounting_line_code       => l_component_code
68535       ,p_accounting_line_type_code  => l_component_type_code
68536       ,p_accounting_line_appl_id    => l_component_appl_id
68537       ,p_amb_context_code           => l_amb_context_code
68538       ,p_entity_code                => l_entity_code
68539       ,p_event_class_code           => l_event_class_code);
68540    --
68541    -- set accounting class
68542    --
68543    xla_ae_lines_pkg.SetAcctClass(
68544            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
68545          , p_ae_header_id           => l_ae_header_id
68546          );
68547 
68548    --
68549    -- set rounding class
68550    --
68551    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68552                       'MISCELLANEOUS EXPENSE';
68553 
68554    --
68555    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68556    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68557    --
68558    -- bulk performance
68559    --
68560    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68561 
68562    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68563       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68564 
68565    -- 4955764
68566    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68567       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68568 
68569    -- 4458381 Public Sector Enh
68570    
68571    --
68572    -- set accounting attributes for the line type
68573    --
68574    l_entered_amt_idx := 10;
68575    l_accted_amt_idx  := 15;
68576    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
68577    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68578    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
68579    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
68580    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
68581    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
68582    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
68583    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68584    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
68585    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
68586    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
68587    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
68588    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
68589    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68590    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
68591    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
68592    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
68593    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
68594    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
68595    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
68596    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
68597    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
68598    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
68599    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
68600    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
68601    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
68602    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
68603    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
68604    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
68605    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
68606    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
68607    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
68608    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
68609    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
68610    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
68611    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
68612    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
68613    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
68614    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
68615    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
68616    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
68617    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
68618    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
68619    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
68620    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
68624    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
68621    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
68622    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
68623    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
68625 
68626    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68627    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68628 
68629    ---------------------------------------------------------------------------------------------------------------
68630    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68631    ---------------------------------------------------------------------------------------------------------------
68632    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68633 
68634    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68635    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68636 
68637    IF xla_accounting_cache_pkg.GetValueChar
68638          (p_source_code         => 'LEDGER_CATEGORY_CODE'
68639          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68640    AND l_bflow_method_code = 'PRIOR_ENTRY'
68641 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68642    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68643          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68644        )
68645    THEN
68646          xla_ae_lines_pkg.BflowUpgEntry
68647            (p_business_method_code    => l_bflow_method_code
68648            ,p_business_class_code     => l_bflow_class_code
68649            ,p_balance_type            => l_balance_type_code);
68650    ELSE
68651       NULL;
68652 -- No business flow processing for business flow method of NONE.
68653    END IF;
68654 
68655    --
68656    -- call analytical criteria
68657    --
68658    
68659    --
68660    -- call description
68661    --
68662    -- No description or it is inherited.
68663    --
68664    -- call ADRs
68665    -- Bug 4922099
68666    --
68667    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68668         (NVL(l_actual_upg_option, 'N') = 'O') OR
68669         (NVL(l_enc_upg_option, 'N') = 'O')
68670       )
68671    THEN
68672    NULL;
68673    --
68674    --
68675    
68676   l_ccid := AcctDerRule_26(
68677            p_application_id           => p_application_id
68678          , p_ae_header_id             => l_ae_header_id 
68679 , p_source_17 => p_source_17
68680          , x_transaction_coa_id       => l_adr_transaction_coa_id
68681          , x_accounting_coa_id        => l_adr_accounting_coa_id
68682          , x_value_type_code          => l_adr_value_type_code
68683          , p_side                     => 'NA'
68684    );
68685 
68686    xla_ae_lines_pkg.set_ccid(
68687     p_code_combination_id          => l_ccid
68688   , p_value_type_code              => l_adr_value_type_code
68689   , p_transaction_coa_id           => l_adr_transaction_coa_id
68690   , p_accounting_coa_id            => l_adr_accounting_coa_id
68691   , p_adr_code                     => 'AP_INVOICE_DIST'
68692   , p_adr_type_code                => 'S'
68693   , p_component_type               => l_component_type
68694   , p_component_code               => l_component_code
68695   , p_component_type_code          => l_component_type_code
68696   , p_component_appl_id            => l_component_appl_id
68697   , p_amb_context_code             => l_amb_context_code
68698   , p_side                         => 'NA'
68699   );
68700 
68701 
68702    --
68703    --
68704    END IF;
68705    --
68706    -- Bug 4922099
68707    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68708           (NVL(l_enc_upg_option, 'N') = 'O')
68709         ) AND
68710         (l_bflow_method_code = 'PRIOR_ENTRY')
68711       )
68712    THEN
68713       IF
68714       --
68715       1 = 2
68716       --
68717       THEN
68718       xla_accounting_err_pkg.build_message
68719                                     (p_appli_s_name            => 'XLA'
68720                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68721                                     ,p_token_1                 => 'LINE_NUMBER'
68722                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
68723                                     ,p_token_2                 => 'LINE_TYPE_NAME'
68724                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
68725                                                                              l_component_type
68726                                                                             ,l_component_code
68727                                                                             ,l_component_type_code
68728                                                                             ,l_component_appl_id
68729                                                                             ,l_amb_context_code
68730                                                                             ,l_entity_code
68731                                                                             ,l_event_class_code
68732                                                                            )
68736                                                                           ,p_lookup_code    => l_component_type_code
68733                                     ,p_token_3                 => 'OWNER'
68734                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
68735                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
68737                                                                          )
68738                                     ,p_token_4                 => 'PRODUCT_NAME'
68739                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68740                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68741                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68742                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68743                                     ,p_ae_header_id            =>  NULL
68744                                        );
68745 
68746         IF (C_LEVEL_ERROR>= g_log_level) THEN
68747                  trace
68748                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68749                       ,p_level    => C_LEVEL_ERROR
68750                       ,p_module   => l_log_module);
68751         END IF;
68752       END IF;
68753    END IF;
68754    --
68755    --
68756    ------------------------------------------------------------------------------------------------
68757    -- 4219869 Business Flow
68758    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68759    -- Prior Entry.  Currently, the following code is always generated.
68760    ------------------------------------------------------------------------------------------------
68761    XLA_AE_LINES_PKG.ValidateCurrentLine;
68762 
68763    ------------------------------------------------------------------------------------
68764    -- 4219869 Business Flow
68765    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68766    ------------------------------------------------------------------------------------
68767    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68768 
68769    ----------------------------------------------------------------------------------
68770    -- 4219869 Business Flow
68771    -- Update journal entry status -- Need to generate this within IF <condition>
68772    ----------------------------------------------------------------------------------
68773    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68774          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68775          ,p_balance_type_code => l_balance_type_code
68776          );
68777 
68778    -------------------------------------------------------------------------------------------
68779    -- 4262811 - Generate the Accrual Reversal lines
68780    -------------------------------------------------------------------------------------------
68781    BEGIN
68782       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68783                               (g_array_event(p_event_id).array_value_num('header_index'));
68784       IF l_acc_rev_flag IS NULL THEN
68785          l_acc_rev_flag := 'N';
68786       END IF;
68787    EXCEPTION
68788       WHEN OTHERS THEN
68789          l_acc_rev_flag := 'N';
68790    END;
68791    --
68792    IF (l_acc_rev_flag = 'Y') THEN
68793 
68794        -- 4645092  ------------------------------------------------------------------------------
68795        -- To allow MPA report to determine if it should generate report process
68796        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68797        ------------------------------------------------------------------------------------------
68798 
68799        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68800        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68801    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
68802    -- call ADRs
68803    -- Bug 4922099
68804    --
68805    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68806         (NVL(l_actual_upg_option, 'N') = 'O') OR
68807         (NVL(l_enc_upg_option, 'N') = 'O')
68808       )
68809    THEN
68810    NULL;
68811    --
68812    --
68813    
68814   l_ccid := AcctDerRule_26(
68815            p_application_id           => p_application_id
68816          , p_ae_header_id             => l_ae_header_id 
68817 , p_source_17 => p_source_17
68818          , x_transaction_coa_id       => l_adr_transaction_coa_id
68819          , x_accounting_coa_id        => l_adr_accounting_coa_id
68820          , x_value_type_code          => l_adr_value_type_code
68821          , p_side                     => 'NA'
68822    );
68823 
68824    xla_ae_lines_pkg.set_ccid(
68825     p_code_combination_id          => l_ccid
68826   , p_value_type_code              => l_adr_value_type_code
68827   , p_transaction_coa_id           => l_adr_transaction_coa_id
68828   , p_accounting_coa_id            => l_adr_accounting_coa_id
68829   , p_adr_code                     => 'AP_INVOICE_DIST'
68830   , p_adr_type_code                => 'S'
68831   , p_component_type               => l_component_type
68832   , p_component_code               => l_component_code
68833   , p_component_type_code          => l_component_type_code
68834   , p_component_appl_id            => l_component_appl_id
68835   , p_amb_context_code             => l_amb_context_code
68836   , p_side                         => 'NA'
68840    --
68837   );
68838 
68839 
68841    --
68842    END IF;
68843 
68844        --
68845        -- Update the line information that should be overwritten
68846        --
68847        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68848                                          p_header_num   => 1);
68849        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
68850 
68851        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68852 
68853        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
68854           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68855        END IF;
68856 
68857       --
68858       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68859       --
68860       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68861           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
68862       ELSE
68863           ---------------------------------------------------------------------------------------------------
68864           -- 4262811a Switch Sign
68865           ---------------------------------------------------------------------------------------------------
68866           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
68867           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68868                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68869           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68870                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68871           -- 5132302
68872           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68873                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68874 
68875       END IF;
68876 
68877       -- 4955764
68878       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68879       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68880 
68881 
68882       XLA_AE_LINES_PKG.ValidateCurrentLine;
68883       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68884 
68885       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68886                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68887                ,p_balance_type_code => l_balance_type_code);
68888 
68889    END IF;
68890 
68891    -----------------------------------------------------------------------------------------
68892    -- 4262811 Multiperiod Accounting
68893    -----------------------------------------------------------------------------------------
68894      -- No MPA option is assigned.
68895 
68896 
68897 END IF;
68898 END IF;
68899 --
68900 
68901 --
68902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68903    trace
68904       (p_msg      => 'END of AcctLineType_128'
68905       ,p_level    => C_LEVEL_PROCEDURE
68906       ,p_module   => l_log_module);
68907 END IF;
68908 --
68909 EXCEPTION
68910   WHEN xla_exceptions_pkg.application_exception THEN
68911       RAISE;
68912   WHEN OTHERS THEN
68913        xla_exceptions_pkg.raise_message
68914            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_128');
68915 END AcctLineType_128;
68916 --
68917 
68918 ---------------------------------------
68919 --
68920 -- PRIVATE FUNCTION
68921 --         AcctLineType_129
68922 --
68923 ---------------------------------------
68924 PROCEDURE AcctLineType_129 (
68925   p_application_id        IN NUMBER
68926  ,p_event_id              IN NUMBER
68927  ,p_calculate_acctd_flag  IN VARCHAR2
68928  ,p_calculate_g_l_flag    IN VARCHAR2
68929  ,p_actual_flag           IN OUT VARCHAR2
68930  ,p_balance_type_code     OUT VARCHAR2
68931  ,p_gain_or_loss_ref      OUT VARCHAR2
68932  
68933 --Payment Distribution (Payment Rate) Ledger Amount
68934  , p_source_9            IN NUMBER
68935 --Invoice Distribution Type
68936  , p_source_20            IN VARCHAR2
68937  , p_source_20_meaning    IN VARCHAR2
68938 --When to Account for Payment Option
68939  , p_source_38            IN VARCHAR2
68940 --Payment Distribution Type
68941  , p_source_39            IN VARCHAR2
68942  , p_source_39_meaning    IN VARCHAR2
68943 --Accounting Reversal Indicator
68944  , p_source_40            IN VARCHAR2
68945 --Payment Distribution Amount
68946  , p_source_41            IN NUMBER
68947 --Business Flow Accounts Payable Application Identifier
68948  , p_source_42            IN NUMBER
68949 --Payment Distribution Identifier
68950  , p_source_47            IN NUMBER
68951 --Distribution Link Type
68952  , p_source_48            IN VARCHAR2
68953 --Payment Currency Code
68954  , p_source_49            IN VARCHAR2
68955 --Override Accounted Amount Indicator
68956  , p_source_53            IN VARCHAR2
68957  , p_source_53_meaning    IN VARCHAR2
68958 --Third Party Type
68959  , p_source_56            IN VARCHAR2
68960 --Payment Distribution Reversed Identifier
68961  , p_source_57            IN NUMBER
68962 --Invoice Distribution Tax Line Identifier
68963  , p_source_58            IN NUMBER
68967  , p_source_62            IN VARCHAR2
68964 --Invoice Distribution Summary Tax Line Identifier
68965  , p_source_59            IN NUMBER
68966 --Business Flow Invoice Distribution Type
68968 --Business Flow Invoice Entity Code
68969  , p_source_63            IN VARCHAR2
68970 --Business Flow Invoice Distribution Identifier
68971  , p_source_64            IN NUMBER
68972 --Business Flow Invoice Identifier
68973  , p_source_65            IN NUMBER
68974 --Purchasing Encumbrance Option
68975  , p_source_102            IN VARCHAR2
68976  , p_source_102_meaning    IN VARCHAR2
68977 --Invoice Encumbered Option
68978  , p_source_104            IN VARCHAR2
68979  , p_source_104_meaning    IN VARCHAR2
68980 )
68981 IS
68982 
68983 l_component_type              VARCHAR2(80);
68984 l_component_code              VARCHAR2(30);
68985 l_component_type_code         VARCHAR2(1);
68986 l_component_appl_id           INTEGER;
68987 l_amb_context_code            VARCHAR2(30);
68988 l_entity_code                 VARCHAR2(30);
68989 l_event_class_code            VARCHAR2(30);
68990 l_ae_header_id                NUMBER;
68991 l_event_type_code             VARCHAR2(30);
68992 l_line_definition_code        VARCHAR2(30);
68993 l_line_definition_owner_code  VARCHAR2(1);
68994 --
68995 -- adr variables
68996 l_segment                     VARCHAR2(30);
68997 l_ccid                        NUMBER;
68998 l_adr_transaction_coa_id      NUMBER;
68999 l_adr_accounting_coa_id       NUMBER;
69000 l_adr_flexfield_segment_code  VARCHAR2(30);
69001 l_adr_flex_value_set_id       NUMBER;
69002 l_adr_value_type_code         VARCHAR2(30);
69003 l_adr_value_combination_id    NUMBER;
69004 l_adr_value_segment_code      VARCHAR2(30);
69005 
69006 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
69007 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
69008 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
69009 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
69010 
69011 -- 4262811 Variables ------------------------------------------------------------------------------------------
69012 l_entered_amt_idx             NUMBER;
69013 l_accted_amt_idx              NUMBER;
69014 l_acc_rev_flag                VARCHAR2(1);
69015 l_accrual_line_num            NUMBER;
69016 l_tmp_amt                     NUMBER;
69017 l_acc_rev_natural_side_code   VARCHAR2(1);
69018 
69019 l_num_entries                 NUMBER;
69020 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
69021 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
69022 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
69023 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
69024 l_recog_line_1                NUMBER;
69025 l_recog_line_2                NUMBER;
69026 
69027 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
69028 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
69029 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
69030 
69031 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69032 
69033 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
69034 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
69035 
69036 ---------------------------------------------------------------------------------------------------------------
69037 
69038 
69039 --
69040 -- bulk performance
69041 --
69042 l_balance_type_code           VARCHAR2(1);
69043 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
69044 l_log_module                  VARCHAR2(240);
69045 
69046 --
69047 -- Upgrade strategy
69048 --
69049 l_actual_upg_option           VARCHAR2(1);
69050 l_enc_upg_option           VARCHAR2(1);
69051 
69052 --
69053 BEGIN
69054 --
69055 IF g_log_enabled THEN
69056       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
69057 END IF;
69058 --
69059 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69060 
69061       trace
69062          (p_msg      => 'BEGIN of AcctLineType_129'
69063          ,p_level    => C_LEVEL_PROCEDURE
69064          ,p_module   => l_log_module);
69065 
69066 END IF;
69067 --
69068 l_component_type             := 'AMB_JLT';
69069 l_component_code             := 'AP_MISC_EXPENSE_CLR_ENC';
69070 l_component_type_code        := 'S';
69071 l_component_appl_id          :=  200;
69072 l_amb_context_code           := 'DEFAULT';
69073 l_entity_code                := 'AP_PAYMENTS';
69074 l_event_class_code           := 'RECONCILED PAYMENTS';
69075 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
69076 l_line_definition_owner_code := 'S';
69077 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
69078 --
69079 l_balance_type_code          := 'E';
69080 l_segment                     := NULL;
69081 l_ccid                        := NULL;
69082 l_adr_transaction_coa_id      := NULL;
69083 l_adr_accounting_coa_id       := NULL;
69084 l_adr_flexfield_segment_code  := NULL;
69085 l_adr_flex_value_set_id       := NULL;
69086 l_adr_value_type_code         := NULL;
69087 l_adr_value_combination_id    := NULL;
69088 l_adr_value_segment_code      := NULL;
69089 
69090 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
69094 
69091 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
69092 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
69093 l_budgetary_control_flag     := 'N';
69095 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
69096 l_bflow_applied_to_amt       := NULL; -- 5132302
69097 l_entered_amt_idx            := NULL;          -- 4262811
69098 l_accted_amt_idx             := NULL;          -- 4262811
69099 l_acc_rev_flag               := NULL;          -- 4262811
69100 l_accrual_line_num           := NULL;          -- 4262811
69101 l_tmp_amt                    := NULL;          -- 4262811
69102 --
69103  
69104 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69105     l_balance_type_code <> 'B' THEN
69106 IF NVL(p_source_38,'
69107 ') =  'CLEAR_CLEAR' AND 
69108 NVL(p_source_20,'
69109 ') =  'MISCELLANEOUS' AND 
69110 (NVL(p_source_39,'
69111 ') =  'CASH' OR 
69112 NVL(p_source_39,'
69113 ') =  'DISCOUNT') AND 
69114 NVL(p_source_102,'
69115 ') =  'Y' AND 
69116 NVL(p_source_104,'
69117 ') =  'Y'
69118  THEN 
69119 
69120    --
69121    XLA_AE_LINES_PKG.SetNewLine;
69122 
69123    p_balance_type_code          := l_balance_type_code;
69124    -- set the flag so later we will know whether the gain loss line needs to be created
69125    
69126    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69127      p_actual_flag :='A';
69128    END IF;
69129 
69130    --
69131    -- bulk performance
69132    --
69133    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69134                                       p_header_num   => 0); -- 4262811
69135    --
69136    -- set accounting line options
69137    --
69138    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69139            p_natural_side_code          => 'C'
69140          , p_gain_or_loss_flag          => 'N'
69141          , p_gl_transfer_mode_code      => 'S'
69142          , p_acct_entry_type_code       => 'E'
69143          , p_switch_side_flag           => 'Y'
69144          , p_merge_duplicate_code       => 'A'
69145          );
69146    --
69147    l_acc_rev_natural_side_code := 'D';  -- 4262811
69148    -- 
69149    --
69150    -- set accounting line type info
69151    --
69152    xla_ae_lines_pkg.SetAcctLineType
69153       (p_component_type             => l_component_type
69154       ,p_event_type_code            => l_event_type_code
69155       ,p_line_definition_owner_code => l_line_definition_owner_code
69156       ,p_line_definition_code       => l_line_definition_code
69157       ,p_accounting_line_code       => l_component_code
69158       ,p_accounting_line_type_code  => l_component_type_code
69159       ,p_accounting_line_appl_id    => l_component_appl_id
69160       ,p_amb_context_code           => l_amb_context_code
69161       ,p_entity_code                => l_entity_code
69162       ,p_event_class_code           => l_event_class_code);
69163    --
69164    -- set accounting class
69165    --
69166    xla_ae_lines_pkg.SetAcctClass(
69167            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
69168          , p_ae_header_id           => l_ae_header_id
69169          );
69170 
69171    --
69172    -- set rounding class
69173    --
69174    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69175                       'MISCELLANEOUS EXPENSE';
69176 
69177    --
69178    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69179    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69180    --
69181    -- bulk performance
69182    --
69183    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69184 
69185    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69186       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69187 
69188    -- 4955764
69189    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69190       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69191 
69192    -- 4458381 Public Sector Enh
69193    
69194    --
69195    -- set accounting attributes for the line type
69196    --
69197    l_entered_amt_idx := 10;
69198    l_accted_amt_idx  := 12;
69199    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
69200    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69201    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
69202    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
69203    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
69204    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
69205    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
69206    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69207    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
69208    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
69209    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
69210    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
69211    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
69212    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69216    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
69213    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
69214    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
69215    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
69217    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
69218    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
69219    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
69220    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
69221    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
69222    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
69223    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
69224    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
69225    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
69226    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
69227    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
69228    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
69229    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
69230    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
69231    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
69232    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
69233    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
69234    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
69235    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
69236    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
69237    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
69238 
69239    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69240    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69241 
69242    ---------------------------------------------------------------------------------------------------------------
69243    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69244    ---------------------------------------------------------------------------------------------------------------
69245    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69246 
69247    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69248    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69249 
69250    IF xla_accounting_cache_pkg.GetValueChar
69251          (p_source_code         => 'LEDGER_CATEGORY_CODE'
69252          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69253    AND l_bflow_method_code = 'PRIOR_ENTRY'
69254 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69255    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69256          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69257        )
69258    THEN
69259          xla_ae_lines_pkg.BflowUpgEntry
69260            (p_business_method_code    => l_bflow_method_code
69261            ,p_business_class_code     => l_bflow_class_code
69262            ,p_balance_type            => l_balance_type_code);
69263    ELSE
69264       NULL;
69265 XLA_AE_LINES_PKG.business_flow_validation(
69266                                 p_business_method_code     => l_bflow_method_code
69267                                ,p_business_class_code      => l_bflow_class_code
69268                                ,p_inherit_description_flag => l_inherit_desc_flag);
69269    END IF;
69270 
69271    --
69272    -- call analytical criteria
69273    --
69274    -- Inherited Analytical Criteria for business flow method of Prior Entry.
69275    --
69276    -- call description
69277    --
69278    -- No description or it is inherited.
69279    --
69280    -- call ADRs
69281    -- Bug 4922099
69282    --
69283    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69284         (NVL(l_actual_upg_option, 'N') = 'O') OR
69285         (NVL(l_enc_upg_option, 'N') = 'O')
69286       )
69287    THEN
69288    NULL;
69289    --
69290    --
69291    
69292    --
69293    --
69294    END IF;
69295    --
69296    -- Bug 4922099
69297    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69298           (NVL(l_enc_upg_option, 'N') = 'O')
69299         ) AND
69300         (l_bflow_method_code = 'PRIOR_ENTRY')
69301       )
69302    THEN
69303       IF
69304       --
69305       1 = 1
69306       --
69307       THEN
69308       xla_accounting_err_pkg.build_message
69309                                     (p_appli_s_name            => 'XLA'
69310                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69311                                     ,p_token_1                 => 'LINE_NUMBER'
69312                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
69313                                     ,p_token_2                 => 'LINE_TYPE_NAME'
69314                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
69315                                                                              l_component_type
69316                                                                             ,l_component_code
69317                                                                             ,l_component_type_code
69321                                                                             ,l_event_class_code
69318                                                                             ,l_component_appl_id
69319                                                                             ,l_amb_context_code
69320                                                                             ,l_entity_code
69322                                                                            )
69323                                     ,p_token_3                 => 'OWNER'
69324                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
69325                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
69326                                                                           ,p_lookup_code    => l_component_type_code
69327                                                                          )
69328                                     ,p_token_4                 => 'PRODUCT_NAME'
69329                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69330                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69331                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69332                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69333                                     ,p_ae_header_id            =>  NULL
69334                                        );
69335 
69336         IF (C_LEVEL_ERROR>= g_log_level) THEN
69337                  trace
69338                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69339                       ,p_level    => C_LEVEL_ERROR
69340                       ,p_module   => l_log_module);
69341         END IF;
69342       END IF;
69343    END IF;
69344    --
69345    --
69346    ------------------------------------------------------------------------------------------------
69347    -- 4219869 Business Flow
69348    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69349    -- Prior Entry.  Currently, the following code is always generated.
69350    ------------------------------------------------------------------------------------------------
69351    -- No ValidateCurrentLine for business flow method of Prior Entry
69352 
69353    ------------------------------------------------------------------------------------
69354    -- 4219869 Business Flow
69355    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69356    ------------------------------------------------------------------------------------
69357    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69358 
69359    ----------------------------------------------------------------------------------
69360    -- 4219869 Business Flow
69361    -- Update journal entry status -- Need to generate this within IF <condition>
69362    ----------------------------------------------------------------------------------
69363    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69364          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69365          ,p_balance_type_code => l_balance_type_code
69366          );
69367 
69368    -------------------------------------------------------------------------------------------
69369    -- 4262811 - Generate the Accrual Reversal lines
69370    -------------------------------------------------------------------------------------------
69371    BEGIN
69372       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69373                               (g_array_event(p_event_id).array_value_num('header_index'));
69374       IF l_acc_rev_flag IS NULL THEN
69375          l_acc_rev_flag := 'N';
69376       END IF;
69377    EXCEPTION
69378       WHEN OTHERS THEN
69379          l_acc_rev_flag := 'N';
69380    END;
69381    --
69382    IF (l_acc_rev_flag = 'Y') THEN
69383 
69384        -- 4645092  ------------------------------------------------------------------------------
69385        -- To allow MPA report to determine if it should generate report process
69386        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69387        ------------------------------------------------------------------------------------------
69388 
69389        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69390        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69391    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
69392    -- call ADRs
69393    -- Bug 4922099
69394    --
69395    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69396         (NVL(l_actual_upg_option, 'N') = 'O') OR
69397         (NVL(l_enc_upg_option, 'N') = 'O')
69398       )
69399    THEN
69400    NULL;
69401    --
69402    --
69403    
69404    --
69405    --
69406    END IF;
69407 
69408        --
69409        -- Update the line information that should be overwritten
69410        --
69411        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69412                                          p_header_num   => 1);
69413        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
69414 
69415        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69416 
69417        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
69418           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69419        END IF;
69420 
69421       --
69425           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
69422       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69423       --
69424       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69426       ELSE
69427           ---------------------------------------------------------------------------------------------------
69428           -- 4262811a Switch Sign
69429           ---------------------------------------------------------------------------------------------------
69430           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
69431           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69432                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69433           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69434                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69435           -- 5132302
69436           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69437                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69438 
69439       END IF;
69440 
69441       -- 4955764
69442       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69443       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69444 
69445 
69446       XLA_AE_LINES_PKG.ValidateCurrentLine;
69447       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69448 
69449       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69450                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69451                ,p_balance_type_code => l_balance_type_code);
69452 
69453    END IF;
69454 
69455    -----------------------------------------------------------------------------------------
69456    -- 4262811 Multiperiod Accounting
69457    -----------------------------------------------------------------------------------------
69458      -- No MPA option is assigned.
69459 
69460 
69461 END IF;
69462 END IF;
69463 --
69464 
69465 --
69466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69467    trace
69468       (p_msg      => 'END of AcctLineType_129'
69469       ,p_level    => C_LEVEL_PROCEDURE
69470       ,p_module   => l_log_module);
69471 END IF;
69472 --
69473 EXCEPTION
69474   WHEN xla_exceptions_pkg.application_exception THEN
69475       RAISE;
69476   WHEN OTHERS THEN
69477        xla_exceptions_pkg.raise_message
69478            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_129');
69479 END AcctLineType_129;
69480 --
69481 
69482 ---------------------------------------
69483 --
69484 -- PRIVATE FUNCTION
69485 --         AcctLineType_130
69486 --
69487 ---------------------------------------
69488 PROCEDURE AcctLineType_130 (
69489   p_application_id        IN NUMBER
69490  ,p_event_id              IN NUMBER
69491  ,p_calculate_acctd_flag  IN VARCHAR2
69492  ,p_calculate_g_l_flag    IN VARCHAR2
69493  ,p_actual_flag           IN OUT VARCHAR2
69494  ,p_balance_type_code     OUT VARCHAR2
69495  ,p_gain_or_loss_ref      OUT VARCHAR2
69496  
69497 --Payment Distribution (Payment Rate) Ledger Amount
69498  , p_source_9            IN NUMBER
69499 --Invoice Distribution Account
69500  , p_source_17            IN NUMBER
69501 --Invoice Distribution Type
69502  , p_source_20            IN VARCHAR2
69503  , p_source_20_meaning    IN VARCHAR2
69504 --When to Account for Payment Option
69505  , p_source_38            IN VARCHAR2
69506 --Payment Distribution Type
69507  , p_source_39            IN VARCHAR2
69508  , p_source_39_meaning    IN VARCHAR2
69509 --Accounting Reversal Indicator
69510  , p_source_40            IN VARCHAR2
69511 --Payment Distribution Amount
69512  , p_source_41            IN NUMBER
69513 --Business Flow Accounts Payable Application Identifier
69514  , p_source_42            IN NUMBER
69515 --Payment Distribution Identifier
69516  , p_source_47            IN NUMBER
69517 --Distribution Link Type
69518  , p_source_48            IN VARCHAR2
69519 --Payment Currency Code
69520  , p_source_49            IN VARCHAR2
69521 --Override Accounted Amount Indicator
69522  , p_source_53            IN VARCHAR2
69523  , p_source_53_meaning    IN VARCHAR2
69524 --Payment Supplier Identifier
69525  , p_source_54            IN NUMBER
69526 --Payment Supplier Site Identifier
69527  , p_source_55            IN NUMBER
69528 --Third Party Type
69529  , p_source_56            IN VARCHAR2
69530 --Payment Distribution Reversed Identifier
69531  , p_source_57            IN NUMBER
69532 --Invoice Distribution Tax Line Identifier
69533  , p_source_58            IN NUMBER
69534 --Invoice Distribution Summary Tax Line Identifier
69535  , p_source_59            IN NUMBER
69536 --Payment Type
69537  , p_source_60            IN VARCHAR2
69538  , p_source_60_meaning    IN VARCHAR2
69539 --Invoice Distribution Amount of the Payment Distribution
69540  , p_source_61            IN NUMBER
69541 --Business Flow Invoice Distribution Type
69542  , p_source_62            IN VARCHAR2
69543 --Business Flow Invoice Entity Code
69544  , p_source_63            IN VARCHAR2
69545 --Business Flow Invoice Distribution Identifier
69549 --Invoice Distribution Tax Distribution Identifier from Tax
69546  , p_source_64            IN NUMBER
69547 --Business Flow Invoice Identifier
69548  , p_source_65            IN NUMBER
69550  , p_source_66            IN NUMBER
69551 --Payment Exchange Date
69552  , p_source_114            IN DATE
69553 --Payment Exchange Rate
69554  , p_source_115            IN NUMBER
69555 --Payment Exchange Rate Type
69556  , p_source_116            IN VARCHAR2
69557 )
69558 IS
69559 
69560 l_component_type              VARCHAR2(80);
69561 l_component_code              VARCHAR2(30);
69562 l_component_type_code         VARCHAR2(1);
69563 l_component_appl_id           INTEGER;
69564 l_amb_context_code            VARCHAR2(30);
69565 l_entity_code                 VARCHAR2(30);
69566 l_event_class_code            VARCHAR2(30);
69567 l_ae_header_id                NUMBER;
69568 l_event_type_code             VARCHAR2(30);
69569 l_line_definition_code        VARCHAR2(30);
69570 l_line_definition_owner_code  VARCHAR2(1);
69571 --
69572 -- adr variables
69573 l_segment                     VARCHAR2(30);
69574 l_ccid                        NUMBER;
69575 l_adr_transaction_coa_id      NUMBER;
69576 l_adr_accounting_coa_id       NUMBER;
69577 l_adr_flexfield_segment_code  VARCHAR2(30);
69578 l_adr_flex_value_set_id       NUMBER;
69579 l_adr_value_type_code         VARCHAR2(30);
69580 l_adr_value_combination_id    NUMBER;
69581 l_adr_value_segment_code      VARCHAR2(30);
69582 
69583 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
69584 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
69585 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
69586 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
69587 
69588 -- 4262811 Variables ------------------------------------------------------------------------------------------
69589 l_entered_amt_idx             NUMBER;
69590 l_accted_amt_idx              NUMBER;
69591 l_acc_rev_flag                VARCHAR2(1);
69592 l_accrual_line_num            NUMBER;
69593 l_tmp_amt                     NUMBER;
69594 l_acc_rev_natural_side_code   VARCHAR2(1);
69595 
69596 l_num_entries                 NUMBER;
69597 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
69598 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
69599 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
69600 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
69601 l_recog_line_1                NUMBER;
69602 l_recog_line_2                NUMBER;
69603 
69604 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
69605 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
69606 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
69607 
69608 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69609 
69610 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
69611 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
69612 
69613 ---------------------------------------------------------------------------------------------------------------
69614 
69615 
69616 --
69617 -- bulk performance
69618 --
69619 l_balance_type_code           VARCHAR2(1);
69620 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
69621 l_log_module                  VARCHAR2(240);
69622 
69623 --
69624 -- Upgrade strategy
69625 --
69626 l_actual_upg_option           VARCHAR2(1);
69627 l_enc_upg_option           VARCHAR2(1);
69628 
69629 --
69630 BEGIN
69631 --
69632 IF g_log_enabled THEN
69633       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
69634 END IF;
69635 --
69636 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69637 
69638       trace
69639          (p_msg      => 'BEGIN of AcctLineType_130'
69640          ,p_level    => C_LEVEL_PROCEDURE
69641          ,p_module   => l_log_module);
69642 
69643 END IF;
69644 --
69645 l_component_type             := 'AMB_JLT';
69646 l_component_code             := 'AP_MISC_EXPENSE_PMT';
69647 l_component_type_code        := 'S';
69648 l_component_appl_id          :=  200;
69649 l_amb_context_code           := 'DEFAULT';
69650 l_entity_code                := 'AP_PAYMENTS';
69651 l_event_class_code           := 'PAYMENTS';
69652 l_event_type_code            := 'PAYMENTS_ALL';
69653 l_line_definition_owner_code := 'S';
69654 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
69655 --
69656 l_balance_type_code          := 'A';
69657 l_segment                     := NULL;
69658 l_ccid                        := NULL;
69659 l_adr_transaction_coa_id      := NULL;
69660 l_adr_accounting_coa_id       := NULL;
69661 l_adr_flexfield_segment_code  := NULL;
69662 l_adr_flex_value_set_id       := NULL;
69663 l_adr_value_type_code         := NULL;
69664 l_adr_value_combination_id    := NULL;
69665 l_adr_value_segment_code      := NULL;
69666 
69667 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
69668 l_bflow_class_code           := '';    -- 4219869 Business Flow
69669 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
69670 l_budgetary_control_flag     := 'N';
69671 
69672 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
69673 l_bflow_applied_to_amt       := NULL; -- 5132302
69677 l_accrual_line_num           := NULL;          -- 4262811
69674 l_entered_amt_idx            := NULL;          -- 4262811
69675 l_accted_amt_idx             := NULL;          -- 4262811
69676 l_acc_rev_flag               := NULL;          -- 4262811
69678 l_tmp_amt                    := NULL;          -- 4262811
69679 --
69680  
69681 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69682     l_balance_type_code <> 'B' THEN
69683 IF NVL(p_source_38,'
69684 ') <>  'CLEAR_CLEAR' AND 
69685 NVL(p_source_20,'
69686 ') =  'MISCELLANEOUS' AND 
69687 (NVL(p_source_39,'
69688 ') =  'CASH' OR 
69689 NVL(p_source_39,'
69690 ') =  'AWT' OR 
69691 NVL(p_source_39,'
69692 ') =  'DISCOUNT') AND 
69693 NVL(p_source_60,'
69694 ') <>  'R'
69695  THEN 
69696 
69697    --
69698    XLA_AE_LINES_PKG.SetNewLine;
69699 
69700    p_balance_type_code          := l_balance_type_code;
69701    -- set the flag so later we will know whether the gain loss line needs to be created
69702    
69703    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69704      p_actual_flag :='A';
69705    END IF;
69706 
69707    --
69708    -- bulk performance
69709    --
69710    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69711                                       p_header_num   => 0); -- 4262811
69712    --
69713    -- set accounting line options
69714    --
69715    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69716            p_natural_side_code          => 'D'
69717          , p_gain_or_loss_flag          => 'N'
69718          , p_gl_transfer_mode_code      => 'S'
69719          , p_acct_entry_type_code       => 'A'
69720          , p_switch_side_flag           => 'Y'
69721          , p_merge_duplicate_code       => 'A'
69722          );
69723    --
69724    l_acc_rev_natural_side_code := 'C';  -- 4262811
69725    -- 
69726    --
69727    -- set accounting line type info
69728    --
69729    xla_ae_lines_pkg.SetAcctLineType
69730       (p_component_type             => l_component_type
69731       ,p_event_type_code            => l_event_type_code
69732       ,p_line_definition_owner_code => l_line_definition_owner_code
69733       ,p_line_definition_code       => l_line_definition_code
69734       ,p_accounting_line_code       => l_component_code
69735       ,p_accounting_line_type_code  => l_component_type_code
69736       ,p_accounting_line_appl_id    => l_component_appl_id
69737       ,p_amb_context_code           => l_amb_context_code
69738       ,p_entity_code                => l_entity_code
69739       ,p_event_class_code           => l_event_class_code);
69740    --
69741    -- set accounting class
69742    --
69743    xla_ae_lines_pkg.SetAcctClass(
69744            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
69745          , p_ae_header_id           => l_ae_header_id
69746          );
69747 
69748    --
69749    -- set rounding class
69750    --
69751    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69752                       'MISCELLANEOUS EXPENSE';
69753 
69754    --
69755    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69756    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69757    --
69758    -- bulk performance
69759    --
69760    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69761 
69762    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69763       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69764 
69765    -- 4955764
69766    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69767       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69768 
69769    -- 4458381 Public Sector Enh
69770    
69771    --
69772    -- set accounting attributes for the line type
69773    --
69774    l_entered_amt_idx := 10;
69775    l_accted_amt_idx  := 15;
69776    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
69777    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69778    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
69779    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
69780    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
69781    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
69782    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
69783    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69784    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
69785    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
69786    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
69787    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
69788    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
69789    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69790    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
69791    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
69792    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
69793    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
69794    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
69798    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
69795    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
69796    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
69797    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
69799    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
69800    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
69801    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
69802    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
69803    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
69804    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
69805    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
69806    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
69807    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
69808    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
69809    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
69810    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
69811    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
69812    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
69813    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
69814    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
69815    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
69816    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
69817    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
69818    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
69819    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
69820    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
69821    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
69822    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
69823    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
69824    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
69825 
69826    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69827    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69828 
69829    ---------------------------------------------------------------------------------------------------------------
69830    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69831    ---------------------------------------------------------------------------------------------------------------
69832    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69833 
69834    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69835    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69836 
69837    IF xla_accounting_cache_pkg.GetValueChar
69838          (p_source_code         => 'LEDGER_CATEGORY_CODE'
69839          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69840    AND l_bflow_method_code = 'PRIOR_ENTRY'
69841 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69842    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69843          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69844        )
69845    THEN
69846          xla_ae_lines_pkg.BflowUpgEntry
69847            (p_business_method_code    => l_bflow_method_code
69848            ,p_business_class_code     => l_bflow_class_code
69849            ,p_balance_type            => l_balance_type_code);
69850    ELSE
69851       NULL;
69852 -- No business flow processing for business flow method of NONE.
69853    END IF;
69854 
69855    --
69856    -- call analytical criteria
69857    --
69858    
69859    --
69860    -- call description
69861    --
69862    -- No description or it is inherited.
69863    --
69864    -- call ADRs
69865    -- Bug 4922099
69866    --
69867    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69868         (NVL(l_actual_upg_option, 'N') = 'O') OR
69869         (NVL(l_enc_upg_option, 'N') = 'O')
69870       )
69871    THEN
69872    NULL;
69873    --
69874    --
69875    
69876   l_ccid := AcctDerRule_26(
69877            p_application_id           => p_application_id
69878          , p_ae_header_id             => l_ae_header_id 
69879 , p_source_17 => p_source_17
69880          , x_transaction_coa_id       => l_adr_transaction_coa_id
69881          , x_accounting_coa_id        => l_adr_accounting_coa_id
69882          , x_value_type_code          => l_adr_value_type_code
69883          , p_side                     => 'NA'
69884    );
69885 
69886    xla_ae_lines_pkg.set_ccid(
69887     p_code_combination_id          => l_ccid
69888   , p_value_type_code              => l_adr_value_type_code
69889   , p_transaction_coa_id           => l_adr_transaction_coa_id
69890   , p_accounting_coa_id            => l_adr_accounting_coa_id
69891   , p_adr_code                     => 'AP_INVOICE_DIST'
69892   , p_adr_type_code                => 'S'
69893   , p_component_type               => l_component_type
69894   , p_component_code               => l_component_code
69895   , p_component_type_code          => l_component_type_code
69896   , p_component_appl_id            => l_component_appl_id
69897   , p_amb_context_code             => l_amb_context_code
69898   , p_side                         => 'NA'
69899   );
69900 
69901 
69902    --
69903    --
69907    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69904    END IF;
69905    --
69906    -- Bug 4922099
69908           (NVL(l_enc_upg_option, 'N') = 'O')
69909         ) AND
69910         (l_bflow_method_code = 'PRIOR_ENTRY')
69911       )
69912    THEN
69913       IF
69914       --
69915       1 = 2
69916       --
69917       THEN
69918       xla_accounting_err_pkg.build_message
69919                                     (p_appli_s_name            => 'XLA'
69920                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69921                                     ,p_token_1                 => 'LINE_NUMBER'
69922                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
69923                                     ,p_token_2                 => 'LINE_TYPE_NAME'
69924                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
69925                                                                              l_component_type
69926                                                                             ,l_component_code
69927                                                                             ,l_component_type_code
69928                                                                             ,l_component_appl_id
69929                                                                             ,l_amb_context_code
69930                                                                             ,l_entity_code
69931                                                                             ,l_event_class_code
69932                                                                            )
69933                                     ,p_token_3                 => 'OWNER'
69934                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
69935                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
69936                                                                           ,p_lookup_code    => l_component_type_code
69937                                                                          )
69938                                     ,p_token_4                 => 'PRODUCT_NAME'
69939                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69940                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69941                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69942                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69943                                     ,p_ae_header_id            =>  NULL
69944                                        );
69945 
69946         IF (C_LEVEL_ERROR>= g_log_level) THEN
69947                  trace
69948                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69949                       ,p_level    => C_LEVEL_ERROR
69950                       ,p_module   => l_log_module);
69951         END IF;
69952       END IF;
69953    END IF;
69954    --
69955    --
69956    ------------------------------------------------------------------------------------------------
69957    -- 4219869 Business Flow
69958    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69959    -- Prior Entry.  Currently, the following code is always generated.
69960    ------------------------------------------------------------------------------------------------
69961    XLA_AE_LINES_PKG.ValidateCurrentLine;
69962 
69963    ------------------------------------------------------------------------------------
69964    -- 4219869 Business Flow
69965    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69966    ------------------------------------------------------------------------------------
69967    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69968 
69969    ----------------------------------------------------------------------------------
69970    -- 4219869 Business Flow
69971    -- Update journal entry status -- Need to generate this within IF <condition>
69972    ----------------------------------------------------------------------------------
69973    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69974          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69975          ,p_balance_type_code => l_balance_type_code
69976          );
69977 
69978    -------------------------------------------------------------------------------------------
69979    -- 4262811 - Generate the Accrual Reversal lines
69980    -------------------------------------------------------------------------------------------
69981    BEGIN
69982       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69983                               (g_array_event(p_event_id).array_value_num('header_index'));
69984       IF l_acc_rev_flag IS NULL THEN
69985          l_acc_rev_flag := 'N';
69986       END IF;
69987    EXCEPTION
69988       WHEN OTHERS THEN
69989          l_acc_rev_flag := 'N';
69990    END;
69991    --
69992    IF (l_acc_rev_flag = 'Y') THEN
69993 
69994        -- 4645092  ------------------------------------------------------------------------------
69995        -- To allow MPA report to determine if it should generate report process
69996        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69997        ------------------------------------------------------------------------------------------
69998 
69999        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70003    -- Bug 4922099
70000        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70001    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
70002    -- call ADRs
70004    --
70005    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70006         (NVL(l_actual_upg_option, 'N') = 'O') OR
70007         (NVL(l_enc_upg_option, 'N') = 'O')
70008       )
70009    THEN
70010    NULL;
70011    --
70012    --
70013    
70014   l_ccid := AcctDerRule_26(
70015            p_application_id           => p_application_id
70016          , p_ae_header_id             => l_ae_header_id 
70017 , p_source_17 => p_source_17
70018          , x_transaction_coa_id       => l_adr_transaction_coa_id
70019          , x_accounting_coa_id        => l_adr_accounting_coa_id
70020          , x_value_type_code          => l_adr_value_type_code
70021          , p_side                     => 'NA'
70022    );
70023 
70024    xla_ae_lines_pkg.set_ccid(
70025     p_code_combination_id          => l_ccid
70026   , p_value_type_code              => l_adr_value_type_code
70027   , p_transaction_coa_id           => l_adr_transaction_coa_id
70028   , p_accounting_coa_id            => l_adr_accounting_coa_id
70029   , p_adr_code                     => 'AP_INVOICE_DIST'
70030   , p_adr_type_code                => 'S'
70031   , p_component_type               => l_component_type
70032   , p_component_code               => l_component_code
70033   , p_component_type_code          => l_component_type_code
70034   , p_component_appl_id            => l_component_appl_id
70035   , p_amb_context_code             => l_amb_context_code
70036   , p_side                         => 'NA'
70037   );
70038 
70039 
70040    --
70041    --
70042    END IF;
70043 
70044        --
70045        -- Update the line information that should be overwritten
70046        --
70047        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70048                                          p_header_num   => 1);
70049        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
70050 
70051        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70052 
70053        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
70054           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70055        END IF;
70056 
70057       --
70058       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70059       --
70060       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70061           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
70062       ELSE
70063           ---------------------------------------------------------------------------------------------------
70064           -- 4262811a Switch Sign
70065           ---------------------------------------------------------------------------------------------------
70066           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
70067           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70068                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70069           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70070                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70071           -- 5132302
70072           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70073                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70074 
70075       END IF;
70076 
70077       -- 4955764
70078       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70079       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70080 
70081 
70082       XLA_AE_LINES_PKG.ValidateCurrentLine;
70083       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70084 
70085       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70086                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70087                ,p_balance_type_code => l_balance_type_code);
70088 
70089    END IF;
70090 
70091    -----------------------------------------------------------------------------------------
70092    -- 4262811 Multiperiod Accounting
70093    -----------------------------------------------------------------------------------------
70094      -- No MPA option is assigned.
70095 
70096 
70097 END IF;
70098 END IF;
70099 --
70100 
70101 --
70102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70103    trace
70104       (p_msg      => 'END of AcctLineType_130'
70105       ,p_level    => C_LEVEL_PROCEDURE
70106       ,p_module   => l_log_module);
70107 END IF;
70108 --
70109 EXCEPTION
70110   WHEN xla_exceptions_pkg.application_exception THEN
70111       RAISE;
70112   WHEN OTHERS THEN
70113        xla_exceptions_pkg.raise_message
70114            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_130');
70115 END AcctLineType_130;
70116 --
70117 
70118 ---------------------------------------
70119 --
70120 -- PRIVATE FUNCTION
70121 --         AcctLineType_131
70122 --
70126  ,p_event_id              IN NUMBER
70123 ---------------------------------------
70124 PROCEDURE AcctLineType_131 (
70125   p_application_id        IN NUMBER
70127  ,p_calculate_acctd_flag  IN VARCHAR2
70128  ,p_calculate_g_l_flag    IN VARCHAR2
70129  ,p_actual_flag           IN OUT VARCHAR2
70130  ,p_balance_type_code     OUT VARCHAR2
70131  ,p_gain_or_loss_ref      OUT VARCHAR2
70132  
70133 --Payment Distribution (Payment Rate) Ledger Amount
70134  , p_source_9            IN NUMBER
70135 --Invoice Distribution Type
70136  , p_source_20            IN VARCHAR2
70137  , p_source_20_meaning    IN VARCHAR2
70138 --When to Account for Payment Option
70139  , p_source_38            IN VARCHAR2
70140 --Payment Distribution Type
70141  , p_source_39            IN VARCHAR2
70142  , p_source_39_meaning    IN VARCHAR2
70143 --Accounting Reversal Indicator
70144  , p_source_40            IN VARCHAR2
70145 --Payment Distribution Amount
70146  , p_source_41            IN NUMBER
70147 --Business Flow Accounts Payable Application Identifier
70148  , p_source_42            IN NUMBER
70149 --Payment Distribution Identifier
70150  , p_source_47            IN NUMBER
70151 --Distribution Link Type
70152  , p_source_48            IN VARCHAR2
70153 --Payment Currency Code
70154  , p_source_49            IN VARCHAR2
70155 --Override Accounted Amount Indicator
70156  , p_source_53            IN VARCHAR2
70157  , p_source_53_meaning    IN VARCHAR2
70158 --Third Party Type
70159  , p_source_56            IN VARCHAR2
70160 --Payment Distribution Reversed Identifier
70161  , p_source_57            IN NUMBER
70162 --Invoice Distribution Tax Line Identifier
70163  , p_source_58            IN NUMBER
70164 --Invoice Distribution Summary Tax Line Identifier
70165  , p_source_59            IN NUMBER
70166 --Payment Type
70167  , p_source_60            IN VARCHAR2
70168  , p_source_60_meaning    IN VARCHAR2
70169 --Invoice Distribution Amount of the Payment Distribution
70170  , p_source_61            IN NUMBER
70171 --Business Flow Invoice Distribution Type
70172  , p_source_62            IN VARCHAR2
70173 --Business Flow Invoice Entity Code
70174  , p_source_63            IN VARCHAR2
70175 --Business Flow Invoice Distribution Identifier
70176  , p_source_64            IN NUMBER
70177 --Business Flow Invoice Identifier
70178  , p_source_65            IN NUMBER
70179 --Invoice Distribution Tax Distribution Identifier from Tax
70180  , p_source_66            IN NUMBER
70181 --Purchasing Encumbrance Option
70182  , p_source_102            IN VARCHAR2
70183  , p_source_102_meaning    IN VARCHAR2
70184 --Invoice Encumbered Option
70185  , p_source_104            IN VARCHAR2
70186  , p_source_104_meaning    IN VARCHAR2
70187 )
70188 IS
70189 
70190 l_component_type              VARCHAR2(80);
70191 l_component_code              VARCHAR2(30);
70192 l_component_type_code         VARCHAR2(1);
70193 l_component_appl_id           INTEGER;
70194 l_amb_context_code            VARCHAR2(30);
70195 l_entity_code                 VARCHAR2(30);
70196 l_event_class_code            VARCHAR2(30);
70197 l_ae_header_id                NUMBER;
70198 l_event_type_code             VARCHAR2(30);
70199 l_line_definition_code        VARCHAR2(30);
70200 l_line_definition_owner_code  VARCHAR2(1);
70201 --
70202 -- adr variables
70203 l_segment                     VARCHAR2(30);
70204 l_ccid                        NUMBER;
70205 l_adr_transaction_coa_id      NUMBER;
70206 l_adr_accounting_coa_id       NUMBER;
70207 l_adr_flexfield_segment_code  VARCHAR2(30);
70208 l_adr_flex_value_set_id       NUMBER;
70209 l_adr_value_type_code         VARCHAR2(30);
70210 l_adr_value_combination_id    NUMBER;
70211 l_adr_value_segment_code      VARCHAR2(30);
70212 
70213 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70214 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70215 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70216 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70217 
70218 -- 4262811 Variables ------------------------------------------------------------------------------------------
70219 l_entered_amt_idx             NUMBER;
70220 l_accted_amt_idx              NUMBER;
70221 l_acc_rev_flag                VARCHAR2(1);
70222 l_accrual_line_num            NUMBER;
70223 l_tmp_amt                     NUMBER;
70224 l_acc_rev_natural_side_code   VARCHAR2(1);
70225 
70226 l_num_entries                 NUMBER;
70227 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70228 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70229 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70230 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70231 l_recog_line_1                NUMBER;
70232 l_recog_line_2                NUMBER;
70233 
70234 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70235 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70236 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70237 
70238 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70239 
70240 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70241 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70242 
70246 --
70243 ---------------------------------------------------------------------------------------------------------------
70244 
70245 
70247 -- bulk performance
70248 --
70249 l_balance_type_code           VARCHAR2(1);
70250 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70251 l_log_module                  VARCHAR2(240);
70252 
70253 --
70254 -- Upgrade strategy
70255 --
70256 l_actual_upg_option           VARCHAR2(1);
70257 l_enc_upg_option           VARCHAR2(1);
70258 
70259 --
70260 BEGIN
70261 --
70262 IF g_log_enabled THEN
70263       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
70264 END IF;
70265 --
70266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70267 
70268       trace
70269          (p_msg      => 'BEGIN of AcctLineType_131'
70270          ,p_level    => C_LEVEL_PROCEDURE
70271          ,p_module   => l_log_module);
70272 
70273 END IF;
70274 --
70275 l_component_type             := 'AMB_JLT';
70276 l_component_code             := 'AP_MISC_EXPENSE_PMT_ENC';
70277 l_component_type_code        := 'S';
70278 l_component_appl_id          :=  200;
70279 l_amb_context_code           := 'DEFAULT';
70280 l_entity_code                := 'AP_PAYMENTS';
70281 l_event_class_code           := 'PAYMENTS';
70282 l_event_type_code            := 'PAYMENTS_ALL';
70283 l_line_definition_owner_code := 'S';
70284 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
70285 --
70286 l_balance_type_code          := 'E';
70287 l_segment                     := NULL;
70288 l_ccid                        := NULL;
70289 l_adr_transaction_coa_id      := NULL;
70290 l_adr_accounting_coa_id       := NULL;
70291 l_adr_flexfield_segment_code  := NULL;
70292 l_adr_flex_value_set_id       := NULL;
70293 l_adr_value_type_code         := NULL;
70294 l_adr_value_combination_id    := NULL;
70295 l_adr_value_segment_code      := NULL;
70296 
70297 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
70298 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
70299 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
70300 l_budgetary_control_flag     := 'N';
70301 
70302 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
70303 l_bflow_applied_to_amt       := NULL; -- 5132302
70304 l_entered_amt_idx            := NULL;          -- 4262811
70305 l_accted_amt_idx             := NULL;          -- 4262811
70306 l_acc_rev_flag               := NULL;          -- 4262811
70307 l_accrual_line_num           := NULL;          -- 4262811
70308 l_tmp_amt                    := NULL;          -- 4262811
70309 --
70310  
70311 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70312     l_balance_type_code <> 'B' THEN
70313 IF NVL(p_source_38,'
70314 ') <>  'CLEAR_CLEAR' AND 
70315 NVL(p_source_20,'
70316 ') =  'MISCELLANEOUS' AND 
70317 (NVL(p_source_39,'
70318 ') =  'CASH' OR 
70319 NVL(p_source_39,'
70320 ') =  'DISCOUNT') AND 
70321 NVL(p_source_60,'
70322 ') <>  'R' AND 
70323 NVL(p_source_102,'
70324 ') =  'Y' AND 
70325 NVL(p_source_104,'
70326 ') =  'Y'
70327  THEN 
70328 
70329    --
70330    XLA_AE_LINES_PKG.SetNewLine;
70331 
70332    p_balance_type_code          := l_balance_type_code;
70333    -- set the flag so later we will know whether the gain loss line needs to be created
70334    
70335    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70336      p_actual_flag :='A';
70337    END IF;
70338 
70339    --
70340    -- bulk performance
70341    --
70342    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70343                                       p_header_num   => 0); -- 4262811
70344    --
70345    -- set accounting line options
70346    --
70347    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70348            p_natural_side_code          => 'C'
70349          , p_gain_or_loss_flag          => 'N'
70350          , p_gl_transfer_mode_code      => 'S'
70351          , p_acct_entry_type_code       => 'E'
70352          , p_switch_side_flag           => 'Y'
70353          , p_merge_duplicate_code       => 'A'
70354          );
70355    --
70356    l_acc_rev_natural_side_code := 'D';  -- 4262811
70357    -- 
70358    --
70359    -- set accounting line type info
70360    --
70361    xla_ae_lines_pkg.SetAcctLineType
70362       (p_component_type             => l_component_type
70363       ,p_event_type_code            => l_event_type_code
70364       ,p_line_definition_owner_code => l_line_definition_owner_code
70365       ,p_line_definition_code       => l_line_definition_code
70366       ,p_accounting_line_code       => l_component_code
70367       ,p_accounting_line_type_code  => l_component_type_code
70368       ,p_accounting_line_appl_id    => l_component_appl_id
70369       ,p_amb_context_code           => l_amb_context_code
70370       ,p_entity_code                => l_entity_code
70371       ,p_event_class_code           => l_event_class_code);
70372    --
70373    -- set accounting class
70374    --
70375    xla_ae_lines_pkg.SetAcctClass(
70376            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
70377          , p_ae_header_id           => l_ae_header_id
70378          );
70379 
70380    --
70381    -- set rounding class
70382    --
70386    --
70383    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70384                       'MISCELLANEOUS EXPENSE';
70385 
70387    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70388    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70389    --
70390    -- bulk performance
70391    --
70392    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70393 
70394    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70395       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70396 
70397    -- 4955764
70398    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70399       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70400 
70401    -- 4458381 Public Sector Enh
70402    
70403    --
70404    -- set accounting attributes for the line type
70405    --
70406    l_entered_amt_idx := 10;
70407    l_accted_amt_idx  := 12;
70408    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
70409    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70410    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
70411    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
70412    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
70413    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
70414    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
70415    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70416    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
70417    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
70418    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
70419    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
70420    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
70421    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70422    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
70423    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
70424    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
70425    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
70426    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
70427    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
70428    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
70429    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
70430    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
70431    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
70432    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
70433    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
70434    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
70435    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
70436    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
70437    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
70438    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
70439    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
70440    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
70441    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
70442    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
70443    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
70444    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
70445    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
70446    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
70447 
70448    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70449    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70450 
70451    ---------------------------------------------------------------------------------------------------------------
70452    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70453    ---------------------------------------------------------------------------------------------------------------
70454    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70455 
70456    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70457    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70458 
70459    IF xla_accounting_cache_pkg.GetValueChar
70460          (p_source_code         => 'LEDGER_CATEGORY_CODE'
70461          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70462    AND l_bflow_method_code = 'PRIOR_ENTRY'
70463 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70464    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70465          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70466        )
70467    THEN
70468          xla_ae_lines_pkg.BflowUpgEntry
70469            (p_business_method_code    => l_bflow_method_code
70470            ,p_business_class_code     => l_bflow_class_code
70471            ,p_balance_type            => l_balance_type_code);
70472    ELSE
70473       NULL;
70474 XLA_AE_LINES_PKG.business_flow_validation(
70475                                 p_business_method_code     => l_bflow_method_code
70479 
70476                                ,p_business_class_code      => l_bflow_class_code
70477                                ,p_inherit_description_flag => l_inherit_desc_flag);
70478    END IF;
70480    --
70481    -- call analytical criteria
70482    --
70483    -- Inherited Analytical Criteria for business flow method of Prior Entry.
70484    --
70485    -- call description
70486    --
70487    -- No description or it is inherited.
70488    --
70489    -- call ADRs
70490    -- Bug 4922099
70491    --
70492    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70493         (NVL(l_actual_upg_option, 'N') = 'O') OR
70494         (NVL(l_enc_upg_option, 'N') = 'O')
70495       )
70496    THEN
70497    NULL;
70498    --
70499    --
70500    
70501    --
70502    --
70503    END IF;
70504    --
70505    -- Bug 4922099
70506    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70507           (NVL(l_enc_upg_option, 'N') = 'O')
70508         ) AND
70509         (l_bflow_method_code = 'PRIOR_ENTRY')
70510       )
70511    THEN
70512       IF
70513       --
70514       1 = 1
70515       --
70516       THEN
70517       xla_accounting_err_pkg.build_message
70518                                     (p_appli_s_name            => 'XLA'
70519                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70520                                     ,p_token_1                 => 'LINE_NUMBER'
70521                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
70522                                     ,p_token_2                 => 'LINE_TYPE_NAME'
70523                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
70524                                                                              l_component_type
70525                                                                             ,l_component_code
70526                                                                             ,l_component_type_code
70527                                                                             ,l_component_appl_id
70528                                                                             ,l_amb_context_code
70529                                                                             ,l_entity_code
70530                                                                             ,l_event_class_code
70531                                                                            )
70532                                     ,p_token_3                 => 'OWNER'
70533                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
70534                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
70535                                                                           ,p_lookup_code    => l_component_type_code
70536                                                                          )
70537                                     ,p_token_4                 => 'PRODUCT_NAME'
70538                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70539                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70540                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70541                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70542                                     ,p_ae_header_id            =>  NULL
70543                                        );
70544 
70545         IF (C_LEVEL_ERROR>= g_log_level) THEN
70546                  trace
70547                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70548                       ,p_level    => C_LEVEL_ERROR
70549                       ,p_module   => l_log_module);
70550         END IF;
70551       END IF;
70552    END IF;
70553    --
70554    --
70555    ------------------------------------------------------------------------------------------------
70556    -- 4219869 Business Flow
70557    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70558    -- Prior Entry.  Currently, the following code is always generated.
70559    ------------------------------------------------------------------------------------------------
70560    -- No ValidateCurrentLine for business flow method of Prior Entry
70561 
70562    ------------------------------------------------------------------------------------
70563    -- 4219869 Business Flow
70564    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70565    ------------------------------------------------------------------------------------
70566    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70567 
70568    ----------------------------------------------------------------------------------
70569    -- 4219869 Business Flow
70570    -- Update journal entry status -- Need to generate this within IF <condition>
70571    ----------------------------------------------------------------------------------
70572    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70573          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70574          ,p_balance_type_code => l_balance_type_code
70575          );
70576 
70577    -------------------------------------------------------------------------------------------
70578    -- 4262811 - Generate the Accrual Reversal lines
70579    -------------------------------------------------------------------------------------------
70580    BEGIN
70584          l_acc_rev_flag := 'N';
70581       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
70582                               (g_array_event(p_event_id).array_value_num('header_index'));
70583       IF l_acc_rev_flag IS NULL THEN
70585       END IF;
70586    EXCEPTION
70587       WHEN OTHERS THEN
70588          l_acc_rev_flag := 'N';
70589    END;
70590    --
70591    IF (l_acc_rev_flag = 'Y') THEN
70592 
70593        -- 4645092  ------------------------------------------------------------------------------
70594        -- To allow MPA report to determine if it should generate report process
70595        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
70596        ------------------------------------------------------------------------------------------
70597 
70598        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70599        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70600    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
70601    -- call ADRs
70602    -- Bug 4922099
70603    --
70604    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70605         (NVL(l_actual_upg_option, 'N') = 'O') OR
70606         (NVL(l_enc_upg_option, 'N') = 'O')
70607       )
70608    THEN
70609    NULL;
70610    --
70611    --
70612    
70613    --
70614    --
70615    END IF;
70616 
70617        --
70618        -- Update the line information that should be overwritten
70619        --
70620        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70621                                          p_header_num   => 1);
70622        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
70623 
70624        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70625 
70626        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
70627           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70628        END IF;
70629 
70630       --
70631       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70632       --
70633       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70634           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
70635       ELSE
70636           ---------------------------------------------------------------------------------------------------
70637           -- 4262811a Switch Sign
70638           ---------------------------------------------------------------------------------------------------
70639           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
70640           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70641                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70642           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70643                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70644           -- 5132302
70645           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70646                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70647 
70648       END IF;
70649 
70650       -- 4955764
70651       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70652       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70653 
70654 
70655       XLA_AE_LINES_PKG.ValidateCurrentLine;
70656       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70657 
70658       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70659                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70660                ,p_balance_type_code => l_balance_type_code);
70661 
70662    END IF;
70663 
70664    -----------------------------------------------------------------------------------------
70665    -- 4262811 Multiperiod Accounting
70666    -----------------------------------------------------------------------------------------
70667      -- No MPA option is assigned.
70668 
70669 
70670 END IF;
70671 END IF;
70672 --
70673 
70674 --
70675 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70676    trace
70677       (p_msg      => 'END of AcctLineType_131'
70678       ,p_level    => C_LEVEL_PROCEDURE
70679       ,p_module   => l_log_module);
70680 END IF;
70681 --
70682 EXCEPTION
70683   WHEN xla_exceptions_pkg.application_exception THEN
70684       RAISE;
70685   WHEN OTHERS THEN
70686        xla_exceptions_pkg.raise_message
70687            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_131');
70688 END AcctLineType_131;
70689 --
70690 
70691 ---------------------------------------
70692 --
70693 -- PRIVATE FUNCTION
70694 --         AcctLineType_132
70695 --
70696 ---------------------------------------
70697 PROCEDURE AcctLineType_132 (
70698   p_application_id        IN NUMBER
70699  ,p_event_id              IN NUMBER
70700  ,p_calculate_acctd_flag  IN VARCHAR2
70701  ,p_calculate_g_l_flag    IN VARCHAR2
70702  ,p_actual_flag           IN OUT VARCHAR2
70703  ,p_balance_type_code     OUT VARCHAR2
70704  ,p_gain_or_loss_ref      OUT VARCHAR2
70705  
70709  , p_source_17            IN NUMBER
70706 --Payment Distribution (Payment Rate) Ledger Amount
70707  , p_source_9            IN NUMBER
70708 --Invoice Distribution Account
70710 --Invoice Distribution Type
70711  , p_source_20            IN VARCHAR2
70712  , p_source_20_meaning    IN VARCHAR2
70713 --When to Account for Payment Option
70714  , p_source_38            IN VARCHAR2
70715 --Payment Distribution Type
70716  , p_source_39            IN VARCHAR2
70717  , p_source_39_meaning    IN VARCHAR2
70718 --Accounting Reversal Indicator
70719  , p_source_40            IN VARCHAR2
70720 --Payment Distribution Amount
70721  , p_source_41            IN NUMBER
70722 --Business Flow Accounts Payable Application Identifier
70723  , p_source_42            IN NUMBER
70724 --Payment Distribution Identifier
70725  , p_source_47            IN NUMBER
70726 --Distribution Link Type
70727  , p_source_48            IN VARCHAR2
70728 --Payment Currency Code
70729  , p_source_49            IN VARCHAR2
70730 --Override Accounted Amount Indicator
70731  , p_source_53            IN VARCHAR2
70732  , p_source_53_meaning    IN VARCHAR2
70733 --Payment Supplier Identifier
70734  , p_source_54            IN NUMBER
70735 --Payment Supplier Site Identifier
70736  , p_source_55            IN NUMBER
70737 --Third Party Type
70738  , p_source_56            IN VARCHAR2
70739 --Payment Distribution Reversed Identifier
70740  , p_source_57            IN NUMBER
70741 --Invoice Distribution Tax Line Identifier
70742  , p_source_58            IN NUMBER
70743 --Invoice Distribution Summary Tax Line Identifier
70744  , p_source_59            IN NUMBER
70745 --Payment Type
70746  , p_source_60            IN VARCHAR2
70747  , p_source_60_meaning    IN VARCHAR2
70748 --Business Flow Invoice Distribution Type
70749  , p_source_62            IN VARCHAR2
70750 --Business Flow Invoice Entity Code
70751  , p_source_63            IN VARCHAR2
70752 --Business Flow Invoice Distribution Identifier
70753  , p_source_64            IN NUMBER
70754 --Business Flow Invoice Identifier
70755  , p_source_65            IN NUMBER
70756 --Invoice Distribution Tax Distribution Identifier from Tax
70757  , p_source_66            IN NUMBER
70758 --Payment Exchange Date
70759  , p_source_114            IN DATE
70760 --Payment Exchange Rate
70761  , p_source_115            IN NUMBER
70762 --Payment Exchange Rate Type
70763  , p_source_116            IN VARCHAR2
70764 )
70765 IS
70766 
70767 l_component_type              VARCHAR2(80);
70768 l_component_code              VARCHAR2(30);
70769 l_component_type_code         VARCHAR2(1);
70770 l_component_appl_id           INTEGER;
70771 l_amb_context_code            VARCHAR2(30);
70772 l_entity_code                 VARCHAR2(30);
70773 l_event_class_code            VARCHAR2(30);
70774 l_ae_header_id                NUMBER;
70775 l_event_type_code             VARCHAR2(30);
70776 l_line_definition_code        VARCHAR2(30);
70777 l_line_definition_owner_code  VARCHAR2(1);
70778 --
70779 -- adr variables
70780 l_segment                     VARCHAR2(30);
70781 l_ccid                        NUMBER;
70782 l_adr_transaction_coa_id      NUMBER;
70783 l_adr_accounting_coa_id       NUMBER;
70784 l_adr_flexfield_segment_code  VARCHAR2(30);
70785 l_adr_flex_value_set_id       NUMBER;
70786 l_adr_value_type_code         VARCHAR2(30);
70787 l_adr_value_combination_id    NUMBER;
70788 l_adr_value_segment_code      VARCHAR2(30);
70789 
70790 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70791 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70792 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70793 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70794 
70795 -- 4262811 Variables ------------------------------------------------------------------------------------------
70796 l_entered_amt_idx             NUMBER;
70797 l_accted_amt_idx              NUMBER;
70798 l_acc_rev_flag                VARCHAR2(1);
70799 l_accrual_line_num            NUMBER;
70800 l_tmp_amt                     NUMBER;
70801 l_acc_rev_natural_side_code   VARCHAR2(1);
70802 
70803 l_num_entries                 NUMBER;
70804 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70805 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70806 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70807 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70808 l_recog_line_1                NUMBER;
70809 l_recog_line_2                NUMBER;
70810 
70811 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70812 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70813 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70814 
70815 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70816 
70817 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70818 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70819 
70820 ---------------------------------------------------------------------------------------------------------------
70821 
70822 
70823 --
70824 -- bulk performance
70825 --
70826 l_balance_type_code           VARCHAR2(1);
70827 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70831 -- Upgrade strategy
70828 l_log_module                  VARCHAR2(240);
70829 
70830 --
70832 --
70833 l_actual_upg_option           VARCHAR2(1);
70834 l_enc_upg_option           VARCHAR2(1);
70835 
70836 --
70837 BEGIN
70838 --
70839 IF g_log_enabled THEN
70840       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
70841 END IF;
70842 --
70843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70844 
70845       trace
70846          (p_msg      => 'BEGIN of AcctLineType_132'
70847          ,p_level    => C_LEVEL_PROCEDURE
70848          ,p_module   => l_log_module);
70849 
70850 END IF;
70851 --
70852 l_component_type             := 'AMB_JLT';
70853 l_component_code             := 'AP_MISC_EXPENSE_REF';
70854 l_component_type_code        := 'S';
70855 l_component_appl_id          :=  200;
70856 l_amb_context_code           := 'DEFAULT';
70857 l_entity_code                := 'AP_PAYMENTS';
70858 l_event_class_code           := 'REFUNDS';
70859 l_event_type_code            := 'REFUNDS_ALL';
70860 l_line_definition_owner_code := 'S';
70861 l_line_definition_code       := 'CASH_REFUNDS_ALL';
70862 --
70863 l_balance_type_code          := 'A';
70864 l_segment                     := NULL;
70865 l_ccid                        := NULL;
70866 l_adr_transaction_coa_id      := NULL;
70867 l_adr_accounting_coa_id       := NULL;
70868 l_adr_flexfield_segment_code  := NULL;
70869 l_adr_flex_value_set_id       := NULL;
70870 l_adr_value_type_code         := NULL;
70871 l_adr_value_combination_id    := NULL;
70872 l_adr_value_segment_code      := NULL;
70873 
70874 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
70875 l_bflow_class_code           := '';    -- 4219869 Business Flow
70876 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
70877 l_budgetary_control_flag     := 'N';
70878 
70879 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
70880 l_bflow_applied_to_amt       := NULL; -- 5132302
70881 l_entered_amt_idx            := NULL;          -- 4262811
70882 l_accted_amt_idx             := NULL;          -- 4262811
70883 l_acc_rev_flag               := NULL;          -- 4262811
70884 l_accrual_line_num           := NULL;          -- 4262811
70885 l_tmp_amt                    := NULL;          -- 4262811
70886 --
70887  
70888 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70889     l_balance_type_code <> 'B' THEN
70890 IF NVL(p_source_38,'
70891 ') <>  'CLEAR_CLEAR' AND 
70892 NVL(p_source_20,'
70893 ') =  'MISCELLANEOUS' AND 
70894 (NVL(p_source_39,'
70895 ') =  'CASH' OR 
70896 NVL(p_source_39,'
70897 ') =  'DISCOUNT') AND 
70898 NVL(p_source_60,'
70899 ') =  'R'
70900  THEN 
70901 
70902    --
70903    XLA_AE_LINES_PKG.SetNewLine;
70904 
70905    p_balance_type_code          := l_balance_type_code;
70906    -- set the flag so later we will know whether the gain loss line needs to be created
70907    
70908    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70909      p_actual_flag :='A';
70910    END IF;
70911 
70912    --
70913    -- bulk performance
70914    --
70915    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70916                                       p_header_num   => 0); -- 4262811
70917    --
70918    -- set accounting line options
70919    --
70920    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70921            p_natural_side_code          => 'D'
70922          , p_gain_or_loss_flag          => 'N'
70923          , p_gl_transfer_mode_code      => 'S'
70924          , p_acct_entry_type_code       => 'A'
70925          , p_switch_side_flag           => 'Y'
70926          , p_merge_duplicate_code       => 'A'
70927          );
70928    --
70929    l_acc_rev_natural_side_code := 'C';  -- 4262811
70930    -- 
70931    --
70932    -- set accounting line type info
70933    --
70934    xla_ae_lines_pkg.SetAcctLineType
70935       (p_component_type             => l_component_type
70936       ,p_event_type_code            => l_event_type_code
70937       ,p_line_definition_owner_code => l_line_definition_owner_code
70938       ,p_line_definition_code       => l_line_definition_code
70939       ,p_accounting_line_code       => l_component_code
70940       ,p_accounting_line_type_code  => l_component_type_code
70941       ,p_accounting_line_appl_id    => l_component_appl_id
70942       ,p_amb_context_code           => l_amb_context_code
70943       ,p_entity_code                => l_entity_code
70944       ,p_event_class_code           => l_event_class_code);
70945    --
70946    -- set accounting class
70947    --
70948    xla_ae_lines_pkg.SetAcctClass(
70949            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
70950          , p_ae_header_id           => l_ae_header_id
70951          );
70952 
70953    --
70954    -- set rounding class
70955    --
70956    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70957                       'MISCELLANEOUS EXPENSE';
70958 
70959    --
70960    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70961    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70962    --
70963    -- bulk performance
70964    --
70968       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70965    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70966 
70967    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70969 
70970    -- 4955764
70971    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70972       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70973 
70974    -- 4458381 Public Sector Enh
70975    
70976    --
70977    -- set accounting attributes for the line type
70978    --
70979    l_entered_amt_idx := 9;
70980    l_accted_amt_idx  := 14;
70981    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
70982    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70983    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
70984    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
70985    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
70986    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70987    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
70988    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
70989    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
70990    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
70991    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
70992    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70993    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
70994    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
70995    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
70996    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
70997    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
70998    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
70999    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
71000    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
71001    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
71002    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
71003    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
71004    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
71005    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
71006    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
71007    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
71008    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
71009    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
71010    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
71011    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
71012    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
71013    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
71014    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
71015    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
71016    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
71017    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
71018    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
71019    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
71020    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
71021    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
71022    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
71023    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
71024    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
71025    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
71026    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
71027    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
71028 
71029    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71030    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71031 
71032    ---------------------------------------------------------------------------------------------------------------
71033    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71034    ---------------------------------------------------------------------------------------------------------------
71035    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71036 
71037    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71038    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71039 
71040    IF xla_accounting_cache_pkg.GetValueChar
71041          (p_source_code         => 'LEDGER_CATEGORY_CODE'
71042          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71043    AND l_bflow_method_code = 'PRIOR_ENTRY'
71044 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71045    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71046          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71047        )
71048    THEN
71049          xla_ae_lines_pkg.BflowUpgEntry
71050            (p_business_method_code    => l_bflow_method_code
71051            ,p_business_class_code     => l_bflow_class_code
71052            ,p_balance_type            => l_balance_type_code);
71053    ELSE
71054       NULL;
71055 -- No business flow processing for business flow method of NONE.
71056    END IF;
71057 
71061    
71058    --
71059    -- call analytical criteria
71060    --
71062    --
71063    -- call description
71064    --
71065    -- No description or it is inherited.
71066    --
71067    -- call ADRs
71068    -- Bug 4922099
71069    --
71070    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71071         (NVL(l_actual_upg_option, 'N') = 'O') OR
71072         (NVL(l_enc_upg_option, 'N') = 'O')
71073       )
71074    THEN
71075    NULL;
71076    --
71077    --
71078    
71079   l_ccid := AcctDerRule_26(
71080            p_application_id           => p_application_id
71081          , p_ae_header_id             => l_ae_header_id 
71082 , p_source_17 => p_source_17
71083          , x_transaction_coa_id       => l_adr_transaction_coa_id
71084          , x_accounting_coa_id        => l_adr_accounting_coa_id
71085          , x_value_type_code          => l_adr_value_type_code
71086          , p_side                     => 'NA'
71087    );
71088 
71089    xla_ae_lines_pkg.set_ccid(
71090     p_code_combination_id          => l_ccid
71091   , p_value_type_code              => l_adr_value_type_code
71092   , p_transaction_coa_id           => l_adr_transaction_coa_id
71093   , p_accounting_coa_id            => l_adr_accounting_coa_id
71094   , p_adr_code                     => 'AP_INVOICE_DIST'
71095   , p_adr_type_code                => 'S'
71096   , p_component_type               => l_component_type
71097   , p_component_code               => l_component_code
71098   , p_component_type_code          => l_component_type_code
71099   , p_component_appl_id            => l_component_appl_id
71100   , p_amb_context_code             => l_amb_context_code
71101   , p_side                         => 'NA'
71102   );
71103 
71104 
71105    --
71106    --
71107    END IF;
71108    --
71109    -- Bug 4922099
71110    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71111           (NVL(l_enc_upg_option, 'N') = 'O')
71112         ) AND
71113         (l_bflow_method_code = 'PRIOR_ENTRY')
71114       )
71115    THEN
71116       IF
71117       --
71118       1 = 2
71119       --
71120       THEN
71121       xla_accounting_err_pkg.build_message
71122                                     (p_appli_s_name            => 'XLA'
71123                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71124                                     ,p_token_1                 => 'LINE_NUMBER'
71125                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
71126                                     ,p_token_2                 => 'LINE_TYPE_NAME'
71127                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
71128                                                                              l_component_type
71129                                                                             ,l_component_code
71130                                                                             ,l_component_type_code
71131                                                                             ,l_component_appl_id
71132                                                                             ,l_amb_context_code
71133                                                                             ,l_entity_code
71134                                                                             ,l_event_class_code
71135                                                                            )
71136                                     ,p_token_3                 => 'OWNER'
71137                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
71138                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
71139                                                                           ,p_lookup_code    => l_component_type_code
71140                                                                          )
71141                                     ,p_token_4                 => 'PRODUCT_NAME'
71142                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71143                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71144                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71145                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71146                                     ,p_ae_header_id            =>  NULL
71147                                        );
71148 
71149         IF (C_LEVEL_ERROR>= g_log_level) THEN
71150                  trace
71151                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71152                       ,p_level    => C_LEVEL_ERROR
71153                       ,p_module   => l_log_module);
71154         END IF;
71155       END IF;
71156    END IF;
71157    --
71158    --
71159    ------------------------------------------------------------------------------------------------
71160    -- 4219869 Business Flow
71161    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71162    -- Prior Entry.  Currently, the following code is always generated.
71163    ------------------------------------------------------------------------------------------------
71164    XLA_AE_LINES_PKG.ValidateCurrentLine;
71165 
71166    ------------------------------------------------------------------------------------
71167    -- 4219869 Business Flow
71171 
71168    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71169    ------------------------------------------------------------------------------------
71170    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71172    ----------------------------------------------------------------------------------
71173    -- 4219869 Business Flow
71174    -- Update journal entry status -- Need to generate this within IF <condition>
71175    ----------------------------------------------------------------------------------
71176    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71177          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71178          ,p_balance_type_code => l_balance_type_code
71179          );
71180 
71181    -------------------------------------------------------------------------------------------
71182    -- 4262811 - Generate the Accrual Reversal lines
71183    -------------------------------------------------------------------------------------------
71184    BEGIN
71185       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71186                               (g_array_event(p_event_id).array_value_num('header_index'));
71187       IF l_acc_rev_flag IS NULL THEN
71188          l_acc_rev_flag := 'N';
71189       END IF;
71190    EXCEPTION
71191       WHEN OTHERS THEN
71192          l_acc_rev_flag := 'N';
71193    END;
71194    --
71195    IF (l_acc_rev_flag = 'Y') THEN
71196 
71197        -- 4645092  ------------------------------------------------------------------------------
71198        -- To allow MPA report to determine if it should generate report process
71199        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71200        ------------------------------------------------------------------------------------------
71201 
71202        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71203        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71204    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71205    -- call ADRs
71206    -- Bug 4922099
71207    --
71208    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71209         (NVL(l_actual_upg_option, 'N') = 'O') OR
71210         (NVL(l_enc_upg_option, 'N') = 'O')
71211       )
71212    THEN
71213    NULL;
71214    --
71215    --
71216    
71217   l_ccid := AcctDerRule_26(
71218            p_application_id           => p_application_id
71219          , p_ae_header_id             => l_ae_header_id 
71220 , p_source_17 => p_source_17
71221          , x_transaction_coa_id       => l_adr_transaction_coa_id
71222          , x_accounting_coa_id        => l_adr_accounting_coa_id
71223          , x_value_type_code          => l_adr_value_type_code
71224          , p_side                     => 'NA'
71225    );
71226 
71227    xla_ae_lines_pkg.set_ccid(
71228     p_code_combination_id          => l_ccid
71229   , p_value_type_code              => l_adr_value_type_code
71230   , p_transaction_coa_id           => l_adr_transaction_coa_id
71231   , p_accounting_coa_id            => l_adr_accounting_coa_id
71232   , p_adr_code                     => 'AP_INVOICE_DIST'
71233   , p_adr_type_code                => 'S'
71234   , p_component_type               => l_component_type
71235   , p_component_code               => l_component_code
71236   , p_component_type_code          => l_component_type_code
71237   , p_component_appl_id            => l_component_appl_id
71238   , p_amb_context_code             => l_amb_context_code
71239   , p_side                         => 'NA'
71240   );
71241 
71242 
71243    --
71244    --
71245    END IF;
71246 
71247        --
71248        -- Update the line information that should be overwritten
71249        --
71250        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71251                                          p_header_num   => 1);
71252        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
71253 
71254        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71255 
71256        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
71257           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71258        END IF;
71259 
71260       --
71261       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71262       --
71263       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71264           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
71265       ELSE
71266           ---------------------------------------------------------------------------------------------------
71267           -- 4262811a Switch Sign
71268           ---------------------------------------------------------------------------------------------------
71269           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
71270           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71271                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71272           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71273                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71274           -- 5132302
71278       END IF;
71275           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71276                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71277 
71279 
71280       -- 4955764
71281       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71282       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71283 
71284 
71285       XLA_AE_LINES_PKG.ValidateCurrentLine;
71286       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71287 
71288       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71289                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71290                ,p_balance_type_code => l_balance_type_code);
71291 
71292    END IF;
71293 
71294    -----------------------------------------------------------------------------------------
71295    -- 4262811 Multiperiod Accounting
71296    -----------------------------------------------------------------------------------------
71297      -- No MPA option is assigned.
71298 
71299 
71300 END IF;
71301 END IF;
71302 --
71303 
71304 --
71305 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71306    trace
71307       (p_msg      => 'END of AcctLineType_132'
71308       ,p_level    => C_LEVEL_PROCEDURE
71309       ,p_module   => l_log_module);
71310 END IF;
71311 --
71312 EXCEPTION
71313   WHEN xla_exceptions_pkg.application_exception THEN
71314       RAISE;
71315   WHEN OTHERS THEN
71316        xla_exceptions_pkg.raise_message
71317            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_132');
71318 END AcctLineType_132;
71319 --
71320 
71321 ---------------------------------------
71322 --
71323 -- PRIVATE FUNCTION
71324 --         AcctLineType_133
71325 --
71326 ---------------------------------------
71327 PROCEDURE AcctLineType_133 (
71328   p_application_id        IN NUMBER
71329  ,p_event_id              IN NUMBER
71330  ,p_calculate_acctd_flag  IN VARCHAR2
71331  ,p_calculate_g_l_flag    IN VARCHAR2
71332  ,p_actual_flag           IN OUT VARCHAR2
71333  ,p_balance_type_code     OUT VARCHAR2
71334  ,p_gain_or_loss_ref      OUT VARCHAR2
71335  
71336 --Payment Distribution (Payment Rate) Ledger Amount
71337  , p_source_9            IN NUMBER
71338 --Invoice Distribution Type
71339  , p_source_20            IN VARCHAR2
71340  , p_source_20_meaning    IN VARCHAR2
71341 --When to Account for Payment Option
71342  , p_source_38            IN VARCHAR2
71343 --Payment Distribution Type
71344  , p_source_39            IN VARCHAR2
71345  , p_source_39_meaning    IN VARCHAR2
71346 --Accounting Reversal Indicator
71347  , p_source_40            IN VARCHAR2
71348 --Payment Distribution Amount
71349  , p_source_41            IN NUMBER
71350 --Business Flow Accounts Payable Application Identifier
71351  , p_source_42            IN NUMBER
71352 --Payment Distribution Identifier
71353  , p_source_47            IN NUMBER
71354 --Distribution Link Type
71355  , p_source_48            IN VARCHAR2
71356 --Payment Currency Code
71357  , p_source_49            IN VARCHAR2
71358 --Override Accounted Amount Indicator
71359  , p_source_53            IN VARCHAR2
71360  , p_source_53_meaning    IN VARCHAR2
71361 --Third Party Type
71362  , p_source_56            IN VARCHAR2
71363 --Payment Distribution Reversed Identifier
71364  , p_source_57            IN NUMBER
71365 --Invoice Distribution Tax Line Identifier
71366  , p_source_58            IN NUMBER
71367 --Invoice Distribution Summary Tax Line Identifier
71368  , p_source_59            IN NUMBER
71369 --Payment Type
71370  , p_source_60            IN VARCHAR2
71371  , p_source_60_meaning    IN VARCHAR2
71372 --Business Flow Invoice Distribution Type
71373  , p_source_62            IN VARCHAR2
71374 --Business Flow Invoice Entity Code
71375  , p_source_63            IN VARCHAR2
71376 --Business Flow Invoice Distribution Identifier
71377  , p_source_64            IN NUMBER
71378 --Business Flow Invoice Identifier
71379  , p_source_65            IN NUMBER
71380 --Invoice Distribution Tax Distribution Identifier from Tax
71381  , p_source_66            IN NUMBER
71382 --Purchasing Encumbrance Option
71383  , p_source_102            IN VARCHAR2
71384  , p_source_102_meaning    IN VARCHAR2
71385 --Invoice Encumbered Option
71386  , p_source_104            IN VARCHAR2
71387  , p_source_104_meaning    IN VARCHAR2
71388 )
71389 IS
71390 
71391 l_component_type              VARCHAR2(80);
71392 l_component_code              VARCHAR2(30);
71393 l_component_type_code         VARCHAR2(1);
71394 l_component_appl_id           INTEGER;
71395 l_amb_context_code            VARCHAR2(30);
71396 l_entity_code                 VARCHAR2(30);
71397 l_event_class_code            VARCHAR2(30);
71398 l_ae_header_id                NUMBER;
71399 l_event_type_code             VARCHAR2(30);
71400 l_line_definition_code        VARCHAR2(30);
71401 l_line_definition_owner_code  VARCHAR2(1);
71402 --
71403 -- adr variables
71404 l_segment                     VARCHAR2(30);
71405 l_ccid                        NUMBER;
71406 l_adr_transaction_coa_id      NUMBER;
71407 l_adr_accounting_coa_id       NUMBER;
71408 l_adr_flexfield_segment_code  VARCHAR2(30);
71409 l_adr_flex_value_set_id       NUMBER;
71413 
71410 l_adr_value_type_code         VARCHAR2(30);
71411 l_adr_value_combination_id    NUMBER;
71412 l_adr_value_segment_code      VARCHAR2(30);
71414 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
71415 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
71416 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
71417 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
71418 
71419 -- 4262811 Variables ------------------------------------------------------------------------------------------
71420 l_entered_amt_idx             NUMBER;
71421 l_accted_amt_idx              NUMBER;
71422 l_acc_rev_flag                VARCHAR2(1);
71423 l_accrual_line_num            NUMBER;
71424 l_tmp_amt                     NUMBER;
71425 l_acc_rev_natural_side_code   VARCHAR2(1);
71426 
71427 l_num_entries                 NUMBER;
71428 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
71429 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
71430 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
71431 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
71432 l_recog_line_1                NUMBER;
71433 l_recog_line_2                NUMBER;
71434 
71435 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
71436 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
71437 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
71438 
71439 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71440 
71441 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
71442 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
71443 
71444 ---------------------------------------------------------------------------------------------------------------
71445 
71446 
71447 --
71448 -- bulk performance
71449 --
71450 l_balance_type_code           VARCHAR2(1);
71451 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
71452 l_log_module                  VARCHAR2(240);
71453 
71454 --
71455 -- Upgrade strategy
71456 --
71457 l_actual_upg_option           VARCHAR2(1);
71458 l_enc_upg_option           VARCHAR2(1);
71459 
71460 --
71461 BEGIN
71462 --
71463 IF g_log_enabled THEN
71464       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
71465 END IF;
71466 --
71467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71468 
71469       trace
71470          (p_msg      => 'BEGIN of AcctLineType_133'
71471          ,p_level    => C_LEVEL_PROCEDURE
71472          ,p_module   => l_log_module);
71473 
71474 END IF;
71475 --
71476 l_component_type             := 'AMB_JLT';
71477 l_component_code             := 'AP_MISC_EXPENSE_REF_ENC';
71478 l_component_type_code        := 'S';
71479 l_component_appl_id          :=  200;
71480 l_amb_context_code           := 'DEFAULT';
71481 l_entity_code                := 'AP_PAYMENTS';
71482 l_event_class_code           := 'REFUNDS';
71483 l_event_type_code            := 'REFUNDS_ALL';
71484 l_line_definition_owner_code := 'S';
71485 l_line_definition_code       := 'ENC_REFUNDS_ALL';
71486 --
71487 l_balance_type_code          := 'E';
71488 l_segment                     := NULL;
71489 l_ccid                        := NULL;
71490 l_adr_transaction_coa_id      := NULL;
71491 l_adr_accounting_coa_id       := NULL;
71492 l_adr_flexfield_segment_code  := NULL;
71493 l_adr_flex_value_set_id       := NULL;
71494 l_adr_value_type_code         := NULL;
71495 l_adr_value_combination_id    := NULL;
71496 l_adr_value_segment_code      := NULL;
71497 
71498 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
71499 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
71500 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
71501 l_budgetary_control_flag     := 'N';
71502 
71503 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
71504 l_bflow_applied_to_amt       := NULL; -- 5132302
71505 l_entered_amt_idx            := NULL;          -- 4262811
71506 l_accted_amt_idx             := NULL;          -- 4262811
71507 l_acc_rev_flag               := NULL;          -- 4262811
71508 l_accrual_line_num           := NULL;          -- 4262811
71509 l_tmp_amt                    := NULL;          -- 4262811
71510 --
71511  
71512 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71513     l_balance_type_code <> 'B' THEN
71514 IF NVL(p_source_38,'
71515 ') <>  'CLEAR_CLEAR' AND 
71516 NVL(p_source_20,'
71517 ') =  'MISCELLANEOUS' AND 
71518 (NVL(p_source_39,'
71519 ') =  'CASH' OR 
71520 NVL(p_source_39,'
71521 ') =  'DISCOUNT') AND 
71522 NVL(p_source_60,'
71523 ') =  'R' AND 
71524 NVL(p_source_102,'
71525 ') =  'Y' AND 
71526 NVL(p_source_104,'
71527 ') =  'Y'
71528  THEN 
71529 
71530    --
71531    XLA_AE_LINES_PKG.SetNewLine;
71532 
71533    p_balance_type_code          := l_balance_type_code;
71534    -- set the flag so later we will know whether the gain loss line needs to be created
71535    
71536    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
71537      p_actual_flag :='A';
71538    END IF;
71539 
71540    --
71541    -- bulk performance
71542    --
71546    -- set accounting line options
71543    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71544                                       p_header_num   => 0); -- 4262811
71545    --
71547    --
71548    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71549            p_natural_side_code          => 'D'
71550          , p_gain_or_loss_flag          => 'N'
71551          , p_gl_transfer_mode_code      => 'S'
71552          , p_acct_entry_type_code       => 'E'
71553          , p_switch_side_flag           => 'Y'
71554          , p_merge_duplicate_code       => 'A'
71555          );
71556    --
71557    l_acc_rev_natural_side_code := 'C';  -- 4262811
71558    -- 
71559    --
71560    -- set accounting line type info
71561    --
71562    xla_ae_lines_pkg.SetAcctLineType
71563       (p_component_type             => l_component_type
71564       ,p_event_type_code            => l_event_type_code
71565       ,p_line_definition_owner_code => l_line_definition_owner_code
71566       ,p_line_definition_code       => l_line_definition_code
71567       ,p_accounting_line_code       => l_component_code
71568       ,p_accounting_line_type_code  => l_component_type_code
71569       ,p_accounting_line_appl_id    => l_component_appl_id
71570       ,p_amb_context_code           => l_amb_context_code
71571       ,p_entity_code                => l_entity_code
71572       ,p_event_class_code           => l_event_class_code);
71573    --
71574    -- set accounting class
71575    --
71576    xla_ae_lines_pkg.SetAcctClass(
71577            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
71578          , p_ae_header_id           => l_ae_header_id
71579          );
71580 
71581    --
71582    -- set rounding class
71583    --
71584    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71585                       'MISCELLANEOUS EXPENSE';
71586 
71587    --
71588    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71589    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71590    --
71591    -- bulk performance
71592    --
71593    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71594 
71595    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71596       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71597 
71598    -- 4955764
71599    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71600       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71601 
71602    -- 4458381 Public Sector Enh
71603    
71604    --
71605    -- set accounting attributes for the line type
71606    --
71607    l_entered_amt_idx := 9;
71608    l_accted_amt_idx  := 11;
71609    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
71610    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71611    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
71612    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
71613    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
71614    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71615    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
71616    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
71617    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
71618    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
71619    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
71620    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71621    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
71622    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
71623    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
71624    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
71625    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
71626    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
71627    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
71628    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
71629    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
71630    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
71631    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
71632    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
71633    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
71634    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
71635    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
71636    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
71637    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
71638    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
71639    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
71640    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
71641    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
71642    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
71643    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
71644    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
71645    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
71646 
71647    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71651    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71648    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71649 
71650    ---------------------------------------------------------------------------------------------------------------
71652    ---------------------------------------------------------------------------------------------------------------
71653    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71654 
71655    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71656    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71657 
71658    IF xla_accounting_cache_pkg.GetValueChar
71659          (p_source_code         => 'LEDGER_CATEGORY_CODE'
71660          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71661    AND l_bflow_method_code = 'PRIOR_ENTRY'
71662 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71663    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71664          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71665        )
71666    THEN
71667          xla_ae_lines_pkg.BflowUpgEntry
71668            (p_business_method_code    => l_bflow_method_code
71669            ,p_business_class_code     => l_bflow_class_code
71670            ,p_balance_type            => l_balance_type_code);
71671    ELSE
71672       NULL;
71673 XLA_AE_LINES_PKG.business_flow_validation(
71674                                 p_business_method_code     => l_bflow_method_code
71675                                ,p_business_class_code      => l_bflow_class_code
71676                                ,p_inherit_description_flag => l_inherit_desc_flag);
71677    END IF;
71678 
71679    --
71680    -- call analytical criteria
71681    --
71682    -- Inherited Analytical Criteria for business flow method of Prior Entry.
71683    --
71684    -- call description
71685    --
71686    -- No description or it is inherited.
71687    --
71688    -- call ADRs
71689    -- Bug 4922099
71690    --
71691    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71692         (NVL(l_actual_upg_option, 'N') = 'O') OR
71693         (NVL(l_enc_upg_option, 'N') = 'O')
71694       )
71695    THEN
71696    NULL;
71697    --
71698    --
71699    
71700    --
71701    --
71702    END IF;
71703    --
71704    -- Bug 4922099
71705    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71706           (NVL(l_enc_upg_option, 'N') = 'O')
71707         ) AND
71708         (l_bflow_method_code = 'PRIOR_ENTRY')
71709       )
71710    THEN
71711       IF
71712       --
71713       1 = 1
71714       --
71715       THEN
71716       xla_accounting_err_pkg.build_message
71717                                     (p_appli_s_name            => 'XLA'
71718                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71719                                     ,p_token_1                 => 'LINE_NUMBER'
71720                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
71721                                     ,p_token_2                 => 'LINE_TYPE_NAME'
71722                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
71723                                                                              l_component_type
71724                                                                             ,l_component_code
71725                                                                             ,l_component_type_code
71726                                                                             ,l_component_appl_id
71727                                                                             ,l_amb_context_code
71728                                                                             ,l_entity_code
71729                                                                             ,l_event_class_code
71730                                                                            )
71731                                     ,p_token_3                 => 'OWNER'
71732                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
71733                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
71734                                                                           ,p_lookup_code    => l_component_type_code
71735                                                                          )
71736                                     ,p_token_4                 => 'PRODUCT_NAME'
71737                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71738                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71739                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71740                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71741                                     ,p_ae_header_id            =>  NULL
71742                                        );
71743 
71744         IF (C_LEVEL_ERROR>= g_log_level) THEN
71745                  trace
71746                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71747                       ,p_level    => C_LEVEL_ERROR
71748                       ,p_module   => l_log_module);
71749         END IF;
71750       END IF;
71754    ------------------------------------------------------------------------------------------------
71751    END IF;
71752    --
71753    --
71755    -- 4219869 Business Flow
71756    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71757    -- Prior Entry.  Currently, the following code is always generated.
71758    ------------------------------------------------------------------------------------------------
71759    -- No ValidateCurrentLine for business flow method of Prior Entry
71760 
71761    ------------------------------------------------------------------------------------
71762    -- 4219869 Business Flow
71763    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71764    ------------------------------------------------------------------------------------
71765    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71766 
71767    ----------------------------------------------------------------------------------
71768    -- 4219869 Business Flow
71769    -- Update journal entry status -- Need to generate this within IF <condition>
71770    ----------------------------------------------------------------------------------
71771    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71772          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71773          ,p_balance_type_code => l_balance_type_code
71774          );
71775 
71776    -------------------------------------------------------------------------------------------
71777    -- 4262811 - Generate the Accrual Reversal lines
71778    -------------------------------------------------------------------------------------------
71779    BEGIN
71780       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71781                               (g_array_event(p_event_id).array_value_num('header_index'));
71782       IF l_acc_rev_flag IS NULL THEN
71783          l_acc_rev_flag := 'N';
71784       END IF;
71785    EXCEPTION
71786       WHEN OTHERS THEN
71787          l_acc_rev_flag := 'N';
71788    END;
71789    --
71790    IF (l_acc_rev_flag = 'Y') THEN
71791 
71792        -- 4645092  ------------------------------------------------------------------------------
71793        -- To allow MPA report to determine if it should generate report process
71794        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71795        ------------------------------------------------------------------------------------------
71796 
71797        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71798        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71799    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71800    -- call ADRs
71801    -- Bug 4922099
71802    --
71803    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71804         (NVL(l_actual_upg_option, 'N') = 'O') OR
71805         (NVL(l_enc_upg_option, 'N') = 'O')
71806       )
71807    THEN
71808    NULL;
71809    --
71810    --
71811    
71812    --
71813    --
71814    END IF;
71815 
71816        --
71817        -- Update the line information that should be overwritten
71818        --
71819        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71820                                          p_header_num   => 1);
71821        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
71822 
71823        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71824 
71825        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
71826           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71827        END IF;
71828 
71829       --
71830       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71831       --
71832       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71833           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
71834       ELSE
71835           ---------------------------------------------------------------------------------------------------
71836           -- 4262811a Switch Sign
71837           ---------------------------------------------------------------------------------------------------
71838           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
71839           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71840                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71841           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71842                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71843           -- 5132302
71844           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71845                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71846 
71847       END IF;
71848 
71849       -- 4955764
71850       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71851       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71852 
71853 
71854       XLA_AE_LINES_PKG.ValidateCurrentLine;
71855       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71856 
71860 
71857       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71858                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71859                ,p_balance_type_code => l_balance_type_code);
71861    END IF;
71862 
71863    -----------------------------------------------------------------------------------------
71864    -- 4262811 Multiperiod Accounting
71865    -----------------------------------------------------------------------------------------
71866      -- No MPA option is assigned.
71867 
71868 
71869 END IF;
71870 END IF;
71871 --
71872 
71873 --
71874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71875    trace
71876       (p_msg      => 'END of AcctLineType_133'
71877       ,p_level    => C_LEVEL_PROCEDURE
71878       ,p_module   => l_log_module);
71879 END IF;
71880 --
71881 EXCEPTION
71882   WHEN xla_exceptions_pkg.application_exception THEN
71883       RAISE;
71884   WHEN OTHERS THEN
71885        xla_exceptions_pkg.raise_message
71886            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_133');
71887 END AcctLineType_133;
71888 --
71889 
71890 ---------------------------------------
71891 --
71892 -- PRIVATE FUNCTION
71893 --         AcctLineType_134
71894 --
71895 ---------------------------------------
71896 PROCEDURE AcctLineType_134 (
71897   p_application_id        IN NUMBER
71898  ,p_event_id              IN NUMBER
71899  ,p_calculate_acctd_flag  IN VARCHAR2
71900  ,p_calculate_g_l_flag    IN VARCHAR2
71901  ,p_actual_flag           IN OUT VARCHAR2
71902  ,p_balance_type_code     OUT VARCHAR2
71903  ,p_gain_or_loss_ref      OUT VARCHAR2
71904  
71905 --Recipient Invoice Distribution Account
71906  , p_source_36            IN NUMBER
71907 --When to Account for Payment Option
71908  , p_source_38            IN VARCHAR2
71909 --Accounting Reversal Indicator
71910  , p_source_40            IN VARCHAR2
71911 --Business Flow Accounts Payable Application Identifier
71912  , p_source_42            IN NUMBER
71913 --Distribution Link Type
71914  , p_source_48            IN VARCHAR2
71915 --Override Accounted Amount Indicator
71916  , p_source_53            IN VARCHAR2
71917  , p_source_53_meaning    IN VARCHAR2
71918 --Third Party Type
71919  , p_source_56            IN VARCHAR2
71920 --Invoice Distribution Tax Line Identifier
71921  , p_source_58            IN NUMBER
71922 --Invoice Distribution Summary Tax Line Identifier
71923  , p_source_59            IN NUMBER
71924 --Invoice Distribution Tax Distribution Identifier from Tax
71925  , p_source_66            IN NUMBER
71926 --Prepayment Distribution Type
71927  , p_source_67            IN VARCHAR2
71928 --Recipient Invoice Distribution Type
71929  , p_source_68            IN VARCHAR2
71930  , p_source_68_meaning    IN VARCHAR2
71931 --Prepayment Application Distribution Identifier
71932  , p_source_71            IN NUMBER
71933 --Invoice Identifier
71934  , p_source_72            IN NUMBER
71935 --Business Flow Prepayment Invoice Distribution Type
71936  , p_source_73            IN VARCHAR2
71937 --Business Flow Prepayment Invoice Entity Code
71938  , p_source_74            IN VARCHAR2
71939 --Business Flow Prepayment Invoice Distribution Identifier
71940  , p_source_75            IN NUMBER
71941 --Business Flow Prepayment Invoice Identifier
71942  , p_source_76            IN NUMBER
71943 --Upgrade Encumbrance Credit Account Class
71944  , p_source_77            IN VARCHAR2
71945 --Payables Encumbrance Upgrade Credit Account
71946  , p_source_78            IN NUMBER
71947 --Payables Encumbrance Upgrade Credit Amount
71948  , p_source_79            IN NUMBER
71949 --Invoice Currency Code
71950  , p_source_80            IN VARCHAR2
71951 --Payables Encumbrance Upgrade Credit Base Amount
71952  , p_source_81            IN NUMBER
71953 --Upgrade Encumbrance Debit Account Class
71954  , p_source_82            IN VARCHAR2
71955 --Payables Encumbrance Upgrade Debit Account
71956  , p_source_83            IN NUMBER
71957 --Payables Encumbrance Upgrade Debit Amount
71958  , p_source_84            IN NUMBER
71959 --Payables Encumbrance Upgrade Debit Base Amount
71960  , p_source_85            IN NUMBER
71961 --Payables Encumbrance Upgrade Option
71962  , p_source_86            IN VARCHAR2
71963 --Prepayment Distribution Amount
71964  , p_source_87            IN NUMBER
71965 --Prepayment Clearing Currency Code
71966  , p_source_88            IN VARCHAR2
71967 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
71968  , p_source_89            IN NUMBER
71969 --Deferred Accounting End Date
71970  , p_source_90            IN DATE
71971 --Deferred Accounting Option
71972  , p_source_91            IN VARCHAR2
71973 --Deferred Accounting Start Date
71974  , p_source_92            IN DATE
71975 --Invoice Supplier Identifier
71976  , p_source_93            IN NUMBER
71977 --Invoice Supplier Site Identifier
71978  , p_source_94            IN NUMBER
71979 --Identifier of the Prepayment Application Reversed
71980  , p_source_95            IN NUMBER
71981 --Payables Upgrade Credit Encumbrance Type Identifier
71982  , p_source_96            IN NUMBER
71983 --Payables Upgrade Debit Encumbrance Type Identifier
71984  , p_source_97            IN NUMBER
71985 --Prepayment Clearing Exchange Date
71986  , p_source_118            IN DATE
71987 --Prepayment Clearing Exchange Rate
71988  , p_source_119            IN NUMBER
71992 IS
71989 --Prepayment Clearing Exchange Rate Type
71990  , p_source_120            IN VARCHAR2
71991 )
71993 
71994 l_component_type              VARCHAR2(80);
71995 l_component_code              VARCHAR2(30);
71996 l_component_type_code         VARCHAR2(1);
71997 l_component_appl_id           INTEGER;
71998 l_amb_context_code            VARCHAR2(30);
71999 l_entity_code                 VARCHAR2(30);
72000 l_event_class_code            VARCHAR2(30);
72001 l_ae_header_id                NUMBER;
72002 l_event_type_code             VARCHAR2(30);
72003 l_line_definition_code        VARCHAR2(30);
72004 l_line_definition_owner_code  VARCHAR2(1);
72005 --
72006 -- adr variables
72007 l_segment                     VARCHAR2(30);
72008 l_ccid                        NUMBER;
72009 l_adr_transaction_coa_id      NUMBER;
72010 l_adr_accounting_coa_id       NUMBER;
72011 l_adr_flexfield_segment_code  VARCHAR2(30);
72012 l_adr_flex_value_set_id       NUMBER;
72013 l_adr_value_type_code         VARCHAR2(30);
72014 l_adr_value_combination_id    NUMBER;
72015 l_adr_value_segment_code      VARCHAR2(30);
72016 
72017 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
72018 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
72019 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
72020 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
72021 
72022 -- 4262811 Variables ------------------------------------------------------------------------------------------
72023 l_entered_amt_idx             NUMBER;
72024 l_accted_amt_idx              NUMBER;
72025 l_acc_rev_flag                VARCHAR2(1);
72026 l_accrual_line_num            NUMBER;
72027 l_tmp_amt                     NUMBER;
72028 l_acc_rev_natural_side_code   VARCHAR2(1);
72029 
72030 l_num_entries                 NUMBER;
72031 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
72032 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
72033 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
72034 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
72035 l_recog_line_1                NUMBER;
72036 l_recog_line_2                NUMBER;
72037 
72038 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
72039 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
72040 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
72041 
72042 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72043 
72044 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
72045 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
72046 
72047 ---------------------------------------------------------------------------------------------------------------
72048 
72049 
72050 --
72051 -- bulk performance
72052 --
72053 l_balance_type_code           VARCHAR2(1);
72054 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
72055 l_log_module                  VARCHAR2(240);
72056 
72057 --
72058 -- Upgrade strategy
72059 --
72060 l_actual_upg_option           VARCHAR2(1);
72061 l_enc_upg_option           VARCHAR2(1);
72062 
72063 --
72064 BEGIN
72065 --
72066 IF g_log_enabled THEN
72067       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
72068 END IF;
72069 --
72070 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72071 
72072       trace
72073          (p_msg      => 'BEGIN of AcctLineType_134'
72074          ,p_level    => C_LEVEL_PROCEDURE
72075          ,p_module   => l_log_module);
72076 
72077 END IF;
72078 --
72079 l_component_type             := 'AMB_JLT';
72080 l_component_code             := 'AP_MISC_PREPAY_CLR_RATE_APP';
72081 l_component_type_code        := 'S';
72082 l_component_appl_id          :=  200;
72083 l_amb_context_code           := 'DEFAULT';
72084 l_entity_code                := 'AP_INVOICES';
72085 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
72086 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
72087 l_line_definition_owner_code := 'S';
72088 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
72089 --
72090 l_balance_type_code          := 'A';
72091 l_segment                     := NULL;
72092 l_ccid                        := NULL;
72093 l_adr_transaction_coa_id      := NULL;
72094 l_adr_accounting_coa_id       := NULL;
72095 l_adr_flexfield_segment_code  := NULL;
72096 l_adr_flex_value_set_id       := NULL;
72097 l_adr_value_type_code         := NULL;
72098 l_adr_value_combination_id    := NULL;
72099 l_adr_value_segment_code      := NULL;
72100 
72101 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
72102 l_bflow_class_code           := '';    -- 4219869 Business Flow
72103 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
72104 l_budgetary_control_flag     := 'N';
72105 
72106 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
72107 l_bflow_applied_to_amt       := NULL; -- 5132302
72108 l_entered_amt_idx            := NULL;          -- 4262811
72109 l_accted_amt_idx             := NULL;          -- 4262811
72110 l_acc_rev_flag               := NULL;          -- 4262811
72111 l_accrual_line_num           := NULL;          -- 4262811
72112 l_tmp_amt                    := NULL;          -- 4262811
72113 --
72114  
72118 ') =  'CLEAR_CLEAR' AND 
72115 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72116     l_balance_type_code <> 'B' THEN
72117 IF NVL(p_source_38,'
72119 (NVL(p_source_67,'
72120 ') =  'PREPAY APPL' OR 
72121 NVL(p_source_67,'
72122 ') =  'PREPAY APPL NONREC TAX' OR 
72123 NVL(p_source_67,'
72124 ') =  'PREPAY APPL REC TAX') AND 
72125 NVL(p_source_68,'
72126 ') =  'MISCELLANEOUS'
72127  THEN 
72128 
72129    --
72130    XLA_AE_LINES_PKG.SetNewLine;
72131 
72132    p_balance_type_code          := l_balance_type_code;
72133    -- set the flag so later we will know whether the gain loss line needs to be created
72134    
72135    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
72136      p_actual_flag :='A';
72137    END IF;
72138 
72139    --
72140    -- bulk performance
72141    --
72142    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72143                                       p_header_num   => 0); -- 4262811
72144    --
72145    -- set accounting line options
72146    --
72147    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72148            p_natural_side_code          => 'C'
72149          , p_gain_or_loss_flag          => 'N'
72150          , p_gl_transfer_mode_code      => 'S'
72151          , p_acct_entry_type_code       => 'A'
72152          , p_switch_side_flag           => 'Y'
72153          , p_merge_duplicate_code       => 'A'
72154          );
72155    --
72156    l_acc_rev_natural_side_code := 'D';  -- 4262811
72157    -- 
72158    --
72159    -- set accounting line type info
72160    --
72161    xla_ae_lines_pkg.SetAcctLineType
72162       (p_component_type             => l_component_type
72163       ,p_event_type_code            => l_event_type_code
72164       ,p_line_definition_owner_code => l_line_definition_owner_code
72165       ,p_line_definition_code       => l_line_definition_code
72166       ,p_accounting_line_code       => l_component_code
72167       ,p_accounting_line_type_code  => l_component_type_code
72168       ,p_accounting_line_appl_id    => l_component_appl_id
72169       ,p_amb_context_code           => l_amb_context_code
72170       ,p_entity_code                => l_entity_code
72171       ,p_event_class_code           => l_event_class_code);
72172    --
72173    -- set accounting class
72174    --
72175    xla_ae_lines_pkg.SetAcctClass(
72176            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
72177          , p_ae_header_id           => l_ae_header_id
72178          );
72179 
72180    --
72181    -- set rounding class
72182    --
72183    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72184                       'MISCELLANEOUS EXPENSE';
72185 
72186    --
72187    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72188    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72189    --
72190    -- bulk performance
72191    --
72192    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72193 
72194    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72195       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72196 
72197    -- 4955764
72198    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72199       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72200 
72201    -- 4458381 Public Sector Enh
72202    
72203    --
72204    -- set accounting attributes for the line type
72205    --
72206    l_entered_amt_idx := 25;
72207    l_accted_amt_idx  := 30;
72208    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
72209    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72210    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
72211    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
72212    l_rec_acct_attrs.array_num_value(2)  := 
72213 xla_ae_sources_pkg.GetSystemSourceNum(
72214    p_source_code           => 'XLA_EVENT_APPL_ID'
72215  , p_source_type_code      => 'Y'
72216  , p_source_application_id =>  602
72217 );
72218    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
72219    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
72220    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
72221    l_rec_acct_attrs.array_char_value(4)  := 
72222 xla_ae_sources_pkg.GetSystemSourceChar(
72223    p_source_code           => 'XLA_ENTITY_CODE'
72224  , p_source_type_code      => 'Y'
72225  , p_source_application_id =>  602
72226 );
72227    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
72228    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
72229    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
72230    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
72231    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
72232    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
72233    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72234    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
72235    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
72236    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
72240    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
72237    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
72238    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
72239    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72241    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
72242    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
72243    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
72244    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
72245    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
72246    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
72247    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
72248    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
72249    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
72250    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
72251    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
72252    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
72253    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
72254    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
72255    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
72256    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
72257    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
72258    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
72259    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
72260    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
72261    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
72262    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
72263    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
72264    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
72265    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
72266    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
72267    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
72268    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
72269    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
72270    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
72271    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
72272    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
72273    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
72274    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
72275    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
72276    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
72277    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
72278    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
72279    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
72280    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
72281    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
72282    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
72283    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
72284    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
72285    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
72286    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
72287    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
72288    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
72289    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
72290    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
72291    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
72292    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
72293    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
72294    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
72295    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
72296    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
72297    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
72298    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
72299    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
72300    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
72301    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
72302    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
72303    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
72304    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
72305    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
72306    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
72307 
72308    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72309    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72310 
72311    ---------------------------------------------------------------------------------------------------------------
72312    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72313    ---------------------------------------------------------------------------------------------------------------
72314    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72315 
72316    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72317    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72318 
72319    IF xla_accounting_cache_pkg.GetValueChar
72323 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72320          (p_source_code         => 'LEDGER_CATEGORY_CODE'
72321          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72322    AND l_bflow_method_code = 'PRIOR_ENTRY'
72324    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72325          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72326        )
72327    THEN
72328          xla_ae_lines_pkg.BflowUpgEntry
72329            (p_business_method_code    => l_bflow_method_code
72330            ,p_business_class_code     => l_bflow_class_code
72331            ,p_balance_type            => l_balance_type_code);
72332    ELSE
72333       NULL;
72334 -- No business flow processing for business flow method of NONE.
72335    END IF;
72336 
72337    --
72338    -- call analytical criteria
72339    --
72340    
72341    --
72342    -- call description
72343    --
72344    -- No description or it is inherited.
72345    --
72346    -- call ADRs
72347    -- Bug 4922099
72348    --
72349    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72350         (NVL(l_actual_upg_option, 'N') = 'O') OR
72351         (NVL(l_enc_upg_option, 'N') = 'O')
72352       )
72353    THEN
72354    NULL;
72355    --
72356    --
72357    
72358   l_ccid := AcctDerRule_33(
72359            p_application_id           => p_application_id
72360          , p_ae_header_id             => l_ae_header_id 
72361 , p_source_36 => p_source_36
72362          , x_transaction_coa_id       => l_adr_transaction_coa_id
72363          , x_accounting_coa_id        => l_adr_accounting_coa_id
72364          , x_value_type_code          => l_adr_value_type_code
72365          , p_side                     => 'NA'
72366    );
72367 
72368    xla_ae_lines_pkg.set_ccid(
72369     p_code_combination_id          => l_ccid
72370   , p_value_type_code              => l_adr_value_type_code
72371   , p_transaction_coa_id           => l_adr_transaction_coa_id
72372   , p_accounting_coa_id            => l_adr_accounting_coa_id
72373   , p_adr_code                     => 'AP_RECP_INV_DIST'
72374   , p_adr_type_code                => 'S'
72375   , p_component_type               => l_component_type
72376   , p_component_code               => l_component_code
72377   , p_component_type_code          => l_component_type_code
72378   , p_component_appl_id            => l_component_appl_id
72379   , p_amb_context_code             => l_amb_context_code
72380   , p_side                         => 'NA'
72381   );
72382 
72383 
72384    --
72385    --
72386    END IF;
72387    --
72388    -- Bug 4922099
72389    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72390           (NVL(l_enc_upg_option, 'N') = 'O')
72391         ) AND
72392         (l_bflow_method_code = 'PRIOR_ENTRY')
72393       )
72394    THEN
72395       IF
72396       --
72397       1 = 2
72398       --
72399       THEN
72400       xla_accounting_err_pkg.build_message
72401                                     (p_appli_s_name            => 'XLA'
72402                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72403                                     ,p_token_1                 => 'LINE_NUMBER'
72404                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
72405                                     ,p_token_2                 => 'LINE_TYPE_NAME'
72406                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
72407                                                                              l_component_type
72408                                                                             ,l_component_code
72409                                                                             ,l_component_type_code
72410                                                                             ,l_component_appl_id
72411                                                                             ,l_amb_context_code
72412                                                                             ,l_entity_code
72413                                                                             ,l_event_class_code
72414                                                                            )
72415                                     ,p_token_3                 => 'OWNER'
72416                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
72417                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
72418                                                                           ,p_lookup_code    => l_component_type_code
72419                                                                          )
72420                                     ,p_token_4                 => 'PRODUCT_NAME'
72421                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72422                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72423                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72424                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72425                                     ,p_ae_header_id            =>  NULL
72426                                        );
72427 
72428         IF (C_LEVEL_ERROR>= g_log_level) THEN
72429                  trace
72433         END IF;
72430                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72431                       ,p_level    => C_LEVEL_ERROR
72432                       ,p_module   => l_log_module);
72434       END IF;
72435    END IF;
72436    --
72437    --
72438    ------------------------------------------------------------------------------------------------
72439    -- 4219869 Business Flow
72440    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72441    -- Prior Entry.  Currently, the following code is always generated.
72442    ------------------------------------------------------------------------------------------------
72443    XLA_AE_LINES_PKG.ValidateCurrentLine;
72444 
72445    ------------------------------------------------------------------------------------
72446    -- 4219869 Business Flow
72447    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72448    ------------------------------------------------------------------------------------
72449    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72450 
72451    ----------------------------------------------------------------------------------
72452    -- 4219869 Business Flow
72453    -- Update journal entry status -- Need to generate this within IF <condition>
72454    ----------------------------------------------------------------------------------
72455    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72456          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72457          ,p_balance_type_code => l_balance_type_code
72458          );
72459 
72460    -------------------------------------------------------------------------------------------
72461    -- 4262811 - Generate the Accrual Reversal lines
72462    -------------------------------------------------------------------------------------------
72463    BEGIN
72464       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72465                               (g_array_event(p_event_id).array_value_num('header_index'));
72466       IF l_acc_rev_flag IS NULL THEN
72467          l_acc_rev_flag := 'N';
72468       END IF;
72469    EXCEPTION
72470       WHEN OTHERS THEN
72471          l_acc_rev_flag := 'N';
72472    END;
72473    --
72474    IF (l_acc_rev_flag = 'Y') THEN
72475 
72476        -- 4645092  ------------------------------------------------------------------------------
72477        -- To allow MPA report to determine if it should generate report process
72478        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72479        ------------------------------------------------------------------------------------------
72480 
72481        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72482        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72483    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
72484    -- call ADRs
72485    -- Bug 4922099
72486    --
72487    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72488         (NVL(l_actual_upg_option, 'N') = 'O') OR
72489         (NVL(l_enc_upg_option, 'N') = 'O')
72490       )
72491    THEN
72492    NULL;
72493    --
72494    --
72495    
72496   l_ccid := AcctDerRule_33(
72497            p_application_id           => p_application_id
72498          , p_ae_header_id             => l_ae_header_id 
72499 , p_source_36 => p_source_36
72500          , x_transaction_coa_id       => l_adr_transaction_coa_id
72501          , x_accounting_coa_id        => l_adr_accounting_coa_id
72502          , x_value_type_code          => l_adr_value_type_code
72503          , p_side                     => 'NA'
72504    );
72505 
72506    xla_ae_lines_pkg.set_ccid(
72507     p_code_combination_id          => l_ccid
72508   , p_value_type_code              => l_adr_value_type_code
72509   , p_transaction_coa_id           => l_adr_transaction_coa_id
72510   , p_accounting_coa_id            => l_adr_accounting_coa_id
72511   , p_adr_code                     => 'AP_RECP_INV_DIST'
72512   , p_adr_type_code                => 'S'
72513   , p_component_type               => l_component_type
72514   , p_component_code               => l_component_code
72515   , p_component_type_code          => l_component_type_code
72516   , p_component_appl_id            => l_component_appl_id
72517   , p_amb_context_code             => l_amb_context_code
72518   , p_side                         => 'NA'
72519   );
72520 
72521 
72522    --
72523    --
72524    END IF;
72525 
72526        --
72527        -- Update the line information that should be overwritten
72528        --
72529        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72530                                          p_header_num   => 1);
72531        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
72532 
72533        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72534 
72535        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
72536           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72537        END IF;
72538 
72539       --
72540       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72541       --
72542       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72546           -- 4262811a Switch Sign
72543           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
72544       ELSE
72545           ---------------------------------------------------------------------------------------------------
72547           ---------------------------------------------------------------------------------------------------
72548           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
72549           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72550                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72551           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72552                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72553           -- 5132302
72554           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72555                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72556 
72557       END IF;
72558 
72559       -- 4955764
72560       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72561       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72562 
72563 
72564       XLA_AE_LINES_PKG.ValidateCurrentLine;
72565       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72566 
72567       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72568                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72569                ,p_balance_type_code => l_balance_type_code);
72570 
72571    END IF;
72572 
72573    -----------------------------------------------------------------------------------------
72574    -- 4262811 Multiperiod Accounting
72575    -----------------------------------------------------------------------------------------
72576      -- No MPA option is assigned.
72577 
72578 
72579 END IF;
72580 END IF;
72581 --
72582 
72583 --
72584 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72585    trace
72586       (p_msg      => 'END of AcctLineType_134'
72587       ,p_level    => C_LEVEL_PROCEDURE
72588       ,p_module   => l_log_module);
72589 END IF;
72590 --
72591 EXCEPTION
72592   WHEN xla_exceptions_pkg.application_exception THEN
72593       RAISE;
72594   WHEN OTHERS THEN
72595        xla_exceptions_pkg.raise_message
72596            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_134');
72597 END AcctLineType_134;
72598 --
72599 
72600 ---------------------------------------
72601 --
72602 -- PRIVATE FUNCTION
72603 --         AcctLineType_135
72604 --
72605 ---------------------------------------
72606 PROCEDURE AcctLineType_135 (
72607   p_application_id        IN NUMBER
72608  ,p_event_id              IN NUMBER
72609  ,p_calculate_acctd_flag  IN VARCHAR2
72610  ,p_calculate_g_l_flag    IN VARCHAR2
72611  ,p_actual_flag           IN OUT VARCHAR2
72612  ,p_balance_type_code     OUT VARCHAR2
72613  ,p_gain_or_loss_ref      OUT VARCHAR2
72614  
72615 --Recipient Invoice Distribution Account
72616  , p_source_36            IN NUMBER
72617 --When to Account for Payment Option
72618  , p_source_38            IN VARCHAR2
72619 --Accounting Reversal Indicator
72620  , p_source_40            IN VARCHAR2
72621 --Business Flow Accounts Payable Application Identifier
72622  , p_source_42            IN NUMBER
72623 --Distribution Link Type
72624  , p_source_48            IN VARCHAR2
72625 --Override Accounted Amount Indicator
72626  , p_source_53            IN VARCHAR2
72627  , p_source_53_meaning    IN VARCHAR2
72628 --Third Party Type
72629  , p_source_56            IN VARCHAR2
72630 --Invoice Distribution Tax Line Identifier
72631  , p_source_58            IN NUMBER
72632 --Invoice Distribution Summary Tax Line Identifier
72633  , p_source_59            IN NUMBER
72634 --Invoice Distribution Tax Distribution Identifier from Tax
72635  , p_source_66            IN NUMBER
72636 --Prepayment Distribution Type
72637  , p_source_67            IN VARCHAR2
72638 --Recipient Invoice Distribution Type
72639  , p_source_68            IN VARCHAR2
72640  , p_source_68_meaning    IN VARCHAR2
72641 --Prepayment Application Distribution Identifier
72642  , p_source_71            IN NUMBER
72643 --Invoice Identifier
72644  , p_source_72            IN NUMBER
72645 --Business Flow Prepayment Invoice Distribution Type
72646  , p_source_73            IN VARCHAR2
72647 --Business Flow Prepayment Invoice Entity Code
72648  , p_source_74            IN VARCHAR2
72649 --Business Flow Prepayment Invoice Distribution Identifier
72650  , p_source_75            IN NUMBER
72651 --Business Flow Prepayment Invoice Identifier
72652  , p_source_76            IN NUMBER
72653 --Upgrade Encumbrance Credit Account Class
72654  , p_source_77            IN VARCHAR2
72655 --Payables Encumbrance Upgrade Credit Account
72656  , p_source_78            IN NUMBER
72657 --Payables Encumbrance Upgrade Credit Amount
72658  , p_source_79            IN NUMBER
72659 --Invoice Currency Code
72660  , p_source_80            IN VARCHAR2
72661 --Payables Encumbrance Upgrade Credit Base Amount
72662  , p_source_81            IN NUMBER
72663 --Upgrade Encumbrance Debit Account Class
72664  , p_source_82            IN VARCHAR2
72668  , p_source_84            IN NUMBER
72665 --Payables Encumbrance Upgrade Debit Account
72666  , p_source_83            IN NUMBER
72667 --Payables Encumbrance Upgrade Debit Amount
72669 --Payables Encumbrance Upgrade Debit Base Amount
72670  , p_source_85            IN NUMBER
72671 --Payables Encumbrance Upgrade Option
72672  , p_source_86            IN VARCHAR2
72673 --Prepayment Distribution Amount
72674  , p_source_87            IN NUMBER
72675 --Deferred Accounting End Date
72676  , p_source_90            IN DATE
72677 --Deferred Accounting Option
72678  , p_source_91            IN VARCHAR2
72679 --Deferred Accounting Start Date
72680  , p_source_92            IN DATE
72681 --Invoice Supplier Identifier
72682  , p_source_93            IN NUMBER
72683 --Invoice Supplier Site Identifier
72684  , p_source_94            IN NUMBER
72685 --Identifier of the Prepayment Application Reversed
72686  , p_source_95            IN NUMBER
72687 --Payables Upgrade Credit Encumbrance Type Identifier
72688  , p_source_96            IN NUMBER
72689 --Payables Upgrade Debit Encumbrance Type Identifier
72690  , p_source_97            IN NUMBER
72691 --Prepayment Payment Currency Code
72692  , p_source_98            IN VARCHAR2
72693 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
72694  , p_source_99            IN NUMBER
72695 --Prepayment Payment Exchange Date
72696  , p_source_121            IN DATE
72697 --Prepayment Payment Exchange Rate
72698  , p_source_122            IN NUMBER
72699 --Prepayment Payment Exchange Rate Type
72700  , p_source_123            IN VARCHAR2
72701 )
72702 IS
72703 
72704 l_component_type              VARCHAR2(80);
72705 l_component_code              VARCHAR2(30);
72706 l_component_type_code         VARCHAR2(1);
72707 l_component_appl_id           INTEGER;
72708 l_amb_context_code            VARCHAR2(30);
72709 l_entity_code                 VARCHAR2(30);
72710 l_event_class_code            VARCHAR2(30);
72711 l_ae_header_id                NUMBER;
72712 l_event_type_code             VARCHAR2(30);
72713 l_line_definition_code        VARCHAR2(30);
72714 l_line_definition_owner_code  VARCHAR2(1);
72715 --
72716 -- adr variables
72717 l_segment                     VARCHAR2(30);
72718 l_ccid                        NUMBER;
72719 l_adr_transaction_coa_id      NUMBER;
72720 l_adr_accounting_coa_id       NUMBER;
72721 l_adr_flexfield_segment_code  VARCHAR2(30);
72722 l_adr_flex_value_set_id       NUMBER;
72723 l_adr_value_type_code         VARCHAR2(30);
72724 l_adr_value_combination_id    NUMBER;
72725 l_adr_value_segment_code      VARCHAR2(30);
72726 
72727 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
72728 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
72729 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
72730 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
72731 
72732 -- 4262811 Variables ------------------------------------------------------------------------------------------
72733 l_entered_amt_idx             NUMBER;
72734 l_accted_amt_idx              NUMBER;
72735 l_acc_rev_flag                VARCHAR2(1);
72736 l_accrual_line_num            NUMBER;
72737 l_tmp_amt                     NUMBER;
72738 l_acc_rev_natural_side_code   VARCHAR2(1);
72739 
72740 l_num_entries                 NUMBER;
72741 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
72742 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
72743 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
72744 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
72745 l_recog_line_1                NUMBER;
72746 l_recog_line_2                NUMBER;
72747 
72748 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
72749 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
72750 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
72751 
72752 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72753 
72754 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
72755 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
72756 
72757 ---------------------------------------------------------------------------------------------------------------
72758 
72759 
72760 --
72761 -- bulk performance
72762 --
72763 l_balance_type_code           VARCHAR2(1);
72764 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
72765 l_log_module                  VARCHAR2(240);
72766 
72767 --
72768 -- Upgrade strategy
72769 --
72770 l_actual_upg_option           VARCHAR2(1);
72771 l_enc_upg_option           VARCHAR2(1);
72772 
72773 --
72774 BEGIN
72775 --
72776 IF g_log_enabled THEN
72777       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
72778 END IF;
72779 --
72780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72781 
72782       trace
72783          (p_msg      => 'BEGIN of AcctLineType_135'
72784          ,p_level    => C_LEVEL_PROCEDURE
72785          ,p_module   => l_log_module);
72786 
72787 END IF;
72788 --
72789 l_component_type             := 'AMB_JLT';
72790 l_component_code             := 'AP_MISC_PREPAY_PAY_RATE_APP';
72791 l_component_type_code        := 'S';
72792 l_component_appl_id          :=  200;
72796 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
72793 l_amb_context_code           := 'DEFAULT';
72794 l_entity_code                := 'AP_INVOICES';
72795 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
72797 l_line_definition_owner_code := 'S';
72798 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
72799 --
72800 l_balance_type_code          := 'A';
72801 l_segment                     := NULL;
72802 l_ccid                        := NULL;
72803 l_adr_transaction_coa_id      := NULL;
72804 l_adr_accounting_coa_id       := NULL;
72805 l_adr_flexfield_segment_code  := NULL;
72806 l_adr_flex_value_set_id       := NULL;
72807 l_adr_value_type_code         := NULL;
72808 l_adr_value_combination_id    := NULL;
72809 l_adr_value_segment_code      := NULL;
72810 
72811 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
72812 l_bflow_class_code           := '';    -- 4219869 Business Flow
72813 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
72814 l_budgetary_control_flag     := 'N';
72815 
72816 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
72817 l_bflow_applied_to_amt       := NULL; -- 5132302
72818 l_entered_amt_idx            := NULL;          -- 4262811
72819 l_accted_amt_idx             := NULL;          -- 4262811
72820 l_acc_rev_flag               := NULL;          -- 4262811
72821 l_accrual_line_num           := NULL;          -- 4262811
72822 l_tmp_amt                    := NULL;          -- 4262811
72823 --
72824  
72825 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72826     l_balance_type_code <> 'B' THEN
72827 IF NVL(p_source_38,'
72828 ') <>  'CLEAR_CLEAR' AND 
72829 (NVL(p_source_67,'
72830 ') =  'PREPAY APPL' OR 
72831 NVL(p_source_67,'
72832 ') =  'PREPAY APPL NONREC TAX' OR 
72833 NVL(p_source_67,'
72834 ') =  'PREPAY APPL REC TAX') AND 
72835 NVL(p_source_68,'
72836 ') =  'MISCELLANEOUS'
72837  THEN 
72838 
72839    --
72840    XLA_AE_LINES_PKG.SetNewLine;
72841 
72842    p_balance_type_code          := l_balance_type_code;
72843    -- set the flag so later we will know whether the gain loss line needs to be created
72844    
72845    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
72846      p_actual_flag :='A';
72847    END IF;
72848 
72849    --
72850    -- bulk performance
72851    --
72852    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72853                                       p_header_num   => 0); -- 4262811
72854    --
72855    -- set accounting line options
72856    --
72857    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72858            p_natural_side_code          => 'C'
72859          , p_gain_or_loss_flag          => 'N'
72860          , p_gl_transfer_mode_code      => 'S'
72861          , p_acct_entry_type_code       => 'A'
72862          , p_switch_side_flag           => 'Y'
72863          , p_merge_duplicate_code       => 'A'
72864          );
72865    --
72866    l_acc_rev_natural_side_code := 'D';  -- 4262811
72867    -- 
72868    --
72869    -- set accounting line type info
72870    --
72871    xla_ae_lines_pkg.SetAcctLineType
72872       (p_component_type             => l_component_type
72873       ,p_event_type_code            => l_event_type_code
72874       ,p_line_definition_owner_code => l_line_definition_owner_code
72875       ,p_line_definition_code       => l_line_definition_code
72876       ,p_accounting_line_code       => l_component_code
72877       ,p_accounting_line_type_code  => l_component_type_code
72878       ,p_accounting_line_appl_id    => l_component_appl_id
72879       ,p_amb_context_code           => l_amb_context_code
72880       ,p_entity_code                => l_entity_code
72881       ,p_event_class_code           => l_event_class_code);
72882    --
72883    -- set accounting class
72884    --
72885    xla_ae_lines_pkg.SetAcctClass(
72886            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
72887          , p_ae_header_id           => l_ae_header_id
72888          );
72889 
72890    --
72891    -- set rounding class
72892    --
72893    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72894                       'MISCELLANEOUS EXPENSE';
72895 
72896    --
72897    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72898    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72899    --
72900    -- bulk performance
72901    --
72902    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72903 
72904    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72905       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72906 
72907    -- 4955764
72908    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72909       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72910 
72911    -- 4458381 Public Sector Enh
72912    
72913    --
72914    -- set accounting attributes for the line type
72915    --
72916    l_entered_amt_idx := 25;
72917    l_accted_amt_idx  := 30;
72918    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
72919    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72920    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
72924    p_source_code           => 'XLA_EVENT_APPL_ID'
72921    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
72922    l_rec_acct_attrs.array_num_value(2)  := 
72923 xla_ae_sources_pkg.GetSystemSourceNum(
72925  , p_source_type_code      => 'Y'
72926  , p_source_application_id =>  602
72927 );
72928    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
72929    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
72930    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
72931    l_rec_acct_attrs.array_char_value(4)  := 
72932 xla_ae_sources_pkg.GetSystemSourceChar(
72933    p_source_code           => 'XLA_ENTITY_CODE'
72934  , p_source_type_code      => 'Y'
72935  , p_source_application_id =>  602
72936 );
72937    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
72938    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
72939    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
72940    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
72941    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
72942    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
72943    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72944    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
72945    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
72946    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
72947    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
72948    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
72949    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72950    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
72951    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
72952    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
72953    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
72954    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
72955    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
72956    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
72957    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
72958    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
72959    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
72960    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
72961    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
72962    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
72963    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
72964    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
72965    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
72966    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
72967    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
72968    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
72969    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
72970    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
72971    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
72972    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
72973    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
72974    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
72975    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
72976    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
72977    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
72978    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
72979    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
72980    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
72981    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
72982    l_rec_acct_attrs.array_date_value(27)  := p_source_121;
72983    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
72984    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
72985    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
72986    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
72987    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
72988    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
72989    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
72990    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
72991    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
72992    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
72993    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
72994    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
72995    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
72996    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
72997    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
72998    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
72999    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
73000    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
73001    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
73002    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
73003    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
73004    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
73005    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
73006    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
73010    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
73007    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
73008    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
73009    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
73011    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
73012    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
73013    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
73014    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
73015    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
73016    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
73017 
73018    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73019    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73020 
73021    ---------------------------------------------------------------------------------------------------------------
73022    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73023    ---------------------------------------------------------------------------------------------------------------
73024    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73025 
73026    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73027    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73028 
73029    IF xla_accounting_cache_pkg.GetValueChar
73030          (p_source_code         => 'LEDGER_CATEGORY_CODE'
73031          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73032    AND l_bflow_method_code = 'PRIOR_ENTRY'
73033 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73034    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73035          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73036        )
73037    THEN
73038          xla_ae_lines_pkg.BflowUpgEntry
73039            (p_business_method_code    => l_bflow_method_code
73040            ,p_business_class_code     => l_bflow_class_code
73041            ,p_balance_type            => l_balance_type_code);
73042    ELSE
73043       NULL;
73044 -- No business flow processing for business flow method of NONE.
73045    END IF;
73046 
73047    --
73048    -- call analytical criteria
73049    --
73050    
73051    --
73052    -- call description
73053    --
73054    -- No description or it is inherited.
73055    --
73056    -- call ADRs
73057    -- Bug 4922099
73058    --
73059    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73060         (NVL(l_actual_upg_option, 'N') = 'O') OR
73061         (NVL(l_enc_upg_option, 'N') = 'O')
73062       )
73063    THEN
73064    NULL;
73065    --
73066    --
73067    
73068   l_ccid := AcctDerRule_33(
73069            p_application_id           => p_application_id
73070          , p_ae_header_id             => l_ae_header_id 
73071 , p_source_36 => p_source_36
73072          , x_transaction_coa_id       => l_adr_transaction_coa_id
73073          , x_accounting_coa_id        => l_adr_accounting_coa_id
73074          , x_value_type_code          => l_adr_value_type_code
73075          , p_side                     => 'NA'
73076    );
73077 
73078    xla_ae_lines_pkg.set_ccid(
73079     p_code_combination_id          => l_ccid
73080   , p_value_type_code              => l_adr_value_type_code
73081   , p_transaction_coa_id           => l_adr_transaction_coa_id
73082   , p_accounting_coa_id            => l_adr_accounting_coa_id
73083   , p_adr_code                     => 'AP_RECP_INV_DIST'
73084   , p_adr_type_code                => 'S'
73085   , p_component_type               => l_component_type
73086   , p_component_code               => l_component_code
73087   , p_component_type_code          => l_component_type_code
73088   , p_component_appl_id            => l_component_appl_id
73089   , p_amb_context_code             => l_amb_context_code
73090   , p_side                         => 'NA'
73091   );
73092 
73093 
73094    --
73095    --
73096    END IF;
73097    --
73098    -- Bug 4922099
73099    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73100           (NVL(l_enc_upg_option, 'N') = 'O')
73101         ) AND
73102         (l_bflow_method_code = 'PRIOR_ENTRY')
73103       )
73104    THEN
73105       IF
73106       --
73107       1 = 2
73108       --
73109       THEN
73110       xla_accounting_err_pkg.build_message
73111                                     (p_appli_s_name            => 'XLA'
73112                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73113                                     ,p_token_1                 => 'LINE_NUMBER'
73114                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
73115                                     ,p_token_2                 => 'LINE_TYPE_NAME'
73116                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
73117                                                                              l_component_type
73118                                                                             ,l_component_code
73119                                                                             ,l_component_type_code
73120                                                                             ,l_component_appl_id
73124                                                                            )
73121                                                                             ,l_amb_context_code
73122                                                                             ,l_entity_code
73123                                                                             ,l_event_class_code
73125                                     ,p_token_3                 => 'OWNER'
73126                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
73127                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
73128                                                                           ,p_lookup_code    => l_component_type_code
73129                                                                          )
73130                                     ,p_token_4                 => 'PRODUCT_NAME'
73131                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73132                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73133                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73134                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73135                                     ,p_ae_header_id            =>  NULL
73136                                        );
73137 
73138         IF (C_LEVEL_ERROR>= g_log_level) THEN
73139                  trace
73140                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73141                       ,p_level    => C_LEVEL_ERROR
73142                       ,p_module   => l_log_module);
73143         END IF;
73144       END IF;
73145    END IF;
73146    --
73147    --
73148    ------------------------------------------------------------------------------------------------
73149    -- 4219869 Business Flow
73150    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73151    -- Prior Entry.  Currently, the following code is always generated.
73152    ------------------------------------------------------------------------------------------------
73153    XLA_AE_LINES_PKG.ValidateCurrentLine;
73154 
73155    ------------------------------------------------------------------------------------
73156    -- 4219869 Business Flow
73157    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73158    ------------------------------------------------------------------------------------
73159    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73160 
73161    ----------------------------------------------------------------------------------
73162    -- 4219869 Business Flow
73163    -- Update journal entry status -- Need to generate this within IF <condition>
73164    ----------------------------------------------------------------------------------
73165    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73166          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73167          ,p_balance_type_code => l_balance_type_code
73168          );
73169 
73170    -------------------------------------------------------------------------------------------
73171    -- 4262811 - Generate the Accrual Reversal lines
73172    -------------------------------------------------------------------------------------------
73173    BEGIN
73174       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73175                               (g_array_event(p_event_id).array_value_num('header_index'));
73176       IF l_acc_rev_flag IS NULL THEN
73177          l_acc_rev_flag := 'N';
73178       END IF;
73179    EXCEPTION
73180       WHEN OTHERS THEN
73181          l_acc_rev_flag := 'N';
73182    END;
73183    --
73184    IF (l_acc_rev_flag = 'Y') THEN
73185 
73186        -- 4645092  ------------------------------------------------------------------------------
73187        -- To allow MPA report to determine if it should generate report process
73188        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73189        ------------------------------------------------------------------------------------------
73190 
73191        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73192        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73193    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
73194    -- call ADRs
73195    -- Bug 4922099
73196    --
73197    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73198         (NVL(l_actual_upg_option, 'N') = 'O') OR
73199         (NVL(l_enc_upg_option, 'N') = 'O')
73200       )
73201    THEN
73202    NULL;
73203    --
73204    --
73205    
73206   l_ccid := AcctDerRule_33(
73207            p_application_id           => p_application_id
73208          , p_ae_header_id             => l_ae_header_id 
73209 , p_source_36 => p_source_36
73210          , x_transaction_coa_id       => l_adr_transaction_coa_id
73211          , x_accounting_coa_id        => l_adr_accounting_coa_id
73212          , x_value_type_code          => l_adr_value_type_code
73213          , p_side                     => 'NA'
73214    );
73215 
73216    xla_ae_lines_pkg.set_ccid(
73217     p_code_combination_id          => l_ccid
73218   , p_value_type_code              => l_adr_value_type_code
73219   , p_transaction_coa_id           => l_adr_transaction_coa_id
73223   , p_component_type               => l_component_type
73220   , p_accounting_coa_id            => l_adr_accounting_coa_id
73221   , p_adr_code                     => 'AP_RECP_INV_DIST'
73222   , p_adr_type_code                => 'S'
73224   , p_component_code               => l_component_code
73225   , p_component_type_code          => l_component_type_code
73226   , p_component_appl_id            => l_component_appl_id
73227   , p_amb_context_code             => l_amb_context_code
73228   , p_side                         => 'NA'
73229   );
73230 
73231 
73232    --
73233    --
73234    END IF;
73235 
73236        --
73237        -- Update the line information that should be overwritten
73238        --
73239        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73240                                          p_header_num   => 1);
73241        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
73242 
73243        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73244 
73245        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
73246           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73247        END IF;
73248 
73249       --
73250       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73251       --
73252       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73253           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
73254       ELSE
73255           ---------------------------------------------------------------------------------------------------
73256           -- 4262811a Switch Sign
73257           ---------------------------------------------------------------------------------------------------
73258           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
73259           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73260                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73261           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73262                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73263           -- 5132302
73264           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73265                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73266 
73267       END IF;
73268 
73269       -- 4955764
73270       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73271       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73272 
73273 
73274       XLA_AE_LINES_PKG.ValidateCurrentLine;
73275       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73276 
73277       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73278                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73279                ,p_balance_type_code => l_balance_type_code);
73280 
73281    END IF;
73282 
73283    -----------------------------------------------------------------------------------------
73284    -- 4262811 Multiperiod Accounting
73285    -----------------------------------------------------------------------------------------
73286      -- No MPA option is assigned.
73287 
73288 
73289 END IF;
73290 END IF;
73291 --
73292 
73293 --
73294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73295    trace
73296       (p_msg      => 'END of AcctLineType_135'
73297       ,p_level    => C_LEVEL_PROCEDURE
73298       ,p_module   => l_log_module);
73299 END IF;
73300 --
73301 EXCEPTION
73302   WHEN xla_exceptions_pkg.application_exception THEN
73303       RAISE;
73304   WHEN OTHERS THEN
73305        xla_exceptions_pkg.raise_message
73306            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_135');
73307 END AcctLineType_135;
73308 --
73309 
73310 ---------------------------------------
73311 --
73312 -- PRIVATE FUNCTION
73313 --         AcctLineType_136
73314 --
73315 ---------------------------------------
73316 PROCEDURE AcctLineType_136 (
73317   p_application_id        IN NUMBER
73318  ,p_event_id              IN NUMBER
73319  ,p_calculate_acctd_flag  IN VARCHAR2
73320  ,p_calculate_g_l_flag    IN VARCHAR2
73321  ,p_actual_flag           IN OUT VARCHAR2
73322  ,p_balance_type_code     OUT VARCHAR2
73323  ,p_gain_or_loss_ref      OUT VARCHAR2
73324  
73325 --Payment Distribution (Cleared Rate) Ledger Amount
73326  , p_source_10            IN NUMBER
73327 --Invoice Distribution Account
73328  , p_source_17            IN NUMBER
73329 --Invoice Distribution Type
73330  , p_source_20            IN VARCHAR2
73331  , p_source_20_meaning    IN VARCHAR2
73332 --When to Account for Payment Option
73333  , p_source_38            IN VARCHAR2
73334 --Payment Distribution Type
73335  , p_source_39            IN VARCHAR2
73336  , p_source_39_meaning    IN VARCHAR2
73337 --Accounting Reversal Indicator
73338  , p_source_40            IN VARCHAR2
73339 --Payment Distribution Amount
73340  , p_source_41            IN NUMBER
73344  , p_source_43            IN VARCHAR2
73341 --Business Flow Accounts Payable Application Identifier
73342  , p_source_42            IN NUMBER
73343 --Business Flow Payment Distribution Type
73345 --Business Flow Payment Entity Code
73346  , p_source_44            IN VARCHAR2
73347 --Business Flow Payment Distribution Identifier
73348  , p_source_45            IN NUMBER
73349 --Business Flow Payment Identifier
73350  , p_source_46            IN NUMBER
73351 --Payment Distribution Identifier
73352  , p_source_47            IN NUMBER
73353 --Distribution Link Type
73354  , p_source_48            IN VARCHAR2
73355 --Payment Currency Code
73356  , p_source_49            IN VARCHAR2
73357 --Purchase Order Exchange Rate Date
73358  , p_source_50            IN DATE
73359 --Purchase Order Exchange Rate
73360  , p_source_51            IN NUMBER
73361 --Purchase Order Exchange Rate Type
73362  , p_source_52            IN VARCHAR2
73363 --Override Accounted Amount Indicator
73364  , p_source_53            IN VARCHAR2
73365  , p_source_53_meaning    IN VARCHAR2
73366 --Payment Supplier Identifier
73367  , p_source_54            IN NUMBER
73368 --Payment Supplier Site Identifier
73369  , p_source_55            IN NUMBER
73370 --Third Party Type
73371  , p_source_56            IN VARCHAR2
73372 --Payment Distribution Reversed Identifier
73373  , p_source_57            IN NUMBER
73374 --Invoice Distribution Tax Line Identifier
73375  , p_source_58            IN NUMBER
73376 --Invoice Distribution Summary Tax Line Identifier
73377  , p_source_59            IN NUMBER
73378 --Accrue on Receipt Option
73379  , p_source_100            IN VARCHAR2
73380  , p_source_100_meaning    IN VARCHAR2
73381 )
73382 IS
73383 
73384 l_component_type              VARCHAR2(80);
73385 l_component_code              VARCHAR2(30);
73386 l_component_type_code         VARCHAR2(1);
73387 l_component_appl_id           INTEGER;
73388 l_amb_context_code            VARCHAR2(30);
73389 l_entity_code                 VARCHAR2(30);
73390 l_event_class_code            VARCHAR2(30);
73391 l_ae_header_id                NUMBER;
73392 l_event_type_code             VARCHAR2(30);
73393 l_line_definition_code        VARCHAR2(30);
73394 l_line_definition_owner_code  VARCHAR2(1);
73395 --
73396 -- adr variables
73397 l_segment                     VARCHAR2(30);
73398 l_ccid                        NUMBER;
73399 l_adr_transaction_coa_id      NUMBER;
73400 l_adr_accounting_coa_id       NUMBER;
73401 l_adr_flexfield_segment_code  VARCHAR2(30);
73402 l_adr_flex_value_set_id       NUMBER;
73403 l_adr_value_type_code         VARCHAR2(30);
73404 l_adr_value_combination_id    NUMBER;
73405 l_adr_value_segment_code      VARCHAR2(30);
73406 
73407 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
73408 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
73409 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
73410 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
73411 
73412 -- 4262811 Variables ------------------------------------------------------------------------------------------
73413 l_entered_amt_idx             NUMBER;
73414 l_accted_amt_idx              NUMBER;
73415 l_acc_rev_flag                VARCHAR2(1);
73416 l_accrual_line_num            NUMBER;
73417 l_tmp_amt                     NUMBER;
73418 l_acc_rev_natural_side_code   VARCHAR2(1);
73419 
73420 l_num_entries                 NUMBER;
73421 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
73422 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
73423 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
73424 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
73425 l_recog_line_1                NUMBER;
73426 l_recog_line_2                NUMBER;
73427 
73428 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
73429 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
73430 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
73431 
73432 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73433 
73434 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
73435 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
73436 
73437 ---------------------------------------------------------------------------------------------------------------
73438 
73439 
73440 --
73441 -- bulk performance
73442 --
73443 l_balance_type_code           VARCHAR2(1);
73444 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
73445 l_log_module                  VARCHAR2(240);
73446 
73447 --
73448 -- Upgrade strategy
73449 --
73450 l_actual_upg_option           VARCHAR2(1);
73451 l_enc_upg_option           VARCHAR2(1);
73452 
73453 --
73454 BEGIN
73455 --
73456 IF g_log_enabled THEN
73457       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
73458 END IF;
73459 --
73460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73461 
73462       trace
73463          (p_msg      => 'BEGIN of AcctLineType_136'
73464          ,p_level    => C_LEVEL_PROCEDURE
73465          ,p_module   => l_log_module);
73466 
73467 END IF;
73468 --
73469 l_component_type             := 'AMB_JLT';
73470 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_CLEAR';
73471 l_component_type_code        := 'S';
73472 l_component_appl_id          :=  200;
73476 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
73473 l_amb_context_code           := 'DEFAULT';
73474 l_entity_code                := 'AP_PAYMENTS';
73475 l_event_class_code           := 'RECONCILED PAYMENTS';
73477 l_line_definition_owner_code := 'S';
73478 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
73479 --
73480 l_balance_type_code          := 'A';
73481 l_segment                     := NULL;
73482 l_ccid                        := NULL;
73483 l_adr_transaction_coa_id      := NULL;
73484 l_adr_accounting_coa_id       := NULL;
73485 l_adr_flexfield_segment_code  := NULL;
73486 l_adr_flex_value_set_id       := NULL;
73487 l_adr_value_type_code         := NULL;
73488 l_adr_value_combination_id    := NULL;
73489 l_adr_value_segment_code      := NULL;
73490 
73491 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
73492 l_bflow_class_code           := '';    -- 4219869 Business Flow
73493 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
73494 l_budgetary_control_flag     := 'N';
73495 
73496 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
73497 l_bflow_applied_to_amt       := NULL; -- 5132302
73498 l_entered_amt_idx            := NULL;          -- 4262811
73499 l_accted_amt_idx             := NULL;          -- 4262811
73500 l_acc_rev_flag               := NULL;          -- 4262811
73501 l_accrual_line_num           := NULL;          -- 4262811
73502 l_tmp_amt                    := NULL;          -- 4262811
73503 --
73504  
73505 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73506     l_balance_type_code <> 'B' THEN
73507 IF NVL(p_source_38,'
73508 ') =  'CLEAR_CLEAR' AND 
73509 NVL(p_source_20,'
73510 ') =  'NONREC_TAX' AND 
73511 NVL(p_source_100,'
73512 ') =  'Y' AND 
73513 (NVL(p_source_39,'
73514 ') =  'CASH' OR 
73515 NVL(p_source_39,'
73516 ') =  'AWT' OR 
73517 NVL(p_source_39,'
73518 ') =  'DISCOUNT')
73519  THEN 
73520 
73521    --
73522    XLA_AE_LINES_PKG.SetNewLine;
73523 
73524    p_balance_type_code          := l_balance_type_code;
73525    -- set the flag so later we will know whether the gain loss line needs to be created
73526    
73527    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
73528      p_actual_flag :='A';
73529    END IF;
73530 
73531    --
73532    -- bulk performance
73533    --
73534    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73535                                       p_header_num   => 0); -- 4262811
73536    --
73537    -- set accounting line options
73538    --
73539    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73540            p_natural_side_code          => 'D'
73541          , p_gain_or_loss_flag          => 'N'
73542          , p_gl_transfer_mode_code      => 'S'
73543          , p_acct_entry_type_code       => 'A'
73544          , p_switch_side_flag           => 'Y'
73545          , p_merge_duplicate_code       => 'A'
73546          );
73547    --
73548    l_acc_rev_natural_side_code := 'C';  -- 4262811
73549    -- 
73550    --
73551    -- set accounting line type info
73552    --
73553    xla_ae_lines_pkg.SetAcctLineType
73554       (p_component_type             => l_component_type
73555       ,p_event_type_code            => l_event_type_code
73556       ,p_line_definition_owner_code => l_line_definition_owner_code
73557       ,p_line_definition_code       => l_line_definition_code
73558       ,p_accounting_line_code       => l_component_code
73559       ,p_accounting_line_type_code  => l_component_type_code
73560       ,p_accounting_line_appl_id    => l_component_appl_id
73561       ,p_amb_context_code           => l_amb_context_code
73562       ,p_entity_code                => l_entity_code
73563       ,p_event_class_code           => l_event_class_code);
73564    --
73565    -- set accounting class
73566    --
73567    xla_ae_lines_pkg.SetAcctClass(
73568            p_accounting_class_code  => 'NRTAX'
73569          , p_ae_header_id           => l_ae_header_id
73570          );
73571 
73572    --
73573    -- set rounding class
73574    --
73575    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73576                       'NRTAX';
73577 
73578    --
73579    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73580    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73581    --
73582    -- bulk performance
73583    --
73584    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73585 
73586    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73587       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73588 
73589    -- 4955764
73590    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73591       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73592 
73593    -- 4458381 Public Sector Enh
73594    
73595    --
73596    -- set accounting attributes for the line type
73597    --
73598    l_entered_amt_idx := 10;
73599    l_accted_amt_idx  := 15;
73600    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
73601    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73602    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
73606    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
73603    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
73604    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
73605    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
73607    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73608    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
73609    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
73610    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
73611    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
73612    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
73613    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73614    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
73615    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
73616    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
73617    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
73618    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
73619    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
73620    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
73621    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
73622    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
73623    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
73624    l_rec_acct_attrs.array_date_value(12)  := p_source_50;
73625    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
73626    l_rec_acct_attrs.array_num_value(13)  := p_source_51;
73627    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
73628    l_rec_acct_attrs.array_char_value(14)  := p_source_52;
73629    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
73630    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
73631    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
73632    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
73633    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
73634    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
73635    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
73636    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
73637    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
73638    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
73639    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
73640    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
73641    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
73642    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
73643    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
73644    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
73645    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
73646    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
73647    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
73648    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
73649 
73650    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73651    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73652 
73653    ---------------------------------------------------------------------------------------------------------------
73654    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73655    ---------------------------------------------------------------------------------------------------------------
73656    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73657 
73658    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73659    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73660 
73661    IF xla_accounting_cache_pkg.GetValueChar
73662          (p_source_code         => 'LEDGER_CATEGORY_CODE'
73663          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73664    AND l_bflow_method_code = 'PRIOR_ENTRY'
73665 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73666    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73667          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73668        )
73669    THEN
73670          xla_ae_lines_pkg.BflowUpgEntry
73671            (p_business_method_code    => l_bflow_method_code
73672            ,p_business_class_code     => l_bflow_class_code
73673            ,p_balance_type            => l_balance_type_code);
73674    ELSE
73675       NULL;
73676 -- No business flow processing for business flow method of NONE.
73677    END IF;
73678 
73679    --
73680    -- call analytical criteria
73681    --
73682    
73683    --
73684    -- call description
73685    --
73686    -- No description or it is inherited.
73687    --
73688    -- call ADRs
73689    -- Bug 4922099
73690    --
73691    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73692         (NVL(l_actual_upg_option, 'N') = 'O') OR
73693         (NVL(l_enc_upg_option, 'N') = 'O')
73694       )
73695    THEN
73696    NULL;
73697    --
73698    --
73699    
73700   l_ccid := AcctDerRule_26(
73701            p_application_id           => p_application_id
73702          , p_ae_header_id             => l_ae_header_id 
73703 , p_source_17 => p_source_17
73704          , x_transaction_coa_id       => l_adr_transaction_coa_id
73705          , x_accounting_coa_id        => l_adr_accounting_coa_id
73709 
73706          , x_value_type_code          => l_adr_value_type_code
73707          , p_side                     => 'NA'
73708    );
73710    xla_ae_lines_pkg.set_ccid(
73711     p_code_combination_id          => l_ccid
73712   , p_value_type_code              => l_adr_value_type_code
73713   , p_transaction_coa_id           => l_adr_transaction_coa_id
73714   , p_accounting_coa_id            => l_adr_accounting_coa_id
73715   , p_adr_code                     => 'AP_INVOICE_DIST'
73716   , p_adr_type_code                => 'S'
73717   , p_component_type               => l_component_type
73718   , p_component_code               => l_component_code
73719   , p_component_type_code          => l_component_type_code
73720   , p_component_appl_id            => l_component_appl_id
73721   , p_amb_context_code             => l_amb_context_code
73722   , p_side                         => 'NA'
73723   );
73724 
73725 
73726    --
73727    --
73728    END IF;
73729    --
73730    -- Bug 4922099
73731    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73732           (NVL(l_enc_upg_option, 'N') = 'O')
73733         ) AND
73734         (l_bflow_method_code = 'PRIOR_ENTRY')
73735       )
73736    THEN
73737       IF
73738       --
73739       1 = 2
73740       --
73741       THEN
73742       xla_accounting_err_pkg.build_message
73743                                     (p_appli_s_name            => 'XLA'
73744                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73745                                     ,p_token_1                 => 'LINE_NUMBER'
73746                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
73747                                     ,p_token_2                 => 'LINE_TYPE_NAME'
73748                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
73749                                                                              l_component_type
73750                                                                             ,l_component_code
73751                                                                             ,l_component_type_code
73752                                                                             ,l_component_appl_id
73753                                                                             ,l_amb_context_code
73754                                                                             ,l_entity_code
73755                                                                             ,l_event_class_code
73756                                                                            )
73757                                     ,p_token_3                 => 'OWNER'
73758                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
73759                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
73760                                                                           ,p_lookup_code    => l_component_type_code
73761                                                                          )
73762                                     ,p_token_4                 => 'PRODUCT_NAME'
73763                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73764                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73765                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73766                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73767                                     ,p_ae_header_id            =>  NULL
73768                                        );
73769 
73770         IF (C_LEVEL_ERROR>= g_log_level) THEN
73771                  trace
73772                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73773                       ,p_level    => C_LEVEL_ERROR
73774                       ,p_module   => l_log_module);
73775         END IF;
73776       END IF;
73777    END IF;
73778    --
73779    --
73780    ------------------------------------------------------------------------------------------------
73781    -- 4219869 Business Flow
73782    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73783    -- Prior Entry.  Currently, the following code is always generated.
73784    ------------------------------------------------------------------------------------------------
73785    XLA_AE_LINES_PKG.ValidateCurrentLine;
73786 
73787    ------------------------------------------------------------------------------------
73788    -- 4219869 Business Flow
73789    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73790    ------------------------------------------------------------------------------------
73791    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73792 
73793    ----------------------------------------------------------------------------------
73794    -- 4219869 Business Flow
73795    -- Update journal entry status -- Need to generate this within IF <condition>
73796    ----------------------------------------------------------------------------------
73797    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73798          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73799          ,p_balance_type_code => l_balance_type_code
73800          );
73801 
73805    BEGIN
73802    -------------------------------------------------------------------------------------------
73803    -- 4262811 - Generate the Accrual Reversal lines
73804    -------------------------------------------------------------------------------------------
73806       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73807                               (g_array_event(p_event_id).array_value_num('header_index'));
73808       IF l_acc_rev_flag IS NULL THEN
73809          l_acc_rev_flag := 'N';
73810       END IF;
73811    EXCEPTION
73812       WHEN OTHERS THEN
73813          l_acc_rev_flag := 'N';
73814    END;
73815    --
73816    IF (l_acc_rev_flag = 'Y') THEN
73817 
73818        -- 4645092  ------------------------------------------------------------------------------
73819        -- To allow MPA report to determine if it should generate report process
73820        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73821        ------------------------------------------------------------------------------------------
73822 
73823        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73824        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73825    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
73826    -- call ADRs
73827    -- Bug 4922099
73828    --
73829    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73830         (NVL(l_actual_upg_option, 'N') = 'O') OR
73831         (NVL(l_enc_upg_option, 'N') = 'O')
73832       )
73833    THEN
73834    NULL;
73835    --
73836    --
73837    
73838   l_ccid := AcctDerRule_26(
73839            p_application_id           => p_application_id
73840          , p_ae_header_id             => l_ae_header_id 
73841 , p_source_17 => p_source_17
73842          , x_transaction_coa_id       => l_adr_transaction_coa_id
73843          , x_accounting_coa_id        => l_adr_accounting_coa_id
73844          , x_value_type_code          => l_adr_value_type_code
73845          , p_side                     => 'NA'
73846    );
73847 
73848    xla_ae_lines_pkg.set_ccid(
73849     p_code_combination_id          => l_ccid
73850   , p_value_type_code              => l_adr_value_type_code
73851   , p_transaction_coa_id           => l_adr_transaction_coa_id
73852   , p_accounting_coa_id            => l_adr_accounting_coa_id
73853   , p_adr_code                     => 'AP_INVOICE_DIST'
73854   , p_adr_type_code                => 'S'
73855   , p_component_type               => l_component_type
73856   , p_component_code               => l_component_code
73857   , p_component_type_code          => l_component_type_code
73858   , p_component_appl_id            => l_component_appl_id
73859   , p_amb_context_code             => l_amb_context_code
73860   , p_side                         => 'NA'
73861   );
73862 
73863 
73864    --
73865    --
73866    END IF;
73867 
73868        --
73869        -- Update the line information that should be overwritten
73870        --
73871        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73872                                          p_header_num   => 1);
73873        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
73874 
73875        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73876 
73877        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
73878           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73879        END IF;
73880 
73881       --
73882       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73883       --
73884       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73885           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
73886       ELSE
73887           ---------------------------------------------------------------------------------------------------
73888           -- 4262811a Switch Sign
73889           ---------------------------------------------------------------------------------------------------
73890           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
73891           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73892                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73893           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73894                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73895           -- 5132302
73896           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73897                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73898 
73899       END IF;
73900 
73901       -- 4955764
73902       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73903       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73904 
73905 
73906       XLA_AE_LINES_PKG.ValidateCurrentLine;
73907       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73908 
73909       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73910                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73914 
73911                ,p_balance_type_code => l_balance_type_code);
73912 
73913    END IF;
73915    -----------------------------------------------------------------------------------------
73916    -- 4262811 Multiperiod Accounting
73917    -----------------------------------------------------------------------------------------
73918      -- No MPA option is assigned.
73919 
73920 
73921 END IF;
73922 END IF;
73923 --
73924 
73925 --
73926 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73927    trace
73928       (p_msg      => 'END of AcctLineType_136'
73929       ,p_level    => C_LEVEL_PROCEDURE
73930       ,p_module   => l_log_module);
73931 END IF;
73932 --
73933 EXCEPTION
73934   WHEN xla_exceptions_pkg.application_exception THEN
73935       RAISE;
73936   WHEN OTHERS THEN
73937        xla_exceptions_pkg.raise_message
73938            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_136');
73939 END AcctLineType_136;
73940 --
73941 
73942 ---------------------------------------
73943 --
73944 -- PRIVATE FUNCTION
73945 --         AcctLineType_137
73946 --
73947 ---------------------------------------
73948 PROCEDURE AcctLineType_137 (
73949   p_application_id        IN NUMBER
73950  ,p_event_id              IN NUMBER
73951  ,p_calculate_acctd_flag  IN VARCHAR2
73952  ,p_calculate_g_l_flag    IN VARCHAR2
73953  ,p_actual_flag           IN OUT VARCHAR2
73954  ,p_balance_type_code     OUT VARCHAR2
73955  ,p_gain_or_loss_ref      OUT VARCHAR2
73956  
73957 --Payment Distribution (Payment Rate) Ledger Amount
73958  , p_source_9            IN NUMBER
73959 --Invoice Distribution Account
73960  , p_source_17            IN NUMBER
73961 --Invoice Distribution Type
73962  , p_source_20            IN VARCHAR2
73963  , p_source_20_meaning    IN VARCHAR2
73964 --When to Account for Payment Option
73965  , p_source_38            IN VARCHAR2
73966 --Payment Distribution Type
73967  , p_source_39            IN VARCHAR2
73968  , p_source_39_meaning    IN VARCHAR2
73969 --Accounting Reversal Indicator
73970  , p_source_40            IN VARCHAR2
73971 --Payment Distribution Amount
73972  , p_source_41            IN NUMBER
73973 --Business Flow Accounts Payable Application Identifier
73974  , p_source_42            IN NUMBER
73975 --Payment Distribution Identifier
73976  , p_source_47            IN NUMBER
73977 --Distribution Link Type
73978  , p_source_48            IN VARCHAR2
73979 --Payment Currency Code
73980  , p_source_49            IN VARCHAR2
73981 --Purchase Order Exchange Rate Date
73982  , p_source_50            IN DATE
73983 --Purchase Order Exchange Rate
73984  , p_source_51            IN NUMBER
73985 --Purchase Order Exchange Rate Type
73986  , p_source_52            IN VARCHAR2
73987 --Override Accounted Amount Indicator
73988  , p_source_53            IN VARCHAR2
73989  , p_source_53_meaning    IN VARCHAR2
73990 --Payment Supplier Identifier
73991  , p_source_54            IN NUMBER
73992 --Payment Supplier Site Identifier
73993  , p_source_55            IN NUMBER
73994 --Third Party Type
73995  , p_source_56            IN VARCHAR2
73996 --Payment Distribution Reversed Identifier
73997  , p_source_57            IN NUMBER
73998 --Invoice Distribution Tax Line Identifier
73999  , p_source_58            IN NUMBER
74000 --Invoice Distribution Summary Tax Line Identifier
74001  , p_source_59            IN NUMBER
74002 --Payment Type
74003  , p_source_60            IN VARCHAR2
74004  , p_source_60_meaning    IN VARCHAR2
74005 --Invoice Distribution Amount of the Payment Distribution
74006  , p_source_61            IN NUMBER
74007 --Business Flow Invoice Distribution Type
74008  , p_source_62            IN VARCHAR2
74009 --Business Flow Invoice Entity Code
74010  , p_source_63            IN VARCHAR2
74011 --Business Flow Invoice Distribution Identifier
74012  , p_source_64            IN NUMBER
74013 --Business Flow Invoice Identifier
74014  , p_source_65            IN NUMBER
74015 --Invoice Distribution Tax Distribution Identifier from Tax
74016  , p_source_66            IN NUMBER
74017 --Accrue on Receipt Option
74018  , p_source_100            IN VARCHAR2
74019  , p_source_100_meaning    IN VARCHAR2
74020 --Invoice Type Paid
74021  , p_source_101            IN VARCHAR2
74022  , p_source_101_meaning    IN VARCHAR2
74023 )
74024 IS
74025 
74026 l_component_type              VARCHAR2(80);
74027 l_component_code              VARCHAR2(30);
74028 l_component_type_code         VARCHAR2(1);
74029 l_component_appl_id           INTEGER;
74030 l_amb_context_code            VARCHAR2(30);
74031 l_entity_code                 VARCHAR2(30);
74032 l_event_class_code            VARCHAR2(30);
74033 l_ae_header_id                NUMBER;
74034 l_event_type_code             VARCHAR2(30);
74035 l_line_definition_code        VARCHAR2(30);
74036 l_line_definition_owner_code  VARCHAR2(1);
74037 --
74038 -- adr variables
74039 l_segment                     VARCHAR2(30);
74040 l_ccid                        NUMBER;
74041 l_adr_transaction_coa_id      NUMBER;
74042 l_adr_accounting_coa_id       NUMBER;
74043 l_adr_flexfield_segment_code  VARCHAR2(30);
74044 l_adr_flex_value_set_id       NUMBER;
74045 l_adr_value_type_code         VARCHAR2(30);
74046 l_adr_value_combination_id    NUMBER;
74047 l_adr_value_segment_code      VARCHAR2(30);
74048 
74052 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
74049 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
74050 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
74051 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
74053 
74054 -- 4262811 Variables ------------------------------------------------------------------------------------------
74055 l_entered_amt_idx             NUMBER;
74056 l_accted_amt_idx              NUMBER;
74057 l_acc_rev_flag                VARCHAR2(1);
74058 l_accrual_line_num            NUMBER;
74059 l_tmp_amt                     NUMBER;
74060 l_acc_rev_natural_side_code   VARCHAR2(1);
74061 
74062 l_num_entries                 NUMBER;
74063 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
74064 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
74065 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
74066 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
74067 l_recog_line_1                NUMBER;
74068 l_recog_line_2                NUMBER;
74069 
74070 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
74071 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
74072 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
74073 
74074 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74075 
74076 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
74077 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
74078 
74079 ---------------------------------------------------------------------------------------------------------------
74080 
74081 
74082 --
74083 -- bulk performance
74084 --
74085 l_balance_type_code           VARCHAR2(1);
74086 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
74087 l_log_module                  VARCHAR2(240);
74088 
74089 --
74090 -- Upgrade strategy
74091 --
74092 l_actual_upg_option           VARCHAR2(1);
74093 l_enc_upg_option           VARCHAR2(1);
74094 
74095 --
74096 BEGIN
74097 --
74098 IF g_log_enabled THEN
74099       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
74100 END IF;
74101 --
74102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74103 
74104       trace
74105          (p_msg      => 'BEGIN of AcctLineType_137'
74106          ,p_level    => C_LEVEL_PROCEDURE
74107          ,p_module   => l_log_module);
74108 
74109 END IF;
74110 --
74111 l_component_type             := 'AMB_JLT';
74112 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_PMT';
74113 l_component_type_code        := 'S';
74114 l_component_appl_id          :=  200;
74115 l_amb_context_code           := 'DEFAULT';
74116 l_entity_code                := 'AP_PAYMENTS';
74117 l_event_class_code           := 'PAYMENTS';
74118 l_event_type_code            := 'PAYMENTS_ALL';
74119 l_line_definition_owner_code := 'S';
74120 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
74121 --
74122 l_balance_type_code          := 'A';
74123 l_segment                     := NULL;
74124 l_ccid                        := NULL;
74125 l_adr_transaction_coa_id      := NULL;
74126 l_adr_accounting_coa_id       := NULL;
74127 l_adr_flexfield_segment_code  := NULL;
74128 l_adr_flex_value_set_id       := NULL;
74129 l_adr_value_type_code         := NULL;
74130 l_adr_value_combination_id    := NULL;
74131 l_adr_value_segment_code      := NULL;
74132 
74133 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
74134 l_bflow_class_code           := '';    -- 4219869 Business Flow
74135 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
74136 l_budgetary_control_flag     := 'N';
74137 
74138 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
74139 l_bflow_applied_to_amt       := NULL; -- 5132302
74140 l_entered_amt_idx            := NULL;          -- 4262811
74141 l_accted_amt_idx             := NULL;          -- 4262811
74142 l_acc_rev_flag               := NULL;          -- 4262811
74143 l_accrual_line_num           := NULL;          -- 4262811
74144 l_tmp_amt                    := NULL;          -- 4262811
74145 --
74146  
74147 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74148     l_balance_type_code <> 'B' THEN
74149 IF NVL(p_source_38,'
74150 ') <>  'CLEAR_CLEAR' AND 
74151 NVL(p_source_20,'
74152 ') =  'NONREC_TAX' AND 
74153 NVL(p_source_100,'
74154 ') =  'Y' AND 
74155 NVL(p_source_101,'
74156 ') <>  'INTEREST' AND 
74157 (NVL(p_source_39,'
74158 ') =  'CASH' OR 
74159 NVL(p_source_39,'
74160 ') =  'AWT' OR 
74161 NVL(p_source_39,'
74162 ') =  'DISCOUNT') AND 
74163 NVL(p_source_60,'
74164 ') <>  'R'
74165  THEN 
74166 
74167    --
74168    XLA_AE_LINES_PKG.SetNewLine;
74169 
74170    p_balance_type_code          := l_balance_type_code;
74171    -- set the flag so later we will know whether the gain loss line needs to be created
74172    
74173    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74174      p_actual_flag :='A';
74175    END IF;
74176 
74177    --
74178    -- bulk performance
74179    --
74180    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74181                                       p_header_num   => 0); -- 4262811
74182    --
74183    -- set accounting line options
74184    --
74188          , p_gl_transfer_mode_code      => 'S'
74185    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74186            p_natural_side_code          => 'D'
74187          , p_gain_or_loss_flag          => 'N'
74189          , p_acct_entry_type_code       => 'A'
74190          , p_switch_side_flag           => 'Y'
74191          , p_merge_duplicate_code       => 'A'
74192          );
74193    --
74194    l_acc_rev_natural_side_code := 'C';  -- 4262811
74195    -- 
74196    --
74197    -- set accounting line type info
74198    --
74199    xla_ae_lines_pkg.SetAcctLineType
74200       (p_component_type             => l_component_type
74201       ,p_event_type_code            => l_event_type_code
74202       ,p_line_definition_owner_code => l_line_definition_owner_code
74203       ,p_line_definition_code       => l_line_definition_code
74204       ,p_accounting_line_code       => l_component_code
74205       ,p_accounting_line_type_code  => l_component_type_code
74206       ,p_accounting_line_appl_id    => l_component_appl_id
74207       ,p_amb_context_code           => l_amb_context_code
74208       ,p_entity_code                => l_entity_code
74209       ,p_event_class_code           => l_event_class_code);
74210    --
74211    -- set accounting class
74212    --
74213    xla_ae_lines_pkg.SetAcctClass(
74214            p_accounting_class_code  => 'NRTAX'
74215          , p_ae_header_id           => l_ae_header_id
74216          );
74217 
74218    --
74219    -- set rounding class
74220    --
74221    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74222                       'NRTAX';
74223 
74224    --
74225    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74226    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74227    --
74228    -- bulk performance
74229    --
74230    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74231 
74232    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74233       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74234 
74235    -- 4955764
74236    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74237       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74238 
74239    -- 4458381 Public Sector Enh
74240    
74241    --
74242    -- set accounting attributes for the line type
74243    --
74244    l_entered_amt_idx := 10;
74245    l_accted_amt_idx  := 15;
74246    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
74247    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74248    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
74249    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
74250    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
74251    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
74252    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
74253    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74254    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
74255    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
74256    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
74257    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
74258    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
74259    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74260    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
74261    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
74262    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
74263    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
74264    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
74265    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
74266    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
74267    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
74268    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
74269    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
74270    l_rec_acct_attrs.array_date_value(12)  := p_source_50;
74271    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
74272    l_rec_acct_attrs.array_num_value(13)  := p_source_51;
74273    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
74274    l_rec_acct_attrs.array_char_value(14)  := p_source_52;
74275    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
74276    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
74277    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
74278    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
74279    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
74280    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
74281    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
74282    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
74283    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
74284    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
74285    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
74286    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
74287    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
74288    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
74292    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
74289    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
74290    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
74291    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
74293    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
74294    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
74295 
74296    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74297    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74298 
74299    ---------------------------------------------------------------------------------------------------------------
74300    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74301    ---------------------------------------------------------------------------------------------------------------
74302    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74303 
74304    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74305    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74306 
74307    IF xla_accounting_cache_pkg.GetValueChar
74308          (p_source_code         => 'LEDGER_CATEGORY_CODE'
74309          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74310    AND l_bflow_method_code = 'PRIOR_ENTRY'
74311 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74312    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74313          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74314        )
74315    THEN
74316          xla_ae_lines_pkg.BflowUpgEntry
74317            (p_business_method_code    => l_bflow_method_code
74318            ,p_business_class_code     => l_bflow_class_code
74319            ,p_balance_type            => l_balance_type_code);
74320    ELSE
74321       NULL;
74322 -- No business flow processing for business flow method of NONE.
74323    END IF;
74324 
74325    --
74326    -- call analytical criteria
74327    --
74328    
74329    --
74330    -- call description
74331    --
74332    -- No description or it is inherited.
74333    --
74334    -- call ADRs
74335    -- Bug 4922099
74336    --
74337    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74338         (NVL(l_actual_upg_option, 'N') = 'O') OR
74339         (NVL(l_enc_upg_option, 'N') = 'O')
74340       )
74341    THEN
74342    NULL;
74343    --
74344    --
74345    
74346   l_ccid := AcctDerRule_26(
74347            p_application_id           => p_application_id
74348          , p_ae_header_id             => l_ae_header_id 
74349 , p_source_17 => p_source_17
74350          , x_transaction_coa_id       => l_adr_transaction_coa_id
74351          , x_accounting_coa_id        => l_adr_accounting_coa_id
74352          , x_value_type_code          => l_adr_value_type_code
74353          , p_side                     => 'NA'
74354    );
74355 
74356    xla_ae_lines_pkg.set_ccid(
74357     p_code_combination_id          => l_ccid
74358   , p_value_type_code              => l_adr_value_type_code
74359   , p_transaction_coa_id           => l_adr_transaction_coa_id
74360   , p_accounting_coa_id            => l_adr_accounting_coa_id
74361   , p_adr_code                     => 'AP_INVOICE_DIST'
74362   , p_adr_type_code                => 'S'
74363   , p_component_type               => l_component_type
74364   , p_component_code               => l_component_code
74365   , p_component_type_code          => l_component_type_code
74366   , p_component_appl_id            => l_component_appl_id
74367   , p_amb_context_code             => l_amb_context_code
74368   , p_side                         => 'NA'
74369   );
74370 
74371 
74372    --
74373    --
74374    END IF;
74375    --
74376    -- Bug 4922099
74377    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
74378           (NVL(l_enc_upg_option, 'N') = 'O')
74379         ) AND
74380         (l_bflow_method_code = 'PRIOR_ENTRY')
74381       )
74382    THEN
74383       IF
74384       --
74385       1 = 2
74386       --
74387       THEN
74388       xla_accounting_err_pkg.build_message
74389                                     (p_appli_s_name            => 'XLA'
74390                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74391                                     ,p_token_1                 => 'LINE_NUMBER'
74392                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
74393                                     ,p_token_2                 => 'LINE_TYPE_NAME'
74394                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
74395                                                                              l_component_type
74396                                                                             ,l_component_code
74397                                                                             ,l_component_type_code
74398                                                                             ,l_component_appl_id
74399                                                                             ,l_amb_context_code
74400                                                                             ,l_entity_code
74401                                                                             ,l_event_class_code
74402                                                                            )
74406                                                                           ,p_lookup_code    => l_component_type_code
74403                                     ,p_token_3                 => 'OWNER'
74404                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
74405                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
74407                                                                          )
74408                                     ,p_token_4                 => 'PRODUCT_NAME'
74409                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
74410                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
74411                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
74412                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
74413                                     ,p_ae_header_id            =>  NULL
74414                                        );
74415 
74416         IF (C_LEVEL_ERROR>= g_log_level) THEN
74417                  trace
74418                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74419                       ,p_level    => C_LEVEL_ERROR
74420                       ,p_module   => l_log_module);
74421         END IF;
74422       END IF;
74423    END IF;
74424    --
74425    --
74426    ------------------------------------------------------------------------------------------------
74427    -- 4219869 Business Flow
74428    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
74429    -- Prior Entry.  Currently, the following code is always generated.
74430    ------------------------------------------------------------------------------------------------
74431    XLA_AE_LINES_PKG.ValidateCurrentLine;
74432 
74433    ------------------------------------------------------------------------------------
74434    -- 4219869 Business Flow
74435    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
74436    ------------------------------------------------------------------------------------
74437    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74438 
74439    ----------------------------------------------------------------------------------
74440    -- 4219869 Business Flow
74441    -- Update journal entry status -- Need to generate this within IF <condition>
74442    ----------------------------------------------------------------------------------
74443    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74444          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
74445          ,p_balance_type_code => l_balance_type_code
74446          );
74447 
74448    -------------------------------------------------------------------------------------------
74449    -- 4262811 - Generate the Accrual Reversal lines
74450    -------------------------------------------------------------------------------------------
74451    BEGIN
74452       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
74453                               (g_array_event(p_event_id).array_value_num('header_index'));
74454       IF l_acc_rev_flag IS NULL THEN
74455          l_acc_rev_flag := 'N';
74456       END IF;
74457    EXCEPTION
74458       WHEN OTHERS THEN
74459          l_acc_rev_flag := 'N';
74460    END;
74461    --
74462    IF (l_acc_rev_flag = 'Y') THEN
74463 
74464        -- 4645092  ------------------------------------------------------------------------------
74465        -- To allow MPA report to determine if it should generate report process
74466        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
74467        ------------------------------------------------------------------------------------------
74468 
74469        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
74470        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
74471    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
74472    -- call ADRs
74473    -- Bug 4922099
74474    --
74475    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74476         (NVL(l_actual_upg_option, 'N') = 'O') OR
74477         (NVL(l_enc_upg_option, 'N') = 'O')
74478       )
74479    THEN
74480    NULL;
74481    --
74482    --
74483    
74484   l_ccid := AcctDerRule_26(
74485            p_application_id           => p_application_id
74486          , p_ae_header_id             => l_ae_header_id 
74487 , p_source_17 => p_source_17
74488          , x_transaction_coa_id       => l_adr_transaction_coa_id
74489          , x_accounting_coa_id        => l_adr_accounting_coa_id
74490          , x_value_type_code          => l_adr_value_type_code
74491          , p_side                     => 'NA'
74492    );
74493 
74494    xla_ae_lines_pkg.set_ccid(
74495     p_code_combination_id          => l_ccid
74496   , p_value_type_code              => l_adr_value_type_code
74497   , p_transaction_coa_id           => l_adr_transaction_coa_id
74498   , p_accounting_coa_id            => l_adr_accounting_coa_id
74499   , p_adr_code                     => 'AP_INVOICE_DIST'
74500   , p_adr_type_code                => 'S'
74501   , p_component_type               => l_component_type
74502   , p_component_code               => l_component_code
74503   , p_component_type_code          => l_component_type_code
74507   );
74504   , p_component_appl_id            => l_component_appl_id
74505   , p_amb_context_code             => l_amb_context_code
74506   , p_side                         => 'NA'
74508 
74509 
74510    --
74511    --
74512    END IF;
74513 
74514        --
74515        -- Update the line information that should be overwritten
74516        --
74517        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74518                                          p_header_num   => 1);
74519        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
74520 
74521        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74522 
74523        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
74524           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74525        END IF;
74526 
74527       --
74528       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74529       --
74530       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74531           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
74532       ELSE
74533           ---------------------------------------------------------------------------------------------------
74534           -- 4262811a Switch Sign
74535           ---------------------------------------------------------------------------------------------------
74536           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
74537           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74538                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74539           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74540                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74541           -- 5132302
74542           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74543                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74544 
74545       END IF;
74546 
74547       -- 4955764
74548       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74549       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74550 
74551 
74552       XLA_AE_LINES_PKG.ValidateCurrentLine;
74553       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74554 
74555       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74556                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74557                ,p_balance_type_code => l_balance_type_code);
74558 
74559    END IF;
74560 
74561    -----------------------------------------------------------------------------------------
74562    -- 4262811 Multiperiod Accounting
74563    -----------------------------------------------------------------------------------------
74564      -- No MPA option is assigned.
74565 
74566 
74567 END IF;
74568 END IF;
74569 --
74570 
74571 --
74572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74573    trace
74574       (p_msg      => 'END of AcctLineType_137'
74575       ,p_level    => C_LEVEL_PROCEDURE
74576       ,p_module   => l_log_module);
74577 END IF;
74578 --
74579 EXCEPTION
74580   WHEN xla_exceptions_pkg.application_exception THEN
74581       RAISE;
74582   WHEN OTHERS THEN
74583        xla_exceptions_pkg.raise_message
74584            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_137');
74585 END AcctLineType_137;
74586 --
74587 
74588 ---------------------------------------
74589 --
74590 -- PRIVATE FUNCTION
74591 --         AcctLineType_138
74592 --
74593 ---------------------------------------
74594 PROCEDURE AcctLineType_138 (
74595   p_application_id        IN NUMBER
74596  ,p_event_id              IN NUMBER
74597  ,p_calculate_acctd_flag  IN VARCHAR2
74598  ,p_calculate_g_l_flag    IN VARCHAR2
74599  ,p_actual_flag           IN OUT VARCHAR2
74600  ,p_balance_type_code     OUT VARCHAR2
74601  ,p_gain_or_loss_ref      OUT VARCHAR2
74602  
74603 --Payment Distribution (Payment Rate) Ledger Amount
74604  , p_source_9            IN NUMBER
74605 --Invoice Distribution Account
74606  , p_source_17            IN NUMBER
74607 --Invoice Distribution Type
74608  , p_source_20            IN VARCHAR2
74609  , p_source_20_meaning    IN VARCHAR2
74610 --When to Account for Payment Option
74611  , p_source_38            IN VARCHAR2
74612 --Payment Distribution Type
74613  , p_source_39            IN VARCHAR2
74614  , p_source_39_meaning    IN VARCHAR2
74615 --Accounting Reversal Indicator
74616  , p_source_40            IN VARCHAR2
74617 --Payment Distribution Amount
74618  , p_source_41            IN NUMBER
74619 --Business Flow Accounts Payable Application Identifier
74620  , p_source_42            IN NUMBER
74621 --Payment Distribution Identifier
74622  , p_source_47            IN NUMBER
74623 --Distribution Link Type
74624  , p_source_48            IN VARCHAR2
74625 --Payment Currency Code
74626  , p_source_49            IN VARCHAR2
74627 --Purchase Order Exchange Rate Date
74631 --Purchase Order Exchange Rate Type
74628  , p_source_50            IN DATE
74629 --Purchase Order Exchange Rate
74630  , p_source_51            IN NUMBER
74632  , p_source_52            IN VARCHAR2
74633 --Override Accounted Amount Indicator
74634  , p_source_53            IN VARCHAR2
74635  , p_source_53_meaning    IN VARCHAR2
74636 --Payment Supplier Identifier
74637  , p_source_54            IN NUMBER
74638 --Payment Supplier Site Identifier
74639  , p_source_55            IN NUMBER
74640 --Third Party Type
74641  , p_source_56            IN VARCHAR2
74642 --Payment Distribution Reversed Identifier
74643  , p_source_57            IN NUMBER
74644 --Invoice Distribution Tax Line Identifier
74645  , p_source_58            IN NUMBER
74646 --Invoice Distribution Summary Tax Line Identifier
74647  , p_source_59            IN NUMBER
74648 --Payment Type
74649  , p_source_60            IN VARCHAR2
74650  , p_source_60_meaning    IN VARCHAR2
74651 --Business Flow Invoice Distribution Type
74652  , p_source_62            IN VARCHAR2
74653 --Business Flow Invoice Entity Code
74654  , p_source_63            IN VARCHAR2
74655 --Business Flow Invoice Distribution Identifier
74656  , p_source_64            IN NUMBER
74657 --Business Flow Invoice Identifier
74658  , p_source_65            IN NUMBER
74659 --Invoice Distribution Tax Distribution Identifier from Tax
74660  , p_source_66            IN NUMBER
74661 --Accrue on Receipt Option
74662  , p_source_100            IN VARCHAR2
74663  , p_source_100_meaning    IN VARCHAR2
74664 )
74665 IS
74666 
74667 l_component_type              VARCHAR2(80);
74668 l_component_code              VARCHAR2(30);
74669 l_component_type_code         VARCHAR2(1);
74670 l_component_appl_id           INTEGER;
74671 l_amb_context_code            VARCHAR2(30);
74672 l_entity_code                 VARCHAR2(30);
74673 l_event_class_code            VARCHAR2(30);
74674 l_ae_header_id                NUMBER;
74675 l_event_type_code             VARCHAR2(30);
74676 l_line_definition_code        VARCHAR2(30);
74677 l_line_definition_owner_code  VARCHAR2(1);
74678 --
74679 -- adr variables
74680 l_segment                     VARCHAR2(30);
74681 l_ccid                        NUMBER;
74682 l_adr_transaction_coa_id      NUMBER;
74683 l_adr_accounting_coa_id       NUMBER;
74684 l_adr_flexfield_segment_code  VARCHAR2(30);
74685 l_adr_flex_value_set_id       NUMBER;
74686 l_adr_value_type_code         VARCHAR2(30);
74687 l_adr_value_combination_id    NUMBER;
74688 l_adr_value_segment_code      VARCHAR2(30);
74689 
74690 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
74691 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
74692 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
74693 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
74694 
74695 -- 4262811 Variables ------------------------------------------------------------------------------------------
74696 l_entered_amt_idx             NUMBER;
74697 l_accted_amt_idx              NUMBER;
74698 l_acc_rev_flag                VARCHAR2(1);
74699 l_accrual_line_num            NUMBER;
74700 l_tmp_amt                     NUMBER;
74701 l_acc_rev_natural_side_code   VARCHAR2(1);
74702 
74703 l_num_entries                 NUMBER;
74704 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
74705 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
74706 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
74707 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
74708 l_recog_line_1                NUMBER;
74709 l_recog_line_2                NUMBER;
74710 
74711 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
74712 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
74713 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
74714 
74715 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74716 
74717 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
74718 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
74719 
74720 ---------------------------------------------------------------------------------------------------------------
74721 
74722 
74723 --
74724 -- bulk performance
74725 --
74726 l_balance_type_code           VARCHAR2(1);
74727 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
74728 l_log_module                  VARCHAR2(240);
74729 
74730 --
74731 -- Upgrade strategy
74732 --
74733 l_actual_upg_option           VARCHAR2(1);
74734 l_enc_upg_option           VARCHAR2(1);
74735 
74736 --
74737 BEGIN
74738 --
74739 IF g_log_enabled THEN
74740       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
74741 END IF;
74742 --
74743 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74744 
74745       trace
74746          (p_msg      => 'BEGIN of AcctLineType_138'
74747          ,p_level    => C_LEVEL_PROCEDURE
74748          ,p_module   => l_log_module);
74749 
74750 END IF;
74751 --
74752 l_component_type             := 'AMB_JLT';
74753 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_REF';
74754 l_component_type_code        := 'S';
74755 l_component_appl_id          :=  200;
74756 l_amb_context_code           := 'DEFAULT';
74760 l_line_definition_owner_code := 'S';
74757 l_entity_code                := 'AP_PAYMENTS';
74758 l_event_class_code           := 'REFUNDS';
74759 l_event_type_code            := 'REFUNDS_ALL';
74761 l_line_definition_code       := 'CASH_REFUNDS_ALL';
74762 --
74763 l_balance_type_code          := 'A';
74764 l_segment                     := NULL;
74765 l_ccid                        := NULL;
74766 l_adr_transaction_coa_id      := NULL;
74767 l_adr_accounting_coa_id       := NULL;
74768 l_adr_flexfield_segment_code  := NULL;
74769 l_adr_flex_value_set_id       := NULL;
74770 l_adr_value_type_code         := NULL;
74771 l_adr_value_combination_id    := NULL;
74772 l_adr_value_segment_code      := NULL;
74773 
74774 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
74775 l_bflow_class_code           := '';    -- 4219869 Business Flow
74776 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
74777 l_budgetary_control_flag     := 'N';
74778 
74779 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
74780 l_bflow_applied_to_amt       := NULL; -- 5132302
74781 l_entered_amt_idx            := NULL;          -- 4262811
74782 l_accted_amt_idx             := NULL;          -- 4262811
74783 l_acc_rev_flag               := NULL;          -- 4262811
74784 l_accrual_line_num           := NULL;          -- 4262811
74785 l_tmp_amt                    := NULL;          -- 4262811
74786 --
74787  
74788 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74789     l_balance_type_code <> 'B' THEN
74790 IF NVL(p_source_38,'
74791 ') <>  'CLEAR_CLEAR' AND 
74792 NVL(p_source_20,'
74793 ') =  'NONREC_TAX' AND 
74794 NVL(p_source_100,'
74795 ') =  'Y' AND 
74796 (NVL(p_source_39,'
74797 ') =  'CASH' OR 
74798 NVL(p_source_39,'
74799 ') =  'DISCOUNT') AND 
74800 NVL(p_source_60,'
74801 ') =  'R'
74802  THEN 
74803 
74804    --
74805    XLA_AE_LINES_PKG.SetNewLine;
74806 
74807    p_balance_type_code          := l_balance_type_code;
74808    -- set the flag so later we will know whether the gain loss line needs to be created
74809    
74810    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74811      p_actual_flag :='A';
74812    END IF;
74813 
74814    --
74815    -- bulk performance
74816    --
74817    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74818                                       p_header_num   => 0); -- 4262811
74819    --
74820    -- set accounting line options
74821    --
74822    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74823            p_natural_side_code          => 'D'
74824          , p_gain_or_loss_flag          => 'N'
74825          , p_gl_transfer_mode_code      => 'S'
74826          , p_acct_entry_type_code       => 'A'
74827          , p_switch_side_flag           => 'Y'
74828          , p_merge_duplicate_code       => 'A'
74829          );
74830    --
74831    l_acc_rev_natural_side_code := 'C';  -- 4262811
74832    -- 
74833    --
74834    -- set accounting line type info
74835    --
74836    xla_ae_lines_pkg.SetAcctLineType
74837       (p_component_type             => l_component_type
74838       ,p_event_type_code            => l_event_type_code
74839       ,p_line_definition_owner_code => l_line_definition_owner_code
74840       ,p_line_definition_code       => l_line_definition_code
74841       ,p_accounting_line_code       => l_component_code
74842       ,p_accounting_line_type_code  => l_component_type_code
74843       ,p_accounting_line_appl_id    => l_component_appl_id
74844       ,p_amb_context_code           => l_amb_context_code
74845       ,p_entity_code                => l_entity_code
74846       ,p_event_class_code           => l_event_class_code);
74847    --
74848    -- set accounting class
74849    --
74850    xla_ae_lines_pkg.SetAcctClass(
74851            p_accounting_class_code  => 'NRTAX'
74852          , p_ae_header_id           => l_ae_header_id
74853          );
74854 
74855    --
74856    -- set rounding class
74857    --
74858    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74859                       'NRTAX';
74860 
74861    --
74862    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74863    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74864    --
74865    -- bulk performance
74866    --
74867    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74868 
74869    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74870       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74871 
74872    -- 4955764
74873    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74874       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74875 
74876    -- 4458381 Public Sector Enh
74877    
74878    --
74879    -- set accounting attributes for the line type
74880    --
74881    l_entered_amt_idx := 9;
74882    l_accted_amt_idx  := 14;
74883    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
74884    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74885    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
74886    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
74887    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
74891    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
74888    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74889    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
74890    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
74892    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
74893    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
74894    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74895    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
74896    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
74897    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
74898    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
74899    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
74900    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
74901    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
74902    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
74903    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
74904    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
74905    l_rec_acct_attrs.array_date_value(11)  := p_source_50;
74906    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
74907    l_rec_acct_attrs.array_num_value(12)  := p_source_51;
74908    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
74909    l_rec_acct_attrs.array_char_value(13)  := p_source_52;
74910    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
74911    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
74912    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
74913    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
74914    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
74915    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
74916    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
74917    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
74918    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
74919    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
74920    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
74921    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
74922    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
74923    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
74924    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
74925    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
74926    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
74927    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
74928    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
74929    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
74930 
74931    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74932    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74933 
74934    ---------------------------------------------------------------------------------------------------------------
74935    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74936    ---------------------------------------------------------------------------------------------------------------
74937    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74938 
74939    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74940    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74941 
74942    IF xla_accounting_cache_pkg.GetValueChar
74943          (p_source_code         => 'LEDGER_CATEGORY_CODE'
74944          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74945    AND l_bflow_method_code = 'PRIOR_ENTRY'
74946 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74947    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74948          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74949        )
74950    THEN
74951          xla_ae_lines_pkg.BflowUpgEntry
74952            (p_business_method_code    => l_bflow_method_code
74953            ,p_business_class_code     => l_bflow_class_code
74954            ,p_balance_type            => l_balance_type_code);
74955    ELSE
74956       NULL;
74957 -- No business flow processing for business flow method of NONE.
74958    END IF;
74959 
74960    --
74961    -- call analytical criteria
74962    --
74963    
74964    --
74965    -- call description
74966    --
74967    -- No description or it is inherited.
74968    --
74969    -- call ADRs
74970    -- Bug 4922099
74971    --
74972    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74973         (NVL(l_actual_upg_option, 'N') = 'O') OR
74974         (NVL(l_enc_upg_option, 'N') = 'O')
74975       )
74976    THEN
74977    NULL;
74978    --
74979    --
74980    
74981   l_ccid := AcctDerRule_26(
74982            p_application_id           => p_application_id
74983          , p_ae_header_id             => l_ae_header_id 
74984 , p_source_17 => p_source_17
74985          , x_transaction_coa_id       => l_adr_transaction_coa_id
74986          , x_accounting_coa_id        => l_adr_accounting_coa_id
74987          , x_value_type_code          => l_adr_value_type_code
74988          , p_side                     => 'NA'
74989    );
74990 
74991    xla_ae_lines_pkg.set_ccid(
74995   , p_accounting_coa_id            => l_adr_accounting_coa_id
74992     p_code_combination_id          => l_ccid
74993   , p_value_type_code              => l_adr_value_type_code
74994   , p_transaction_coa_id           => l_adr_transaction_coa_id
74996   , p_adr_code                     => 'AP_INVOICE_DIST'
74997   , p_adr_type_code                => 'S'
74998   , p_component_type               => l_component_type
74999   , p_component_code               => l_component_code
75000   , p_component_type_code          => l_component_type_code
75001   , p_component_appl_id            => l_component_appl_id
75002   , p_amb_context_code             => l_amb_context_code
75003   , p_side                         => 'NA'
75004   );
75005 
75006 
75007    --
75008    --
75009    END IF;
75010    --
75011    -- Bug 4922099
75012    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75013           (NVL(l_enc_upg_option, 'N') = 'O')
75014         ) AND
75015         (l_bflow_method_code = 'PRIOR_ENTRY')
75016       )
75017    THEN
75018       IF
75019       --
75020       1 = 2
75021       --
75022       THEN
75023       xla_accounting_err_pkg.build_message
75024                                     (p_appli_s_name            => 'XLA'
75025                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75026                                     ,p_token_1                 => 'LINE_NUMBER'
75027                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
75028                                     ,p_token_2                 => 'LINE_TYPE_NAME'
75029                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
75030                                                                              l_component_type
75031                                                                             ,l_component_code
75032                                                                             ,l_component_type_code
75033                                                                             ,l_component_appl_id
75034                                                                             ,l_amb_context_code
75035                                                                             ,l_entity_code
75036                                                                             ,l_event_class_code
75037                                                                            )
75038                                     ,p_token_3                 => 'OWNER'
75039                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
75040                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
75041                                                                           ,p_lookup_code    => l_component_type_code
75042                                                                          )
75043                                     ,p_token_4                 => 'PRODUCT_NAME'
75044                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75045                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75046                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75047                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75048                                     ,p_ae_header_id            =>  NULL
75049                                        );
75050 
75051         IF (C_LEVEL_ERROR>= g_log_level) THEN
75052                  trace
75053                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75054                       ,p_level    => C_LEVEL_ERROR
75055                       ,p_module   => l_log_module);
75056         END IF;
75057       END IF;
75058    END IF;
75059    --
75060    --
75061    ------------------------------------------------------------------------------------------------
75062    -- 4219869 Business Flow
75063    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75064    -- Prior Entry.  Currently, the following code is always generated.
75065    ------------------------------------------------------------------------------------------------
75066    XLA_AE_LINES_PKG.ValidateCurrentLine;
75067 
75068    ------------------------------------------------------------------------------------
75069    -- 4219869 Business Flow
75070    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75071    ------------------------------------------------------------------------------------
75072    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75073 
75074    ----------------------------------------------------------------------------------
75075    -- 4219869 Business Flow
75076    -- Update journal entry status -- Need to generate this within IF <condition>
75077    ----------------------------------------------------------------------------------
75078    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75079          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75080          ,p_balance_type_code => l_balance_type_code
75081          );
75082 
75083    -------------------------------------------------------------------------------------------
75084    -- 4262811 - Generate the Accrual Reversal lines
75085    -------------------------------------------------------------------------------------------
75086    BEGIN
75090          l_acc_rev_flag := 'N';
75087       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75088                               (g_array_event(p_event_id).array_value_num('header_index'));
75089       IF l_acc_rev_flag IS NULL THEN
75091       END IF;
75092    EXCEPTION
75093       WHEN OTHERS THEN
75094          l_acc_rev_flag := 'N';
75095    END;
75096    --
75097    IF (l_acc_rev_flag = 'Y') THEN
75098 
75099        -- 4645092  ------------------------------------------------------------------------------
75100        -- To allow MPA report to determine if it should generate report process
75101        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75102        ------------------------------------------------------------------------------------------
75103 
75104        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75105        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75106    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
75107    -- call ADRs
75108    -- Bug 4922099
75109    --
75110    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75111         (NVL(l_actual_upg_option, 'N') = 'O') OR
75112         (NVL(l_enc_upg_option, 'N') = 'O')
75113       )
75114    THEN
75115    NULL;
75116    --
75117    --
75118    
75119   l_ccid := AcctDerRule_26(
75120            p_application_id           => p_application_id
75121          , p_ae_header_id             => l_ae_header_id 
75122 , p_source_17 => p_source_17
75123          , x_transaction_coa_id       => l_adr_transaction_coa_id
75124          , x_accounting_coa_id        => l_adr_accounting_coa_id
75125          , x_value_type_code          => l_adr_value_type_code
75126          , p_side                     => 'NA'
75127    );
75128 
75129    xla_ae_lines_pkg.set_ccid(
75130     p_code_combination_id          => l_ccid
75131   , p_value_type_code              => l_adr_value_type_code
75132   , p_transaction_coa_id           => l_adr_transaction_coa_id
75133   , p_accounting_coa_id            => l_adr_accounting_coa_id
75134   , p_adr_code                     => 'AP_INVOICE_DIST'
75135   , p_adr_type_code                => 'S'
75136   , p_component_type               => l_component_type
75137   , p_component_code               => l_component_code
75138   , p_component_type_code          => l_component_type_code
75139   , p_component_appl_id            => l_component_appl_id
75140   , p_amb_context_code             => l_amb_context_code
75141   , p_side                         => 'NA'
75142   );
75143 
75144 
75145    --
75146    --
75147    END IF;
75148 
75149        --
75150        -- Update the line information that should be overwritten
75151        --
75152        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75153                                          p_header_num   => 1);
75154        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
75155 
75156        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75157 
75158        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
75159           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75160        END IF;
75161 
75162       --
75163       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75164       --
75165       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75166           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
75167       ELSE
75168           ---------------------------------------------------------------------------------------------------
75169           -- 4262811a Switch Sign
75170           ---------------------------------------------------------------------------------------------------
75171           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
75172           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75173                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75174           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75175                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75176           -- 5132302
75177           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75178                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75179 
75180       END IF;
75181 
75182       -- 4955764
75183       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75184       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75185 
75186 
75187       XLA_AE_LINES_PKG.ValidateCurrentLine;
75188       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75189 
75190       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75191                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75192                ,p_balance_type_code => l_balance_type_code);
75193 
75194    END IF;
75195 
75196    -----------------------------------------------------------------------------------------
75200 
75197    -- 4262811 Multiperiod Accounting
75198    -----------------------------------------------------------------------------------------
75199      -- No MPA option is assigned.
75201 
75202 END IF;
75203 END IF;
75204 --
75205 
75206 --
75207 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75208    trace
75209       (p_msg      => 'END of AcctLineType_138'
75210       ,p_level    => C_LEVEL_PROCEDURE
75211       ,p_module   => l_log_module);
75212 END IF;
75213 --
75214 EXCEPTION
75215   WHEN xla_exceptions_pkg.application_exception THEN
75216       RAISE;
75217   WHEN OTHERS THEN
75218        xla_exceptions_pkg.raise_message
75219            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_138');
75220 END AcctLineType_138;
75221 --
75222 
75223 ---------------------------------------
75224 --
75225 -- PRIVATE FUNCTION
75226 --         AcctLineType_139
75227 --
75228 ---------------------------------------
75229 PROCEDURE AcctLineType_139 (
75230   p_application_id        IN NUMBER
75231  ,p_event_id              IN NUMBER
75232  ,p_calculate_acctd_flag  IN VARCHAR2
75233  ,p_calculate_g_l_flag    IN VARCHAR2
75234  ,p_actual_flag           IN OUT VARCHAR2
75235  ,p_balance_type_code     OUT VARCHAR2
75236  ,p_gain_or_loss_ref      OUT VARCHAR2
75237  
75238 --Payment Distribution (Cleared Rate) Ledger Amount
75239  , p_source_10            IN NUMBER
75240 --Invoice Distribution Account
75241  , p_source_17            IN NUMBER
75242 --Invoice Distribution Type
75243  , p_source_20            IN VARCHAR2
75244  , p_source_20_meaning    IN VARCHAR2
75245 --When to Account for Payment Option
75246  , p_source_38            IN VARCHAR2
75247 --Payment Distribution Type
75248  , p_source_39            IN VARCHAR2
75249  , p_source_39_meaning    IN VARCHAR2
75250 --Accounting Reversal Indicator
75251  , p_source_40            IN VARCHAR2
75252 --Payment Distribution Amount
75253  , p_source_41            IN NUMBER
75254 --Business Flow Accounts Payable Application Identifier
75255  , p_source_42            IN NUMBER
75256 --Business Flow Payment Distribution Type
75257  , p_source_43            IN VARCHAR2
75258 --Business Flow Payment Entity Code
75259  , p_source_44            IN VARCHAR2
75260 --Business Flow Payment Distribution Identifier
75261  , p_source_45            IN NUMBER
75262 --Business Flow Payment Identifier
75263  , p_source_46            IN NUMBER
75264 --Payment Distribution Identifier
75265  , p_source_47            IN NUMBER
75266 --Distribution Link Type
75267  , p_source_48            IN VARCHAR2
75268 --Payment Currency Code
75269  , p_source_49            IN VARCHAR2
75270 --Override Accounted Amount Indicator
75271  , p_source_53            IN VARCHAR2
75272  , p_source_53_meaning    IN VARCHAR2
75273 --Payment Supplier Identifier
75274  , p_source_54            IN NUMBER
75275 --Payment Supplier Site Identifier
75276  , p_source_55            IN NUMBER
75277 --Third Party Type
75278  , p_source_56            IN VARCHAR2
75279 --Payment Distribution Reversed Identifier
75280  , p_source_57            IN NUMBER
75281 --Invoice Distribution Tax Line Identifier
75282  , p_source_58            IN NUMBER
75283 --Invoice Distribution Summary Tax Line Identifier
75284  , p_source_59            IN NUMBER
75285 --Accrue on Receipt Option
75286  , p_source_100            IN VARCHAR2
75287  , p_source_100_meaning    IN VARCHAR2
75288 --Cleared Exchange Date
75289  , p_source_107            IN DATE
75290 --Cleared Exchange Rate
75291  , p_source_108            IN NUMBER
75292 --Cleared Exchange Rate Type
75293  , p_source_109            IN VARCHAR2
75294 )
75295 IS
75296 
75297 l_component_type              VARCHAR2(80);
75298 l_component_code              VARCHAR2(30);
75299 l_component_type_code         VARCHAR2(1);
75300 l_component_appl_id           INTEGER;
75301 l_amb_context_code            VARCHAR2(30);
75302 l_entity_code                 VARCHAR2(30);
75303 l_event_class_code            VARCHAR2(30);
75304 l_ae_header_id                NUMBER;
75305 l_event_type_code             VARCHAR2(30);
75306 l_line_definition_code        VARCHAR2(30);
75307 l_line_definition_owner_code  VARCHAR2(1);
75308 --
75309 -- adr variables
75310 l_segment                     VARCHAR2(30);
75311 l_ccid                        NUMBER;
75312 l_adr_transaction_coa_id      NUMBER;
75313 l_adr_accounting_coa_id       NUMBER;
75314 l_adr_flexfield_segment_code  VARCHAR2(30);
75315 l_adr_flex_value_set_id       NUMBER;
75316 l_adr_value_type_code         VARCHAR2(30);
75317 l_adr_value_combination_id    NUMBER;
75318 l_adr_value_segment_code      VARCHAR2(30);
75319 
75320 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
75321 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
75322 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
75323 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
75324 
75325 -- 4262811 Variables ------------------------------------------------------------------------------------------
75326 l_entered_amt_idx             NUMBER;
75327 l_accted_amt_idx              NUMBER;
75328 l_acc_rev_flag                VARCHAR2(1);
75329 l_accrual_line_num            NUMBER;
75330 l_tmp_amt                     NUMBER;
75331 l_acc_rev_natural_side_code   VARCHAR2(1);
75332 
75333 l_num_entries                 NUMBER;
75337 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
75334 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
75335 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
75336 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
75338 l_recog_line_1                NUMBER;
75339 l_recog_line_2                NUMBER;
75340 
75341 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
75342 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
75343 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
75344 
75345 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75346 
75347 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
75348 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
75349 
75350 ---------------------------------------------------------------------------------------------------------------
75351 
75352 
75353 --
75354 -- bulk performance
75355 --
75356 l_balance_type_code           VARCHAR2(1);
75357 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
75358 l_log_module                  VARCHAR2(240);
75359 
75360 --
75361 -- Upgrade strategy
75362 --
75363 l_actual_upg_option           VARCHAR2(1);
75364 l_enc_upg_option           VARCHAR2(1);
75365 
75366 --
75367 BEGIN
75368 --
75369 IF g_log_enabled THEN
75370       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
75371 END IF;
75372 --
75373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75374 
75375       trace
75376          (p_msg      => 'BEGIN of AcctLineType_139'
75377          ,p_level    => C_LEVEL_PROCEDURE
75378          ,p_module   => l_log_module);
75379 
75380 END IF;
75381 --
75382 l_component_type             := 'AMB_JLT';
75383 l_component_code             := 'AP_NON_RECOV_TAX_CLEAR';
75384 l_component_type_code        := 'S';
75385 l_component_appl_id          :=  200;
75386 l_amb_context_code           := 'DEFAULT';
75387 l_entity_code                := 'AP_PAYMENTS';
75388 l_event_class_code           := 'RECONCILED PAYMENTS';
75389 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
75390 l_line_definition_owner_code := 'S';
75391 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
75392 --
75393 l_balance_type_code          := 'A';
75394 l_segment                     := NULL;
75395 l_ccid                        := NULL;
75396 l_adr_transaction_coa_id      := NULL;
75397 l_adr_accounting_coa_id       := NULL;
75398 l_adr_flexfield_segment_code  := NULL;
75399 l_adr_flex_value_set_id       := NULL;
75400 l_adr_value_type_code         := NULL;
75401 l_adr_value_combination_id    := NULL;
75402 l_adr_value_segment_code      := NULL;
75403 
75404 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
75405 l_bflow_class_code           := '';    -- 4219869 Business Flow
75406 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
75407 l_budgetary_control_flag     := 'N';
75408 
75409 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
75410 l_bflow_applied_to_amt       := NULL; -- 5132302
75411 l_entered_amt_idx            := NULL;          -- 4262811
75412 l_accted_amt_idx             := NULL;          -- 4262811
75413 l_acc_rev_flag               := NULL;          -- 4262811
75414 l_accrual_line_num           := NULL;          -- 4262811
75415 l_tmp_amt                    := NULL;          -- 4262811
75416 --
75417  
75418 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75419     l_balance_type_code <> 'B' THEN
75420 IF NVL(p_source_38,'
75421 ') =  'CLEAR_CLEAR' AND 
75422 (NVL(p_source_20,'
75423 ') =  'NONREC_TAX' OR 
75424 NVL(p_source_20,'
75425 ') =  'TERV' OR 
75426 NVL(p_source_20,'
75427 ') =  'TIPV' OR 
75428 NVL(p_source_20,'
75429 ') =  'TRV') AND 
75430 NVL(p_source_100,'
75431 ') <>  'Y' AND 
75432 (NVL(p_source_39,'
75433 ') =  'CASH' OR 
75434 NVL(p_source_39,'
75435 ') =  'AWT' OR 
75436 NVL(p_source_39,'
75437 ') =  'DISCOUNT')
75438  THEN 
75439 
75440    --
75441    XLA_AE_LINES_PKG.SetNewLine;
75442 
75443    p_balance_type_code          := l_balance_type_code;
75444    -- set the flag so later we will know whether the gain loss line needs to be created
75445    
75446    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
75447      p_actual_flag :='A';
75448    END IF;
75449 
75450    --
75451    -- bulk performance
75452    --
75453    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
75454                                       p_header_num   => 0); -- 4262811
75455    --
75456    -- set accounting line options
75457    --
75458    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
75459            p_natural_side_code          => 'D'
75460          , p_gain_or_loss_flag          => 'N'
75461          , p_gl_transfer_mode_code      => 'S'
75462          , p_acct_entry_type_code       => 'A'
75463          , p_switch_side_flag           => 'Y'
75464          , p_merge_duplicate_code       => 'A'
75465          );
75466    --
75467    l_acc_rev_natural_side_code := 'C';  -- 4262811
75468    -- 
75469    --
75470    -- set accounting line type info
75471    --
75472    xla_ae_lines_pkg.SetAcctLineType
75473       (p_component_type             => l_component_type
75477       ,p_accounting_line_code       => l_component_code
75474       ,p_event_type_code            => l_event_type_code
75475       ,p_line_definition_owner_code => l_line_definition_owner_code
75476       ,p_line_definition_code       => l_line_definition_code
75478       ,p_accounting_line_type_code  => l_component_type_code
75479       ,p_accounting_line_appl_id    => l_component_appl_id
75480       ,p_amb_context_code           => l_amb_context_code
75481       ,p_entity_code                => l_entity_code
75482       ,p_event_class_code           => l_event_class_code);
75483    --
75484    -- set accounting class
75485    --
75486    xla_ae_lines_pkg.SetAcctClass(
75487            p_accounting_class_code  => 'NRTAX'
75488          , p_ae_header_id           => l_ae_header_id
75489          );
75490 
75491    --
75492    -- set rounding class
75493    --
75494    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
75495                       'NRTAX';
75496 
75497    --
75498    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
75499    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
75500    --
75501    -- bulk performance
75502    --
75503    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
75504 
75505    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
75506       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
75507 
75508    -- 4955764
75509    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75510       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
75511 
75512    -- 4458381 Public Sector Enh
75513    
75514    --
75515    -- set accounting attributes for the line type
75516    --
75517    l_entered_amt_idx := 10;
75518    l_accted_amt_idx  := 15;
75519    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
75520    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75521    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
75522    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
75523    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
75524    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
75525    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
75526    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75527    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
75528    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
75529    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
75530    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
75531    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
75532    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75533    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
75534    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
75535    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
75536    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
75537    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
75538    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
75539    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
75540    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
75541    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
75542    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
75543    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
75544    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
75545    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
75546    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
75547    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
75548    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
75549    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
75550    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
75551    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
75552    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
75553    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
75554    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
75555    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
75556    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
75557    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
75558    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
75559    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
75560    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
75561    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
75562    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
75563    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
75564    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
75565    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
75566    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
75567    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
75568 
75569    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75570    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75571 
75572    ---------------------------------------------------------------------------------------------------------------
75576 
75573    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75574    ---------------------------------------------------------------------------------------------------------------
75575    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75577    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75578    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75579 
75580    IF xla_accounting_cache_pkg.GetValueChar
75581          (p_source_code         => 'LEDGER_CATEGORY_CODE'
75582          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75583    AND l_bflow_method_code = 'PRIOR_ENTRY'
75584 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75585    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75586          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75587        )
75588    THEN
75589          xla_ae_lines_pkg.BflowUpgEntry
75590            (p_business_method_code    => l_bflow_method_code
75591            ,p_business_class_code     => l_bflow_class_code
75592            ,p_balance_type            => l_balance_type_code);
75593    ELSE
75594       NULL;
75595 -- No business flow processing for business flow method of NONE.
75596    END IF;
75597 
75598    --
75599    -- call analytical criteria
75600    --
75601    
75602    --
75603    -- call description
75604    --
75605    -- No description or it is inherited.
75606    --
75607    -- call ADRs
75608    -- Bug 4922099
75609    --
75610    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75611         (NVL(l_actual_upg_option, 'N') = 'O') OR
75612         (NVL(l_enc_upg_option, 'N') = 'O')
75613       )
75614    THEN
75615    NULL;
75616    --
75617    --
75618    
75619   l_ccid := AcctDerRule_26(
75620            p_application_id           => p_application_id
75621          , p_ae_header_id             => l_ae_header_id 
75622 , p_source_17 => p_source_17
75623          , x_transaction_coa_id       => l_adr_transaction_coa_id
75624          , x_accounting_coa_id        => l_adr_accounting_coa_id
75625          , x_value_type_code          => l_adr_value_type_code
75626          , p_side                     => 'NA'
75627    );
75628 
75629    xla_ae_lines_pkg.set_ccid(
75630     p_code_combination_id          => l_ccid
75631   , p_value_type_code              => l_adr_value_type_code
75632   , p_transaction_coa_id           => l_adr_transaction_coa_id
75633   , p_accounting_coa_id            => l_adr_accounting_coa_id
75634   , p_adr_code                     => 'AP_INVOICE_DIST'
75635   , p_adr_type_code                => 'S'
75636   , p_component_type               => l_component_type
75637   , p_component_code               => l_component_code
75638   , p_component_type_code          => l_component_type_code
75639   , p_component_appl_id            => l_component_appl_id
75640   , p_amb_context_code             => l_amb_context_code
75641   , p_side                         => 'NA'
75642   );
75643 
75644 
75645    --
75646    --
75647    END IF;
75648    --
75649    -- Bug 4922099
75650    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75651           (NVL(l_enc_upg_option, 'N') = 'O')
75652         ) AND
75653         (l_bflow_method_code = 'PRIOR_ENTRY')
75654       )
75655    THEN
75656       IF
75657       --
75658       1 = 2
75659       --
75660       THEN
75661       xla_accounting_err_pkg.build_message
75662                                     (p_appli_s_name            => 'XLA'
75663                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75664                                     ,p_token_1                 => 'LINE_NUMBER'
75665                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
75666                                     ,p_token_2                 => 'LINE_TYPE_NAME'
75667                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
75668                                                                              l_component_type
75669                                                                             ,l_component_code
75670                                                                             ,l_component_type_code
75671                                                                             ,l_component_appl_id
75672                                                                             ,l_amb_context_code
75673                                                                             ,l_entity_code
75674                                                                             ,l_event_class_code
75675                                                                            )
75676                                     ,p_token_3                 => 'OWNER'
75677                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
75678                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
75679                                                                           ,p_lookup_code    => l_component_type_code
75680                                                                          )
75681                                     ,p_token_4                 => 'PRODUCT_NAME'
75685                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75682                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75683                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75684                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75686                                     ,p_ae_header_id            =>  NULL
75687                                        );
75688 
75689         IF (C_LEVEL_ERROR>= g_log_level) THEN
75690                  trace
75691                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75692                       ,p_level    => C_LEVEL_ERROR
75693                       ,p_module   => l_log_module);
75694         END IF;
75695       END IF;
75696    END IF;
75697    --
75698    --
75699    ------------------------------------------------------------------------------------------------
75700    -- 4219869 Business Flow
75701    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75702    -- Prior Entry.  Currently, the following code is always generated.
75703    ------------------------------------------------------------------------------------------------
75704    XLA_AE_LINES_PKG.ValidateCurrentLine;
75705 
75706    ------------------------------------------------------------------------------------
75707    -- 4219869 Business Flow
75708    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75709    ------------------------------------------------------------------------------------
75710    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75711 
75712    ----------------------------------------------------------------------------------
75713    -- 4219869 Business Flow
75714    -- Update journal entry status -- Need to generate this within IF <condition>
75715    ----------------------------------------------------------------------------------
75716    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75717          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75718          ,p_balance_type_code => l_balance_type_code
75719          );
75720 
75721    -------------------------------------------------------------------------------------------
75722    -- 4262811 - Generate the Accrual Reversal lines
75723    -------------------------------------------------------------------------------------------
75724    BEGIN
75725       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75726                               (g_array_event(p_event_id).array_value_num('header_index'));
75727       IF l_acc_rev_flag IS NULL THEN
75728          l_acc_rev_flag := 'N';
75729       END IF;
75730    EXCEPTION
75731       WHEN OTHERS THEN
75732          l_acc_rev_flag := 'N';
75733    END;
75734    --
75735    IF (l_acc_rev_flag = 'Y') THEN
75736 
75737        -- 4645092  ------------------------------------------------------------------------------
75738        -- To allow MPA report to determine if it should generate report process
75739        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75740        ------------------------------------------------------------------------------------------
75741 
75742        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75743        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75744    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
75745    -- call ADRs
75746    -- Bug 4922099
75747    --
75748    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75749         (NVL(l_actual_upg_option, 'N') = 'O') OR
75750         (NVL(l_enc_upg_option, 'N') = 'O')
75751       )
75752    THEN
75753    NULL;
75754    --
75755    --
75756    
75757   l_ccid := AcctDerRule_26(
75758            p_application_id           => p_application_id
75759          , p_ae_header_id             => l_ae_header_id 
75760 , p_source_17 => p_source_17
75761          , x_transaction_coa_id       => l_adr_transaction_coa_id
75762          , x_accounting_coa_id        => l_adr_accounting_coa_id
75763          , x_value_type_code          => l_adr_value_type_code
75764          , p_side                     => 'NA'
75765    );
75766 
75767    xla_ae_lines_pkg.set_ccid(
75768     p_code_combination_id          => l_ccid
75769   , p_value_type_code              => l_adr_value_type_code
75770   , p_transaction_coa_id           => l_adr_transaction_coa_id
75771   , p_accounting_coa_id            => l_adr_accounting_coa_id
75772   , p_adr_code                     => 'AP_INVOICE_DIST'
75773   , p_adr_type_code                => 'S'
75774   , p_component_type               => l_component_type
75775   , p_component_code               => l_component_code
75776   , p_component_type_code          => l_component_type_code
75777   , p_component_appl_id            => l_component_appl_id
75778   , p_amb_context_code             => l_amb_context_code
75779   , p_side                         => 'NA'
75780   );
75781 
75782 
75783    --
75784    --
75785    END IF;
75786 
75787        --
75788        -- Update the line information that should be overwritten
75789        --
75790        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75791                                          p_header_num   => 1);
75795 
75792        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
75793 
75794        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75796        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
75797           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75798        END IF;
75799 
75800       --
75801       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75802       --
75803       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75804           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
75805       ELSE
75806           ---------------------------------------------------------------------------------------------------
75807           -- 4262811a Switch Sign
75808           ---------------------------------------------------------------------------------------------------
75809           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
75810           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75811                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75812           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75813                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75814           -- 5132302
75815           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75816                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75817 
75818       END IF;
75819 
75820       -- 4955764
75821       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75822       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75823 
75824 
75825       XLA_AE_LINES_PKG.ValidateCurrentLine;
75826       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75827 
75828       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75829                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75830                ,p_balance_type_code => l_balance_type_code);
75831 
75832    END IF;
75833 
75834    -----------------------------------------------------------------------------------------
75835    -- 4262811 Multiperiod Accounting
75836    -----------------------------------------------------------------------------------------
75837      -- No MPA option is assigned.
75838 
75839 
75840 END IF;
75841 END IF;
75842 --
75843 
75844 --
75845 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75846    trace
75847       (p_msg      => 'END of AcctLineType_139'
75848       ,p_level    => C_LEVEL_PROCEDURE
75849       ,p_module   => l_log_module);
75850 END IF;
75851 --
75852 EXCEPTION
75853   WHEN xla_exceptions_pkg.application_exception THEN
75854       RAISE;
75855   WHEN OTHERS THEN
75856        xla_exceptions_pkg.raise_message
75857            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_139');
75858 END AcctLineType_139;
75859 --
75860 
75861 ---------------------------------------
75862 --
75863 -- PRIVATE FUNCTION
75864 --         AcctLineType_140
75865 --
75866 ---------------------------------------
75867 PROCEDURE AcctLineType_140 (
75868   p_application_id        IN NUMBER
75869  ,p_event_id              IN NUMBER
75870  ,p_calculate_acctd_flag  IN VARCHAR2
75871  ,p_calculate_g_l_flag    IN VARCHAR2
75872  ,p_actual_flag           IN OUT VARCHAR2
75873  ,p_balance_type_code     OUT VARCHAR2
75874  ,p_gain_or_loss_ref      OUT VARCHAR2
75875  
75876 --Payment Distribution (Payment Rate) Ledger Amount
75877  , p_source_9            IN NUMBER
75878 --Invoice Distribution Type
75879  , p_source_20            IN VARCHAR2
75880  , p_source_20_meaning    IN VARCHAR2
75881 --When to Account for Payment Option
75882  , p_source_38            IN VARCHAR2
75883 --Payment Distribution Type
75884  , p_source_39            IN VARCHAR2
75885  , p_source_39_meaning    IN VARCHAR2
75886 --Accounting Reversal Indicator
75887  , p_source_40            IN VARCHAR2
75888 --Payment Distribution Amount
75889  , p_source_41            IN NUMBER
75890 --Business Flow Accounts Payable Application Identifier
75891  , p_source_42            IN NUMBER
75892 --Payment Distribution Identifier
75893  , p_source_47            IN NUMBER
75894 --Distribution Link Type
75895  , p_source_48            IN VARCHAR2
75896 --Payment Currency Code
75897  , p_source_49            IN VARCHAR2
75898 --Override Accounted Amount Indicator
75899  , p_source_53            IN VARCHAR2
75900  , p_source_53_meaning    IN VARCHAR2
75901 --Third Party Type
75902  , p_source_56            IN VARCHAR2
75903 --Payment Distribution Reversed Identifier
75904  , p_source_57            IN NUMBER
75905 --Invoice Distribution Tax Line Identifier
75906  , p_source_58            IN NUMBER
75907 --Invoice Distribution Summary Tax Line Identifier
75908  , p_source_59            IN NUMBER
75909 --Business Flow Invoice Distribution Type
75910  , p_source_62            IN VARCHAR2
75911 --Business Flow Invoice Entity Code
75915 --Business Flow Invoice Identifier
75912  , p_source_63            IN VARCHAR2
75913 --Business Flow Invoice Distribution Identifier
75914  , p_source_64            IN NUMBER
75916  , p_source_65            IN NUMBER
75917 --Purchasing Encumbrance Option
75918  , p_source_102            IN VARCHAR2
75919  , p_source_102_meaning    IN VARCHAR2
75920 --Invoice Encumbered Option
75921  , p_source_104            IN VARCHAR2
75922  , p_source_104_meaning    IN VARCHAR2
75923 )
75924 IS
75925 
75926 l_component_type              VARCHAR2(80);
75927 l_component_code              VARCHAR2(30);
75928 l_component_type_code         VARCHAR2(1);
75929 l_component_appl_id           INTEGER;
75930 l_amb_context_code            VARCHAR2(30);
75931 l_entity_code                 VARCHAR2(30);
75932 l_event_class_code            VARCHAR2(30);
75933 l_ae_header_id                NUMBER;
75934 l_event_type_code             VARCHAR2(30);
75935 l_line_definition_code        VARCHAR2(30);
75936 l_line_definition_owner_code  VARCHAR2(1);
75937 --
75938 -- adr variables
75939 l_segment                     VARCHAR2(30);
75940 l_ccid                        NUMBER;
75941 l_adr_transaction_coa_id      NUMBER;
75942 l_adr_accounting_coa_id       NUMBER;
75943 l_adr_flexfield_segment_code  VARCHAR2(30);
75944 l_adr_flex_value_set_id       NUMBER;
75945 l_adr_value_type_code         VARCHAR2(30);
75946 l_adr_value_combination_id    NUMBER;
75947 l_adr_value_segment_code      VARCHAR2(30);
75948 
75949 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
75950 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
75951 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
75952 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
75953 
75954 -- 4262811 Variables ------------------------------------------------------------------------------------------
75955 l_entered_amt_idx             NUMBER;
75956 l_accted_amt_idx              NUMBER;
75957 l_acc_rev_flag                VARCHAR2(1);
75958 l_accrual_line_num            NUMBER;
75959 l_tmp_amt                     NUMBER;
75960 l_acc_rev_natural_side_code   VARCHAR2(1);
75961 
75962 l_num_entries                 NUMBER;
75963 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
75964 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
75965 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
75966 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
75967 l_recog_line_1                NUMBER;
75968 l_recog_line_2                NUMBER;
75969 
75970 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
75971 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
75972 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
75973 
75974 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75975 
75976 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
75977 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
75978 
75979 ---------------------------------------------------------------------------------------------------------------
75980 
75981 
75982 --
75983 -- bulk performance
75984 --
75985 l_balance_type_code           VARCHAR2(1);
75986 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
75987 l_log_module                  VARCHAR2(240);
75988 
75989 --
75990 -- Upgrade strategy
75991 --
75992 l_actual_upg_option           VARCHAR2(1);
75993 l_enc_upg_option           VARCHAR2(1);
75994 
75995 --
75996 BEGIN
75997 --
75998 IF g_log_enabled THEN
75999       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
76000 END IF;
76001 --
76002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76003 
76004       trace
76005          (p_msg      => 'BEGIN of AcctLineType_140'
76006          ,p_level    => C_LEVEL_PROCEDURE
76007          ,p_module   => l_log_module);
76008 
76009 END IF;
76010 --
76011 l_component_type             := 'AMB_JLT';
76012 l_component_code             := 'AP_NON_RECOV_TAX_CLR_ENC';
76013 l_component_type_code        := 'S';
76014 l_component_appl_id          :=  200;
76015 l_amb_context_code           := 'DEFAULT';
76016 l_entity_code                := 'AP_PAYMENTS';
76017 l_event_class_code           := 'RECONCILED PAYMENTS';
76018 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
76019 l_line_definition_owner_code := 'S';
76020 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
76021 --
76022 l_balance_type_code          := 'E';
76023 l_segment                     := NULL;
76024 l_ccid                        := NULL;
76025 l_adr_transaction_coa_id      := NULL;
76026 l_adr_accounting_coa_id       := NULL;
76027 l_adr_flexfield_segment_code  := NULL;
76028 l_adr_flex_value_set_id       := NULL;
76029 l_adr_value_type_code         := NULL;
76030 l_adr_value_combination_id    := NULL;
76031 l_adr_value_segment_code      := NULL;
76032 
76033 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
76034 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
76035 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
76036 l_budgetary_control_flag     := 'N';
76037 
76038 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
76039 l_bflow_applied_to_amt       := NULL; -- 5132302
76040 l_entered_amt_idx            := NULL;          -- 4262811
76044 l_tmp_amt                    := NULL;          -- 4262811
76041 l_accted_amt_idx             := NULL;          -- 4262811
76042 l_acc_rev_flag               := NULL;          -- 4262811
76043 l_accrual_line_num           := NULL;          -- 4262811
76045 --
76046  
76047 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76048     l_balance_type_code <> 'B' THEN
76049 IF NVL(p_source_38,'
76050 ') =  'CLEAR_CLEAR' AND 
76051 NVL(p_source_20,'
76052 ') =  'NONREC_TAX' AND 
76053 (NVL(p_source_39,'
76054 ') =  'CASH' OR 
76055 NVL(p_source_39,'
76056 ') =  'DISCOUNT') AND 
76057 NVL(p_source_102,'
76058 ') =  'Y' AND 
76059 NVL(p_source_104,'
76060 ') =  'Y'
76061  THEN 
76062 
76063    --
76064    XLA_AE_LINES_PKG.SetNewLine;
76065 
76066    p_balance_type_code          := l_balance_type_code;
76067    -- set the flag so later we will know whether the gain loss line needs to be created
76068    
76069    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76070      p_actual_flag :='A';
76071    END IF;
76072 
76073    --
76074    -- bulk performance
76075    --
76076    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76077                                       p_header_num   => 0); -- 4262811
76078    --
76079    -- set accounting line options
76080    --
76081    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76082            p_natural_side_code          => 'C'
76083          , p_gain_or_loss_flag          => 'N'
76084          , p_gl_transfer_mode_code      => 'S'
76085          , p_acct_entry_type_code       => 'E'
76086          , p_switch_side_flag           => 'Y'
76087          , p_merge_duplicate_code       => 'A'
76088          );
76089    --
76090    l_acc_rev_natural_side_code := 'D';  -- 4262811
76091    -- 
76092    --
76093    -- set accounting line type info
76094    --
76095    xla_ae_lines_pkg.SetAcctLineType
76096       (p_component_type             => l_component_type
76097       ,p_event_type_code            => l_event_type_code
76098       ,p_line_definition_owner_code => l_line_definition_owner_code
76099       ,p_line_definition_code       => l_line_definition_code
76100       ,p_accounting_line_code       => l_component_code
76101       ,p_accounting_line_type_code  => l_component_type_code
76102       ,p_accounting_line_appl_id    => l_component_appl_id
76103       ,p_amb_context_code           => l_amb_context_code
76104       ,p_entity_code                => l_entity_code
76105       ,p_event_class_code           => l_event_class_code);
76106    --
76107    -- set accounting class
76108    --
76109    xla_ae_lines_pkg.SetAcctClass(
76110            p_accounting_class_code  => 'NRTAX'
76111          , p_ae_header_id           => l_ae_header_id
76112          );
76113 
76114    --
76115    -- set rounding class
76116    --
76117    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76118                       'NRTAX';
76119 
76120    --
76121    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76122    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76123    --
76124    -- bulk performance
76125    --
76126    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76127 
76128    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76129       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76130 
76131    -- 4955764
76132    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76133       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76134 
76135    -- 4458381 Public Sector Enh
76136    
76137    --
76138    -- set accounting attributes for the line type
76139    --
76140    l_entered_amt_idx := 10;
76141    l_accted_amt_idx  := 12;
76142    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
76143    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76144    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
76145    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
76146    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
76147    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
76148    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
76149    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76150    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
76151    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
76152    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
76153    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
76154    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
76155    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76156    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
76157    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
76158    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
76159    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
76160    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
76161    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
76162    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
76166    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
76163    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
76164    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
76165    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
76167    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
76168    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
76169    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
76170    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
76171    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
76172    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
76173    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
76174    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
76175    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
76176    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
76177    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
76178    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
76179    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
76180    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
76181 
76182    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76183    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76184 
76185    ---------------------------------------------------------------------------------------------------------------
76186    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76187    ---------------------------------------------------------------------------------------------------------------
76188    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76189 
76190    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76191    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76192 
76193    IF xla_accounting_cache_pkg.GetValueChar
76194          (p_source_code         => 'LEDGER_CATEGORY_CODE'
76195          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76196    AND l_bflow_method_code = 'PRIOR_ENTRY'
76197 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76198    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76199          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76200        )
76201    THEN
76202          xla_ae_lines_pkg.BflowUpgEntry
76203            (p_business_method_code    => l_bflow_method_code
76204            ,p_business_class_code     => l_bflow_class_code
76205            ,p_balance_type            => l_balance_type_code);
76206    ELSE
76207       NULL;
76208 XLA_AE_LINES_PKG.business_flow_validation(
76209                                 p_business_method_code     => l_bflow_method_code
76210                                ,p_business_class_code      => l_bflow_class_code
76211                                ,p_inherit_description_flag => l_inherit_desc_flag);
76212    END IF;
76213 
76214    --
76215    -- call analytical criteria
76216    --
76217    -- Inherited Analytical Criteria for business flow method of Prior Entry.
76218    --
76219    -- call description
76220    --
76221    -- No description or it is inherited.
76222    --
76223    -- call ADRs
76224    -- Bug 4922099
76225    --
76226    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76227         (NVL(l_actual_upg_option, 'N') = 'O') OR
76228         (NVL(l_enc_upg_option, 'N') = 'O')
76229       )
76230    THEN
76231    NULL;
76232    --
76233    --
76234    
76235    --
76236    --
76237    END IF;
76238    --
76239    -- Bug 4922099
76240    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76241           (NVL(l_enc_upg_option, 'N') = 'O')
76242         ) AND
76243         (l_bflow_method_code = 'PRIOR_ENTRY')
76244       )
76245    THEN
76246       IF
76247       --
76248       1 = 1
76249       --
76250       THEN
76251       xla_accounting_err_pkg.build_message
76252                                     (p_appli_s_name            => 'XLA'
76253                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76254                                     ,p_token_1                 => 'LINE_NUMBER'
76255                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
76256                                     ,p_token_2                 => 'LINE_TYPE_NAME'
76257                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
76258                                                                              l_component_type
76259                                                                             ,l_component_code
76260                                                                             ,l_component_type_code
76261                                                                             ,l_component_appl_id
76262                                                                             ,l_amb_context_code
76263                                                                             ,l_entity_code
76264                                                                             ,l_event_class_code
76265                                                                            )
76269                                                                           ,p_lookup_code    => l_component_type_code
76266                                     ,p_token_3                 => 'OWNER'
76267                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
76268                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
76270                                                                          )
76271                                     ,p_token_4                 => 'PRODUCT_NAME'
76272                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76273                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76274                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76275                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76276                                     ,p_ae_header_id            =>  NULL
76277                                        );
76278 
76279         IF (C_LEVEL_ERROR>= g_log_level) THEN
76280                  trace
76281                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76282                       ,p_level    => C_LEVEL_ERROR
76283                       ,p_module   => l_log_module);
76284         END IF;
76285       END IF;
76286    END IF;
76287    --
76288    --
76289    ------------------------------------------------------------------------------------------------
76290    -- 4219869 Business Flow
76291    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76292    -- Prior Entry.  Currently, the following code is always generated.
76293    ------------------------------------------------------------------------------------------------
76294    -- No ValidateCurrentLine for business flow method of Prior Entry
76295 
76296    ------------------------------------------------------------------------------------
76297    -- 4219869 Business Flow
76298    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76299    ------------------------------------------------------------------------------------
76300    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76301 
76302    ----------------------------------------------------------------------------------
76303    -- 4219869 Business Flow
76304    -- Update journal entry status -- Need to generate this within IF <condition>
76305    ----------------------------------------------------------------------------------
76306    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76307          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76308          ,p_balance_type_code => l_balance_type_code
76309          );
76310 
76311    -------------------------------------------------------------------------------------------
76312    -- 4262811 - Generate the Accrual Reversal lines
76313    -------------------------------------------------------------------------------------------
76314    BEGIN
76315       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76316                               (g_array_event(p_event_id).array_value_num('header_index'));
76317       IF l_acc_rev_flag IS NULL THEN
76318          l_acc_rev_flag := 'N';
76319       END IF;
76320    EXCEPTION
76321       WHEN OTHERS THEN
76322          l_acc_rev_flag := 'N';
76323    END;
76324    --
76325    IF (l_acc_rev_flag = 'Y') THEN
76326 
76327        -- 4645092  ------------------------------------------------------------------------------
76328        -- To allow MPA report to determine if it should generate report process
76329        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76330        ------------------------------------------------------------------------------------------
76331 
76332        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76333        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76334    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
76335    -- call ADRs
76336    -- Bug 4922099
76337    --
76338    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76339         (NVL(l_actual_upg_option, 'N') = 'O') OR
76340         (NVL(l_enc_upg_option, 'N') = 'O')
76341       )
76342    THEN
76343    NULL;
76344    --
76345    --
76346    
76347    --
76348    --
76349    END IF;
76350 
76351        --
76352        -- Update the line information that should be overwritten
76353        --
76354        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76355                                          p_header_num   => 1);
76356        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
76357 
76358        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76359 
76360        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
76361           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76362        END IF;
76363 
76364       --
76365       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76366       --
76367       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76371           -- 4262811a Switch Sign
76368           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
76369       ELSE
76370           ---------------------------------------------------------------------------------------------------
76372           ---------------------------------------------------------------------------------------------------
76373           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
76374           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76375                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76376           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76377                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76378           -- 5132302
76379           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76380                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76381 
76382       END IF;
76383 
76384       -- 4955764
76385       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76386       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76387 
76388 
76389       XLA_AE_LINES_PKG.ValidateCurrentLine;
76390       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76391 
76392       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76393                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76394                ,p_balance_type_code => l_balance_type_code);
76395 
76396    END IF;
76397 
76398    -----------------------------------------------------------------------------------------
76399    -- 4262811 Multiperiod Accounting
76400    -----------------------------------------------------------------------------------------
76401      -- No MPA option is assigned.
76402 
76403 
76404 END IF;
76405 END IF;
76406 --
76407 
76408 --
76409 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76410    trace
76411       (p_msg      => 'END of AcctLineType_140'
76412       ,p_level    => C_LEVEL_PROCEDURE
76413       ,p_module   => l_log_module);
76414 END IF;
76415 --
76416 EXCEPTION
76417   WHEN xla_exceptions_pkg.application_exception THEN
76418       RAISE;
76419   WHEN OTHERS THEN
76420        xla_exceptions_pkg.raise_message
76421            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_140');
76422 END AcctLineType_140;
76423 --
76424 
76425 ---------------------------------------
76426 --
76427 -- PRIVATE FUNCTION
76428 --         AcctLineType_141
76429 --
76430 ---------------------------------------
76431 PROCEDURE AcctLineType_141 (
76432   p_application_id        IN NUMBER
76433  ,p_event_id              IN NUMBER
76434  ,p_calculate_acctd_flag  IN VARCHAR2
76435  ,p_calculate_g_l_flag    IN VARCHAR2
76436  ,p_actual_flag           IN OUT VARCHAR2
76437  ,p_balance_type_code     OUT VARCHAR2
76438  ,p_gain_or_loss_ref      OUT VARCHAR2
76439  
76440 --Payment Distribution (Payment Rate) Ledger Amount
76441  , p_source_9            IN NUMBER
76442 --Invoice Distribution Account
76443  , p_source_17            IN NUMBER
76444 --Invoice Distribution Type
76445  , p_source_20            IN VARCHAR2
76446  , p_source_20_meaning    IN VARCHAR2
76447 --When to Account for Payment Option
76448  , p_source_38            IN VARCHAR2
76449 --Payment Distribution Type
76450  , p_source_39            IN VARCHAR2
76451  , p_source_39_meaning    IN VARCHAR2
76452 --Accounting Reversal Indicator
76453  , p_source_40            IN VARCHAR2
76454 --Payment Distribution Amount
76455  , p_source_41            IN NUMBER
76456 --Business Flow Accounts Payable Application Identifier
76457  , p_source_42            IN NUMBER
76458 --Payment Distribution Identifier
76459  , p_source_47            IN NUMBER
76460 --Distribution Link Type
76461  , p_source_48            IN VARCHAR2
76462 --Payment Currency Code
76463  , p_source_49            IN VARCHAR2
76464 --Override Accounted Amount Indicator
76465  , p_source_53            IN VARCHAR2
76466  , p_source_53_meaning    IN VARCHAR2
76467 --Payment Supplier Identifier
76468  , p_source_54            IN NUMBER
76469 --Payment Supplier Site Identifier
76470  , p_source_55            IN NUMBER
76471 --Third Party Type
76472  , p_source_56            IN VARCHAR2
76473 --Payment Distribution Reversed Identifier
76474  , p_source_57            IN NUMBER
76475 --Invoice Distribution Tax Line Identifier
76476  , p_source_58            IN NUMBER
76477 --Invoice Distribution Summary Tax Line Identifier
76478  , p_source_59            IN NUMBER
76479 --Payment Type
76480  , p_source_60            IN VARCHAR2
76481  , p_source_60_meaning    IN VARCHAR2
76482 --Invoice Distribution Amount of the Payment Distribution
76483  , p_source_61            IN NUMBER
76484 --Business Flow Invoice Distribution Type
76485  , p_source_62            IN VARCHAR2
76486 --Business Flow Invoice Entity Code
76487  , p_source_63            IN VARCHAR2
76488 --Business Flow Invoice Distribution Identifier
76489  , p_source_64            IN NUMBER
76490 --Business Flow Invoice Identifier
76491  , p_source_65            IN NUMBER
76495  , p_source_100            IN VARCHAR2
76492 --Invoice Distribution Tax Distribution Identifier from Tax
76493  , p_source_66            IN NUMBER
76494 --Accrue on Receipt Option
76496  , p_source_100_meaning    IN VARCHAR2
76497 --Invoice Type Paid
76498  , p_source_101            IN VARCHAR2
76499  , p_source_101_meaning    IN VARCHAR2
76500 --Payment Exchange Date
76501  , p_source_114            IN DATE
76502 --Payment Exchange Rate
76503  , p_source_115            IN NUMBER
76504 --Payment Exchange Rate Type
76505  , p_source_116            IN VARCHAR2
76506 )
76507 IS
76508 
76509 l_component_type              VARCHAR2(80);
76510 l_component_code              VARCHAR2(30);
76511 l_component_type_code         VARCHAR2(1);
76512 l_component_appl_id           INTEGER;
76513 l_amb_context_code            VARCHAR2(30);
76514 l_entity_code                 VARCHAR2(30);
76515 l_event_class_code            VARCHAR2(30);
76516 l_ae_header_id                NUMBER;
76517 l_event_type_code             VARCHAR2(30);
76518 l_line_definition_code        VARCHAR2(30);
76519 l_line_definition_owner_code  VARCHAR2(1);
76520 --
76521 -- adr variables
76522 l_segment                     VARCHAR2(30);
76523 l_ccid                        NUMBER;
76524 l_adr_transaction_coa_id      NUMBER;
76525 l_adr_accounting_coa_id       NUMBER;
76526 l_adr_flexfield_segment_code  VARCHAR2(30);
76527 l_adr_flex_value_set_id       NUMBER;
76528 l_adr_value_type_code         VARCHAR2(30);
76529 l_adr_value_combination_id    NUMBER;
76530 l_adr_value_segment_code      VARCHAR2(30);
76531 
76532 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
76533 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
76534 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
76535 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
76536 
76537 -- 4262811 Variables ------------------------------------------------------------------------------------------
76538 l_entered_amt_idx             NUMBER;
76539 l_accted_amt_idx              NUMBER;
76540 l_acc_rev_flag                VARCHAR2(1);
76541 l_accrual_line_num            NUMBER;
76542 l_tmp_amt                     NUMBER;
76543 l_acc_rev_natural_side_code   VARCHAR2(1);
76544 
76545 l_num_entries                 NUMBER;
76546 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
76547 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
76548 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
76549 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
76550 l_recog_line_1                NUMBER;
76551 l_recog_line_2                NUMBER;
76552 
76553 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
76554 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
76555 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
76556 
76557 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76558 
76559 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
76560 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
76561 
76562 ---------------------------------------------------------------------------------------------------------------
76563 
76564 
76565 --
76566 -- bulk performance
76567 --
76568 l_balance_type_code           VARCHAR2(1);
76569 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
76570 l_log_module                  VARCHAR2(240);
76571 
76572 --
76573 -- Upgrade strategy
76574 --
76575 l_actual_upg_option           VARCHAR2(1);
76576 l_enc_upg_option           VARCHAR2(1);
76577 
76578 --
76579 BEGIN
76580 --
76581 IF g_log_enabled THEN
76582       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
76583 END IF;
76584 --
76585 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76586 
76587       trace
76588          (p_msg      => 'BEGIN of AcctLineType_141'
76589          ,p_level    => C_LEVEL_PROCEDURE
76590          ,p_module   => l_log_module);
76591 
76592 END IF;
76593 --
76594 l_component_type             := 'AMB_JLT';
76595 l_component_code             := 'AP_NON_RECOV_TAX_PMT';
76596 l_component_type_code        := 'S';
76597 l_component_appl_id          :=  200;
76598 l_amb_context_code           := 'DEFAULT';
76599 l_entity_code                := 'AP_PAYMENTS';
76600 l_event_class_code           := 'PAYMENTS';
76601 l_event_type_code            := 'PAYMENTS_ALL';
76602 l_line_definition_owner_code := 'S';
76603 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
76604 --
76605 l_balance_type_code          := 'A';
76606 l_segment                     := NULL;
76607 l_ccid                        := NULL;
76608 l_adr_transaction_coa_id      := NULL;
76609 l_adr_accounting_coa_id       := NULL;
76610 l_adr_flexfield_segment_code  := NULL;
76611 l_adr_flex_value_set_id       := NULL;
76612 l_adr_value_type_code         := NULL;
76613 l_adr_value_combination_id    := NULL;
76614 l_adr_value_segment_code      := NULL;
76615 
76616 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
76617 l_bflow_class_code           := '';    -- 4219869 Business Flow
76618 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
76619 l_budgetary_control_flag     := 'N';
76620 
76621 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
76622 l_bflow_applied_to_amt       := NULL; -- 5132302
76626 l_accrual_line_num           := NULL;          -- 4262811
76623 l_entered_amt_idx            := NULL;          -- 4262811
76624 l_accted_amt_idx             := NULL;          -- 4262811
76625 l_acc_rev_flag               := NULL;          -- 4262811
76627 l_tmp_amt                    := NULL;          -- 4262811
76628 --
76629  
76630 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76631     l_balance_type_code <> 'B' THEN
76632 IF NVL(p_source_38,'
76633 ') <>  'CLEAR_CLEAR' AND 
76634 (NVL(p_source_20,'
76635 ') =  'NONREC_TAX' OR 
76636 NVL(p_source_20,'
76637 ') =  'TERV' OR 
76638 NVL(p_source_20,'
76639 ') =  'TIPV' OR 
76640 NVL(p_source_20,'
76641 ') =  'TRV') AND 
76642 NVL(p_source_100,'
76643 ') <>  'Y' AND 
76644 NVL(p_source_101,'
76645 ') <>  'INTEREST' AND 
76646 (NVL(p_source_39,'
76647 ') =  'CASH' OR 
76648 NVL(p_source_39,'
76649 ') =  'AWT' OR 
76650 NVL(p_source_39,'
76651 ') =  'DISCOUNT') AND 
76652 NVL(p_source_60,'
76653 ') <>  'R'
76654  THEN 
76655 
76656    --
76657    XLA_AE_LINES_PKG.SetNewLine;
76658 
76659    p_balance_type_code          := l_balance_type_code;
76660    -- set the flag so later we will know whether the gain loss line needs to be created
76661    
76662    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76663      p_actual_flag :='A';
76664    END IF;
76665 
76666    --
76667    -- bulk performance
76668    --
76669    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76670                                       p_header_num   => 0); -- 4262811
76671    --
76672    -- set accounting line options
76673    --
76674    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76675            p_natural_side_code          => 'D'
76676          , p_gain_or_loss_flag          => 'N'
76677          , p_gl_transfer_mode_code      => 'S'
76678          , p_acct_entry_type_code       => 'A'
76679          , p_switch_side_flag           => 'Y'
76680          , p_merge_duplicate_code       => 'A'
76681          );
76682    --
76683    l_acc_rev_natural_side_code := 'C';  -- 4262811
76684    -- 
76685    --
76686    -- set accounting line type info
76687    --
76688    xla_ae_lines_pkg.SetAcctLineType
76689       (p_component_type             => l_component_type
76690       ,p_event_type_code            => l_event_type_code
76691       ,p_line_definition_owner_code => l_line_definition_owner_code
76692       ,p_line_definition_code       => l_line_definition_code
76693       ,p_accounting_line_code       => l_component_code
76694       ,p_accounting_line_type_code  => l_component_type_code
76695       ,p_accounting_line_appl_id    => l_component_appl_id
76696       ,p_amb_context_code           => l_amb_context_code
76697       ,p_entity_code                => l_entity_code
76698       ,p_event_class_code           => l_event_class_code);
76699    --
76700    -- set accounting class
76701    --
76702    xla_ae_lines_pkg.SetAcctClass(
76703            p_accounting_class_code  => 'NRTAX'
76704          , p_ae_header_id           => l_ae_header_id
76705          );
76706 
76707    --
76708    -- set rounding class
76709    --
76710    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76711                       'NRTAX';
76712 
76713    --
76714    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76715    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76716    --
76717    -- bulk performance
76718    --
76719    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76720 
76721    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76722       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76723 
76724    -- 4955764
76725    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76726       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76727 
76728    -- 4458381 Public Sector Enh
76729    
76730    --
76731    -- set accounting attributes for the line type
76732    --
76733    l_entered_amt_idx := 10;
76734    l_accted_amt_idx  := 15;
76735    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
76736    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76737    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
76738    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
76739    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
76740    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
76741    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
76742    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76743    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
76744    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
76745    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
76746    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
76747    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
76748    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76749    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
76750    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
76754    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
76751    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
76752    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
76753    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
76755    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
76756    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
76757    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
76758    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
76759    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
76760    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
76761    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
76762    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
76763    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
76764    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
76765    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
76766    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
76767    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
76768    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
76769    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
76770    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
76771    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
76772    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
76773    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
76774    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
76775    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
76776    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
76777    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
76778    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
76779    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
76780    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
76781    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
76782    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
76783    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
76784 
76785    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76786    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76787 
76788    ---------------------------------------------------------------------------------------------------------------
76789    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76790    ---------------------------------------------------------------------------------------------------------------
76791    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76792 
76793    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76794    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76795 
76796    IF xla_accounting_cache_pkg.GetValueChar
76797          (p_source_code         => 'LEDGER_CATEGORY_CODE'
76798          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76799    AND l_bflow_method_code = 'PRIOR_ENTRY'
76800 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76801    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76802          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76803        )
76804    THEN
76805          xla_ae_lines_pkg.BflowUpgEntry
76806            (p_business_method_code    => l_bflow_method_code
76807            ,p_business_class_code     => l_bflow_class_code
76808            ,p_balance_type            => l_balance_type_code);
76809    ELSE
76810       NULL;
76811 -- No business flow processing for business flow method of NONE.
76812    END IF;
76813 
76814    --
76815    -- call analytical criteria
76816    --
76817    
76818    --
76819    -- call description
76820    --
76821    -- No description or it is inherited.
76822    --
76823    -- call ADRs
76824    -- Bug 4922099
76825    --
76826    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76827         (NVL(l_actual_upg_option, 'N') = 'O') OR
76828         (NVL(l_enc_upg_option, 'N') = 'O')
76829       )
76830    THEN
76831    NULL;
76832    --
76833    --
76834    
76835   l_ccid := AcctDerRule_26(
76836            p_application_id           => p_application_id
76837          , p_ae_header_id             => l_ae_header_id 
76838 , p_source_17 => p_source_17
76839          , x_transaction_coa_id       => l_adr_transaction_coa_id
76840          , x_accounting_coa_id        => l_adr_accounting_coa_id
76841          , x_value_type_code          => l_adr_value_type_code
76842          , p_side                     => 'NA'
76843    );
76844 
76845    xla_ae_lines_pkg.set_ccid(
76846     p_code_combination_id          => l_ccid
76847   , p_value_type_code              => l_adr_value_type_code
76848   , p_transaction_coa_id           => l_adr_transaction_coa_id
76849   , p_accounting_coa_id            => l_adr_accounting_coa_id
76850   , p_adr_code                     => 'AP_INVOICE_DIST'
76851   , p_adr_type_code                => 'S'
76852   , p_component_type               => l_component_type
76853   , p_component_code               => l_component_code
76854   , p_component_type_code          => l_component_type_code
76855   , p_component_appl_id            => l_component_appl_id
76859 
76856   , p_amb_context_code             => l_amb_context_code
76857   , p_side                         => 'NA'
76858   );
76860 
76861    --
76862    --
76863    END IF;
76864    --
76865    -- Bug 4922099
76866    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76867           (NVL(l_enc_upg_option, 'N') = 'O')
76868         ) AND
76869         (l_bflow_method_code = 'PRIOR_ENTRY')
76870       )
76871    THEN
76872       IF
76873       --
76874       1 = 2
76875       --
76876       THEN
76877       xla_accounting_err_pkg.build_message
76878                                     (p_appli_s_name            => 'XLA'
76879                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76880                                     ,p_token_1                 => 'LINE_NUMBER'
76881                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
76882                                     ,p_token_2                 => 'LINE_TYPE_NAME'
76883                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
76884                                                                              l_component_type
76885                                                                             ,l_component_code
76886                                                                             ,l_component_type_code
76887                                                                             ,l_component_appl_id
76888                                                                             ,l_amb_context_code
76889                                                                             ,l_entity_code
76890                                                                             ,l_event_class_code
76891                                                                            )
76892                                     ,p_token_3                 => 'OWNER'
76893                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
76894                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
76895                                                                           ,p_lookup_code    => l_component_type_code
76896                                                                          )
76897                                     ,p_token_4                 => 'PRODUCT_NAME'
76898                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76899                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76900                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76901                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76902                                     ,p_ae_header_id            =>  NULL
76903                                        );
76904 
76905         IF (C_LEVEL_ERROR>= g_log_level) THEN
76906                  trace
76907                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76908                       ,p_level    => C_LEVEL_ERROR
76909                       ,p_module   => l_log_module);
76910         END IF;
76911       END IF;
76912    END IF;
76913    --
76914    --
76915    ------------------------------------------------------------------------------------------------
76916    -- 4219869 Business Flow
76917    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76918    -- Prior Entry.  Currently, the following code is always generated.
76919    ------------------------------------------------------------------------------------------------
76920    XLA_AE_LINES_PKG.ValidateCurrentLine;
76921 
76922    ------------------------------------------------------------------------------------
76923    -- 4219869 Business Flow
76924    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76925    ------------------------------------------------------------------------------------
76926    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76927 
76928    ----------------------------------------------------------------------------------
76929    -- 4219869 Business Flow
76930    -- Update journal entry status -- Need to generate this within IF <condition>
76931    ----------------------------------------------------------------------------------
76932    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76933          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76934          ,p_balance_type_code => l_balance_type_code
76935          );
76936 
76937    -------------------------------------------------------------------------------------------
76938    -- 4262811 - Generate the Accrual Reversal lines
76939    -------------------------------------------------------------------------------------------
76940    BEGIN
76941       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76942                               (g_array_event(p_event_id).array_value_num('header_index'));
76943       IF l_acc_rev_flag IS NULL THEN
76944          l_acc_rev_flag := 'N';
76945       END IF;
76946    EXCEPTION
76947       WHEN OTHERS THEN
76948          l_acc_rev_flag := 'N';
76949    END;
76950    --
76951    IF (l_acc_rev_flag = 'Y') THEN
76952 
76956        ------------------------------------------------------------------------------------------
76953        -- 4645092  ------------------------------------------------------------------------------
76954        -- To allow MPA report to determine if it should generate report process
76955        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76957 
76958        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76959        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76960    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
76961    -- call ADRs
76962    -- Bug 4922099
76963    --
76964    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76965         (NVL(l_actual_upg_option, 'N') = 'O') OR
76966         (NVL(l_enc_upg_option, 'N') = 'O')
76967       )
76968    THEN
76969    NULL;
76970    --
76971    --
76972    
76973   l_ccid := AcctDerRule_26(
76974            p_application_id           => p_application_id
76975          , p_ae_header_id             => l_ae_header_id 
76976 , p_source_17 => p_source_17
76977          , x_transaction_coa_id       => l_adr_transaction_coa_id
76978          , x_accounting_coa_id        => l_adr_accounting_coa_id
76979          , x_value_type_code          => l_adr_value_type_code
76980          , p_side                     => 'NA'
76981    );
76982 
76983    xla_ae_lines_pkg.set_ccid(
76984     p_code_combination_id          => l_ccid
76985   , p_value_type_code              => l_adr_value_type_code
76986   , p_transaction_coa_id           => l_adr_transaction_coa_id
76987   , p_accounting_coa_id            => l_adr_accounting_coa_id
76988   , p_adr_code                     => 'AP_INVOICE_DIST'
76989   , p_adr_type_code                => 'S'
76990   , p_component_type               => l_component_type
76991   , p_component_code               => l_component_code
76992   , p_component_type_code          => l_component_type_code
76993   , p_component_appl_id            => l_component_appl_id
76994   , p_amb_context_code             => l_amb_context_code
76995   , p_side                         => 'NA'
76996   );
76997 
76998 
76999    --
77000    --
77001    END IF;
77002 
77003        --
77004        -- Update the line information that should be overwritten
77005        --
77006        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77007                                          p_header_num   => 1);
77008        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77009 
77010        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77011 
77012        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77013           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77014        END IF;
77015 
77016       --
77017       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77018       --
77019       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77020           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77021       ELSE
77022           ---------------------------------------------------------------------------------------------------
77023           -- 4262811a Switch Sign
77024           ---------------------------------------------------------------------------------------------------
77025           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77026           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77027                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77028           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77029                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77030           -- 5132302
77031           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77032                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77033 
77034       END IF;
77035 
77036       -- 4955764
77037       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77038       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77039 
77040 
77041       XLA_AE_LINES_PKG.ValidateCurrentLine;
77042       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77043 
77044       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77045                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77046                ,p_balance_type_code => l_balance_type_code);
77047 
77048    END IF;
77049 
77050    -----------------------------------------------------------------------------------------
77051    -- 4262811 Multiperiod Accounting
77052    -----------------------------------------------------------------------------------------
77053      -- No MPA option is assigned.
77054 
77055 
77056 END IF;
77057 END IF;
77058 --
77059 
77060 --
77061 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77062    trace
77063       (p_msg      => 'END of AcctLineType_141'
77064       ,p_level    => C_LEVEL_PROCEDURE
77065       ,p_module   => l_log_module);
77069   WHEN xla_exceptions_pkg.application_exception THEN
77066 END IF;
77067 --
77068 EXCEPTION
77070       RAISE;
77071   WHEN OTHERS THEN
77072        xla_exceptions_pkg.raise_message
77073            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_141');
77074 END AcctLineType_141;
77075 --
77076 
77077 ---------------------------------------
77078 --
77079 -- PRIVATE FUNCTION
77080 --         AcctLineType_142
77081 --
77082 ---------------------------------------
77083 PROCEDURE AcctLineType_142 (
77084   p_application_id        IN NUMBER
77085  ,p_event_id              IN NUMBER
77086  ,p_calculate_acctd_flag  IN VARCHAR2
77087  ,p_calculate_g_l_flag    IN VARCHAR2
77088  ,p_actual_flag           IN OUT VARCHAR2
77089  ,p_balance_type_code     OUT VARCHAR2
77090  ,p_gain_or_loss_ref      OUT VARCHAR2
77091  
77092 --Payment Distribution (Payment Rate) Ledger Amount
77093  , p_source_9            IN NUMBER
77094 --Invoice Distribution Type
77095  , p_source_20            IN VARCHAR2
77096  , p_source_20_meaning    IN VARCHAR2
77097 --When to Account for Payment Option
77098  , p_source_38            IN VARCHAR2
77099 --Payment Distribution Type
77100  , p_source_39            IN VARCHAR2
77101  , p_source_39_meaning    IN VARCHAR2
77102 --Accounting Reversal Indicator
77103  , p_source_40            IN VARCHAR2
77104 --Payment Distribution Amount
77105  , p_source_41            IN NUMBER
77106 --Business Flow Accounts Payable Application Identifier
77107  , p_source_42            IN NUMBER
77108 --Payment Distribution Identifier
77109  , p_source_47            IN NUMBER
77110 --Distribution Link Type
77111  , p_source_48            IN VARCHAR2
77112 --Payment Currency Code
77113  , p_source_49            IN VARCHAR2
77114 --Override Accounted Amount Indicator
77115  , p_source_53            IN VARCHAR2
77116  , p_source_53_meaning    IN VARCHAR2
77117 --Third Party Type
77118  , p_source_56            IN VARCHAR2
77119 --Payment Distribution Reversed Identifier
77120  , p_source_57            IN NUMBER
77121 --Invoice Distribution Tax Line Identifier
77122  , p_source_58            IN NUMBER
77123 --Invoice Distribution Summary Tax Line Identifier
77124  , p_source_59            IN NUMBER
77125 --Payment Type
77126  , p_source_60            IN VARCHAR2
77127  , p_source_60_meaning    IN VARCHAR2
77128 --Invoice Distribution Amount of the Payment Distribution
77129  , p_source_61            IN NUMBER
77130 --Business Flow Invoice Distribution Type
77131  , p_source_62            IN VARCHAR2
77132 --Business Flow Invoice Entity Code
77133  , p_source_63            IN VARCHAR2
77134 --Business Flow Invoice Distribution Identifier
77135  , p_source_64            IN NUMBER
77136 --Business Flow Invoice Identifier
77137  , p_source_65            IN NUMBER
77138 --Invoice Distribution Tax Distribution Identifier from Tax
77139  , p_source_66            IN NUMBER
77140 --Invoice Type Paid
77141  , p_source_101            IN VARCHAR2
77142  , p_source_101_meaning    IN VARCHAR2
77143 --Purchasing Encumbrance Option
77144  , p_source_102            IN VARCHAR2
77145  , p_source_102_meaning    IN VARCHAR2
77146 --Invoice Encumbered Option
77147  , p_source_104            IN VARCHAR2
77148  , p_source_104_meaning    IN VARCHAR2
77149 )
77150 IS
77151 
77152 l_component_type              VARCHAR2(80);
77153 l_component_code              VARCHAR2(30);
77154 l_component_type_code         VARCHAR2(1);
77155 l_component_appl_id           INTEGER;
77156 l_amb_context_code            VARCHAR2(30);
77157 l_entity_code                 VARCHAR2(30);
77158 l_event_class_code            VARCHAR2(30);
77159 l_ae_header_id                NUMBER;
77160 l_event_type_code             VARCHAR2(30);
77161 l_line_definition_code        VARCHAR2(30);
77162 l_line_definition_owner_code  VARCHAR2(1);
77163 --
77164 -- adr variables
77165 l_segment                     VARCHAR2(30);
77166 l_ccid                        NUMBER;
77167 l_adr_transaction_coa_id      NUMBER;
77168 l_adr_accounting_coa_id       NUMBER;
77169 l_adr_flexfield_segment_code  VARCHAR2(30);
77170 l_adr_flex_value_set_id       NUMBER;
77171 l_adr_value_type_code         VARCHAR2(30);
77172 l_adr_value_combination_id    NUMBER;
77173 l_adr_value_segment_code      VARCHAR2(30);
77174 
77175 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
77176 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
77177 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
77178 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
77179 
77180 -- 4262811 Variables ------------------------------------------------------------------------------------------
77181 l_entered_amt_idx             NUMBER;
77182 l_accted_amt_idx              NUMBER;
77183 l_acc_rev_flag                VARCHAR2(1);
77184 l_accrual_line_num            NUMBER;
77185 l_tmp_amt                     NUMBER;
77186 l_acc_rev_natural_side_code   VARCHAR2(1);
77187 
77188 l_num_entries                 NUMBER;
77189 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
77190 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
77191 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
77192 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
77193 l_recog_line_1                NUMBER;
77194 l_recog_line_2                NUMBER;
77195 
77196 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
77200 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77197 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
77198 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
77199 
77201 
77202 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
77203 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
77204 
77205 ---------------------------------------------------------------------------------------------------------------
77206 
77207 
77208 --
77209 -- bulk performance
77210 --
77211 l_balance_type_code           VARCHAR2(1);
77212 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
77213 l_log_module                  VARCHAR2(240);
77214 
77215 --
77216 -- Upgrade strategy
77217 --
77218 l_actual_upg_option           VARCHAR2(1);
77219 l_enc_upg_option           VARCHAR2(1);
77220 
77221 --
77222 BEGIN
77223 --
77224 IF g_log_enabled THEN
77225       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
77226 END IF;
77227 --
77228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77229 
77230       trace
77231          (p_msg      => 'BEGIN of AcctLineType_142'
77232          ,p_level    => C_LEVEL_PROCEDURE
77233          ,p_module   => l_log_module);
77234 
77235 END IF;
77236 --
77237 l_component_type             := 'AMB_JLT';
77238 l_component_code             := 'AP_NON_RECOV_TAX_PMT_ENC';
77239 l_component_type_code        := 'S';
77240 l_component_appl_id          :=  200;
77241 l_amb_context_code           := 'DEFAULT';
77242 l_entity_code                := 'AP_PAYMENTS';
77243 l_event_class_code           := 'PAYMENTS';
77244 l_event_type_code            := 'PAYMENTS_ALL';
77245 l_line_definition_owner_code := 'S';
77246 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
77247 --
77248 l_balance_type_code          := 'E';
77249 l_segment                     := NULL;
77250 l_ccid                        := NULL;
77251 l_adr_transaction_coa_id      := NULL;
77252 l_adr_accounting_coa_id       := NULL;
77253 l_adr_flexfield_segment_code  := NULL;
77254 l_adr_flex_value_set_id       := NULL;
77255 l_adr_value_type_code         := NULL;
77256 l_adr_value_combination_id    := NULL;
77257 l_adr_value_segment_code      := NULL;
77258 
77259 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
77260 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
77261 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
77262 l_budgetary_control_flag     := 'N';
77263 
77264 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
77265 l_bflow_applied_to_amt       := NULL; -- 5132302
77266 l_entered_amt_idx            := NULL;          -- 4262811
77267 l_accted_amt_idx             := NULL;          -- 4262811
77268 l_acc_rev_flag               := NULL;          -- 4262811
77269 l_accrual_line_num           := NULL;          -- 4262811
77270 l_tmp_amt                    := NULL;          -- 4262811
77271 --
77272  
77273 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77274     l_balance_type_code <> 'B' THEN
77275 IF NVL(p_source_38,'
77276 ') <>  'CLEAR_CLEAR' AND 
77277 NVL(p_source_20,'
77278 ') =  'NONREC_TAX' AND 
77279 NVL(p_source_101,'
77280 ') <>  'INTEREST' AND 
77281 (NVL(p_source_39,'
77282 ') =  'CASH' OR 
77283 NVL(p_source_39,'
77284 ') =  'DISCOUNT') AND 
77285 NVL(p_source_60,'
77286 ') <>  'R' AND 
77287 NVL(p_source_102,'
77288 ') =  'Y' AND 
77289 NVL(p_source_104,'
77290 ') =  'Y'
77291  THEN 
77292 
77293    --
77294    XLA_AE_LINES_PKG.SetNewLine;
77295 
77296    p_balance_type_code          := l_balance_type_code;
77297    -- set the flag so later we will know whether the gain loss line needs to be created
77298    
77299    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
77300      p_actual_flag :='A';
77301    END IF;
77302 
77303    --
77304    -- bulk performance
77305    --
77306    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77307                                       p_header_num   => 0); -- 4262811
77308    --
77309    -- set accounting line options
77310    --
77311    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77312            p_natural_side_code          => 'C'
77313          , p_gain_or_loss_flag          => 'N'
77314          , p_gl_transfer_mode_code      => 'S'
77315          , p_acct_entry_type_code       => 'E'
77316          , p_switch_side_flag           => 'Y'
77317          , p_merge_duplicate_code       => 'A'
77318          );
77319    --
77320    l_acc_rev_natural_side_code := 'D';  -- 4262811
77321    -- 
77322    --
77323    -- set accounting line type info
77324    --
77325    xla_ae_lines_pkg.SetAcctLineType
77326       (p_component_type             => l_component_type
77327       ,p_event_type_code            => l_event_type_code
77328       ,p_line_definition_owner_code => l_line_definition_owner_code
77329       ,p_line_definition_code       => l_line_definition_code
77330       ,p_accounting_line_code       => l_component_code
77331       ,p_accounting_line_type_code  => l_component_type_code
77332       ,p_accounting_line_appl_id    => l_component_appl_id
77333       ,p_amb_context_code           => l_amb_context_code
77334       ,p_entity_code                => l_entity_code
77338    --
77335       ,p_event_class_code           => l_event_class_code);
77336    --
77337    -- set accounting class
77339    xla_ae_lines_pkg.SetAcctClass(
77340            p_accounting_class_code  => 'NRTAX'
77341          , p_ae_header_id           => l_ae_header_id
77342          );
77343 
77344    --
77345    -- set rounding class
77346    --
77347    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77348                       'NRTAX';
77349 
77350    --
77351    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77352    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77353    --
77354    -- bulk performance
77355    --
77356    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77357 
77358    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77359       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77360 
77361    -- 4955764
77362    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77363       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77364 
77365    -- 4458381 Public Sector Enh
77366    
77367    --
77368    -- set accounting attributes for the line type
77369    --
77370    l_entered_amt_idx := 10;
77371    l_accted_amt_idx  := 12;
77372    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
77373    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77374    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
77375    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
77376    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
77377    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
77378    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
77379    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77380    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
77381    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
77382    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
77383    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
77384    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
77385    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77386    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
77387    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
77388    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
77389    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
77390    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
77391    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
77392    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
77393    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
77394    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
77395    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
77396    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
77397    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
77398    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
77399    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
77400    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
77401    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
77402    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
77403    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
77404    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
77405    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
77406    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
77407    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
77408    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
77409    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
77410    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
77411 
77412    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77413    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77414 
77415    ---------------------------------------------------------------------------------------------------------------
77416    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77417    ---------------------------------------------------------------------------------------------------------------
77418    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77419 
77420    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77421    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77422 
77423    IF xla_accounting_cache_pkg.GetValueChar
77424          (p_source_code         => 'LEDGER_CATEGORY_CODE'
77425          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77426    AND l_bflow_method_code = 'PRIOR_ENTRY'
77427 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77428    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77429          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77430        )
77431    THEN
77435            ,p_balance_type            => l_balance_type_code);
77432          xla_ae_lines_pkg.BflowUpgEntry
77433            (p_business_method_code    => l_bflow_method_code
77434            ,p_business_class_code     => l_bflow_class_code
77436    ELSE
77437       NULL;
77438 XLA_AE_LINES_PKG.business_flow_validation(
77439                                 p_business_method_code     => l_bflow_method_code
77440                                ,p_business_class_code      => l_bflow_class_code
77441                                ,p_inherit_description_flag => l_inherit_desc_flag);
77442    END IF;
77443 
77444    --
77445    -- call analytical criteria
77446    --
77447    -- Inherited Analytical Criteria for business flow method of Prior Entry.
77448    --
77449    -- call description
77450    --
77451    -- No description or it is inherited.
77452    --
77453    -- call ADRs
77454    -- Bug 4922099
77455    --
77456    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77457         (NVL(l_actual_upg_option, 'N') = 'O') OR
77458         (NVL(l_enc_upg_option, 'N') = 'O')
77459       )
77460    THEN
77461    NULL;
77462    --
77463    --
77464    
77465    --
77466    --
77467    END IF;
77468    --
77469    -- Bug 4922099
77470    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77471           (NVL(l_enc_upg_option, 'N') = 'O')
77472         ) AND
77473         (l_bflow_method_code = 'PRIOR_ENTRY')
77474       )
77475    THEN
77476       IF
77477       --
77478       1 = 1
77479       --
77480       THEN
77481       xla_accounting_err_pkg.build_message
77482                                     (p_appli_s_name            => 'XLA'
77483                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77484                                     ,p_token_1                 => 'LINE_NUMBER'
77485                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
77486                                     ,p_token_2                 => 'LINE_TYPE_NAME'
77487                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
77488                                                                              l_component_type
77489                                                                             ,l_component_code
77490                                                                             ,l_component_type_code
77491                                                                             ,l_component_appl_id
77492                                                                             ,l_amb_context_code
77493                                                                             ,l_entity_code
77494                                                                             ,l_event_class_code
77495                                                                            )
77496                                     ,p_token_3                 => 'OWNER'
77497                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
77498                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
77499                                                                           ,p_lookup_code    => l_component_type_code
77500                                                                          )
77501                                     ,p_token_4                 => 'PRODUCT_NAME'
77502                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77503                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77504                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77505                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77506                                     ,p_ae_header_id            =>  NULL
77507                                        );
77508 
77509         IF (C_LEVEL_ERROR>= g_log_level) THEN
77510                  trace
77511                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77512                       ,p_level    => C_LEVEL_ERROR
77513                       ,p_module   => l_log_module);
77514         END IF;
77515       END IF;
77516    END IF;
77517    --
77518    --
77519    ------------------------------------------------------------------------------------------------
77520    -- 4219869 Business Flow
77521    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77522    -- Prior Entry.  Currently, the following code is always generated.
77523    ------------------------------------------------------------------------------------------------
77524    -- No ValidateCurrentLine for business flow method of Prior Entry
77525 
77526    ------------------------------------------------------------------------------------
77527    -- 4219869 Business Flow
77528    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77529    ------------------------------------------------------------------------------------
77530    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77531 
77532    ----------------------------------------------------------------------------------
77533    -- 4219869 Business Flow
77534    -- Update journal entry status -- Need to generate this within IF <condition>
77535    ----------------------------------------------------------------------------------
77539          );
77536    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77537          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77538          ,p_balance_type_code => l_balance_type_code
77540 
77541    -------------------------------------------------------------------------------------------
77542    -- 4262811 - Generate the Accrual Reversal lines
77543    -------------------------------------------------------------------------------------------
77544    BEGIN
77545       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77546                               (g_array_event(p_event_id).array_value_num('header_index'));
77547       IF l_acc_rev_flag IS NULL THEN
77548          l_acc_rev_flag := 'N';
77549       END IF;
77550    EXCEPTION
77551       WHEN OTHERS THEN
77552          l_acc_rev_flag := 'N';
77553    END;
77554    --
77555    IF (l_acc_rev_flag = 'Y') THEN
77556 
77557        -- 4645092  ------------------------------------------------------------------------------
77558        -- To allow MPA report to determine if it should generate report process
77559        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77560        ------------------------------------------------------------------------------------------
77561 
77562        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77563        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77564    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
77565    -- call ADRs
77566    -- Bug 4922099
77567    --
77568    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77569         (NVL(l_actual_upg_option, 'N') = 'O') OR
77570         (NVL(l_enc_upg_option, 'N') = 'O')
77571       )
77572    THEN
77573    NULL;
77574    --
77575    --
77576    
77577    --
77578    --
77579    END IF;
77580 
77581        --
77582        -- Update the line information that should be overwritten
77583        --
77584        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77585                                          p_header_num   => 1);
77586        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77587 
77588        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77589 
77590        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77591           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77592        END IF;
77593 
77594       --
77595       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77596       --
77597       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77598           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77599       ELSE
77600           ---------------------------------------------------------------------------------------------------
77601           -- 4262811a Switch Sign
77602           ---------------------------------------------------------------------------------------------------
77603           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77604           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77605                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77606           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77607                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77608           -- 5132302
77609           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77610                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77611 
77612       END IF;
77613 
77614       -- 4955764
77615       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77616       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77617 
77618 
77619       XLA_AE_LINES_PKG.ValidateCurrentLine;
77620       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77621 
77622       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77623                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77624                ,p_balance_type_code => l_balance_type_code);
77625 
77626    END IF;
77627 
77628    -----------------------------------------------------------------------------------------
77629    -- 4262811 Multiperiod Accounting
77630    -----------------------------------------------------------------------------------------
77631      -- No MPA option is assigned.
77632 
77633 
77634 END IF;
77635 END IF;
77636 --
77637 
77638 --
77639 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77640    trace
77641       (p_msg      => 'END of AcctLineType_142'
77642       ,p_level    => C_LEVEL_PROCEDURE
77643       ,p_module   => l_log_module);
77644 END IF;
77645 --
77646 EXCEPTION
77647   WHEN xla_exceptions_pkg.application_exception THEN
77648       RAISE;
77649   WHEN OTHERS THEN
77650        xla_exceptions_pkg.raise_message
77651            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_142');
77652 END AcctLineType_142;
77653 --
77657 -- PRIVATE FUNCTION
77654 
77655 ---------------------------------------
77656 --
77658 --         AcctLineType_143
77659 --
77660 ---------------------------------------
77661 PROCEDURE AcctLineType_143 (
77662   p_application_id        IN NUMBER
77663  ,p_event_id              IN NUMBER
77664  ,p_calculate_acctd_flag  IN VARCHAR2
77665  ,p_calculate_g_l_flag    IN VARCHAR2
77666  ,p_actual_flag           IN OUT VARCHAR2
77667  ,p_balance_type_code     OUT VARCHAR2
77668  ,p_gain_or_loss_ref      OUT VARCHAR2
77669  
77670 --Payment Distribution (Payment Rate) Ledger Amount
77671  , p_source_9            IN NUMBER
77672 --Invoice Distribution Account
77673  , p_source_17            IN NUMBER
77674 --Invoice Distribution Type
77675  , p_source_20            IN VARCHAR2
77676  , p_source_20_meaning    IN VARCHAR2
77677 --When to Account for Payment Option
77678  , p_source_38            IN VARCHAR2
77679 --Payment Distribution Type
77680  , p_source_39            IN VARCHAR2
77681  , p_source_39_meaning    IN VARCHAR2
77682 --Accounting Reversal Indicator
77683  , p_source_40            IN VARCHAR2
77684 --Payment Distribution Amount
77685  , p_source_41            IN NUMBER
77686 --Business Flow Accounts Payable Application Identifier
77687  , p_source_42            IN NUMBER
77688 --Payment Distribution Identifier
77689  , p_source_47            IN NUMBER
77690 --Distribution Link Type
77691  , p_source_48            IN VARCHAR2
77692 --Payment Currency Code
77693  , p_source_49            IN VARCHAR2
77694 --Override Accounted Amount Indicator
77695  , p_source_53            IN VARCHAR2
77696  , p_source_53_meaning    IN VARCHAR2
77697 --Payment Supplier Identifier
77698  , p_source_54            IN NUMBER
77699 --Payment Supplier Site Identifier
77700  , p_source_55            IN NUMBER
77701 --Third Party Type
77702  , p_source_56            IN VARCHAR2
77703 --Payment Distribution Reversed Identifier
77704  , p_source_57            IN NUMBER
77705 --Invoice Distribution Tax Line Identifier
77706  , p_source_58            IN NUMBER
77707 --Invoice Distribution Summary Tax Line Identifier
77708  , p_source_59            IN NUMBER
77709 --Payment Type
77710  , p_source_60            IN VARCHAR2
77711  , p_source_60_meaning    IN VARCHAR2
77712 --Business Flow Invoice Distribution Type
77713  , p_source_62            IN VARCHAR2
77714 --Business Flow Invoice Entity Code
77715  , p_source_63            IN VARCHAR2
77716 --Business Flow Invoice Distribution Identifier
77717  , p_source_64            IN NUMBER
77718 --Business Flow Invoice Identifier
77719  , p_source_65            IN NUMBER
77720 --Invoice Distribution Tax Distribution Identifier from Tax
77721  , p_source_66            IN NUMBER
77722 --Accrue on Receipt Option
77723  , p_source_100            IN VARCHAR2
77724  , p_source_100_meaning    IN VARCHAR2
77725 --Payment Exchange Date
77726  , p_source_114            IN DATE
77727 --Payment Exchange Rate
77728  , p_source_115            IN NUMBER
77729 --Payment Exchange Rate Type
77730  , p_source_116            IN VARCHAR2
77731 )
77732 IS
77733 
77734 l_component_type              VARCHAR2(80);
77735 l_component_code              VARCHAR2(30);
77736 l_component_type_code         VARCHAR2(1);
77737 l_component_appl_id           INTEGER;
77738 l_amb_context_code            VARCHAR2(30);
77739 l_entity_code                 VARCHAR2(30);
77740 l_event_class_code            VARCHAR2(30);
77741 l_ae_header_id                NUMBER;
77742 l_event_type_code             VARCHAR2(30);
77743 l_line_definition_code        VARCHAR2(30);
77744 l_line_definition_owner_code  VARCHAR2(1);
77745 --
77746 -- adr variables
77747 l_segment                     VARCHAR2(30);
77748 l_ccid                        NUMBER;
77749 l_adr_transaction_coa_id      NUMBER;
77750 l_adr_accounting_coa_id       NUMBER;
77751 l_adr_flexfield_segment_code  VARCHAR2(30);
77752 l_adr_flex_value_set_id       NUMBER;
77753 l_adr_value_type_code         VARCHAR2(30);
77754 l_adr_value_combination_id    NUMBER;
77755 l_adr_value_segment_code      VARCHAR2(30);
77756 
77757 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
77758 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
77759 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
77760 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
77761 
77762 -- 4262811 Variables ------------------------------------------------------------------------------------------
77763 l_entered_amt_idx             NUMBER;
77764 l_accted_amt_idx              NUMBER;
77765 l_acc_rev_flag                VARCHAR2(1);
77766 l_accrual_line_num            NUMBER;
77767 l_tmp_amt                     NUMBER;
77768 l_acc_rev_natural_side_code   VARCHAR2(1);
77769 
77770 l_num_entries                 NUMBER;
77771 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
77772 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
77773 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
77774 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
77775 l_recog_line_1                NUMBER;
77776 l_recog_line_2                NUMBER;
77777 
77778 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
77779 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
77780 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
77781 
77785 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
77782 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77783 
77784 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
77786 
77787 ---------------------------------------------------------------------------------------------------------------
77788 
77789 
77790 --
77791 -- bulk performance
77792 --
77793 l_balance_type_code           VARCHAR2(1);
77794 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
77795 l_log_module                  VARCHAR2(240);
77796 
77797 --
77798 -- Upgrade strategy
77799 --
77800 l_actual_upg_option           VARCHAR2(1);
77801 l_enc_upg_option           VARCHAR2(1);
77802 
77803 --
77804 BEGIN
77805 --
77806 IF g_log_enabled THEN
77807       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_143';
77808 END IF;
77809 --
77810 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77811 
77812       trace
77813          (p_msg      => 'BEGIN of AcctLineType_143'
77814          ,p_level    => C_LEVEL_PROCEDURE
77815          ,p_module   => l_log_module);
77816 
77817 END IF;
77818 --
77819 l_component_type             := 'AMB_JLT';
77820 l_component_code             := 'AP_NON_RECOV_TAX_REF';
77821 l_component_type_code        := 'S';
77822 l_component_appl_id          :=  200;
77823 l_amb_context_code           := 'DEFAULT';
77824 l_entity_code                := 'AP_PAYMENTS';
77825 l_event_class_code           := 'REFUNDS';
77826 l_event_type_code            := 'REFUNDS_ALL';
77827 l_line_definition_owner_code := 'S';
77828 l_line_definition_code       := 'CASH_REFUNDS_ALL';
77829 --
77830 l_balance_type_code          := 'A';
77831 l_segment                     := NULL;
77832 l_ccid                        := NULL;
77833 l_adr_transaction_coa_id      := NULL;
77834 l_adr_accounting_coa_id       := NULL;
77835 l_adr_flexfield_segment_code  := NULL;
77836 l_adr_flex_value_set_id       := NULL;
77837 l_adr_value_type_code         := NULL;
77838 l_adr_value_combination_id    := NULL;
77839 l_adr_value_segment_code      := NULL;
77840 
77841 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
77842 l_bflow_class_code           := '';    -- 4219869 Business Flow
77843 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
77844 l_budgetary_control_flag     := 'N';
77845 
77846 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
77847 l_bflow_applied_to_amt       := NULL; -- 5132302
77848 l_entered_amt_idx            := NULL;          -- 4262811
77849 l_accted_amt_idx             := NULL;          -- 4262811
77850 l_acc_rev_flag               := NULL;          -- 4262811
77851 l_accrual_line_num           := NULL;          -- 4262811
77852 l_tmp_amt                    := NULL;          -- 4262811
77853 --
77854  
77855 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77856     l_balance_type_code <> 'B' THEN
77857 IF NVL(p_source_38,'
77858 ') <>  'CLEAR_CLEAR' AND 
77859 (NVL(p_source_20,'
77860 ') =  'NONREC_TAX' OR 
77861 NVL(p_source_20,'
77862 ') =  'TERV' OR 
77863 NVL(p_source_20,'
77864 ') =  'TIPV' OR 
77865 NVL(p_source_20,'
77866 ') =  'TRV') AND 
77867 NVL(p_source_100,'
77868 ') <>  'Y' AND 
77869 (NVL(p_source_39,'
77870 ') =  'CASH' OR 
77871 NVL(p_source_39,'
77872 ') =  'DISCOUNT') AND 
77873 NVL(p_source_60,'
77874 ') =  'R'
77875  THEN 
77876 
77877    --
77878    XLA_AE_LINES_PKG.SetNewLine;
77879 
77880    p_balance_type_code          := l_balance_type_code;
77881    -- set the flag so later we will know whether the gain loss line needs to be created
77882    
77883    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
77884      p_actual_flag :='A';
77885    END IF;
77886 
77887    --
77888    -- bulk performance
77889    --
77890    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77891                                       p_header_num   => 0); -- 4262811
77892    --
77893    -- set accounting line options
77894    --
77895    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77896            p_natural_side_code          => 'D'
77897          , p_gain_or_loss_flag          => 'N'
77898          , p_gl_transfer_mode_code      => 'S'
77899          , p_acct_entry_type_code       => 'A'
77900          , p_switch_side_flag           => 'Y'
77901          , p_merge_duplicate_code       => 'A'
77902          );
77903    --
77904    l_acc_rev_natural_side_code := 'C';  -- 4262811
77905    -- 
77906    --
77907    -- set accounting line type info
77908    --
77909    xla_ae_lines_pkg.SetAcctLineType
77910       (p_component_type             => l_component_type
77911       ,p_event_type_code            => l_event_type_code
77912       ,p_line_definition_owner_code => l_line_definition_owner_code
77913       ,p_line_definition_code       => l_line_definition_code
77914       ,p_accounting_line_code       => l_component_code
77915       ,p_accounting_line_type_code  => l_component_type_code
77916       ,p_accounting_line_appl_id    => l_component_appl_id
77917       ,p_amb_context_code           => l_amb_context_code
77918       ,p_entity_code                => l_entity_code
77919       ,p_event_class_code           => l_event_class_code);
77920    --
77921    -- set accounting class
77922    --
77926          );
77923    xla_ae_lines_pkg.SetAcctClass(
77924            p_accounting_class_code  => 'NRTAX'
77925          , p_ae_header_id           => l_ae_header_id
77927 
77928    --
77929    -- set rounding class
77930    --
77931    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77932                       'NRTAX';
77933 
77934    --
77935    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77936    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77937    --
77938    -- bulk performance
77939    --
77940    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77941 
77942    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77943       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77944 
77945    -- 4955764
77946    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77947       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77948 
77949    -- 4458381 Public Sector Enh
77950    
77951    --
77952    -- set accounting attributes for the line type
77953    --
77954    l_entered_amt_idx := 9;
77955    l_accted_amt_idx  := 14;
77956    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
77957    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77958    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
77959    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
77960    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
77961    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77962    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
77963    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
77964    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
77965    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
77966    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
77967    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77968    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
77969    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
77970    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
77971    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
77972    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
77973    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
77974    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
77975    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
77976    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
77977    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
77978    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
77979    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
77980    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
77981    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
77982    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
77983    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
77984    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
77985    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
77986    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
77987    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
77988    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
77989    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
77990    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
77991    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
77992    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
77993    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
77994    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
77995    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
77996    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
77997    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
77998    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
77999    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
78000    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
78001    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
78002    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
78003 
78004    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78005    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78006 
78007    ---------------------------------------------------------------------------------------------------------------
78008    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78009    ---------------------------------------------------------------------------------------------------------------
78010    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78011 
78012    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78013    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78014 
78015    IF xla_accounting_cache_pkg.GetValueChar
78016          (p_source_code         => 'LEDGER_CATEGORY_CODE'
78020    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78017          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78018    AND l_bflow_method_code = 'PRIOR_ENTRY'
78019 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78021          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78022        )
78023    THEN
78024          xla_ae_lines_pkg.BflowUpgEntry
78025            (p_business_method_code    => l_bflow_method_code
78026            ,p_business_class_code     => l_bflow_class_code
78027            ,p_balance_type            => l_balance_type_code);
78028    ELSE
78029       NULL;
78030 -- No business flow processing for business flow method of NONE.
78031    END IF;
78032 
78033    --
78034    -- call analytical criteria
78035    --
78036    
78037    --
78038    -- call description
78039    --
78040    -- No description or it is inherited.
78041    --
78042    -- call ADRs
78043    -- Bug 4922099
78044    --
78045    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78046         (NVL(l_actual_upg_option, 'N') = 'O') OR
78047         (NVL(l_enc_upg_option, 'N') = 'O')
78048       )
78049    THEN
78050    NULL;
78051    --
78052    --
78053    
78054   l_ccid := AcctDerRule_26(
78055            p_application_id           => p_application_id
78056          , p_ae_header_id             => l_ae_header_id 
78057 , p_source_17 => p_source_17
78058          , x_transaction_coa_id       => l_adr_transaction_coa_id
78059          , x_accounting_coa_id        => l_adr_accounting_coa_id
78060          , x_value_type_code          => l_adr_value_type_code
78061          , p_side                     => 'NA'
78062    );
78063 
78064    xla_ae_lines_pkg.set_ccid(
78065     p_code_combination_id          => l_ccid
78066   , p_value_type_code              => l_adr_value_type_code
78067   , p_transaction_coa_id           => l_adr_transaction_coa_id
78068   , p_accounting_coa_id            => l_adr_accounting_coa_id
78069   , p_adr_code                     => 'AP_INVOICE_DIST'
78070   , p_adr_type_code                => 'S'
78071   , p_component_type               => l_component_type
78072   , p_component_code               => l_component_code
78073   , p_component_type_code          => l_component_type_code
78074   , p_component_appl_id            => l_component_appl_id
78075   , p_amb_context_code             => l_amb_context_code
78076   , p_side                         => 'NA'
78077   );
78078 
78079 
78080    --
78081    --
78082    END IF;
78083    --
78084    -- Bug 4922099
78085    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78086           (NVL(l_enc_upg_option, 'N') = 'O')
78087         ) AND
78088         (l_bflow_method_code = 'PRIOR_ENTRY')
78089       )
78090    THEN
78091       IF
78092       --
78093       1 = 2
78094       --
78095       THEN
78096       xla_accounting_err_pkg.build_message
78097                                     (p_appli_s_name            => 'XLA'
78098                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78099                                     ,p_token_1                 => 'LINE_NUMBER'
78100                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
78101                                     ,p_token_2                 => 'LINE_TYPE_NAME'
78102                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
78103                                                                              l_component_type
78104                                                                             ,l_component_code
78105                                                                             ,l_component_type_code
78106                                                                             ,l_component_appl_id
78107                                                                             ,l_amb_context_code
78108                                                                             ,l_entity_code
78109                                                                             ,l_event_class_code
78110                                                                            )
78111                                     ,p_token_3                 => 'OWNER'
78112                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
78113                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
78114                                                                           ,p_lookup_code    => l_component_type_code
78115                                                                          )
78116                                     ,p_token_4                 => 'PRODUCT_NAME'
78117                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78118                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78119                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78120                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78121                                     ,p_ae_header_id            =>  NULL
78122                                        );
78123 
78124         IF (C_LEVEL_ERROR>= g_log_level) THEN
78125                  trace
78129         END IF;
78126                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78127                       ,p_level    => C_LEVEL_ERROR
78128                       ,p_module   => l_log_module);
78130       END IF;
78131    END IF;
78132    --
78133    --
78134    ------------------------------------------------------------------------------------------------
78135    -- 4219869 Business Flow
78136    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78137    -- Prior Entry.  Currently, the following code is always generated.
78138    ------------------------------------------------------------------------------------------------
78139    XLA_AE_LINES_PKG.ValidateCurrentLine;
78140 
78141    ------------------------------------------------------------------------------------
78142    -- 4219869 Business Flow
78143    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78144    ------------------------------------------------------------------------------------
78145    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78146 
78147    ----------------------------------------------------------------------------------
78148    -- 4219869 Business Flow
78149    -- Update journal entry status -- Need to generate this within IF <condition>
78150    ----------------------------------------------------------------------------------
78151    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78152          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78153          ,p_balance_type_code => l_balance_type_code
78154          );
78155 
78156    -------------------------------------------------------------------------------------------
78157    -- 4262811 - Generate the Accrual Reversal lines
78158    -------------------------------------------------------------------------------------------
78159    BEGIN
78160       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78161                               (g_array_event(p_event_id).array_value_num('header_index'));
78162       IF l_acc_rev_flag IS NULL THEN
78163          l_acc_rev_flag := 'N';
78164       END IF;
78165    EXCEPTION
78166       WHEN OTHERS THEN
78167          l_acc_rev_flag := 'N';
78168    END;
78169    --
78170    IF (l_acc_rev_flag = 'Y') THEN
78171 
78172        -- 4645092  ------------------------------------------------------------------------------
78173        -- To allow MPA report to determine if it should generate report process
78174        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78175        ------------------------------------------------------------------------------------------
78176 
78177        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78178        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78179    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
78180    -- call ADRs
78181    -- Bug 4922099
78182    --
78183    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78184         (NVL(l_actual_upg_option, 'N') = 'O') OR
78185         (NVL(l_enc_upg_option, 'N') = 'O')
78186       )
78187    THEN
78188    NULL;
78189    --
78190    --
78191    
78192   l_ccid := AcctDerRule_26(
78193            p_application_id           => p_application_id
78194          , p_ae_header_id             => l_ae_header_id 
78195 , p_source_17 => p_source_17
78196          , x_transaction_coa_id       => l_adr_transaction_coa_id
78197          , x_accounting_coa_id        => l_adr_accounting_coa_id
78198          , x_value_type_code          => l_adr_value_type_code
78199          , p_side                     => 'NA'
78200    );
78201 
78202    xla_ae_lines_pkg.set_ccid(
78203     p_code_combination_id          => l_ccid
78204   , p_value_type_code              => l_adr_value_type_code
78205   , p_transaction_coa_id           => l_adr_transaction_coa_id
78206   , p_accounting_coa_id            => l_adr_accounting_coa_id
78207   , p_adr_code                     => 'AP_INVOICE_DIST'
78208   , p_adr_type_code                => 'S'
78209   , p_component_type               => l_component_type
78210   , p_component_code               => l_component_code
78211   , p_component_type_code          => l_component_type_code
78212   , p_component_appl_id            => l_component_appl_id
78213   , p_amb_context_code             => l_amb_context_code
78214   , p_side                         => 'NA'
78215   );
78216 
78217 
78218    --
78219    --
78220    END IF;
78221 
78222        --
78223        -- Update the line information that should be overwritten
78224        --
78225        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78226                                          p_header_num   => 1);
78227        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
78228 
78229        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78230 
78231        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
78232           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78233        END IF;
78234 
78235       --
78236       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78237       --
78238       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78242           -- 4262811a Switch Sign
78239           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
78240       ELSE
78241           ---------------------------------------------------------------------------------------------------
78243           ---------------------------------------------------------------------------------------------------
78244           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
78245           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78246                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78247           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78248                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78249           -- 5132302
78250           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78251                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78252 
78253       END IF;
78254 
78255       -- 4955764
78256       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78257       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78258 
78259 
78260       XLA_AE_LINES_PKG.ValidateCurrentLine;
78261       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78262 
78263       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78264                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78265                ,p_balance_type_code => l_balance_type_code);
78266 
78267    END IF;
78268 
78269    -----------------------------------------------------------------------------------------
78270    -- 4262811 Multiperiod Accounting
78271    -----------------------------------------------------------------------------------------
78272      -- No MPA option is assigned.
78273 
78274 
78275 END IF;
78276 END IF;
78277 --
78278 
78279 --
78280 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78281    trace
78282       (p_msg      => 'END of AcctLineType_143'
78283       ,p_level    => C_LEVEL_PROCEDURE
78284       ,p_module   => l_log_module);
78285 END IF;
78286 --
78287 EXCEPTION
78288   WHEN xla_exceptions_pkg.application_exception THEN
78289       RAISE;
78290   WHEN OTHERS THEN
78291        xla_exceptions_pkg.raise_message
78292            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_143');
78293 END AcctLineType_143;
78294 --
78295 
78296 ---------------------------------------
78297 --
78298 -- PRIVATE FUNCTION
78299 --         AcctLineType_144
78300 --
78301 ---------------------------------------
78302 PROCEDURE AcctLineType_144 (
78303   p_application_id        IN NUMBER
78304  ,p_event_id              IN NUMBER
78305  ,p_calculate_acctd_flag  IN VARCHAR2
78306  ,p_calculate_g_l_flag    IN VARCHAR2
78307  ,p_actual_flag           IN OUT VARCHAR2
78308  ,p_balance_type_code     OUT VARCHAR2
78309  ,p_gain_or_loss_ref      OUT VARCHAR2
78310  
78311 --Payment Distribution (Payment Rate) Ledger Amount
78312  , p_source_9            IN NUMBER
78313 --Invoice Distribution Type
78314  , p_source_20            IN VARCHAR2
78315  , p_source_20_meaning    IN VARCHAR2
78316 --When to Account for Payment Option
78317  , p_source_38            IN VARCHAR2
78318 --Payment Distribution Type
78319  , p_source_39            IN VARCHAR2
78320  , p_source_39_meaning    IN VARCHAR2
78321 --Accounting Reversal Indicator
78322  , p_source_40            IN VARCHAR2
78323 --Payment Distribution Amount
78324  , p_source_41            IN NUMBER
78325 --Business Flow Accounts Payable Application Identifier
78326  , p_source_42            IN NUMBER
78327 --Payment Distribution Identifier
78328  , p_source_47            IN NUMBER
78329 --Distribution Link Type
78330  , p_source_48            IN VARCHAR2
78331 --Payment Currency Code
78332  , p_source_49            IN VARCHAR2
78333 --Override Accounted Amount Indicator
78334  , p_source_53            IN VARCHAR2
78335  , p_source_53_meaning    IN VARCHAR2
78336 --Third Party Type
78337  , p_source_56            IN VARCHAR2
78338 --Payment Distribution Reversed Identifier
78339  , p_source_57            IN NUMBER
78340 --Invoice Distribution Tax Line Identifier
78341  , p_source_58            IN NUMBER
78342 --Invoice Distribution Summary Tax Line Identifier
78343  , p_source_59            IN NUMBER
78344 --Payment Type
78345  , p_source_60            IN VARCHAR2
78346  , p_source_60_meaning    IN VARCHAR2
78347 --Business Flow Invoice Distribution Type
78348  , p_source_62            IN VARCHAR2
78349 --Business Flow Invoice Entity Code
78350  , p_source_63            IN VARCHAR2
78351 --Business Flow Invoice Distribution Identifier
78352  , p_source_64            IN NUMBER
78353 --Business Flow Invoice Identifier
78354  , p_source_65            IN NUMBER
78355 --Invoice Distribution Tax Distribution Identifier from Tax
78356  , p_source_66            IN NUMBER
78357 --Purchasing Encumbrance Option
78358  , p_source_102            IN VARCHAR2
78359  , p_source_102_meaning    IN VARCHAR2
78360 --Invoice Encumbered Option
78361  , p_source_104            IN VARCHAR2
78362  , p_source_104_meaning    IN VARCHAR2
78363 )
78364 IS
78365 
78366 l_component_type              VARCHAR2(80);
78370 l_amb_context_code            VARCHAR2(30);
78367 l_component_code              VARCHAR2(30);
78368 l_component_type_code         VARCHAR2(1);
78369 l_component_appl_id           INTEGER;
78371 l_entity_code                 VARCHAR2(30);
78372 l_event_class_code            VARCHAR2(30);
78373 l_ae_header_id                NUMBER;
78374 l_event_type_code             VARCHAR2(30);
78375 l_line_definition_code        VARCHAR2(30);
78376 l_line_definition_owner_code  VARCHAR2(1);
78377 --
78378 -- adr variables
78379 l_segment                     VARCHAR2(30);
78380 l_ccid                        NUMBER;
78381 l_adr_transaction_coa_id      NUMBER;
78382 l_adr_accounting_coa_id       NUMBER;
78383 l_adr_flexfield_segment_code  VARCHAR2(30);
78384 l_adr_flex_value_set_id       NUMBER;
78385 l_adr_value_type_code         VARCHAR2(30);
78386 l_adr_value_combination_id    NUMBER;
78387 l_adr_value_segment_code      VARCHAR2(30);
78388 
78389 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78390 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78391 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78392 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78393 
78394 -- 4262811 Variables ------------------------------------------------------------------------------------------
78395 l_entered_amt_idx             NUMBER;
78396 l_accted_amt_idx              NUMBER;
78397 l_acc_rev_flag                VARCHAR2(1);
78398 l_accrual_line_num            NUMBER;
78399 l_tmp_amt                     NUMBER;
78400 l_acc_rev_natural_side_code   VARCHAR2(1);
78401 
78402 l_num_entries                 NUMBER;
78403 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
78404 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
78405 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
78406 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
78407 l_recog_line_1                NUMBER;
78408 l_recog_line_2                NUMBER;
78409 
78410 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
78411 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
78412 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
78413 
78414 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78415 
78416 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
78417 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
78418 
78419 ---------------------------------------------------------------------------------------------------------------
78420 
78421 
78422 --
78423 -- bulk performance
78424 --
78425 l_balance_type_code           VARCHAR2(1);
78426 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
78427 l_log_module                  VARCHAR2(240);
78428 
78429 --
78430 -- Upgrade strategy
78431 --
78432 l_actual_upg_option           VARCHAR2(1);
78433 l_enc_upg_option           VARCHAR2(1);
78434 
78435 --
78436 BEGIN
78437 --
78438 IF g_log_enabled THEN
78439       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_144';
78440 END IF;
78441 --
78442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78443 
78444       trace
78445          (p_msg      => 'BEGIN of AcctLineType_144'
78446          ,p_level    => C_LEVEL_PROCEDURE
78447          ,p_module   => l_log_module);
78448 
78449 END IF;
78450 --
78451 l_component_type             := 'AMB_JLT';
78452 l_component_code             := 'AP_NON_RECOV_TAX_REF_ENC';
78453 l_component_type_code        := 'S';
78454 l_component_appl_id          :=  200;
78455 l_amb_context_code           := 'DEFAULT';
78456 l_entity_code                := 'AP_PAYMENTS';
78457 l_event_class_code           := 'REFUNDS';
78458 l_event_type_code            := 'REFUNDS_ALL';
78459 l_line_definition_owner_code := 'S';
78460 l_line_definition_code       := 'ENC_REFUNDS_ALL';
78461 --
78462 l_balance_type_code          := 'E';
78463 l_segment                     := NULL;
78464 l_ccid                        := NULL;
78465 l_adr_transaction_coa_id      := NULL;
78466 l_adr_accounting_coa_id       := NULL;
78467 l_adr_flexfield_segment_code  := NULL;
78468 l_adr_flex_value_set_id       := NULL;
78469 l_adr_value_type_code         := NULL;
78470 l_adr_value_combination_id    := NULL;
78471 l_adr_value_segment_code      := NULL;
78472 
78473 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
78474 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
78475 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
78476 l_budgetary_control_flag     := 'N';
78477 
78478 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
78479 l_bflow_applied_to_amt       := NULL; -- 5132302
78480 l_entered_amt_idx            := NULL;          -- 4262811
78481 l_accted_amt_idx             := NULL;          -- 4262811
78482 l_acc_rev_flag               := NULL;          -- 4262811
78483 l_accrual_line_num           := NULL;          -- 4262811
78484 l_tmp_amt                    := NULL;          -- 4262811
78485 --
78486  
78487 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78488     l_balance_type_code <> 'B' THEN
78489 IF NVL(p_source_38,'
78490 ') <>  'CLEAR_CLEAR' AND 
78491 NVL(p_source_20,'
78492 ') =  'NONREC_TAX' AND 
78496 ') =  'DISCOUNT') AND 
78493 (NVL(p_source_39,'
78494 ') =  'CASH' OR 
78495 NVL(p_source_39,'
78497 NVL(p_source_60,'
78498 ') =  'R' AND 
78499 NVL(p_source_102,'
78500 ') =  'Y' AND 
78501 NVL(p_source_104,'
78502 ') =  'Y'
78503  THEN 
78504 
78505    --
78506    XLA_AE_LINES_PKG.SetNewLine;
78507 
78508    p_balance_type_code          := l_balance_type_code;
78509    -- set the flag so later we will know whether the gain loss line needs to be created
78510    
78511    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
78512      p_actual_flag :='A';
78513    END IF;
78514 
78515    --
78516    -- bulk performance
78517    --
78518    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78519                                       p_header_num   => 0); -- 4262811
78520    --
78521    -- set accounting line options
78522    --
78523    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78524            p_natural_side_code          => 'D'
78525          , p_gain_or_loss_flag          => 'N'
78526          , p_gl_transfer_mode_code      => 'S'
78527          , p_acct_entry_type_code       => 'E'
78528          , p_switch_side_flag           => 'Y'
78529          , p_merge_duplicate_code       => 'A'
78530          );
78531    --
78532    l_acc_rev_natural_side_code := 'C';  -- 4262811
78533    -- 
78534    --
78535    -- set accounting line type info
78536    --
78537    xla_ae_lines_pkg.SetAcctLineType
78538       (p_component_type             => l_component_type
78539       ,p_event_type_code            => l_event_type_code
78540       ,p_line_definition_owner_code => l_line_definition_owner_code
78541       ,p_line_definition_code       => l_line_definition_code
78542       ,p_accounting_line_code       => l_component_code
78543       ,p_accounting_line_type_code  => l_component_type_code
78544       ,p_accounting_line_appl_id    => l_component_appl_id
78545       ,p_amb_context_code           => l_amb_context_code
78546       ,p_entity_code                => l_entity_code
78547       ,p_event_class_code           => l_event_class_code);
78548    --
78549    -- set accounting class
78550    --
78551    xla_ae_lines_pkg.SetAcctClass(
78552            p_accounting_class_code  => 'NRTAX'
78553          , p_ae_header_id           => l_ae_header_id
78554          );
78555 
78556    --
78557    -- set rounding class
78558    --
78559    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78560                       'NRTAX';
78561 
78562    --
78563    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78564    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78565    --
78566    -- bulk performance
78567    --
78568    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78569 
78570    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78571       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78572 
78573    -- 4955764
78574    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78575       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78576 
78577    -- 4458381 Public Sector Enh
78578    
78579    --
78580    -- set accounting attributes for the line type
78581    --
78582    l_entered_amt_idx := 9;
78583    l_accted_amt_idx  := 11;
78584    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
78585    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78586    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
78587    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
78588    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
78589    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78590    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
78591    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
78592    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
78593    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
78594    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
78595    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78596    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
78597    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
78598    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
78599    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
78600    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
78601    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
78602    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
78603    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
78604    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
78605    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
78606    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
78607    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
78608    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
78609    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
78610    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
78611    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
78612    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
78613    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
78617    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
78614    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
78615    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
78616    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
78618    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
78619    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
78620    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
78621 
78622    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78623    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78624 
78625    ---------------------------------------------------------------------------------------------------------------
78626    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78627    ---------------------------------------------------------------------------------------------------------------
78628    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78629 
78630    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78631    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78632 
78633    IF xla_accounting_cache_pkg.GetValueChar
78634          (p_source_code         => 'LEDGER_CATEGORY_CODE'
78635          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78636    AND l_bflow_method_code = 'PRIOR_ENTRY'
78637 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78638    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78639          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78640        )
78641    THEN
78642          xla_ae_lines_pkg.BflowUpgEntry
78643            (p_business_method_code    => l_bflow_method_code
78644            ,p_business_class_code     => l_bflow_class_code
78645            ,p_balance_type            => l_balance_type_code);
78646    ELSE
78647       NULL;
78648 XLA_AE_LINES_PKG.business_flow_validation(
78649                                 p_business_method_code     => l_bflow_method_code
78650                                ,p_business_class_code      => l_bflow_class_code
78651                                ,p_inherit_description_flag => l_inherit_desc_flag);
78652    END IF;
78653 
78654    --
78655    -- call analytical criteria
78656    --
78657    -- Inherited Analytical Criteria for business flow method of Prior Entry.
78658    --
78659    -- call description
78660    --
78661    -- No description or it is inherited.
78662    --
78663    -- call ADRs
78664    -- Bug 4922099
78665    --
78666    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78667         (NVL(l_actual_upg_option, 'N') = 'O') OR
78668         (NVL(l_enc_upg_option, 'N') = 'O')
78669       )
78670    THEN
78671    NULL;
78672    --
78673    --
78674    
78675    --
78676    --
78677    END IF;
78678    --
78679    -- Bug 4922099
78680    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78681           (NVL(l_enc_upg_option, 'N') = 'O')
78682         ) AND
78683         (l_bflow_method_code = 'PRIOR_ENTRY')
78684       )
78685    THEN
78686       IF
78687       --
78688       1 = 1
78689       --
78690       THEN
78691       xla_accounting_err_pkg.build_message
78692                                     (p_appli_s_name            => 'XLA'
78693                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78694                                     ,p_token_1                 => 'LINE_NUMBER'
78695                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
78696                                     ,p_token_2                 => 'LINE_TYPE_NAME'
78697                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
78698                                                                              l_component_type
78699                                                                             ,l_component_code
78700                                                                             ,l_component_type_code
78701                                                                             ,l_component_appl_id
78702                                                                             ,l_amb_context_code
78703                                                                             ,l_entity_code
78704                                                                             ,l_event_class_code
78705                                                                            )
78706                                     ,p_token_3                 => 'OWNER'
78707                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
78708                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
78709                                                                           ,p_lookup_code    => l_component_type_code
78710                                                                          )
78711                                     ,p_token_4                 => 'PRODUCT_NAME'
78712                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78713                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78717                                        );
78714                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78715                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78716                                     ,p_ae_header_id            =>  NULL
78718 
78719         IF (C_LEVEL_ERROR>= g_log_level) THEN
78720                  trace
78721                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78722                       ,p_level    => C_LEVEL_ERROR
78723                       ,p_module   => l_log_module);
78724         END IF;
78725       END IF;
78726    END IF;
78727    --
78728    --
78729    ------------------------------------------------------------------------------------------------
78730    -- 4219869 Business Flow
78731    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78732    -- Prior Entry.  Currently, the following code is always generated.
78733    ------------------------------------------------------------------------------------------------
78734    -- No ValidateCurrentLine for business flow method of Prior Entry
78735 
78736    ------------------------------------------------------------------------------------
78737    -- 4219869 Business Flow
78738    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78739    ------------------------------------------------------------------------------------
78740    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78741 
78742    ----------------------------------------------------------------------------------
78743    -- 4219869 Business Flow
78744    -- Update journal entry status -- Need to generate this within IF <condition>
78745    ----------------------------------------------------------------------------------
78746    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78747          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78748          ,p_balance_type_code => l_balance_type_code
78749          );
78750 
78751    -------------------------------------------------------------------------------------------
78752    -- 4262811 - Generate the Accrual Reversal lines
78753    -------------------------------------------------------------------------------------------
78754    BEGIN
78755       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78756                               (g_array_event(p_event_id).array_value_num('header_index'));
78757       IF l_acc_rev_flag IS NULL THEN
78758          l_acc_rev_flag := 'N';
78759       END IF;
78760    EXCEPTION
78761       WHEN OTHERS THEN
78762          l_acc_rev_flag := 'N';
78763    END;
78764    --
78765    IF (l_acc_rev_flag = 'Y') THEN
78766 
78767        -- 4645092  ------------------------------------------------------------------------------
78768        -- To allow MPA report to determine if it should generate report process
78769        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78770        ------------------------------------------------------------------------------------------
78771 
78772        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78773        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78774    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
78775    -- call ADRs
78776    -- Bug 4922099
78777    --
78778    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78779         (NVL(l_actual_upg_option, 'N') = 'O') OR
78780         (NVL(l_enc_upg_option, 'N') = 'O')
78781       )
78782    THEN
78783    NULL;
78784    --
78785    --
78786    
78787    --
78788    --
78789    END IF;
78790 
78791        --
78792        -- Update the line information that should be overwritten
78793        --
78794        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78795                                          p_header_num   => 1);
78796        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
78797 
78798        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78799 
78800        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
78801           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78802        END IF;
78803 
78804       --
78805       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78806       --
78807       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78808           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
78809       ELSE
78810           ---------------------------------------------------------------------------------------------------
78811           -- 4262811a Switch Sign
78812           ---------------------------------------------------------------------------------------------------
78813           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
78814           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78815                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78816           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78817                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78821 
78818           -- 5132302
78819           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78820                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78822       END IF;
78823 
78824       -- 4955764
78825       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78826       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78827 
78828 
78829       XLA_AE_LINES_PKG.ValidateCurrentLine;
78830       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78831 
78832       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78833                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78834                ,p_balance_type_code => l_balance_type_code);
78835 
78836    END IF;
78837 
78838    -----------------------------------------------------------------------------------------
78839    -- 4262811 Multiperiod Accounting
78840    -----------------------------------------------------------------------------------------
78841      -- No MPA option is assigned.
78842 
78843 
78844 END IF;
78845 END IF;
78846 --
78847 
78848 --
78849 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78850    trace
78851       (p_msg      => 'END of AcctLineType_144'
78852       ,p_level    => C_LEVEL_PROCEDURE
78853       ,p_module   => l_log_module);
78854 END IF;
78855 --
78856 EXCEPTION
78857   WHEN xla_exceptions_pkg.application_exception THEN
78858       RAISE;
78859   WHEN OTHERS THEN
78860        xla_exceptions_pkg.raise_message
78861            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_144');
78862 END AcctLineType_144;
78863 --
78864 
78865 ---------------------------------------
78866 --
78867 -- PRIVATE FUNCTION
78868 --         AcctLineType_145
78869 --
78870 ---------------------------------------
78871 PROCEDURE AcctLineType_145 (
78872   p_application_id        IN NUMBER
78873  ,p_event_id              IN NUMBER
78874  ,p_calculate_acctd_flag  IN VARCHAR2
78875  ,p_calculate_g_l_flag    IN VARCHAR2
78876  ,p_actual_flag           IN OUT VARCHAR2
78877  ,p_balance_type_code     OUT VARCHAR2
78878  ,p_gain_or_loss_ref      OUT VARCHAR2
78879  
78880 --Invoice Distribution Account
78881  , p_source_17            IN NUMBER
78882 --When to Account for Payment Option
78883  , p_source_38            IN VARCHAR2
78884 --Accounting Reversal Indicator
78885  , p_source_40            IN VARCHAR2
78886 --Business Flow Accounts Payable Application Identifier
78887  , p_source_42            IN NUMBER
78888 --Distribution Link Type
78889  , p_source_48            IN VARCHAR2
78890 --Purchase Order Exchange Rate Date
78891  , p_source_50            IN DATE
78892 --Purchase Order Exchange Rate
78893  , p_source_51            IN NUMBER
78894 --Purchase Order Exchange Rate Type
78895  , p_source_52            IN VARCHAR2
78896 --Override Accounted Amount Indicator
78897  , p_source_53            IN VARCHAR2
78898  , p_source_53_meaning    IN VARCHAR2
78899 --Third Party Type
78900  , p_source_56            IN VARCHAR2
78901 --Invoice Distribution Tax Line Identifier
78902  , p_source_58            IN NUMBER
78903 --Invoice Distribution Summary Tax Line Identifier
78904  , p_source_59            IN NUMBER
78905 --Invoice Distribution Tax Distribution Identifier from Tax
78906  , p_source_66            IN NUMBER
78907 --Prepayment Distribution Type
78908  , p_source_67            IN VARCHAR2
78909 --Recipient Invoice Distribution Type
78910  , p_source_68            IN VARCHAR2
78911  , p_source_68_meaning    IN VARCHAR2
78912 --Prepayment Application Distribution Identifier
78913  , p_source_71            IN NUMBER
78914 --Invoice Identifier
78915  , p_source_72            IN NUMBER
78916 --Business Flow Prepayment Invoice Distribution Type
78917  , p_source_73            IN VARCHAR2
78918 --Business Flow Prepayment Invoice Entity Code
78919  , p_source_74            IN VARCHAR2
78920 --Business Flow Prepayment Invoice Distribution Identifier
78921  , p_source_75            IN NUMBER
78922 --Business Flow Prepayment Invoice Identifier
78923  , p_source_76            IN NUMBER
78924 --Upgrade Encumbrance Credit Account Class
78925  , p_source_77            IN VARCHAR2
78926 --Payables Encumbrance Upgrade Credit Account
78927  , p_source_78            IN NUMBER
78928 --Payables Encumbrance Upgrade Credit Amount
78929  , p_source_79            IN NUMBER
78930 --Invoice Currency Code
78931  , p_source_80            IN VARCHAR2
78932 --Payables Encumbrance Upgrade Credit Base Amount
78933  , p_source_81            IN NUMBER
78934 --Upgrade Encumbrance Debit Account Class
78935  , p_source_82            IN VARCHAR2
78936 --Payables Encumbrance Upgrade Debit Account
78937  , p_source_83            IN NUMBER
78938 --Payables Encumbrance Upgrade Debit Amount
78939  , p_source_84            IN NUMBER
78940 --Payables Encumbrance Upgrade Debit Base Amount
78941  , p_source_85            IN NUMBER
78942 --Payables Encumbrance Upgrade Option
78943  , p_source_86            IN VARCHAR2
78944 --Prepayment Distribution Amount
78945  , p_source_87            IN NUMBER
78946 --Prepayment Clearing Currency Code
78947  , p_source_88            IN VARCHAR2
78948 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
78952 --Deferred Accounting Option
78949  , p_source_89            IN NUMBER
78950 --Deferred Accounting End Date
78951  , p_source_90            IN DATE
78953  , p_source_91            IN VARCHAR2
78954 --Deferred Accounting Start Date
78955  , p_source_92            IN DATE
78956 --Invoice Supplier Identifier
78957  , p_source_93            IN NUMBER
78958 --Invoice Supplier Site Identifier
78959  , p_source_94            IN NUMBER
78960 --Identifier of the Prepayment Application Reversed
78961  , p_source_95            IN NUMBER
78962 --Payables Upgrade Credit Encumbrance Type Identifier
78963  , p_source_96            IN NUMBER
78964 --Payables Upgrade Debit Encumbrance Type Identifier
78965  , p_source_97            IN NUMBER
78966 --Accrue on Receipt Option
78967  , p_source_100            IN VARCHAR2
78968  , p_source_100_meaning    IN VARCHAR2
78969 )
78970 IS
78971 
78972 l_component_type              VARCHAR2(80);
78973 l_component_code              VARCHAR2(30);
78974 l_component_type_code         VARCHAR2(1);
78975 l_component_appl_id           INTEGER;
78976 l_amb_context_code            VARCHAR2(30);
78977 l_entity_code                 VARCHAR2(30);
78978 l_event_class_code            VARCHAR2(30);
78979 l_ae_header_id                NUMBER;
78980 l_event_type_code             VARCHAR2(30);
78981 l_line_definition_code        VARCHAR2(30);
78982 l_line_definition_owner_code  VARCHAR2(1);
78983 --
78984 -- adr variables
78985 l_segment                     VARCHAR2(30);
78986 l_ccid                        NUMBER;
78987 l_adr_transaction_coa_id      NUMBER;
78988 l_adr_accounting_coa_id       NUMBER;
78989 l_adr_flexfield_segment_code  VARCHAR2(30);
78990 l_adr_flex_value_set_id       NUMBER;
78991 l_adr_value_type_code         VARCHAR2(30);
78992 l_adr_value_combination_id    NUMBER;
78993 l_adr_value_segment_code      VARCHAR2(30);
78994 
78995 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78996 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78997 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78998 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78999 
79000 -- 4262811 Variables ------------------------------------------------------------------------------------------
79001 l_entered_amt_idx             NUMBER;
79002 l_accted_amt_idx              NUMBER;
79003 l_acc_rev_flag                VARCHAR2(1);
79004 l_accrual_line_num            NUMBER;
79005 l_tmp_amt                     NUMBER;
79006 l_acc_rev_natural_side_code   VARCHAR2(1);
79007 
79008 l_num_entries                 NUMBER;
79009 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
79010 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
79011 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
79012 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
79013 l_recog_line_1                NUMBER;
79014 l_recog_line_2                NUMBER;
79015 
79016 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
79017 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
79018 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
79019 
79020 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79021 
79022 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
79023 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
79024 
79025 ---------------------------------------------------------------------------------------------------------------
79026 
79027 
79028 --
79029 -- bulk performance
79030 --
79031 l_balance_type_code           VARCHAR2(1);
79032 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
79033 l_log_module                  VARCHAR2(240);
79034 
79035 --
79036 -- Upgrade strategy
79037 --
79038 l_actual_upg_option           VARCHAR2(1);
79039 l_enc_upg_option           VARCHAR2(1);
79040 
79041 --
79042 BEGIN
79043 --
79044 IF g_log_enabled THEN
79045       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_145';
79046 END IF;
79047 --
79048 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79049 
79050       trace
79051          (p_msg      => 'BEGIN of AcctLineType_145'
79052          ,p_level    => C_LEVEL_PROCEDURE
79053          ,p_module   => l_log_module);
79054 
79055 END IF;
79056 --
79057 l_component_type             := 'AMB_JLT';
79058 l_component_code             := 'AP_NRTAX_ACCRUAL_PREPAY_CLR';
79059 l_component_type_code        := 'S';
79060 l_component_appl_id          :=  200;
79061 l_amb_context_code           := 'DEFAULT';
79062 l_entity_code                := 'AP_INVOICES';
79063 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
79064 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
79065 l_line_definition_owner_code := 'S';
79066 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
79067 --
79068 l_balance_type_code          := 'A';
79069 l_segment                     := NULL;
79070 l_ccid                        := NULL;
79071 l_adr_transaction_coa_id      := NULL;
79072 l_adr_accounting_coa_id       := NULL;
79073 l_adr_flexfield_segment_code  := NULL;
79074 l_adr_flex_value_set_id       := NULL;
79075 l_adr_value_type_code         := NULL;
79076 l_adr_value_combination_id    := NULL;
79077 l_adr_value_segment_code      := NULL;
79078 
79082 l_budgetary_control_flag     := 'N';
79079 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
79080 l_bflow_class_code           := '';    -- 4219869 Business Flow
79081 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
79083 
79084 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
79085 l_bflow_applied_to_amt       := NULL; -- 5132302
79086 l_entered_amt_idx            := NULL;          -- 4262811
79087 l_accted_amt_idx             := NULL;          -- 4262811
79088 l_acc_rev_flag               := NULL;          -- 4262811
79089 l_accrual_line_num           := NULL;          -- 4262811
79090 l_tmp_amt                    := NULL;          -- 4262811
79091 --
79092  
79093 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79094     l_balance_type_code <> 'B' THEN
79095 IF NVL(p_source_38,'
79096 ') =  'CLEAR_CLEAR' AND 
79097 (NVL(p_source_67,'
79098 ') =  'PREPAY APPL' OR 
79099 NVL(p_source_67,'
79100 ') =  'PREPAY APPL NONREC TAX' OR 
79101 NVL(p_source_67,'
79102 ') =  'PREPAY APPL REC TAX') AND 
79103 NVL(p_source_68,'
79104 ') =  'NONREC_TAX' AND 
79105 NVL(p_source_100,'
79106 ') =  'Y'
79107  THEN 
79108 
79109    --
79110    XLA_AE_LINES_PKG.SetNewLine;
79111 
79112    p_balance_type_code          := l_balance_type_code;
79113    -- set the flag so later we will know whether the gain loss line needs to be created
79114    
79115    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79116      p_actual_flag :='A';
79117    END IF;
79118 
79119    --
79120    -- bulk performance
79121    --
79122    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79123                                       p_header_num   => 0); -- 4262811
79124    --
79125    -- set accounting line options
79126    --
79127    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79128            p_natural_side_code          => 'C'
79129          , p_gain_or_loss_flag          => 'N'
79130          , p_gl_transfer_mode_code      => 'S'
79131          , p_acct_entry_type_code       => 'A'
79132          , p_switch_side_flag           => 'Y'
79133          , p_merge_duplicate_code       => 'A'
79134          );
79135    --
79136    l_acc_rev_natural_side_code := 'D';  -- 4262811
79137    -- 
79138    --
79139    -- set accounting line type info
79140    --
79141    xla_ae_lines_pkg.SetAcctLineType
79142       (p_component_type             => l_component_type
79143       ,p_event_type_code            => l_event_type_code
79144       ,p_line_definition_owner_code => l_line_definition_owner_code
79145       ,p_line_definition_code       => l_line_definition_code
79146       ,p_accounting_line_code       => l_component_code
79147       ,p_accounting_line_type_code  => l_component_type_code
79148       ,p_accounting_line_appl_id    => l_component_appl_id
79149       ,p_amb_context_code           => l_amb_context_code
79150       ,p_entity_code                => l_entity_code
79151       ,p_event_class_code           => l_event_class_code);
79152    --
79153    -- set accounting class
79154    --
79155    xla_ae_lines_pkg.SetAcctClass(
79156            p_accounting_class_code  => 'ACCRUAL'
79157          , p_ae_header_id           => l_ae_header_id
79158          );
79159 
79160    --
79161    -- set rounding class
79162    --
79163    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79164                       'ACCRUAL';
79165 
79166    --
79167    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79168    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79169    --
79170    -- bulk performance
79171    --
79172    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79173 
79174    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79175       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79176 
79177    -- 4955764
79178    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79179       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79180 
79181    -- 4458381 Public Sector Enh
79182    
79183    --
79184    -- set accounting attributes for the line type
79185    --
79186    l_entered_amt_idx := 25;
79187    l_accted_amt_idx  := 30;
79188    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
79189    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79190    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
79191    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79192    l_rec_acct_attrs.array_num_value(2)  := 
79193 xla_ae_sources_pkg.GetSystemSourceNum(
79194    p_source_code           => 'XLA_EVENT_APPL_ID'
79195  , p_source_type_code      => 'Y'
79196  , p_source_application_id =>  602
79197 );
79198    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79199    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
79200    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79201    l_rec_acct_attrs.array_char_value(4)  := 
79202 xla_ae_sources_pkg.GetSystemSourceChar(
79203    p_source_code           => 'XLA_ENTITY_CODE'
79204  , p_source_type_code      => 'Y'
79205  , p_source_application_id =>  602
79206 );
79210    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
79207    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79208    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
79209    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79211    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79212    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
79213    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79214    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
79215    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79216    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
79217    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79218    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
79219    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79220    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
79221    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79222    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
79223    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79224    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
79225    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
79226    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
79227    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
79228    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
79229    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
79230    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
79231    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
79232    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
79233    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
79234    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
79235    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
79236    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
79237    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
79238    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
79239    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
79240    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
79241    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
79242    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
79243    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
79244    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
79245    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
79246    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
79247    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
79248    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
79249    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
79250    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
79251    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
79252    l_rec_acct_attrs.array_date_value(27)  := p_source_50;
79253    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
79254    l_rec_acct_attrs.array_num_value(28)  := p_source_51;
79255    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
79256    l_rec_acct_attrs.array_char_value(29)  := p_source_52;
79257    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
79258    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
79259    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
79260    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
79261    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
79262    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
79263    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
79264    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
79265    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
79266    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
79267    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
79268    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
79269    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
79270    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
79271    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
79272    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
79273    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
79274    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
79275    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
79276    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
79277    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
79278    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
79279    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
79280    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
79281    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
79282    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
79283    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
79284    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
79285    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
79286    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
79287 
79288    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79289    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79290 
79291    ---------------------------------------------------------------------------------------------------------------
79295 
79292    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79293    ---------------------------------------------------------------------------------------------------------------
79294    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79296    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79297    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79298 
79299    IF xla_accounting_cache_pkg.GetValueChar
79300          (p_source_code         => 'LEDGER_CATEGORY_CODE'
79301          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79302    AND l_bflow_method_code = 'PRIOR_ENTRY'
79303 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79304    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79305          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79306        )
79307    THEN
79308          xla_ae_lines_pkg.BflowUpgEntry
79309            (p_business_method_code    => l_bflow_method_code
79310            ,p_business_class_code     => l_bflow_class_code
79311            ,p_balance_type            => l_balance_type_code);
79312    ELSE
79313       NULL;
79314 -- No business flow processing for business flow method of NONE.
79315    END IF;
79316 
79317    --
79318    -- call analytical criteria
79319    --
79320    
79321    --
79322    -- call description
79323    --
79324    -- No description or it is inherited.
79325    --
79326    -- call ADRs
79327    -- Bug 4922099
79328    --
79329    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79330         (NVL(l_actual_upg_option, 'N') = 'O') OR
79331         (NVL(l_enc_upg_option, 'N') = 'O')
79332       )
79333    THEN
79334    NULL;
79335    --
79336    --
79337    
79338   l_ccid := AcctDerRule_26(
79339            p_application_id           => p_application_id
79340          , p_ae_header_id             => l_ae_header_id 
79341 , p_source_17 => p_source_17
79342          , x_transaction_coa_id       => l_adr_transaction_coa_id
79343          , x_accounting_coa_id        => l_adr_accounting_coa_id
79344          , x_value_type_code          => l_adr_value_type_code
79345          , p_side                     => 'NA'
79346    );
79347 
79348    xla_ae_lines_pkg.set_ccid(
79349     p_code_combination_id          => l_ccid
79350   , p_value_type_code              => l_adr_value_type_code
79351   , p_transaction_coa_id           => l_adr_transaction_coa_id
79352   , p_accounting_coa_id            => l_adr_accounting_coa_id
79353   , p_adr_code                     => 'AP_INVOICE_DIST'
79354   , p_adr_type_code                => 'S'
79355   , p_component_type               => l_component_type
79356   , p_component_code               => l_component_code
79357   , p_component_type_code          => l_component_type_code
79358   , p_component_appl_id            => l_component_appl_id
79359   , p_amb_context_code             => l_amb_context_code
79360   , p_side                         => 'NA'
79361   );
79362 
79363 
79364    --
79365    --
79366    END IF;
79367    --
79368    -- Bug 4922099
79369    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79370           (NVL(l_enc_upg_option, 'N') = 'O')
79371         ) AND
79372         (l_bflow_method_code = 'PRIOR_ENTRY')
79373       )
79374    THEN
79375       IF
79376       --
79377       1 = 2
79378       --
79379       THEN
79380       xla_accounting_err_pkg.build_message
79381                                     (p_appli_s_name            => 'XLA'
79382                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79383                                     ,p_token_1                 => 'LINE_NUMBER'
79384                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
79385                                     ,p_token_2                 => 'LINE_TYPE_NAME'
79386                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
79387                                                                              l_component_type
79388                                                                             ,l_component_code
79389                                                                             ,l_component_type_code
79390                                                                             ,l_component_appl_id
79391                                                                             ,l_amb_context_code
79392                                                                             ,l_entity_code
79393                                                                             ,l_event_class_code
79394                                                                            )
79395                                     ,p_token_3                 => 'OWNER'
79396                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
79397                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
79398                                                                           ,p_lookup_code    => l_component_type_code
79399                                                                          )
79400                                     ,p_token_4                 => 'PRODUCT_NAME'
79404                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79401                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79402                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79403                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79405                                     ,p_ae_header_id            =>  NULL
79406                                        );
79407 
79408         IF (C_LEVEL_ERROR>= g_log_level) THEN
79409                  trace
79410                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79411                       ,p_level    => C_LEVEL_ERROR
79412                       ,p_module   => l_log_module);
79413         END IF;
79414       END IF;
79415    END IF;
79416    --
79417    --
79418    ------------------------------------------------------------------------------------------------
79419    -- 4219869 Business Flow
79420    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79421    -- Prior Entry.  Currently, the following code is always generated.
79422    ------------------------------------------------------------------------------------------------
79423    XLA_AE_LINES_PKG.ValidateCurrentLine;
79424 
79425    ------------------------------------------------------------------------------------
79426    -- 4219869 Business Flow
79427    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79428    ------------------------------------------------------------------------------------
79429    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79430 
79431    ----------------------------------------------------------------------------------
79432    -- 4219869 Business Flow
79433    -- Update journal entry status -- Need to generate this within IF <condition>
79434    ----------------------------------------------------------------------------------
79435    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79436          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79437          ,p_balance_type_code => l_balance_type_code
79438          );
79439 
79440    -------------------------------------------------------------------------------------------
79441    -- 4262811 - Generate the Accrual Reversal lines
79442    -------------------------------------------------------------------------------------------
79443    BEGIN
79444       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79445                               (g_array_event(p_event_id).array_value_num('header_index'));
79446       IF l_acc_rev_flag IS NULL THEN
79447          l_acc_rev_flag := 'N';
79448       END IF;
79449    EXCEPTION
79450       WHEN OTHERS THEN
79451          l_acc_rev_flag := 'N';
79452    END;
79453    --
79454    IF (l_acc_rev_flag = 'Y') THEN
79455 
79456        -- 4645092  ------------------------------------------------------------------------------
79457        -- To allow MPA report to determine if it should generate report process
79458        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79459        ------------------------------------------------------------------------------------------
79460 
79461        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79462        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79463    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
79464    -- call ADRs
79465    -- Bug 4922099
79466    --
79467    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79468         (NVL(l_actual_upg_option, 'N') = 'O') OR
79469         (NVL(l_enc_upg_option, 'N') = 'O')
79470       )
79471    THEN
79472    NULL;
79473    --
79474    --
79475    
79476   l_ccid := AcctDerRule_26(
79477            p_application_id           => p_application_id
79478          , p_ae_header_id             => l_ae_header_id 
79479 , p_source_17 => p_source_17
79480          , x_transaction_coa_id       => l_adr_transaction_coa_id
79481          , x_accounting_coa_id        => l_adr_accounting_coa_id
79482          , x_value_type_code          => l_adr_value_type_code
79483          , p_side                     => 'NA'
79484    );
79485 
79486    xla_ae_lines_pkg.set_ccid(
79487     p_code_combination_id          => l_ccid
79488   , p_value_type_code              => l_adr_value_type_code
79489   , p_transaction_coa_id           => l_adr_transaction_coa_id
79490   , p_accounting_coa_id            => l_adr_accounting_coa_id
79491   , p_adr_code                     => 'AP_INVOICE_DIST'
79492   , p_adr_type_code                => 'S'
79493   , p_component_type               => l_component_type
79494   , p_component_code               => l_component_code
79495   , p_component_type_code          => l_component_type_code
79496   , p_component_appl_id            => l_component_appl_id
79497   , p_amb_context_code             => l_amb_context_code
79498   , p_side                         => 'NA'
79499   );
79500 
79501 
79502    --
79503    --
79504    END IF;
79505 
79506        --
79507        -- Update the line information that should be overwritten
79508        --
79509        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
79510                                          p_header_num   => 1);
79514 
79511        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
79512 
79513        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
79515        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
79516           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
79517        END IF;
79518 
79519       --
79520       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
79521       --
79522       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
79523           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
79524       ELSE
79525           ---------------------------------------------------------------------------------------------------
79526           -- 4262811a Switch Sign
79527           ---------------------------------------------------------------------------------------------------
79528           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
79529           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79530                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79531           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79532                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79533           -- 5132302
79534           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
79535                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79536 
79537       END IF;
79538 
79539       -- 4955764
79540       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79541       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
79542 
79543 
79544       XLA_AE_LINES_PKG.ValidateCurrentLine;
79545       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79546 
79547       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79548                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
79549                ,p_balance_type_code => l_balance_type_code);
79550 
79551    END IF;
79552 
79553    -----------------------------------------------------------------------------------------
79554    -- 4262811 Multiperiod Accounting
79555    -----------------------------------------------------------------------------------------
79556      -- No MPA option is assigned.
79557 
79558 
79559 END IF;
79560 END IF;
79561 --
79562 
79563 --
79564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79565    trace
79566       (p_msg      => 'END of AcctLineType_145'
79567       ,p_level    => C_LEVEL_PROCEDURE
79568       ,p_module   => l_log_module);
79569 END IF;
79570 --
79571 EXCEPTION
79572   WHEN xla_exceptions_pkg.application_exception THEN
79573       RAISE;
79574   WHEN OTHERS THEN
79575        xla_exceptions_pkg.raise_message
79576            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_145');
79577 END AcctLineType_145;
79578 --
79579 
79580 ---------------------------------------
79581 --
79582 -- PRIVATE FUNCTION
79583 --         AcctLineType_146
79584 --
79585 ---------------------------------------
79586 PROCEDURE AcctLineType_146 (
79587   p_application_id        IN NUMBER
79588  ,p_event_id              IN NUMBER
79589  ,p_calculate_acctd_flag  IN VARCHAR2
79590  ,p_calculate_g_l_flag    IN VARCHAR2
79591  ,p_actual_flag           IN OUT VARCHAR2
79592  ,p_balance_type_code     OUT VARCHAR2
79593  ,p_gain_or_loss_ref      OUT VARCHAR2
79594  
79595 --Invoice Distribution Account
79596  , p_source_17            IN NUMBER
79597 --When to Account for Payment Option
79598  , p_source_38            IN VARCHAR2
79599 --Accounting Reversal Indicator
79600  , p_source_40            IN VARCHAR2
79601 --Business Flow Accounts Payable Application Identifier
79602  , p_source_42            IN NUMBER
79603 --Distribution Link Type
79604  , p_source_48            IN VARCHAR2
79605 --Purchase Order Exchange Rate Date
79606  , p_source_50            IN DATE
79607 --Purchase Order Exchange Rate
79608  , p_source_51            IN NUMBER
79609 --Purchase Order Exchange Rate Type
79610  , p_source_52            IN VARCHAR2
79611 --Override Accounted Amount Indicator
79612  , p_source_53            IN VARCHAR2
79613  , p_source_53_meaning    IN VARCHAR2
79614 --Third Party Type
79615  , p_source_56            IN VARCHAR2
79616 --Invoice Distribution Tax Line Identifier
79617  , p_source_58            IN NUMBER
79618 --Invoice Distribution Summary Tax Line Identifier
79619  , p_source_59            IN NUMBER
79620 --Invoice Distribution Tax Distribution Identifier from Tax
79621  , p_source_66            IN NUMBER
79622 --Prepayment Distribution Type
79623  , p_source_67            IN VARCHAR2
79624 --Recipient Invoice Distribution Type
79625  , p_source_68            IN VARCHAR2
79626  , p_source_68_meaning    IN VARCHAR2
79627 --Prepayment Application Distribution Identifier
79628  , p_source_71            IN NUMBER
79629 --Invoice Identifier
79630  , p_source_72            IN NUMBER
79634  , p_source_74            IN VARCHAR2
79631 --Business Flow Prepayment Invoice Distribution Type
79632  , p_source_73            IN VARCHAR2
79633 --Business Flow Prepayment Invoice Entity Code
79635 --Business Flow Prepayment Invoice Distribution Identifier
79636  , p_source_75            IN NUMBER
79637 --Business Flow Prepayment Invoice Identifier
79638  , p_source_76            IN NUMBER
79639 --Upgrade Encumbrance Credit Account Class
79640  , p_source_77            IN VARCHAR2
79641 --Payables Encumbrance Upgrade Credit Account
79642  , p_source_78            IN NUMBER
79643 --Payables Encumbrance Upgrade Credit Amount
79644  , p_source_79            IN NUMBER
79645 --Invoice Currency Code
79646  , p_source_80            IN VARCHAR2
79647 --Payables Encumbrance Upgrade Credit Base Amount
79648  , p_source_81            IN NUMBER
79649 --Upgrade Encumbrance Debit Account Class
79650  , p_source_82            IN VARCHAR2
79651 --Payables Encumbrance Upgrade Debit Account
79652  , p_source_83            IN NUMBER
79653 --Payables Encumbrance Upgrade Debit Amount
79654  , p_source_84            IN NUMBER
79655 --Payables Encumbrance Upgrade Debit Base Amount
79656  , p_source_85            IN NUMBER
79657 --Payables Encumbrance Upgrade Option
79658  , p_source_86            IN VARCHAR2
79659 --Prepayment Distribution Amount
79660  , p_source_87            IN NUMBER
79661 --Deferred Accounting End Date
79662  , p_source_90            IN DATE
79663 --Deferred Accounting Option
79664  , p_source_91            IN VARCHAR2
79665 --Deferred Accounting Start Date
79666  , p_source_92            IN DATE
79667 --Invoice Supplier Identifier
79668  , p_source_93            IN NUMBER
79669 --Invoice Supplier Site Identifier
79670  , p_source_94            IN NUMBER
79671 --Identifier of the Prepayment Application Reversed
79672  , p_source_95            IN NUMBER
79673 --Payables Upgrade Credit Encumbrance Type Identifier
79674  , p_source_96            IN NUMBER
79675 --Payables Upgrade Debit Encumbrance Type Identifier
79676  , p_source_97            IN NUMBER
79677 --Prepayment Payment Currency Code
79678  , p_source_98            IN VARCHAR2
79679 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
79680  , p_source_99            IN NUMBER
79681 --Accrue on Receipt Option
79682  , p_source_100            IN VARCHAR2
79683  , p_source_100_meaning    IN VARCHAR2
79684 )
79685 IS
79686 
79687 l_component_type              VARCHAR2(80);
79688 l_component_code              VARCHAR2(30);
79689 l_component_type_code         VARCHAR2(1);
79690 l_component_appl_id           INTEGER;
79691 l_amb_context_code            VARCHAR2(30);
79692 l_entity_code                 VARCHAR2(30);
79693 l_event_class_code            VARCHAR2(30);
79694 l_ae_header_id                NUMBER;
79695 l_event_type_code             VARCHAR2(30);
79696 l_line_definition_code        VARCHAR2(30);
79697 l_line_definition_owner_code  VARCHAR2(1);
79698 --
79699 -- adr variables
79700 l_segment                     VARCHAR2(30);
79701 l_ccid                        NUMBER;
79702 l_adr_transaction_coa_id      NUMBER;
79703 l_adr_accounting_coa_id       NUMBER;
79704 l_adr_flexfield_segment_code  VARCHAR2(30);
79705 l_adr_flex_value_set_id       NUMBER;
79706 l_adr_value_type_code         VARCHAR2(30);
79707 l_adr_value_combination_id    NUMBER;
79708 l_adr_value_segment_code      VARCHAR2(30);
79709 
79710 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
79711 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
79712 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
79713 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
79714 
79715 -- 4262811 Variables ------------------------------------------------------------------------------------------
79716 l_entered_amt_idx             NUMBER;
79717 l_accted_amt_idx              NUMBER;
79718 l_acc_rev_flag                VARCHAR2(1);
79719 l_accrual_line_num            NUMBER;
79720 l_tmp_amt                     NUMBER;
79721 l_acc_rev_natural_side_code   VARCHAR2(1);
79722 
79723 l_num_entries                 NUMBER;
79724 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
79725 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
79726 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
79727 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
79728 l_recog_line_1                NUMBER;
79729 l_recog_line_2                NUMBER;
79730 
79731 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
79732 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
79733 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
79734 
79735 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79736 
79737 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
79738 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
79739 
79740 ---------------------------------------------------------------------------------------------------------------
79741 
79742 
79743 --
79744 -- bulk performance
79745 --
79746 l_balance_type_code           VARCHAR2(1);
79747 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
79748 l_log_module                  VARCHAR2(240);
79749 
79750 --
79751 -- Upgrade strategy
79752 --
79753 l_actual_upg_option           VARCHAR2(1);
79754 l_enc_upg_option           VARCHAR2(1);
79755 
79759 IF g_log_enabled THEN
79756 --
79757 BEGIN
79758 --
79760       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_146';
79761 END IF;
79762 --
79763 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79764 
79765       trace
79766          (p_msg      => 'BEGIN of AcctLineType_146'
79767          ,p_level    => C_LEVEL_PROCEDURE
79768          ,p_module   => l_log_module);
79769 
79770 END IF;
79771 --
79772 l_component_type             := 'AMB_JLT';
79773 l_component_code             := 'AP_NRTAX_ACCRUAL_PREPAY_PAY';
79774 l_component_type_code        := 'S';
79775 l_component_appl_id          :=  200;
79776 l_amb_context_code           := 'DEFAULT';
79777 l_entity_code                := 'AP_INVOICES';
79778 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
79779 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
79780 l_line_definition_owner_code := 'S';
79781 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
79782 --
79783 l_balance_type_code          := 'A';
79784 l_segment                     := NULL;
79785 l_ccid                        := NULL;
79786 l_adr_transaction_coa_id      := NULL;
79787 l_adr_accounting_coa_id       := NULL;
79788 l_adr_flexfield_segment_code  := NULL;
79789 l_adr_flex_value_set_id       := NULL;
79790 l_adr_value_type_code         := NULL;
79791 l_adr_value_combination_id    := NULL;
79792 l_adr_value_segment_code      := NULL;
79793 
79794 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
79795 l_bflow_class_code           := '';    -- 4219869 Business Flow
79796 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
79797 l_budgetary_control_flag     := 'N';
79798 
79799 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
79800 l_bflow_applied_to_amt       := NULL; -- 5132302
79801 l_entered_amt_idx            := NULL;          -- 4262811
79802 l_accted_amt_idx             := NULL;          -- 4262811
79803 l_acc_rev_flag               := NULL;          -- 4262811
79804 l_accrual_line_num           := NULL;          -- 4262811
79805 l_tmp_amt                    := NULL;          -- 4262811
79806 --
79807  
79808 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79809     l_balance_type_code <> 'B' THEN
79810 IF NVL(p_source_38,'
79811 ') <>  'CLEAR_CLEAR' AND 
79812 (NVL(p_source_67,'
79813 ') =  'PREPAY APPL' OR 
79814 NVL(p_source_67,'
79815 ') =  'PREPAY APPL NONREC TAX' OR 
79816 NVL(p_source_67,'
79817 ') =  'PREPAY APPL REC TAX') AND 
79818 NVL(p_source_68,'
79819 ') =  'NONREC_TAX' AND 
79820 NVL(p_source_100,'
79821 ') =  'Y'
79822  THEN 
79823 
79824    --
79825    XLA_AE_LINES_PKG.SetNewLine;
79826 
79827    p_balance_type_code          := l_balance_type_code;
79828    -- set the flag so later we will know whether the gain loss line needs to be created
79829    
79830    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79831      p_actual_flag :='A';
79832    END IF;
79833 
79834    --
79835    -- bulk performance
79836    --
79837    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79838                                       p_header_num   => 0); -- 4262811
79839    --
79840    -- set accounting line options
79841    --
79842    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79843            p_natural_side_code          => 'C'
79844          , p_gain_or_loss_flag          => 'N'
79845          , p_gl_transfer_mode_code      => 'S'
79846          , p_acct_entry_type_code       => 'A'
79847          , p_switch_side_flag           => 'Y'
79848          , p_merge_duplicate_code       => 'A'
79849          );
79850    --
79851    l_acc_rev_natural_side_code := 'D';  -- 4262811
79852    -- 
79853    --
79854    -- set accounting line type info
79855    --
79856    xla_ae_lines_pkg.SetAcctLineType
79857       (p_component_type             => l_component_type
79858       ,p_event_type_code            => l_event_type_code
79859       ,p_line_definition_owner_code => l_line_definition_owner_code
79860       ,p_line_definition_code       => l_line_definition_code
79861       ,p_accounting_line_code       => l_component_code
79862       ,p_accounting_line_type_code  => l_component_type_code
79863       ,p_accounting_line_appl_id    => l_component_appl_id
79864       ,p_amb_context_code           => l_amb_context_code
79865       ,p_entity_code                => l_entity_code
79866       ,p_event_class_code           => l_event_class_code);
79867    --
79868    -- set accounting class
79869    --
79870    xla_ae_lines_pkg.SetAcctClass(
79871            p_accounting_class_code  => 'ACCRUAL'
79872          , p_ae_header_id           => l_ae_header_id
79873          );
79874 
79875    --
79876    -- set rounding class
79877    --
79878    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79879                       'ACCRUAL';
79880 
79881    --
79882    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79883    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79884    --
79885    -- bulk performance
79886    --
79887    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79888 
79889    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79893    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79890       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79891 
79892    -- 4955764
79894       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79895 
79896    -- 4458381 Public Sector Enh
79897    
79898    --
79899    -- set accounting attributes for the line type
79900    --
79901    l_entered_amt_idx := 25;
79902    l_accted_amt_idx  := 30;
79903    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
79904    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79905    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
79906    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79907    l_rec_acct_attrs.array_num_value(2)  := 
79908 xla_ae_sources_pkg.GetSystemSourceNum(
79909    p_source_code           => 'XLA_EVENT_APPL_ID'
79910  , p_source_type_code      => 'Y'
79911  , p_source_application_id =>  602
79912 );
79913    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79914    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
79915    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79916    l_rec_acct_attrs.array_char_value(4)  := 
79917 xla_ae_sources_pkg.GetSystemSourceChar(
79918    p_source_code           => 'XLA_ENTITY_CODE'
79919  , p_source_type_code      => 'Y'
79920  , p_source_application_id =>  602
79921 );
79922    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79923    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
79924    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79925    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
79926    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79927    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
79928    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79929    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
79930    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79931    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
79932    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79933    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
79934    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79935    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
79936    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79937    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
79938    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79939    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
79940    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
79941    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
79942    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
79943    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
79944    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
79945    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
79946    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
79947    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
79948    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
79949    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
79950    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
79951    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
79952    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
79953    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
79954    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
79955    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
79956    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
79957    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
79958    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
79959    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
79960    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
79961    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
79962    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
79963    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
79964    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
79965    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
79966    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
79967    l_rec_acct_attrs.array_date_value(27)  := p_source_50;
79968    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
79969    l_rec_acct_attrs.array_num_value(28)  := p_source_51;
79970    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
79971    l_rec_acct_attrs.array_char_value(29)  := p_source_52;
79972    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
79973    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
79974    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
79975    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
79976    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
79977    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
79978    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
79979    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
79980    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
79981    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
79985    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
79982    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
79983    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
79984    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
79986    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
79987    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
79988    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
79989    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
79990    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
79991    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
79992    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
79993    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
79994    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
79995    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
79996    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
79997    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
79998    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
79999    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
80000    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
80001    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
80002 
80003    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80004    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80005 
80006    ---------------------------------------------------------------------------------------------------------------
80007    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80008    ---------------------------------------------------------------------------------------------------------------
80009    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80010 
80011    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80012    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80013 
80014    IF xla_accounting_cache_pkg.GetValueChar
80015          (p_source_code         => 'LEDGER_CATEGORY_CODE'
80016          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80017    AND l_bflow_method_code = 'PRIOR_ENTRY'
80018 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80019    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80020          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80021        )
80022    THEN
80023          xla_ae_lines_pkg.BflowUpgEntry
80024            (p_business_method_code    => l_bflow_method_code
80025            ,p_business_class_code     => l_bflow_class_code
80026            ,p_balance_type            => l_balance_type_code);
80027    ELSE
80028       NULL;
80029 -- No business flow processing for business flow method of NONE.
80030    END IF;
80031 
80032    --
80033    -- call analytical criteria
80034    --
80035    
80036    --
80037    -- call description
80038    --
80039    -- No description or it is inherited.
80040    --
80041    -- call ADRs
80042    -- Bug 4922099
80043    --
80044    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80045         (NVL(l_actual_upg_option, 'N') = 'O') OR
80046         (NVL(l_enc_upg_option, 'N') = 'O')
80047       )
80048    THEN
80049    NULL;
80050    --
80051    --
80052    
80053   l_ccid := AcctDerRule_26(
80054            p_application_id           => p_application_id
80055          , p_ae_header_id             => l_ae_header_id 
80056 , p_source_17 => p_source_17
80057          , x_transaction_coa_id       => l_adr_transaction_coa_id
80058          , x_accounting_coa_id        => l_adr_accounting_coa_id
80059          , x_value_type_code          => l_adr_value_type_code
80060          , p_side                     => 'NA'
80061    );
80062 
80063    xla_ae_lines_pkg.set_ccid(
80064     p_code_combination_id          => l_ccid
80065   , p_value_type_code              => l_adr_value_type_code
80066   , p_transaction_coa_id           => l_adr_transaction_coa_id
80067   , p_accounting_coa_id            => l_adr_accounting_coa_id
80068   , p_adr_code                     => 'AP_INVOICE_DIST'
80069   , p_adr_type_code                => 'S'
80070   , p_component_type               => l_component_type
80071   , p_component_code               => l_component_code
80072   , p_component_type_code          => l_component_type_code
80073   , p_component_appl_id            => l_component_appl_id
80074   , p_amb_context_code             => l_amb_context_code
80075   , p_side                         => 'NA'
80076   );
80077 
80078 
80079    --
80080    --
80081    END IF;
80082    --
80083    -- Bug 4922099
80084    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80085           (NVL(l_enc_upg_option, 'N') = 'O')
80086         ) AND
80087         (l_bflow_method_code = 'PRIOR_ENTRY')
80088       )
80089    THEN
80090       IF
80091       --
80092       1 = 2
80093       --
80094       THEN
80095       xla_accounting_err_pkg.build_message
80096                                     (p_appli_s_name            => 'XLA'
80097                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80101                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
80098                                     ,p_token_1                 => 'LINE_NUMBER'
80099                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
80100                                     ,p_token_2                 => 'LINE_TYPE_NAME'
80102                                                                              l_component_type
80103                                                                             ,l_component_code
80104                                                                             ,l_component_type_code
80105                                                                             ,l_component_appl_id
80106                                                                             ,l_amb_context_code
80107                                                                             ,l_entity_code
80108                                                                             ,l_event_class_code
80109                                                                            )
80110                                     ,p_token_3                 => 'OWNER'
80111                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
80112                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
80113                                                                           ,p_lookup_code    => l_component_type_code
80114                                                                          )
80115                                     ,p_token_4                 => 'PRODUCT_NAME'
80116                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80117                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80118                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80119                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80120                                     ,p_ae_header_id            =>  NULL
80121                                        );
80122 
80123         IF (C_LEVEL_ERROR>= g_log_level) THEN
80124                  trace
80125                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80126                       ,p_level    => C_LEVEL_ERROR
80127                       ,p_module   => l_log_module);
80128         END IF;
80129       END IF;
80130    END IF;
80131    --
80132    --
80133    ------------------------------------------------------------------------------------------------
80134    -- 4219869 Business Flow
80135    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80136    -- Prior Entry.  Currently, the following code is always generated.
80137    ------------------------------------------------------------------------------------------------
80138    XLA_AE_LINES_PKG.ValidateCurrentLine;
80139 
80140    ------------------------------------------------------------------------------------
80141    -- 4219869 Business Flow
80142    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80143    ------------------------------------------------------------------------------------
80144    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80145 
80146    ----------------------------------------------------------------------------------
80147    -- 4219869 Business Flow
80148    -- Update journal entry status -- Need to generate this within IF <condition>
80149    ----------------------------------------------------------------------------------
80150    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80151          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80152          ,p_balance_type_code => l_balance_type_code
80153          );
80154 
80155    -------------------------------------------------------------------------------------------
80156    -- 4262811 - Generate the Accrual Reversal lines
80157    -------------------------------------------------------------------------------------------
80158    BEGIN
80159       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80160                               (g_array_event(p_event_id).array_value_num('header_index'));
80161       IF l_acc_rev_flag IS NULL THEN
80162          l_acc_rev_flag := 'N';
80163       END IF;
80164    EXCEPTION
80165       WHEN OTHERS THEN
80166          l_acc_rev_flag := 'N';
80167    END;
80168    --
80169    IF (l_acc_rev_flag = 'Y') THEN
80170 
80171        -- 4645092  ------------------------------------------------------------------------------
80172        -- To allow MPA report to determine if it should generate report process
80173        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80174        ------------------------------------------------------------------------------------------
80175 
80176        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80177        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80178    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
80179    -- call ADRs
80180    -- Bug 4922099
80181    --
80182    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80183         (NVL(l_actual_upg_option, 'N') = 'O') OR
80184         (NVL(l_enc_upg_option, 'N') = 'O')
80185       )
80186    THEN
80187    NULL;
80188    --
80189    --
80190    
80194 , p_source_17 => p_source_17
80191   l_ccid := AcctDerRule_26(
80192            p_application_id           => p_application_id
80193          , p_ae_header_id             => l_ae_header_id 
80195          , x_transaction_coa_id       => l_adr_transaction_coa_id
80196          , x_accounting_coa_id        => l_adr_accounting_coa_id
80197          , x_value_type_code          => l_adr_value_type_code
80198          , p_side                     => 'NA'
80199    );
80200 
80201    xla_ae_lines_pkg.set_ccid(
80202     p_code_combination_id          => l_ccid
80203   , p_value_type_code              => l_adr_value_type_code
80204   , p_transaction_coa_id           => l_adr_transaction_coa_id
80205   , p_accounting_coa_id            => l_adr_accounting_coa_id
80206   , p_adr_code                     => 'AP_INVOICE_DIST'
80207   , p_adr_type_code                => 'S'
80208   , p_component_type               => l_component_type
80209   , p_component_code               => l_component_code
80210   , p_component_type_code          => l_component_type_code
80211   , p_component_appl_id            => l_component_appl_id
80212   , p_amb_context_code             => l_amb_context_code
80213   , p_side                         => 'NA'
80214   );
80215 
80216 
80217    --
80218    --
80219    END IF;
80220 
80221        --
80222        -- Update the line information that should be overwritten
80223        --
80224        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80225                                          p_header_num   => 1);
80226        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
80227 
80228        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80229 
80230        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
80231           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80232        END IF;
80233 
80234       --
80235       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80236       --
80237       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80238           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
80239       ELSE
80240           ---------------------------------------------------------------------------------------------------
80241           -- 4262811a Switch Sign
80242           ---------------------------------------------------------------------------------------------------
80243           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
80244           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80245                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80246           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80247                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80248           -- 5132302
80249           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80250                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80251 
80252       END IF;
80253 
80254       -- 4955764
80255       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80256       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80257 
80258 
80259       XLA_AE_LINES_PKG.ValidateCurrentLine;
80260       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80261 
80262       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80263                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80264                ,p_balance_type_code => l_balance_type_code);
80265 
80266    END IF;
80267 
80268    -----------------------------------------------------------------------------------------
80269    -- 4262811 Multiperiod Accounting
80270    -----------------------------------------------------------------------------------------
80271      -- No MPA option is assigned.
80272 
80273 
80274 END IF;
80275 END IF;
80276 --
80277 
80278 --
80279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80280    trace
80281       (p_msg      => 'END of AcctLineType_146'
80282       ,p_level    => C_LEVEL_PROCEDURE
80283       ,p_module   => l_log_module);
80284 END IF;
80285 --
80286 EXCEPTION
80287   WHEN xla_exceptions_pkg.application_exception THEN
80288       RAISE;
80289   WHEN OTHERS THEN
80290        xla_exceptions_pkg.raise_message
80291            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_146');
80292 END AcctLineType_146;
80293 --
80294 
80295 ---------------------------------------
80296 --
80297 -- PRIVATE FUNCTION
80298 --         AcctLineType_147
80299 --
80300 ---------------------------------------
80301 PROCEDURE AcctLineType_147 (
80302   p_application_id        IN NUMBER
80303  ,p_event_id              IN NUMBER
80304  ,p_calculate_acctd_flag  IN VARCHAR2
80305  ,p_calculate_g_l_flag    IN VARCHAR2
80306  ,p_actual_flag           IN OUT VARCHAR2
80307  ,p_balance_type_code     OUT VARCHAR2
80308  ,p_gain_or_loss_ref      OUT VARCHAR2
80309  
80310 --Recipient Invoice Distribution Account
80311  , p_source_36            IN NUMBER
80312 --When to Account for Payment Option
80316 --Business Flow Accounts Payable Application Identifier
80313  , p_source_38            IN VARCHAR2
80314 --Accounting Reversal Indicator
80315  , p_source_40            IN VARCHAR2
80317  , p_source_42            IN NUMBER
80318 --Distribution Link Type
80319  , p_source_48            IN VARCHAR2
80320 --Override Accounted Amount Indicator
80321  , p_source_53            IN VARCHAR2
80322  , p_source_53_meaning    IN VARCHAR2
80323 --Third Party Type
80324  , p_source_56            IN VARCHAR2
80325 --Invoice Distribution Tax Line Identifier
80326  , p_source_58            IN NUMBER
80327 --Invoice Distribution Summary Tax Line Identifier
80328  , p_source_59            IN NUMBER
80329 --Invoice Distribution Tax Distribution Identifier from Tax
80330  , p_source_66            IN NUMBER
80331 --Prepayment Distribution Type
80332  , p_source_67            IN VARCHAR2
80333 --Recipient Invoice Distribution Type
80334  , p_source_68            IN VARCHAR2
80335  , p_source_68_meaning    IN VARCHAR2
80336 --Prepayment Application Distribution Identifier
80337  , p_source_71            IN NUMBER
80338 --Invoice Identifier
80339  , p_source_72            IN NUMBER
80340 --Business Flow Prepayment Invoice Distribution Type
80341  , p_source_73            IN VARCHAR2
80342 --Business Flow Prepayment Invoice Entity Code
80343  , p_source_74            IN VARCHAR2
80344 --Business Flow Prepayment Invoice Distribution Identifier
80345  , p_source_75            IN NUMBER
80346 --Business Flow Prepayment Invoice Identifier
80347  , p_source_76            IN NUMBER
80348 --Upgrade Encumbrance Credit Account Class
80349  , p_source_77            IN VARCHAR2
80350 --Payables Encumbrance Upgrade Credit Account
80351  , p_source_78            IN NUMBER
80352 --Payables Encumbrance Upgrade Credit Amount
80353  , p_source_79            IN NUMBER
80354 --Invoice Currency Code
80355  , p_source_80            IN VARCHAR2
80356 --Payables Encumbrance Upgrade Credit Base Amount
80357  , p_source_81            IN NUMBER
80358 --Upgrade Encumbrance Debit Account Class
80359  , p_source_82            IN VARCHAR2
80360 --Payables Encumbrance Upgrade Debit Account
80361  , p_source_83            IN NUMBER
80362 --Payables Encumbrance Upgrade Debit Amount
80363  , p_source_84            IN NUMBER
80364 --Payables Encumbrance Upgrade Debit Base Amount
80365  , p_source_85            IN NUMBER
80366 --Payables Encumbrance Upgrade Option
80367  , p_source_86            IN VARCHAR2
80368 --Prepayment Distribution Amount
80369  , p_source_87            IN NUMBER
80370 --Prepayment Clearing Currency Code
80371  , p_source_88            IN VARCHAR2
80372 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
80373  , p_source_89            IN NUMBER
80374 --Deferred Accounting End Date
80375  , p_source_90            IN DATE
80376 --Deferred Accounting Option
80377  , p_source_91            IN VARCHAR2
80378 --Deferred Accounting Start Date
80379  , p_source_92            IN DATE
80380 --Invoice Supplier Identifier
80381  , p_source_93            IN NUMBER
80382 --Invoice Supplier Site Identifier
80383  , p_source_94            IN NUMBER
80384 --Identifier of the Prepayment Application Reversed
80385  , p_source_95            IN NUMBER
80386 --Payables Upgrade Credit Encumbrance Type Identifier
80387  , p_source_96            IN NUMBER
80388 --Payables Upgrade Debit Encumbrance Type Identifier
80389  , p_source_97            IN NUMBER
80390 --Accrue on Receipt Option
80391  , p_source_100            IN VARCHAR2
80392  , p_source_100_meaning    IN VARCHAR2
80393 --Prepayment Clearing Exchange Date
80394  , p_source_118            IN DATE
80395 --Prepayment Clearing Exchange Rate
80396  , p_source_119            IN NUMBER
80397 --Prepayment Clearing Exchange Rate Type
80398  , p_source_120            IN VARCHAR2
80399 )
80400 IS
80401 
80402 l_component_type              VARCHAR2(80);
80403 l_component_code              VARCHAR2(30);
80404 l_component_type_code         VARCHAR2(1);
80405 l_component_appl_id           INTEGER;
80406 l_amb_context_code            VARCHAR2(30);
80407 l_entity_code                 VARCHAR2(30);
80408 l_event_class_code            VARCHAR2(30);
80409 l_ae_header_id                NUMBER;
80410 l_event_type_code             VARCHAR2(30);
80411 l_line_definition_code        VARCHAR2(30);
80412 l_line_definition_owner_code  VARCHAR2(1);
80413 --
80414 -- adr variables
80415 l_segment                     VARCHAR2(30);
80416 l_ccid                        NUMBER;
80417 l_adr_transaction_coa_id      NUMBER;
80418 l_adr_accounting_coa_id       NUMBER;
80419 l_adr_flexfield_segment_code  VARCHAR2(30);
80420 l_adr_flex_value_set_id       NUMBER;
80421 l_adr_value_type_code         VARCHAR2(30);
80422 l_adr_value_combination_id    NUMBER;
80423 l_adr_value_segment_code      VARCHAR2(30);
80424 
80425 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
80426 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
80427 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
80428 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
80429 
80430 -- 4262811 Variables ------------------------------------------------------------------------------------------
80431 l_entered_amt_idx             NUMBER;
80432 l_accted_amt_idx              NUMBER;
80433 l_acc_rev_flag                VARCHAR2(1);
80434 l_accrual_line_num            NUMBER;
80435 l_tmp_amt                     NUMBER;
80436 l_acc_rev_natural_side_code   VARCHAR2(1);
80440 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
80437 
80438 l_num_entries                 NUMBER;
80439 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
80441 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
80442 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
80443 l_recog_line_1                NUMBER;
80444 l_recog_line_2                NUMBER;
80445 
80446 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
80447 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
80448 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
80449 
80450 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80451 
80452 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
80453 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
80454 
80455 ---------------------------------------------------------------------------------------------------------------
80456 
80457 
80458 --
80459 -- bulk performance
80460 --
80461 l_balance_type_code           VARCHAR2(1);
80462 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
80463 l_log_module                  VARCHAR2(240);
80464 
80465 --
80466 -- Upgrade strategy
80467 --
80468 l_actual_upg_option           VARCHAR2(1);
80469 l_enc_upg_option           VARCHAR2(1);
80470 
80471 --
80472 BEGIN
80473 --
80474 IF g_log_enabled THEN
80475       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_147';
80476 END IF;
80477 --
80478 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80479 
80480       trace
80481          (p_msg      => 'BEGIN of AcctLineType_147'
80482          ,p_level    => C_LEVEL_PROCEDURE
80483          ,p_module   => l_log_module);
80484 
80485 END IF;
80486 --
80487 l_component_type             := 'AMB_JLT';
80488 l_component_code             := 'AP_NRTAX_PREPAY_CLR_RATE_APP';
80489 l_component_type_code        := 'S';
80490 l_component_appl_id          :=  200;
80491 l_amb_context_code           := 'DEFAULT';
80492 l_entity_code                := 'AP_INVOICES';
80493 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
80494 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
80495 l_line_definition_owner_code := 'S';
80496 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
80497 --
80498 l_balance_type_code          := 'A';
80499 l_segment                     := NULL;
80500 l_ccid                        := NULL;
80501 l_adr_transaction_coa_id      := NULL;
80502 l_adr_accounting_coa_id       := NULL;
80503 l_adr_flexfield_segment_code  := NULL;
80504 l_adr_flex_value_set_id       := NULL;
80505 l_adr_value_type_code         := NULL;
80506 l_adr_value_combination_id    := NULL;
80507 l_adr_value_segment_code      := NULL;
80508 
80509 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
80510 l_bflow_class_code           := '';    -- 4219869 Business Flow
80511 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
80512 l_budgetary_control_flag     := 'N';
80513 
80514 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
80515 l_bflow_applied_to_amt       := NULL; -- 5132302
80516 l_entered_amt_idx            := NULL;          -- 4262811
80517 l_accted_amt_idx             := NULL;          -- 4262811
80518 l_acc_rev_flag               := NULL;          -- 4262811
80519 l_accrual_line_num           := NULL;          -- 4262811
80520 l_tmp_amt                    := NULL;          -- 4262811
80521 --
80522  
80523 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
80524     l_balance_type_code <> 'B' THEN
80525 IF NVL(p_source_38,'
80526 ') =  'CLEAR_CLEAR' AND 
80527 (NVL(p_source_67,'
80528 ') =  'PREPAY APPL' OR 
80529 NVL(p_source_67,'
80530 ') =  'PREPAY APPL NONREC TAX' OR 
80531 NVL(p_source_67,'
80532 ') =  'PREPAY APPL REC TAX') AND 
80533 (NVL(p_source_68,'
80534 ') =  'NONREC_TAX' OR 
80535 NVL(p_source_68,'
80536 ') =  'TERV') AND 
80537 NVL(p_source_100,'
80538 ') <>  'Y'
80539  THEN 
80540 
80541    --
80542    XLA_AE_LINES_PKG.SetNewLine;
80543 
80544    p_balance_type_code          := l_balance_type_code;
80545    -- set the flag so later we will know whether the gain loss line needs to be created
80546    
80547    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
80548      p_actual_flag :='A';
80549    END IF;
80550 
80551    --
80552    -- bulk performance
80553    --
80554    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
80555                                       p_header_num   => 0); -- 4262811
80556    --
80557    -- set accounting line options
80558    --
80559    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
80560            p_natural_side_code          => 'C'
80561          , p_gain_or_loss_flag          => 'N'
80562          , p_gl_transfer_mode_code      => 'S'
80563          , p_acct_entry_type_code       => 'A'
80564          , p_switch_side_flag           => 'Y'
80565          , p_merge_duplicate_code       => 'A'
80566          );
80567    --
80568    l_acc_rev_natural_side_code := 'D';  -- 4262811
80569    -- 
80570    --
80571    -- set accounting line type info
80572    --
80573    xla_ae_lines_pkg.SetAcctLineType
80577       ,p_line_definition_code       => l_line_definition_code
80574       (p_component_type             => l_component_type
80575       ,p_event_type_code            => l_event_type_code
80576       ,p_line_definition_owner_code => l_line_definition_owner_code
80578       ,p_accounting_line_code       => l_component_code
80579       ,p_accounting_line_type_code  => l_component_type_code
80580       ,p_accounting_line_appl_id    => l_component_appl_id
80581       ,p_amb_context_code           => l_amb_context_code
80582       ,p_entity_code                => l_entity_code
80583       ,p_event_class_code           => l_event_class_code);
80584    --
80585    -- set accounting class
80586    --
80587    xla_ae_lines_pkg.SetAcctClass(
80588            p_accounting_class_code  => 'NRTAX'
80589          , p_ae_header_id           => l_ae_header_id
80590          );
80591 
80592    --
80593    -- set rounding class
80594    --
80595    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
80596                       'NRTAX';
80597 
80598    --
80599    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
80600    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
80601    --
80602    -- bulk performance
80603    --
80604    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
80605 
80606    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
80607       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
80608 
80609    -- 4955764
80610    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80611       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
80612 
80613    -- 4458381 Public Sector Enh
80614    
80615    --
80616    -- set accounting attributes for the line type
80617    --
80618    l_entered_amt_idx := 25;
80619    l_accted_amt_idx  := 30;
80620    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
80621    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
80622    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
80623    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
80624    l_rec_acct_attrs.array_num_value(2)  := 
80625 xla_ae_sources_pkg.GetSystemSourceNum(
80626    p_source_code           => 'XLA_EVENT_APPL_ID'
80627  , p_source_type_code      => 'Y'
80628  , p_source_application_id =>  602
80629 );
80630    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
80631    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
80632    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
80633    l_rec_acct_attrs.array_char_value(4)  := 
80634 xla_ae_sources_pkg.GetSystemSourceChar(
80635    p_source_code           => 'XLA_ENTITY_CODE'
80636  , p_source_type_code      => 'Y'
80637  , p_source_application_id =>  602
80638 );
80639    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
80640    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
80641    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
80642    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
80643    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
80644    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
80645    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
80646    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
80647    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
80648    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
80649    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
80650    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
80651    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
80652    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
80653    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
80654    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
80655    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
80656    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
80657    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
80658    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
80659    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
80660    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
80661    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
80662    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
80663    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
80664    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
80665    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
80666    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
80667    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
80668    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
80669    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
80670    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
80671    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
80672    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
80673    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
80677    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
80674    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
80675    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
80676    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
80678    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
80679    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
80680    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
80681    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
80682    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
80683    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
80684    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
80685    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
80686    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
80687    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
80688    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
80689    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
80690    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
80691    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
80692    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
80693    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
80694    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
80695    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
80696    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
80697    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
80698    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
80699    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
80700    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
80701    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
80702    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
80703    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
80704    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
80705    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
80706    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
80707    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
80708    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
80709    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
80710    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
80711    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
80712    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
80713    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
80714    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
80715    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
80716    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
80717    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
80718    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
80719 
80720    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80721    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80722 
80723    ---------------------------------------------------------------------------------------------------------------
80724    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80725    ---------------------------------------------------------------------------------------------------------------
80726    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80727 
80728    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80729    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80730 
80731    IF xla_accounting_cache_pkg.GetValueChar
80732          (p_source_code         => 'LEDGER_CATEGORY_CODE'
80733          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80734    AND l_bflow_method_code = 'PRIOR_ENTRY'
80735 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80736    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80737          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80738        )
80739    THEN
80740          xla_ae_lines_pkg.BflowUpgEntry
80741            (p_business_method_code    => l_bflow_method_code
80742            ,p_business_class_code     => l_bflow_class_code
80743            ,p_balance_type            => l_balance_type_code);
80744    ELSE
80745       NULL;
80746 -- No business flow processing for business flow method of NONE.
80747    END IF;
80748 
80749    --
80750    -- call analytical criteria
80751    --
80752    
80753    --
80754    -- call description
80755    --
80756    -- No description or it is inherited.
80757    --
80758    -- call ADRs
80759    -- Bug 4922099
80760    --
80761    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80762         (NVL(l_actual_upg_option, 'N') = 'O') OR
80763         (NVL(l_enc_upg_option, 'N') = 'O')
80764       )
80765    THEN
80766    NULL;
80767    --
80768    --
80769    
80770   l_ccid := AcctDerRule_33(
80771            p_application_id           => p_application_id
80772          , p_ae_header_id             => l_ae_header_id 
80773 , p_source_36 => p_source_36
80774          , x_transaction_coa_id       => l_adr_transaction_coa_id
80778    );
80775          , x_accounting_coa_id        => l_adr_accounting_coa_id
80776          , x_value_type_code          => l_adr_value_type_code
80777          , p_side                     => 'NA'
80779 
80780    xla_ae_lines_pkg.set_ccid(
80781     p_code_combination_id          => l_ccid
80782   , p_value_type_code              => l_adr_value_type_code
80783   , p_transaction_coa_id           => l_adr_transaction_coa_id
80784   , p_accounting_coa_id            => l_adr_accounting_coa_id
80785   , p_adr_code                     => 'AP_RECP_INV_DIST'
80786   , p_adr_type_code                => 'S'
80787   , p_component_type               => l_component_type
80788   , p_component_code               => l_component_code
80789   , p_component_type_code          => l_component_type_code
80790   , p_component_appl_id            => l_component_appl_id
80791   , p_amb_context_code             => l_amb_context_code
80792   , p_side                         => 'NA'
80793   );
80794 
80795 
80796    --
80797    --
80798    END IF;
80799    --
80800    -- Bug 4922099
80801    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80802           (NVL(l_enc_upg_option, 'N') = 'O')
80803         ) AND
80804         (l_bflow_method_code = 'PRIOR_ENTRY')
80805       )
80806    THEN
80807       IF
80808       --
80809       1 = 2
80810       --
80811       THEN
80812       xla_accounting_err_pkg.build_message
80813                                     (p_appli_s_name            => 'XLA'
80814                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80815                                     ,p_token_1                 => 'LINE_NUMBER'
80816                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
80817                                     ,p_token_2                 => 'LINE_TYPE_NAME'
80818                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
80819                                                                              l_component_type
80820                                                                             ,l_component_code
80821                                                                             ,l_component_type_code
80822                                                                             ,l_component_appl_id
80823                                                                             ,l_amb_context_code
80824                                                                             ,l_entity_code
80825                                                                             ,l_event_class_code
80826                                                                            )
80827                                     ,p_token_3                 => 'OWNER'
80828                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
80829                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
80830                                                                           ,p_lookup_code    => l_component_type_code
80831                                                                          )
80832                                     ,p_token_4                 => 'PRODUCT_NAME'
80833                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80834                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80835                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80836                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80837                                     ,p_ae_header_id            =>  NULL
80838                                        );
80839 
80840         IF (C_LEVEL_ERROR>= g_log_level) THEN
80841                  trace
80842                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80843                       ,p_level    => C_LEVEL_ERROR
80844                       ,p_module   => l_log_module);
80845         END IF;
80846       END IF;
80847    END IF;
80848    --
80849    --
80850    ------------------------------------------------------------------------------------------------
80851    -- 4219869 Business Flow
80852    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80853    -- Prior Entry.  Currently, the following code is always generated.
80854    ------------------------------------------------------------------------------------------------
80855    XLA_AE_LINES_PKG.ValidateCurrentLine;
80856 
80857    ------------------------------------------------------------------------------------
80858    -- 4219869 Business Flow
80859    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80860    ------------------------------------------------------------------------------------
80861    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80862 
80863    ----------------------------------------------------------------------------------
80864    -- 4219869 Business Flow
80865    -- Update journal entry status -- Need to generate this within IF <condition>
80866    ----------------------------------------------------------------------------------
80867    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80868          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80869          ,p_balance_type_code => l_balance_type_code
80870          );
80871 
80872    -------------------------------------------------------------------------------------------
80873    -- 4262811 - Generate the Accrual Reversal lines
80877                               (g_array_event(p_event_id).array_value_num('header_index'));
80874    -------------------------------------------------------------------------------------------
80875    BEGIN
80876       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80878       IF l_acc_rev_flag IS NULL THEN
80879          l_acc_rev_flag := 'N';
80880       END IF;
80881    EXCEPTION
80882       WHEN OTHERS THEN
80883          l_acc_rev_flag := 'N';
80884    END;
80885    --
80886    IF (l_acc_rev_flag = 'Y') THEN
80887 
80888        -- 4645092  ------------------------------------------------------------------------------
80889        -- To allow MPA report to determine if it should generate report process
80890        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80891        ------------------------------------------------------------------------------------------
80892 
80893        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80894        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80895    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
80896    -- call ADRs
80897    -- Bug 4922099
80898    --
80899    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80900         (NVL(l_actual_upg_option, 'N') = 'O') OR
80901         (NVL(l_enc_upg_option, 'N') = 'O')
80902       )
80903    THEN
80904    NULL;
80905    --
80906    --
80907    
80908   l_ccid := AcctDerRule_33(
80909            p_application_id           => p_application_id
80910          , p_ae_header_id             => l_ae_header_id 
80911 , p_source_36 => p_source_36
80912          , x_transaction_coa_id       => l_adr_transaction_coa_id
80913          , x_accounting_coa_id        => l_adr_accounting_coa_id
80914          , x_value_type_code          => l_adr_value_type_code
80915          , p_side                     => 'NA'
80916    );
80917 
80918    xla_ae_lines_pkg.set_ccid(
80919     p_code_combination_id          => l_ccid
80920   , p_value_type_code              => l_adr_value_type_code
80921   , p_transaction_coa_id           => l_adr_transaction_coa_id
80922   , p_accounting_coa_id            => l_adr_accounting_coa_id
80923   , p_adr_code                     => 'AP_RECP_INV_DIST'
80924   , p_adr_type_code                => 'S'
80925   , p_component_type               => l_component_type
80926   , p_component_code               => l_component_code
80927   , p_component_type_code          => l_component_type_code
80928   , p_component_appl_id            => l_component_appl_id
80929   , p_amb_context_code             => l_amb_context_code
80930   , p_side                         => 'NA'
80931   );
80932 
80933 
80934    --
80935    --
80936    END IF;
80937 
80938        --
80939        -- Update the line information that should be overwritten
80940        --
80941        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80942                                          p_header_num   => 1);
80943        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
80944 
80945        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80946 
80947        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
80948           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80949        END IF;
80950 
80951       --
80952       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80953       --
80954       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80955           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
80956       ELSE
80957           ---------------------------------------------------------------------------------------------------
80958           -- 4262811a Switch Sign
80959           ---------------------------------------------------------------------------------------------------
80960           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
80961           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80962                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80963           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80964                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80965           -- 5132302
80966           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80967                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80968 
80969       END IF;
80970 
80971       -- 4955764
80972       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80973       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80974 
80975 
80976       XLA_AE_LINES_PKG.ValidateCurrentLine;
80977       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80978 
80979       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80980                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80981                ,p_balance_type_code => l_balance_type_code);
80982 
80983    END IF;
80984 
80985    -----------------------------------------------------------------------------------------
80989 
80986    -- 4262811 Multiperiod Accounting
80987    -----------------------------------------------------------------------------------------
80988      -- No MPA option is assigned.
80990 
80991 END IF;
80992 END IF;
80993 --
80994 
80995 --
80996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80997    trace
80998       (p_msg      => 'END of AcctLineType_147'
80999       ,p_level    => C_LEVEL_PROCEDURE
81000       ,p_module   => l_log_module);
81001 END IF;
81002 --
81003 EXCEPTION
81004   WHEN xla_exceptions_pkg.application_exception THEN
81005       RAISE;
81006   WHEN OTHERS THEN
81007        xla_exceptions_pkg.raise_message
81008            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_147');
81009 END AcctLineType_147;
81010 --
81011 
81012 ---------------------------------------
81013 --
81014 -- PRIVATE FUNCTION
81015 --         AcctLineType_148
81016 --
81017 ---------------------------------------
81018 PROCEDURE AcctLineType_148 (
81019   p_application_id        IN NUMBER
81020  ,p_event_id              IN NUMBER
81021  ,p_calculate_acctd_flag  IN VARCHAR2
81022  ,p_calculate_g_l_flag    IN VARCHAR2
81023  ,p_actual_flag           IN OUT VARCHAR2
81024  ,p_balance_type_code     OUT VARCHAR2
81025  ,p_gain_or_loss_ref      OUT VARCHAR2
81026  
81027 --Recipient Invoice Distribution Account
81028  , p_source_36            IN NUMBER
81029 --When to Account for Payment Option
81030  , p_source_38            IN VARCHAR2
81031 --Accounting Reversal Indicator
81032  , p_source_40            IN VARCHAR2
81033 --Business Flow Accounts Payable Application Identifier
81034  , p_source_42            IN NUMBER
81035 --Distribution Link Type
81036  , p_source_48            IN VARCHAR2
81037 --Override Accounted Amount Indicator
81038  , p_source_53            IN VARCHAR2
81039  , p_source_53_meaning    IN VARCHAR2
81040 --Third Party Type
81041  , p_source_56            IN VARCHAR2
81042 --Invoice Distribution Tax Line Identifier
81043  , p_source_58            IN NUMBER
81044 --Invoice Distribution Summary Tax Line Identifier
81045  , p_source_59            IN NUMBER
81046 --Invoice Distribution Tax Distribution Identifier from Tax
81047  , p_source_66            IN NUMBER
81048 --Prepayment Distribution Type
81049  , p_source_67            IN VARCHAR2
81050 --Recipient Invoice Distribution Type
81051  , p_source_68            IN VARCHAR2
81052  , p_source_68_meaning    IN VARCHAR2
81053 --Prepayment Application Distribution Identifier
81054  , p_source_71            IN NUMBER
81055 --Invoice Identifier
81056  , p_source_72            IN NUMBER
81057 --Business Flow Prepayment Invoice Distribution Type
81058  , p_source_73            IN VARCHAR2
81059 --Business Flow Prepayment Invoice Entity Code
81060  , p_source_74            IN VARCHAR2
81061 --Business Flow Prepayment Invoice Distribution Identifier
81062  , p_source_75            IN NUMBER
81063 --Business Flow Prepayment Invoice Identifier
81064  , p_source_76            IN NUMBER
81065 --Upgrade Encumbrance Credit Account Class
81066  , p_source_77            IN VARCHAR2
81067 --Payables Encumbrance Upgrade Credit Account
81068  , p_source_78            IN NUMBER
81069 --Payables Encumbrance Upgrade Credit Amount
81070  , p_source_79            IN NUMBER
81071 --Invoice Currency Code
81072  , p_source_80            IN VARCHAR2
81073 --Payables Encumbrance Upgrade Credit Base Amount
81074  , p_source_81            IN NUMBER
81075 --Upgrade Encumbrance Debit Account Class
81076  , p_source_82            IN VARCHAR2
81077 --Payables Encumbrance Upgrade Debit Account
81078  , p_source_83            IN NUMBER
81079 --Payables Encumbrance Upgrade Debit Amount
81080  , p_source_84            IN NUMBER
81081 --Payables Encumbrance Upgrade Debit Base Amount
81082  , p_source_85            IN NUMBER
81083 --Payables Encumbrance Upgrade Option
81084  , p_source_86            IN VARCHAR2
81085 --Prepayment Distribution Amount
81086  , p_source_87            IN NUMBER
81087 --Deferred Accounting End Date
81088  , p_source_90            IN DATE
81089 --Deferred Accounting Option
81090  , p_source_91            IN VARCHAR2
81091 --Deferred Accounting Start Date
81092  , p_source_92            IN DATE
81093 --Invoice Supplier Identifier
81094  , p_source_93            IN NUMBER
81095 --Invoice Supplier Site Identifier
81096  , p_source_94            IN NUMBER
81097 --Identifier of the Prepayment Application Reversed
81098  , p_source_95            IN NUMBER
81099 --Payables Upgrade Credit Encumbrance Type Identifier
81100  , p_source_96            IN NUMBER
81101 --Payables Upgrade Debit Encumbrance Type Identifier
81102  , p_source_97            IN NUMBER
81103 --Prepayment Payment Currency Code
81104  , p_source_98            IN VARCHAR2
81105 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
81106  , p_source_99            IN NUMBER
81107 --Accrue on Receipt Option
81108  , p_source_100            IN VARCHAR2
81109  , p_source_100_meaning    IN VARCHAR2
81110 --Prepayment Payment Exchange Date
81111  , p_source_121            IN DATE
81112 --Prepayment Payment Exchange Rate
81113  , p_source_122            IN NUMBER
81114 --Prepayment Payment Exchange Rate Type
81115  , p_source_123            IN VARCHAR2
81116 )
81117 IS
81118 
81119 l_component_type              VARCHAR2(80);
81120 l_component_code              VARCHAR2(30);
81124 l_entity_code                 VARCHAR2(30);
81121 l_component_type_code         VARCHAR2(1);
81122 l_component_appl_id           INTEGER;
81123 l_amb_context_code            VARCHAR2(30);
81125 l_event_class_code            VARCHAR2(30);
81126 l_ae_header_id                NUMBER;
81127 l_event_type_code             VARCHAR2(30);
81128 l_line_definition_code        VARCHAR2(30);
81129 l_line_definition_owner_code  VARCHAR2(1);
81130 --
81131 -- adr variables
81132 l_segment                     VARCHAR2(30);
81133 l_ccid                        NUMBER;
81134 l_adr_transaction_coa_id      NUMBER;
81135 l_adr_accounting_coa_id       NUMBER;
81136 l_adr_flexfield_segment_code  VARCHAR2(30);
81137 l_adr_flex_value_set_id       NUMBER;
81138 l_adr_value_type_code         VARCHAR2(30);
81139 l_adr_value_combination_id    NUMBER;
81140 l_adr_value_segment_code      VARCHAR2(30);
81141 
81142 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
81143 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
81144 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
81145 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
81146 
81147 -- 4262811 Variables ------------------------------------------------------------------------------------------
81148 l_entered_amt_idx             NUMBER;
81149 l_accted_amt_idx              NUMBER;
81150 l_acc_rev_flag                VARCHAR2(1);
81151 l_accrual_line_num            NUMBER;
81152 l_tmp_amt                     NUMBER;
81153 l_acc_rev_natural_side_code   VARCHAR2(1);
81154 
81155 l_num_entries                 NUMBER;
81156 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
81157 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
81158 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
81159 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
81160 l_recog_line_1                NUMBER;
81161 l_recog_line_2                NUMBER;
81162 
81163 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
81164 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
81165 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
81166 
81167 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81168 
81169 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
81170 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
81171 
81172 ---------------------------------------------------------------------------------------------------------------
81173 
81174 
81175 --
81176 -- bulk performance
81177 --
81178 l_balance_type_code           VARCHAR2(1);
81179 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
81180 l_log_module                  VARCHAR2(240);
81181 
81182 --
81183 -- Upgrade strategy
81184 --
81185 l_actual_upg_option           VARCHAR2(1);
81186 l_enc_upg_option           VARCHAR2(1);
81187 
81188 --
81189 BEGIN
81190 --
81191 IF g_log_enabled THEN
81192       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_148';
81193 END IF;
81194 --
81195 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81196 
81197       trace
81198          (p_msg      => 'BEGIN of AcctLineType_148'
81199          ,p_level    => C_LEVEL_PROCEDURE
81200          ,p_module   => l_log_module);
81201 
81202 END IF;
81203 --
81204 l_component_type             := 'AMB_JLT';
81205 l_component_code             := 'AP_NRTAX_PREPAY_PAY_RATE_APP';
81206 l_component_type_code        := 'S';
81207 l_component_appl_id          :=  200;
81208 l_amb_context_code           := 'DEFAULT';
81209 l_entity_code                := 'AP_INVOICES';
81210 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
81211 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
81212 l_line_definition_owner_code := 'S';
81213 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
81214 --
81215 l_balance_type_code          := 'A';
81216 l_segment                     := NULL;
81217 l_ccid                        := NULL;
81218 l_adr_transaction_coa_id      := NULL;
81219 l_adr_accounting_coa_id       := NULL;
81220 l_adr_flexfield_segment_code  := NULL;
81221 l_adr_flex_value_set_id       := NULL;
81222 l_adr_value_type_code         := NULL;
81223 l_adr_value_combination_id    := NULL;
81224 l_adr_value_segment_code      := NULL;
81225 
81226 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
81227 l_bflow_class_code           := '';    -- 4219869 Business Flow
81228 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
81229 l_budgetary_control_flag     := 'N';
81230 
81231 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
81232 l_bflow_applied_to_amt       := NULL; -- 5132302
81233 l_entered_amt_idx            := NULL;          -- 4262811
81234 l_accted_amt_idx             := NULL;          -- 4262811
81235 l_acc_rev_flag               := NULL;          -- 4262811
81236 l_accrual_line_num           := NULL;          -- 4262811
81237 l_tmp_amt                    := NULL;          -- 4262811
81238 --
81239  
81240 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81241     l_balance_type_code <> 'B' THEN
81242 IF NVL(p_source_38,'
81243 ') <>  'CLEAR_CLEAR' AND 
81244 (NVL(p_source_67,'
81248 NVL(p_source_67,'
81245 ') =  'PREPAY APPL' OR 
81246 NVL(p_source_67,'
81247 ') =  'PREPAY APPL NONREC TAX' OR 
81249 ') =  'PREPAY APPL REC TAX') AND 
81250 (NVL(p_source_68,'
81251 ') =  'NONREC_TAX' OR 
81252 NVL(p_source_68,'
81253 ') =  'TERV') AND 
81254 NVL(p_source_100,'
81255 ') <>  'Y'
81256  THEN 
81257 
81258    --
81259    XLA_AE_LINES_PKG.SetNewLine;
81260 
81261    p_balance_type_code          := l_balance_type_code;
81262    -- set the flag so later we will know whether the gain loss line needs to be created
81263    
81264    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81265      p_actual_flag :='A';
81266    END IF;
81267 
81268    --
81269    -- bulk performance
81270    --
81271    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81272                                       p_header_num   => 0); -- 4262811
81273    --
81274    -- set accounting line options
81275    --
81276    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81277            p_natural_side_code          => 'C'
81278          , p_gain_or_loss_flag          => 'N'
81279          , p_gl_transfer_mode_code      => 'S'
81280          , p_acct_entry_type_code       => 'A'
81281          , p_switch_side_flag           => 'Y'
81282          , p_merge_duplicate_code       => 'A'
81283          );
81284    --
81285    l_acc_rev_natural_side_code := 'D';  -- 4262811
81286    -- 
81287    --
81288    -- set accounting line type info
81289    --
81290    xla_ae_lines_pkg.SetAcctLineType
81291       (p_component_type             => l_component_type
81292       ,p_event_type_code            => l_event_type_code
81293       ,p_line_definition_owner_code => l_line_definition_owner_code
81294       ,p_line_definition_code       => l_line_definition_code
81295       ,p_accounting_line_code       => l_component_code
81296       ,p_accounting_line_type_code  => l_component_type_code
81297       ,p_accounting_line_appl_id    => l_component_appl_id
81298       ,p_amb_context_code           => l_amb_context_code
81299       ,p_entity_code                => l_entity_code
81300       ,p_event_class_code           => l_event_class_code);
81301    --
81302    -- set accounting class
81303    --
81304    xla_ae_lines_pkg.SetAcctClass(
81305            p_accounting_class_code  => 'NRTAX'
81306          , p_ae_header_id           => l_ae_header_id
81307          );
81308 
81309    --
81310    -- set rounding class
81311    --
81312    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81313                       'NRTAX';
81314 
81315    --
81316    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81317    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81318    --
81319    -- bulk performance
81320    --
81321    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81322 
81323    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81324       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81325 
81326    -- 4955764
81327    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81328       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81329 
81330    -- 4458381 Public Sector Enh
81331    
81332    --
81333    -- set accounting attributes for the line type
81334    --
81335    l_entered_amt_idx := 25;
81336    l_accted_amt_idx  := 30;
81337    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
81338    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81339    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
81340    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
81341    l_rec_acct_attrs.array_num_value(2)  := 
81342 xla_ae_sources_pkg.GetSystemSourceNum(
81343    p_source_code           => 'XLA_EVENT_APPL_ID'
81344  , p_source_type_code      => 'Y'
81345  , p_source_application_id =>  602
81346 );
81347    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
81348    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
81349    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
81350    l_rec_acct_attrs.array_char_value(4)  := 
81351 xla_ae_sources_pkg.GetSystemSourceChar(
81352    p_source_code           => 'XLA_ENTITY_CODE'
81353  , p_source_type_code      => 'Y'
81354  , p_source_application_id =>  602
81355 );
81356    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
81357    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
81358    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
81359    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
81360    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
81361    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
81362    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81363    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
81364    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
81365    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
81366    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
81367    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
81371    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
81368    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81369    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
81370    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
81372    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
81373    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
81374    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
81375    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
81376    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
81377    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
81378    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
81379    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
81380    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
81381    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
81382    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
81383    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
81384    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
81385    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
81386    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
81387    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
81388    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
81389    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
81390    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
81391    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
81392    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
81393    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
81394    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
81395    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
81396    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
81397    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
81398    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
81399    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
81400    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
81401    l_rec_acct_attrs.array_date_value(27)  := p_source_121;
81402    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
81403    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
81404    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
81405    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
81406    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
81407    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
81408    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
81409    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
81410    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
81411    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
81412    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
81413    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
81414    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
81415    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
81416    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
81417    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
81418    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
81419    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
81420    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
81421    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
81422    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
81423    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
81424    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
81425    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
81426    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
81427    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
81428    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
81429    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
81430    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
81431    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
81432    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
81433    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
81434    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
81435    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
81436 
81437    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81438    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81439 
81440    ---------------------------------------------------------------------------------------------------------------
81441    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81442    ---------------------------------------------------------------------------------------------------------------
81443    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81444 
81445    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81446    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81447 
81448    IF xla_accounting_cache_pkg.GetValueChar
81449          (p_source_code         => 'LEDGER_CATEGORY_CODE'
81450          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81451    AND l_bflow_method_code = 'PRIOR_ENTRY'
81455        )
81452 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81453    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81454          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81456    THEN
81457          xla_ae_lines_pkg.BflowUpgEntry
81458            (p_business_method_code    => l_bflow_method_code
81459            ,p_business_class_code     => l_bflow_class_code
81460            ,p_balance_type            => l_balance_type_code);
81461    ELSE
81462       NULL;
81463 -- No business flow processing for business flow method of NONE.
81464    END IF;
81465 
81466    --
81467    -- call analytical criteria
81468    --
81469    
81470    --
81471    -- call description
81472    --
81473    -- No description or it is inherited.
81474    --
81475    -- call ADRs
81476    -- Bug 4922099
81477    --
81478    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81479         (NVL(l_actual_upg_option, 'N') = 'O') OR
81480         (NVL(l_enc_upg_option, 'N') = 'O')
81481       )
81482    THEN
81483    NULL;
81484    --
81485    --
81486    
81487   l_ccid := AcctDerRule_33(
81488            p_application_id           => p_application_id
81489          , p_ae_header_id             => l_ae_header_id 
81490 , p_source_36 => p_source_36
81491          , x_transaction_coa_id       => l_adr_transaction_coa_id
81492          , x_accounting_coa_id        => l_adr_accounting_coa_id
81493          , x_value_type_code          => l_adr_value_type_code
81494          , p_side                     => 'NA'
81495    );
81496 
81497    xla_ae_lines_pkg.set_ccid(
81498     p_code_combination_id          => l_ccid
81499   , p_value_type_code              => l_adr_value_type_code
81500   , p_transaction_coa_id           => l_adr_transaction_coa_id
81501   , p_accounting_coa_id            => l_adr_accounting_coa_id
81502   , p_adr_code                     => 'AP_RECP_INV_DIST'
81503   , p_adr_type_code                => 'S'
81504   , p_component_type               => l_component_type
81505   , p_component_code               => l_component_code
81506   , p_component_type_code          => l_component_type_code
81507   , p_component_appl_id            => l_component_appl_id
81508   , p_amb_context_code             => l_amb_context_code
81509   , p_side                         => 'NA'
81510   );
81511 
81512 
81513    --
81514    --
81515    END IF;
81516    --
81517    -- Bug 4922099
81518    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81519           (NVL(l_enc_upg_option, 'N') = 'O')
81520         ) AND
81521         (l_bflow_method_code = 'PRIOR_ENTRY')
81522       )
81523    THEN
81524       IF
81525       --
81526       1 = 2
81527       --
81528       THEN
81529       xla_accounting_err_pkg.build_message
81530                                     (p_appli_s_name            => 'XLA'
81531                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81532                                     ,p_token_1                 => 'LINE_NUMBER'
81533                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81534                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81535                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81536                                                                              l_component_type
81537                                                                             ,l_component_code
81538                                                                             ,l_component_type_code
81539                                                                             ,l_component_appl_id
81540                                                                             ,l_amb_context_code
81541                                                                             ,l_entity_code
81542                                                                             ,l_event_class_code
81543                                                                            )
81544                                     ,p_token_3                 => 'OWNER'
81545                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81546                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81547                                                                           ,p_lookup_code    => l_component_type_code
81548                                                                          )
81549                                     ,p_token_4                 => 'PRODUCT_NAME'
81550                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81551                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81552                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81553                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81554                                     ,p_ae_header_id            =>  NULL
81555                                        );
81556 
81557         IF (C_LEVEL_ERROR>= g_log_level) THEN
81558                  trace
81559                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81560                       ,p_level    => C_LEVEL_ERROR
81561                       ,p_module   => l_log_module);
81562         END IF;
81563       END IF;
81564    END IF;
81568    -- 4219869 Business Flow
81565    --
81566    --
81567    ------------------------------------------------------------------------------------------------
81569    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81570    -- Prior Entry.  Currently, the following code is always generated.
81571    ------------------------------------------------------------------------------------------------
81572    XLA_AE_LINES_PKG.ValidateCurrentLine;
81573 
81574    ------------------------------------------------------------------------------------
81575    -- 4219869 Business Flow
81576    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81577    ------------------------------------------------------------------------------------
81578    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81579 
81580    ----------------------------------------------------------------------------------
81581    -- 4219869 Business Flow
81582    -- Update journal entry status -- Need to generate this within IF <condition>
81583    ----------------------------------------------------------------------------------
81584    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81585          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81586          ,p_balance_type_code => l_balance_type_code
81587          );
81588 
81589    -------------------------------------------------------------------------------------------
81590    -- 4262811 - Generate the Accrual Reversal lines
81591    -------------------------------------------------------------------------------------------
81592    BEGIN
81593       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81594                               (g_array_event(p_event_id).array_value_num('header_index'));
81595       IF l_acc_rev_flag IS NULL THEN
81596          l_acc_rev_flag := 'N';
81597       END IF;
81598    EXCEPTION
81599       WHEN OTHERS THEN
81600          l_acc_rev_flag := 'N';
81601    END;
81602    --
81603    IF (l_acc_rev_flag = 'Y') THEN
81604 
81605        -- 4645092  ------------------------------------------------------------------------------
81606        -- To allow MPA report to determine if it should generate report process
81607        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81608        ------------------------------------------------------------------------------------------
81609 
81610        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81611        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81612    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81613    -- call ADRs
81614    -- Bug 4922099
81615    --
81616    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81617         (NVL(l_actual_upg_option, 'N') = 'O') OR
81618         (NVL(l_enc_upg_option, 'N') = 'O')
81619       )
81620    THEN
81621    NULL;
81622    --
81623    --
81624    
81625   l_ccid := AcctDerRule_33(
81626            p_application_id           => p_application_id
81627          , p_ae_header_id             => l_ae_header_id 
81628 , p_source_36 => p_source_36
81629          , x_transaction_coa_id       => l_adr_transaction_coa_id
81630          , x_accounting_coa_id        => l_adr_accounting_coa_id
81631          , x_value_type_code          => l_adr_value_type_code
81632          , p_side                     => 'NA'
81633    );
81634 
81635    xla_ae_lines_pkg.set_ccid(
81636     p_code_combination_id          => l_ccid
81637   , p_value_type_code              => l_adr_value_type_code
81638   , p_transaction_coa_id           => l_adr_transaction_coa_id
81639   , p_accounting_coa_id            => l_adr_accounting_coa_id
81640   , p_adr_code                     => 'AP_RECP_INV_DIST'
81641   , p_adr_type_code                => 'S'
81642   , p_component_type               => l_component_type
81643   , p_component_code               => l_component_code
81644   , p_component_type_code          => l_component_type_code
81645   , p_component_appl_id            => l_component_appl_id
81646   , p_amb_context_code             => l_amb_context_code
81647   , p_side                         => 'NA'
81648   );
81649 
81650 
81651    --
81652    --
81653    END IF;
81654 
81655        --
81656        -- Update the line information that should be overwritten
81657        --
81658        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81659                                          p_header_num   => 1);
81660        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81661 
81662        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81663 
81664        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81665           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81666        END IF;
81667 
81668       --
81669       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81670       --
81671       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81672           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81673       ELSE
81674           ---------------------------------------------------------------------------------------------------
81675           -- 4262811a Switch Sign
81679                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81676           ---------------------------------------------------------------------------------------------------
81677           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81678           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81680           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81681                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81682           -- 5132302
81683           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81684                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81685 
81686       END IF;
81687 
81688       -- 4955764
81689       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81690       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81691 
81692 
81693       XLA_AE_LINES_PKG.ValidateCurrentLine;
81694       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81695 
81696       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81697                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81698                ,p_balance_type_code => l_balance_type_code);
81699 
81700    END IF;
81701 
81702    -----------------------------------------------------------------------------------------
81703    -- 4262811 Multiperiod Accounting
81704    -----------------------------------------------------------------------------------------
81705      -- No MPA option is assigned.
81706 
81707 
81708 END IF;
81709 END IF;
81710 --
81711 
81712 --
81713 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81714    trace
81715       (p_msg      => 'END of AcctLineType_148'
81716       ,p_level    => C_LEVEL_PROCEDURE
81717       ,p_module   => l_log_module);
81718 END IF;
81719 --
81720 EXCEPTION
81721   WHEN xla_exceptions_pkg.application_exception THEN
81722       RAISE;
81723   WHEN OTHERS THEN
81724        xla_exceptions_pkg.raise_message
81725            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_148');
81726 END AcctLineType_148;
81727 --
81728 
81729 ---------------------------------------
81730 --
81731 -- PRIVATE FUNCTION
81732 --         AcctLineType_149
81733 --
81734 ---------------------------------------
81735 PROCEDURE AcctLineType_149 (
81736   p_application_id        IN NUMBER
81737  ,p_event_id              IN NUMBER
81738  ,p_calculate_acctd_flag  IN VARCHAR2
81739  ,p_calculate_g_l_flag    IN VARCHAR2
81740  ,p_actual_flag           IN OUT VARCHAR2
81741  ,p_balance_type_code     OUT VARCHAR2
81742  ,p_gain_or_loss_ref      OUT VARCHAR2
81743  
81744 --Payment Distribution (Payment Rate) Ledger Amount
81745  , p_source_9            IN NUMBER
81746 --Payment Card Accrued Account
81747  , p_source_31            IN NUMBER
81748 --Accounting Reversal Indicator
81749  , p_source_40            IN VARCHAR2
81750 --Payment Distribution Amount
81751  , p_source_41            IN NUMBER
81752 --Business Flow Accounts Payable Application Identifier
81753  , p_source_42            IN NUMBER
81754 --Payment Distribution Identifier
81755  , p_source_47            IN NUMBER
81756 --Distribution Link Type
81757  , p_source_48            IN VARCHAR2
81758 --Payment Currency Code
81759  , p_source_49            IN VARCHAR2
81760 --Override Accounted Amount Indicator
81761  , p_source_53            IN VARCHAR2
81762  , p_source_53_meaning    IN VARCHAR2
81763 --Payment Supplier Identifier
81764  , p_source_54            IN NUMBER
81765 --Payment Supplier Site Identifier
81766  , p_source_55            IN NUMBER
81767 --Third Party Type
81768  , p_source_56            IN VARCHAR2
81769 --Payment Distribution Reversed Identifier
81770  , p_source_57            IN NUMBER
81771 --Invoice Distribution Tax Line Identifier
81772  , p_source_58            IN NUMBER
81773 --Invoice Distribution Summary Tax Line Identifier
81774  , p_source_59            IN NUMBER
81775 --Invoice Distribution Amount of the Payment Distribution
81776  , p_source_61            IN NUMBER
81777 --Business Flow Invoice Distribution Type
81778  , p_source_62            IN VARCHAR2
81779 --Business Flow Invoice Entity Code
81780  , p_source_63            IN VARCHAR2
81781 --Business Flow Invoice Distribution Identifier
81782  , p_source_64            IN NUMBER
81783 --Business Flow Invoice Identifier
81784  , p_source_65            IN NUMBER
81785 --Invoice Distribution Tax Distribution Identifier from Tax
81786  , p_source_66            IN NUMBER
81787 --Payment Processing Type
81788  , p_source_113            IN VARCHAR2
81789 --Payment Exchange Date
81790  , p_source_114            IN DATE
81791 --Payment Exchange Rate
81792  , p_source_115            IN NUMBER
81793 --Payment Exchange Rate Type
81794  , p_source_116            IN VARCHAR2
81795 )
81796 IS
81797 
81798 l_component_type              VARCHAR2(80);
81799 l_component_code              VARCHAR2(30);
81800 l_component_type_code         VARCHAR2(1);
81801 l_component_appl_id           INTEGER;
81802 l_amb_context_code            VARCHAR2(30);
81806 l_event_type_code             VARCHAR2(30);
81803 l_entity_code                 VARCHAR2(30);
81804 l_event_class_code            VARCHAR2(30);
81805 l_ae_header_id                NUMBER;
81807 l_line_definition_code        VARCHAR2(30);
81808 l_line_definition_owner_code  VARCHAR2(1);
81809 --
81810 -- adr variables
81811 l_segment                     VARCHAR2(30);
81812 l_ccid                        NUMBER;
81813 l_adr_transaction_coa_id      NUMBER;
81814 l_adr_accounting_coa_id       NUMBER;
81815 l_adr_flexfield_segment_code  VARCHAR2(30);
81816 l_adr_flex_value_set_id       NUMBER;
81817 l_adr_value_type_code         VARCHAR2(30);
81818 l_adr_value_combination_id    NUMBER;
81819 l_adr_value_segment_code      VARCHAR2(30);
81820 
81821 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
81822 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
81823 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
81824 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
81825 
81826 -- 4262811 Variables ------------------------------------------------------------------------------------------
81827 l_entered_amt_idx             NUMBER;
81828 l_accted_amt_idx              NUMBER;
81829 l_acc_rev_flag                VARCHAR2(1);
81830 l_accrual_line_num            NUMBER;
81831 l_tmp_amt                     NUMBER;
81832 l_acc_rev_natural_side_code   VARCHAR2(1);
81833 
81834 l_num_entries                 NUMBER;
81835 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
81836 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
81837 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
81838 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
81839 l_recog_line_1                NUMBER;
81840 l_recog_line_2                NUMBER;
81841 
81842 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
81843 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
81844 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
81845 
81846 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81847 
81848 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
81849 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
81850 
81851 ---------------------------------------------------------------------------------------------------------------
81852 
81853 
81854 --
81855 -- bulk performance
81856 --
81857 l_balance_type_code           VARCHAR2(1);
81858 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
81859 l_log_module                  VARCHAR2(240);
81860 
81861 --
81862 -- Upgrade strategy
81863 --
81864 l_actual_upg_option           VARCHAR2(1);
81865 l_enc_upg_option           VARCHAR2(1);
81866 
81867 --
81868 BEGIN
81869 --
81870 IF g_log_enabled THEN
81871       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_149';
81872 END IF;
81873 --
81874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81875 
81876       trace
81877          (p_msg      => 'BEGIN of AcctLineType_149'
81878          ,p_level    => C_LEVEL_PROCEDURE
81879          ,p_module   => l_log_module);
81880 
81881 END IF;
81882 --
81883 l_component_type             := 'AMB_JLT';
81884 l_component_code             := 'AP_PAYCARD_PMT';
81885 l_component_type_code        := 'S';
81886 l_component_appl_id          :=  200;
81887 l_amb_context_code           := 'DEFAULT';
81888 l_entity_code                := 'AP_PAYMENTS';
81889 l_event_class_code           := 'PAYMENTS';
81890 l_event_type_code            := 'PAYMENTS_ALL';
81891 l_line_definition_owner_code := 'S';
81892 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
81893 --
81894 l_balance_type_code          := 'A';
81895 l_segment                     := NULL;
81896 l_ccid                        := NULL;
81897 l_adr_transaction_coa_id      := NULL;
81898 l_adr_accounting_coa_id       := NULL;
81899 l_adr_flexfield_segment_code  := NULL;
81900 l_adr_flex_value_set_id       := NULL;
81901 l_adr_value_type_code         := NULL;
81902 l_adr_value_combination_id    := NULL;
81903 l_adr_value_segment_code      := NULL;
81904 
81905 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
81906 l_bflow_class_code           := '';    -- 4219869 Business Flow
81907 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
81908 l_budgetary_control_flag     := 'N';
81909 
81910 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
81911 l_bflow_applied_to_amt       := NULL; -- 5132302
81912 l_entered_amt_idx            := NULL;          -- 4262811
81913 l_accted_amt_idx             := NULL;          -- 4262811
81914 l_acc_rev_flag               := NULL;          -- 4262811
81915 l_accrual_line_num           := NULL;          -- 4262811
81916 l_tmp_amt                    := NULL;          -- 4262811
81917 --
81918  
81919 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81920     l_balance_type_code <> 'B' THEN
81921 IF NVL(p_source_113,'
81922 ') =  'PAYMENTCARD'
81923  THEN 
81924 
81925    --
81926    XLA_AE_LINES_PKG.SetNewLine;
81927 
81928    p_balance_type_code          := l_balance_type_code;
81929    -- set the flag so later we will know whether the gain loss line needs to be created
81933    END IF;
81930    
81931    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81932      p_actual_flag :='A';
81934 
81935    --
81936    -- bulk performance
81937    --
81938    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81939                                       p_header_num   => 0); -- 4262811
81940    --
81941    -- set accounting line options
81942    --
81943    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81944            p_natural_side_code          => 'C'
81945          , p_gain_or_loss_flag          => 'N'
81946          , p_gl_transfer_mode_code      => 'S'
81947          , p_acct_entry_type_code       => 'A'
81948          , p_switch_side_flag           => 'Y'
81949          , p_merge_duplicate_code       => 'A'
81950          );
81951    --
81952    l_acc_rev_natural_side_code := 'D';  -- 4262811
81953    -- 
81954    --
81955    -- set accounting line type info
81956    --
81957    xla_ae_lines_pkg.SetAcctLineType
81958       (p_component_type             => l_component_type
81959       ,p_event_type_code            => l_event_type_code
81960       ,p_line_definition_owner_code => l_line_definition_owner_code
81961       ,p_line_definition_code       => l_line_definition_code
81962       ,p_accounting_line_code       => l_component_code
81963       ,p_accounting_line_type_code  => l_component_type_code
81964       ,p_accounting_line_appl_id    => l_component_appl_id
81965       ,p_amb_context_code           => l_amb_context_code
81966       ,p_entity_code                => l_entity_code
81967       ,p_event_class_code           => l_event_class_code);
81968    --
81969    -- set accounting class
81970    --
81971    xla_ae_lines_pkg.SetAcctClass(
81972            p_accounting_class_code  => 'PAYMENTCARD'
81973          , p_ae_header_id           => l_ae_header_id
81974          );
81975 
81976    --
81977    -- set rounding class
81978    --
81979    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81980                       'PAYMENTCARD';
81981 
81982    --
81983    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81984    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81985    --
81986    -- bulk performance
81987    --
81988    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81989 
81990    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81991       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81992 
81993    -- 4955764
81994    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81995       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81996 
81997    -- 4458381 Public Sector Enh
81998    
81999    --
82000    -- set accounting attributes for the line type
82001    --
82002    l_entered_amt_idx := 10;
82003    l_accted_amt_idx  := 15;
82004    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
82005    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82006    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
82007    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82008    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
82009    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82010    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
82011    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82012    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
82013    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82014    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
82015    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82016    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
82017    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82018    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
82019    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82020    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
82021    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82022    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
82023    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82024    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
82025    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82026    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
82027    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
82028    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
82029    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
82030    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
82031    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
82032    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
82033    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
82034    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
82035    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
82036    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
82037    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
82038    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
82039    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
82040    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
82041    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
82045    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
82042    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
82043    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
82044    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
82046    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
82047    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
82048    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
82049    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
82050    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
82051    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
82052    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
82053 
82054    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82055    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82056 
82057    ---------------------------------------------------------------------------------------------------------------
82058    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82059    ---------------------------------------------------------------------------------------------------------------
82060    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82061 
82062    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82063    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82064 
82065    IF xla_accounting_cache_pkg.GetValueChar
82066          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82067          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82068    AND l_bflow_method_code = 'PRIOR_ENTRY'
82069 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82070    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82071          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82072        )
82073    THEN
82074          xla_ae_lines_pkg.BflowUpgEntry
82075            (p_business_method_code    => l_bflow_method_code
82076            ,p_business_class_code     => l_bflow_class_code
82077            ,p_balance_type            => l_balance_type_code);
82078    ELSE
82079       NULL;
82080 -- No business flow processing for business flow method of NONE.
82081    END IF;
82082 
82083    --
82084    -- call analytical criteria
82085    --
82086    
82087    --
82088    -- call description
82089    --
82090    -- No description or it is inherited.
82091    --
82092    -- call ADRs
82093    -- Bug 4922099
82094    --
82095    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82096         (NVL(l_actual_upg_option, 'N') = 'O') OR
82097         (NVL(l_enc_upg_option, 'N') = 'O')
82098       )
82099    THEN
82100    NULL;
82101    --
82102    --
82103    
82104   l_ccid := AcctDerRule_27(
82105            p_application_id           => p_application_id
82106          , p_ae_header_id             => l_ae_header_id 
82107 , p_source_31 => p_source_31
82108          , x_transaction_coa_id       => l_adr_transaction_coa_id
82109          , x_accounting_coa_id        => l_adr_accounting_coa_id
82110          , x_value_type_code          => l_adr_value_type_code
82111          , p_side                     => 'NA'
82112    );
82113 
82114    xla_ae_lines_pkg.set_ccid(
82115     p_code_combination_id          => l_ccid
82116   , p_value_type_code              => l_adr_value_type_code
82117   , p_transaction_coa_id           => l_adr_transaction_coa_id
82118   , p_accounting_coa_id            => l_adr_accounting_coa_id
82119   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
82120   , p_adr_type_code                => 'S'
82121   , p_component_type               => l_component_type
82122   , p_component_code               => l_component_code
82123   , p_component_type_code          => l_component_type_code
82124   , p_component_appl_id            => l_component_appl_id
82125   , p_amb_context_code             => l_amb_context_code
82126   , p_side                         => 'NA'
82127   );
82128 
82129 
82130    --
82131    --
82132    END IF;
82133    --
82134    -- Bug 4922099
82135    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82136           (NVL(l_enc_upg_option, 'N') = 'O')
82137         ) AND
82138         (l_bflow_method_code = 'PRIOR_ENTRY')
82139       )
82140    THEN
82141       IF
82142       --
82143       1 = 2
82144       --
82145       THEN
82146       xla_accounting_err_pkg.build_message
82147                                     (p_appli_s_name            => 'XLA'
82148                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82149                                     ,p_token_1                 => 'LINE_NUMBER'
82150                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
82151                                     ,p_token_2                 => 'LINE_TYPE_NAME'
82152                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
82153                                                                              l_component_type
82154                                                                             ,l_component_code
82155                                                                             ,l_component_type_code
82159                                                                             ,l_event_class_code
82156                                                                             ,l_component_appl_id
82157                                                                             ,l_amb_context_code
82158                                                                             ,l_entity_code
82160                                                                            )
82161                                     ,p_token_3                 => 'OWNER'
82162                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
82163                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
82164                                                                           ,p_lookup_code    => l_component_type_code
82165                                                                          )
82166                                     ,p_token_4                 => 'PRODUCT_NAME'
82167                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82168                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82169                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82170                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82171                                     ,p_ae_header_id            =>  NULL
82172                                        );
82173 
82174         IF (C_LEVEL_ERROR>= g_log_level) THEN
82175                  trace
82176                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82177                       ,p_level    => C_LEVEL_ERROR
82178                       ,p_module   => l_log_module);
82179         END IF;
82180       END IF;
82181    END IF;
82182    --
82183    --
82184    ------------------------------------------------------------------------------------------------
82185    -- 4219869 Business Flow
82186    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82187    -- Prior Entry.  Currently, the following code is always generated.
82188    ------------------------------------------------------------------------------------------------
82189    XLA_AE_LINES_PKG.ValidateCurrentLine;
82190 
82191    ------------------------------------------------------------------------------------
82192    -- 4219869 Business Flow
82193    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82194    ------------------------------------------------------------------------------------
82195    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82196 
82197    ----------------------------------------------------------------------------------
82198    -- 4219869 Business Flow
82199    -- Update journal entry status -- Need to generate this within IF <condition>
82200    ----------------------------------------------------------------------------------
82201    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82202          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82203          ,p_balance_type_code => l_balance_type_code
82204          );
82205 
82206    -------------------------------------------------------------------------------------------
82207    -- 4262811 - Generate the Accrual Reversal lines
82208    -------------------------------------------------------------------------------------------
82209    BEGIN
82210       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82211                               (g_array_event(p_event_id).array_value_num('header_index'));
82212       IF l_acc_rev_flag IS NULL THEN
82213          l_acc_rev_flag := 'N';
82214       END IF;
82215    EXCEPTION
82216       WHEN OTHERS THEN
82217          l_acc_rev_flag := 'N';
82218    END;
82219    --
82220    IF (l_acc_rev_flag = 'Y') THEN
82221 
82222        -- 4645092  ------------------------------------------------------------------------------
82223        -- To allow MPA report to determine if it should generate report process
82224        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82225        ------------------------------------------------------------------------------------------
82226 
82227        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82228        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82229    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
82230    -- call ADRs
82231    -- Bug 4922099
82232    --
82233    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82234         (NVL(l_actual_upg_option, 'N') = 'O') OR
82235         (NVL(l_enc_upg_option, 'N') = 'O')
82236       )
82237    THEN
82238    NULL;
82239    --
82240    --
82241    
82242   l_ccid := AcctDerRule_27(
82243            p_application_id           => p_application_id
82244          , p_ae_header_id             => l_ae_header_id 
82245 , p_source_31 => p_source_31
82246          , x_transaction_coa_id       => l_adr_transaction_coa_id
82247          , x_accounting_coa_id        => l_adr_accounting_coa_id
82248          , x_value_type_code          => l_adr_value_type_code
82249          , p_side                     => 'NA'
82250    );
82251 
82252    xla_ae_lines_pkg.set_ccid(
82253     p_code_combination_id          => l_ccid
82254   , p_value_type_code              => l_adr_value_type_code
82258   , p_adr_type_code                => 'S'
82255   , p_transaction_coa_id           => l_adr_transaction_coa_id
82256   , p_accounting_coa_id            => l_adr_accounting_coa_id
82257   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
82259   , p_component_type               => l_component_type
82260   , p_component_code               => l_component_code
82261   , p_component_type_code          => l_component_type_code
82262   , p_component_appl_id            => l_component_appl_id
82263   , p_amb_context_code             => l_amb_context_code
82264   , p_side                         => 'NA'
82265   );
82266 
82267 
82268    --
82269    --
82270    END IF;
82271 
82272        --
82273        -- Update the line information that should be overwritten
82274        --
82275        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82276                                          p_header_num   => 1);
82277        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
82278 
82279        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82280 
82281        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
82282           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82283        END IF;
82284 
82285       --
82286       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82287       --
82288       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82289           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
82290       ELSE
82291           ---------------------------------------------------------------------------------------------------
82292           -- 4262811a Switch Sign
82293           ---------------------------------------------------------------------------------------------------
82294           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
82295           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82296                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82297           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82298                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82299           -- 5132302
82300           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82301                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82302 
82303       END IF;
82304 
82305       -- 4955764
82306       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82307       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82308 
82309 
82310       XLA_AE_LINES_PKG.ValidateCurrentLine;
82311       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82312 
82313       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82314                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82315                ,p_balance_type_code => l_balance_type_code);
82316 
82317    END IF;
82318 
82319    -----------------------------------------------------------------------------------------
82320    -- 4262811 Multiperiod Accounting
82321    -----------------------------------------------------------------------------------------
82322      -- No MPA option is assigned.
82323 
82324 
82325 END IF;
82326 END IF;
82327 --
82328 
82329 --
82330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82331    trace
82332       (p_msg      => 'END of AcctLineType_149'
82333       ,p_level    => C_LEVEL_PROCEDURE
82334       ,p_module   => l_log_module);
82335 END IF;
82336 --
82337 EXCEPTION
82338   WHEN xla_exceptions_pkg.application_exception THEN
82339       RAISE;
82340   WHEN OTHERS THEN
82341        xla_exceptions_pkg.raise_message
82342            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_149');
82343 END AcctLineType_149;
82344 --
82345 
82346 ---------------------------------------
82347 --
82348 -- PRIVATE FUNCTION
82349 --         AcctLineType_150
82350 --
82351 ---------------------------------------
82352 PROCEDURE AcctLineType_150 (
82353   p_application_id        IN NUMBER
82354  ,p_event_id              IN NUMBER
82355  ,p_calculate_acctd_flag  IN VARCHAR2
82356  ,p_calculate_g_l_flag    IN VARCHAR2
82357  ,p_actual_flag           IN OUT VARCHAR2
82358  ,p_balance_type_code     OUT VARCHAR2
82359  ,p_gain_or_loss_ref      OUT VARCHAR2
82360  
82361 --Automatic Offsets Value
82362  , p_source_4            IN VARCHAR2
82363  , p_source_4_meaning    IN VARCHAR2
82364 --Payment Distribution (Payment Rate) Ledger Amount
82365  , p_source_9            IN NUMBER
82366 --Invoice Distribution Account
82367  , p_source_17            IN NUMBER
82368 --Payables Options Rounding Account
82369  , p_source_37            IN NUMBER
82370 --When to Account for Payment Option
82371  , p_source_38            IN VARCHAR2
82372 --Payment Distribution Type
82373  , p_source_39            IN VARCHAR2
82374  , p_source_39_meaning    IN VARCHAR2
82375 --Accounting Reversal Indicator
82379 --Business Flow Accounts Payable Application Identifier
82376  , p_source_40            IN VARCHAR2
82377 --Payment Distribution Amount
82378  , p_source_41            IN NUMBER
82380  , p_source_42            IN NUMBER
82381 --Business Flow Payment Distribution Type
82382  , p_source_43            IN VARCHAR2
82383 --Business Flow Payment Entity Code
82384  , p_source_44            IN VARCHAR2
82385 --Business Flow Payment Distribution Identifier
82386  , p_source_45            IN NUMBER
82387 --Business Flow Payment Identifier
82388  , p_source_46            IN NUMBER
82389 --Payment Distribution Identifier
82390  , p_source_47            IN NUMBER
82391 --Distribution Link Type
82392  , p_source_48            IN VARCHAR2
82393 --Payment Currency Code
82394  , p_source_49            IN VARCHAR2
82395 --Override Accounted Amount Indicator
82396  , p_source_53            IN VARCHAR2
82397  , p_source_53_meaning    IN VARCHAR2
82398 --Payment Supplier Identifier
82399  , p_source_54            IN NUMBER
82400 --Payment Supplier Site Identifier
82401  , p_source_55            IN NUMBER
82402 --Third Party Type
82403  , p_source_56            IN VARCHAR2
82404 --Payment Distribution Reversed Identifier
82405  , p_source_57            IN NUMBER
82406 --Invoice Distribution Tax Line Identifier
82407  , p_source_58            IN NUMBER
82408 --Invoice Distribution Summary Tax Line Identifier
82409  , p_source_59            IN NUMBER
82410 --Payment Maturity Date
82411  , p_source_111            IN DATE
82412 --Payment Exchange Date
82413  , p_source_114            IN DATE
82414 --Payment Exchange Rate
82415  , p_source_115            IN NUMBER
82416 --Payment Exchange Rate Type
82417  , p_source_116            IN VARCHAR2
82418 )
82419 IS
82420 
82421 l_component_type              VARCHAR2(80);
82422 l_component_code              VARCHAR2(30);
82423 l_component_type_code         VARCHAR2(1);
82424 l_component_appl_id           INTEGER;
82425 l_amb_context_code            VARCHAR2(30);
82426 l_entity_code                 VARCHAR2(30);
82427 l_event_class_code            VARCHAR2(30);
82428 l_ae_header_id                NUMBER;
82429 l_event_type_code             VARCHAR2(30);
82430 l_line_definition_code        VARCHAR2(30);
82431 l_line_definition_owner_code  VARCHAR2(1);
82432 --
82433 -- adr variables
82434 l_segment                     VARCHAR2(30);
82435 l_ccid                        NUMBER;
82436 l_adr_transaction_coa_id      NUMBER;
82437 l_adr_accounting_coa_id       NUMBER;
82438 l_adr_flexfield_segment_code  VARCHAR2(30);
82439 l_adr_flex_value_set_id       NUMBER;
82440 l_adr_value_type_code         VARCHAR2(30);
82441 l_adr_value_combination_id    NUMBER;
82442 l_adr_value_segment_code      VARCHAR2(30);
82443 
82444 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82445 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82446 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82447 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82448 
82449 -- 4262811 Variables ------------------------------------------------------------------------------------------
82450 l_entered_amt_idx             NUMBER;
82451 l_accted_amt_idx              NUMBER;
82452 l_acc_rev_flag                VARCHAR2(1);
82453 l_accrual_line_num            NUMBER;
82454 l_tmp_amt                     NUMBER;
82455 l_acc_rev_natural_side_code   VARCHAR2(1);
82456 
82457 l_num_entries                 NUMBER;
82458 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82459 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82460 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82461 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82462 l_recog_line_1                NUMBER;
82463 l_recog_line_2                NUMBER;
82464 
82465 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82466 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82467 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82468 
82469 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82470 
82471 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82472 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82473 
82474 ---------------------------------------------------------------------------------------------------------------
82475 
82476 
82477 --
82478 -- bulk performance
82479 --
82480 l_balance_type_code           VARCHAR2(1);
82481 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82482 l_log_module                  VARCHAR2(240);
82483 
82484 --
82485 -- Upgrade strategy
82486 --
82487 l_actual_upg_option           VARCHAR2(1);
82488 l_enc_upg_option           VARCHAR2(1);
82489 
82490 --
82491 BEGIN
82492 --
82493 IF g_log_enabled THEN
82494       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_150';
82495 END IF;
82496 --
82497 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82498 
82499       trace
82500          (p_msg      => 'BEGIN of AcctLineType_150'
82501          ,p_level    => C_LEVEL_PROCEDURE
82502          ,p_module   => l_log_module);
82503 
82504 END IF;
82505 --
82506 l_component_type             := 'AMB_JLT';
82510 l_amb_context_code           := 'DEFAULT';
82507 l_component_code             := 'AP_PMT_CLR_ROUNDING_CLEAR';
82508 l_component_type_code        := 'S';
82509 l_component_appl_id          :=  200;
82511 l_entity_code                := 'AP_PAYMENTS';
82512 l_event_class_code           := 'RECONCILED PAYMENTS';
82513 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
82514 l_line_definition_owner_code := 'S';
82515 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
82516 --
82517 l_balance_type_code          := 'A';
82518 l_segment                     := NULL;
82519 l_ccid                        := NULL;
82520 l_adr_transaction_coa_id      := NULL;
82521 l_adr_accounting_coa_id       := NULL;
82522 l_adr_flexfield_segment_code  := NULL;
82523 l_adr_flex_value_set_id       := NULL;
82524 l_adr_value_type_code         := NULL;
82525 l_adr_value_combination_id    := NULL;
82526 l_adr_value_segment_code      := NULL;
82527 
82528 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
82529 l_bflow_class_code           := '';    -- 4219869 Business Flow
82530 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82531 l_budgetary_control_flag     := 'N';
82532 
82533 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82534 l_bflow_applied_to_amt       := NULL; -- 5132302
82535 l_entered_amt_idx            := NULL;          -- 4262811
82536 l_accted_amt_idx             := NULL;          -- 4262811
82537 l_acc_rev_flag               := NULL;          -- 4262811
82538 l_accrual_line_num           := NULL;          -- 4262811
82539 l_tmp_amt                    := NULL;          -- 4262811
82540 --
82541  
82542 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82543     l_balance_type_code <> 'B' THEN
82544 IF (NVL(p_source_38,'
82545 ') =  'ALWAYS_ALWAYS' OR 
82546 NVL(p_source_38,'
82547 ') =  'ALWAYS_CLEAR') AND 
82548 NVL(p_source_39,'
82549 ') =  'PAYMENT TO CLEARING ROUNDING' AND 
82550 p_source_111 IS NULL 
82551  THEN 
82552 
82553    --
82554    XLA_AE_LINES_PKG.SetNewLine;
82555 
82556    p_balance_type_code          := l_balance_type_code;
82557    -- set the flag so later we will know whether the gain loss line needs to be created
82558    
82559    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82560      p_actual_flag :='A';
82561    END IF;
82562 
82563    --
82564    -- bulk performance
82565    --
82566    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82567                                       p_header_num   => 0); -- 4262811
82568    --
82569    -- set accounting line options
82570    --
82571    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82572            p_natural_side_code          => 'D'
82573          , p_gain_or_loss_flag          => 'N'
82574          , p_gl_transfer_mode_code      => 'S'
82575          , p_acct_entry_type_code       => 'A'
82576          , p_switch_side_flag           => 'Y'
82577          , p_merge_duplicate_code       => 'A'
82578          );
82579    --
82580    l_acc_rev_natural_side_code := 'C';  -- 4262811
82581    -- 
82582    --
82583    -- set accounting line type info
82584    --
82585    xla_ae_lines_pkg.SetAcctLineType
82586       (p_component_type             => l_component_type
82587       ,p_event_type_code            => l_event_type_code
82588       ,p_line_definition_owner_code => l_line_definition_owner_code
82589       ,p_line_definition_code       => l_line_definition_code
82590       ,p_accounting_line_code       => l_component_code
82591       ,p_accounting_line_type_code  => l_component_type_code
82592       ,p_accounting_line_appl_id    => l_component_appl_id
82593       ,p_amb_context_code           => l_amb_context_code
82594       ,p_entity_code                => l_entity_code
82595       ,p_event_class_code           => l_event_class_code);
82596    --
82597    -- set accounting class
82598    --
82599    xla_ae_lines_pkg.SetAcctClass(
82600            p_accounting_class_code  => 'ROUNDING'
82601          , p_ae_header_id           => l_ae_header_id
82602          );
82603 
82604    --
82605    -- set rounding class
82606    --
82607    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82608                       'ROUNDING';
82609 
82610    --
82611    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82612    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82613    --
82614    -- bulk performance
82615    --
82616    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82617 
82618    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82619       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82620 
82621    -- 4955764
82622    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82623       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82624 
82625    -- 4458381 Public Sector Enh
82626    
82627    --
82628    -- set accounting attributes for the line type
82629    --
82630    l_entered_amt_idx := 10;
82631    l_accted_amt_idx  := 15;
82632    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
82633    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82634    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
82638    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
82635    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82636    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
82637    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82639    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82640    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
82641    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82642    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
82643    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82644    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
82645    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82646    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
82647    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82648    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
82649    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82650    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
82651    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82652    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
82653    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82654    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
82655    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
82656    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
82657    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
82658    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
82659    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
82660    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
82661    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
82662    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
82663    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
82664    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
82665    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
82666    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
82667    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
82668    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
82669    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
82670    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
82671    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
82672    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
82673    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
82674    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
82675    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
82676    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
82677    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
82678    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
82679    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
82680    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
82681 
82682    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82683    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82684 
82685    ---------------------------------------------------------------------------------------------------------------
82686    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82687    ---------------------------------------------------------------------------------------------------------------
82688    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82689 
82690    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82691    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82692 
82693    IF xla_accounting_cache_pkg.GetValueChar
82694          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82695          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82696    AND l_bflow_method_code = 'PRIOR_ENTRY'
82697 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82698    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82699          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82700        )
82701    THEN
82702          xla_ae_lines_pkg.BflowUpgEntry
82703            (p_business_method_code    => l_bflow_method_code
82704            ,p_business_class_code     => l_bflow_class_code
82705            ,p_balance_type            => l_balance_type_code);
82706    ELSE
82707       NULL;
82708 -- No business flow processing for business flow method of NONE.
82709    END IF;
82710 
82711    --
82712    -- call analytical criteria
82713    --
82714    
82715    --
82716    -- call description
82717    --
82718    -- No description or it is inherited.
82719    --
82720    -- call ADRs
82721    -- Bug 4922099
82722    --
82723    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82724         (NVL(l_actual_upg_option, 'N') = 'O') OR
82725         (NVL(l_enc_upg_option, 'N') = 'O')
82726       )
82727    THEN
82728    NULL;
82729    --
82730    --
82731    
82732   l_ccid := AcctDerRule_35(
82733            p_application_id           => p_application_id
82734          , p_ae_header_id             => l_ae_header_id 
82735 , p_source_4 => p_source_4
82736 , p_source_4_meaning => p_source_4_meaning
82737 , p_source_17 => p_source_17
82741          , x_value_type_code          => l_adr_value_type_code
82738 , p_source_37 => p_source_37
82739          , x_transaction_coa_id       => l_adr_transaction_coa_id
82740          , x_accounting_coa_id        => l_adr_accounting_coa_id
82742          , p_side                     => 'NA'
82743    );
82744 
82745    xla_ae_lines_pkg.set_ccid(
82746     p_code_combination_id          => l_ccid
82747   , p_value_type_code              => l_adr_value_type_code
82748   , p_transaction_coa_id           => l_adr_transaction_coa_id
82749   , p_accounting_coa_id            => l_adr_accounting_coa_id
82750   , p_adr_code                     => 'AP_ROUNDING'
82751   , p_adr_type_code                => 'S'
82752   , p_component_type               => l_component_type
82753   , p_component_code               => l_component_code
82754   , p_component_type_code          => l_component_type_code
82755   , p_component_appl_id            => l_component_appl_id
82756   , p_amb_context_code             => l_amb_context_code
82757   , p_side                         => 'NA'
82758   );
82759 
82760 
82761    --
82762    --
82763    END IF;
82764    --
82765    -- Bug 4922099
82766    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82767           (NVL(l_enc_upg_option, 'N') = 'O')
82768         ) AND
82769         (l_bflow_method_code = 'PRIOR_ENTRY')
82770       )
82771    THEN
82772       IF
82773       --
82774       1 = 2
82775       --
82776       THEN
82777       xla_accounting_err_pkg.build_message
82778                                     (p_appli_s_name            => 'XLA'
82779                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82780                                     ,p_token_1                 => 'LINE_NUMBER'
82781                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
82782                                     ,p_token_2                 => 'LINE_TYPE_NAME'
82783                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
82784                                                                              l_component_type
82785                                                                             ,l_component_code
82786                                                                             ,l_component_type_code
82787                                                                             ,l_component_appl_id
82788                                                                             ,l_amb_context_code
82789                                                                             ,l_entity_code
82790                                                                             ,l_event_class_code
82791                                                                            )
82792                                     ,p_token_3                 => 'OWNER'
82793                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
82794                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
82795                                                                           ,p_lookup_code    => l_component_type_code
82796                                                                          )
82797                                     ,p_token_4                 => 'PRODUCT_NAME'
82798                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82799                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82800                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82801                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82802                                     ,p_ae_header_id            =>  NULL
82803                                        );
82804 
82805         IF (C_LEVEL_ERROR>= g_log_level) THEN
82806                  trace
82807                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82808                       ,p_level    => C_LEVEL_ERROR
82809                       ,p_module   => l_log_module);
82810         END IF;
82811       END IF;
82812    END IF;
82813    --
82814    --
82815    ------------------------------------------------------------------------------------------------
82816    -- 4219869 Business Flow
82817    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82818    -- Prior Entry.  Currently, the following code is always generated.
82819    ------------------------------------------------------------------------------------------------
82820    XLA_AE_LINES_PKG.ValidateCurrentLine;
82821 
82822    ------------------------------------------------------------------------------------
82823    -- 4219869 Business Flow
82824    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82825    ------------------------------------------------------------------------------------
82826    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82827 
82828    ----------------------------------------------------------------------------------
82829    -- 4219869 Business Flow
82830    -- Update journal entry status -- Need to generate this within IF <condition>
82831    ----------------------------------------------------------------------------------
82832    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82833          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82837    -------------------------------------------------------------------------------------------
82834          ,p_balance_type_code => l_balance_type_code
82835          );
82836 
82838    -- 4262811 - Generate the Accrual Reversal lines
82839    -------------------------------------------------------------------------------------------
82840    BEGIN
82841       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82842                               (g_array_event(p_event_id).array_value_num('header_index'));
82843       IF l_acc_rev_flag IS NULL THEN
82844          l_acc_rev_flag := 'N';
82845       END IF;
82846    EXCEPTION
82847       WHEN OTHERS THEN
82848          l_acc_rev_flag := 'N';
82849    END;
82850    --
82851    IF (l_acc_rev_flag = 'Y') THEN
82852 
82853        -- 4645092  ------------------------------------------------------------------------------
82854        -- To allow MPA report to determine if it should generate report process
82855        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82856        ------------------------------------------------------------------------------------------
82857 
82858        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82859        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82860    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
82861    -- call ADRs
82862    -- Bug 4922099
82863    --
82864    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82865         (NVL(l_actual_upg_option, 'N') = 'O') OR
82866         (NVL(l_enc_upg_option, 'N') = 'O')
82867       )
82868    THEN
82869    NULL;
82870    --
82871    --
82872    
82873   l_ccid := AcctDerRule_35(
82874            p_application_id           => p_application_id
82875          , p_ae_header_id             => l_ae_header_id 
82876 , p_source_4 => p_source_4
82877 , p_source_4_meaning => p_source_4_meaning
82878 , p_source_17 => p_source_17
82879 , p_source_37 => p_source_37
82880          , x_transaction_coa_id       => l_adr_transaction_coa_id
82881          , x_accounting_coa_id        => l_adr_accounting_coa_id
82882          , x_value_type_code          => l_adr_value_type_code
82883          , p_side                     => 'NA'
82884    );
82885 
82886    xla_ae_lines_pkg.set_ccid(
82887     p_code_combination_id          => l_ccid
82888   , p_value_type_code              => l_adr_value_type_code
82889   , p_transaction_coa_id           => l_adr_transaction_coa_id
82890   , p_accounting_coa_id            => l_adr_accounting_coa_id
82891   , p_adr_code                     => 'AP_ROUNDING'
82892   , p_adr_type_code                => 'S'
82893   , p_component_type               => l_component_type
82894   , p_component_code               => l_component_code
82895   , p_component_type_code          => l_component_type_code
82896   , p_component_appl_id            => l_component_appl_id
82897   , p_amb_context_code             => l_amb_context_code
82898   , p_side                         => 'NA'
82899   );
82900 
82901 
82902    --
82903    --
82904    END IF;
82905 
82906        --
82907        -- Update the line information that should be overwritten
82908        --
82909        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82910                                          p_header_num   => 1);
82911        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
82912 
82913        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82914 
82915        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
82916           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82917        END IF;
82918 
82919       --
82920       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82921       --
82922       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82923           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
82924       ELSE
82925           ---------------------------------------------------------------------------------------------------
82926           -- 4262811a Switch Sign
82927           ---------------------------------------------------------------------------------------------------
82928           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
82929           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82930                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82931           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82932                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82933           -- 5132302
82934           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82935                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82936 
82937       END IF;
82938 
82939       -- 4955764
82940       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82941       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82942 
82943 
82947       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82944       XLA_AE_LINES_PKG.ValidateCurrentLine;
82945       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82946 
82948                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82949                ,p_balance_type_code => l_balance_type_code);
82950 
82951    END IF;
82952 
82953    -----------------------------------------------------------------------------------------
82954    -- 4262811 Multiperiod Accounting
82955    -----------------------------------------------------------------------------------------
82956      -- No MPA option is assigned.
82957 
82958 
82959 END IF;
82960 END IF;
82961 --
82962 
82963 --
82964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82965    trace
82966       (p_msg      => 'END of AcctLineType_150'
82967       ,p_level    => C_LEVEL_PROCEDURE
82968       ,p_module   => l_log_module);
82969 END IF;
82970 --
82971 EXCEPTION
82972   WHEN xla_exceptions_pkg.application_exception THEN
82973       RAISE;
82974   WHEN OTHERS THEN
82975        xla_exceptions_pkg.raise_message
82976            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_150');
82977 END AcctLineType_150;
82978 --
82979 
82980 ---------------------------------------
82981 --
82982 -- PRIVATE FUNCTION
82983 --         AcctLineType_151
82984 --
82985 ---------------------------------------
82986 PROCEDURE AcctLineType_151 (
82987   p_application_id        IN NUMBER
82988  ,p_event_id              IN NUMBER
82989  ,p_calculate_acctd_flag  IN VARCHAR2
82990  ,p_calculate_g_l_flag    IN VARCHAR2
82991  ,p_actual_flag           IN OUT VARCHAR2
82992  ,p_balance_type_code     OUT VARCHAR2
82993  ,p_gain_or_loss_ref      OUT VARCHAR2
82994  
82995 --Payment Distribution (Payment Rate) Ledger Amount
82996  , p_source_9            IN NUMBER
82997 --Invoice Distribution Account
82998  , p_source_17            IN NUMBER
82999 --Prepaid Expense Account Source Option
83000  , p_source_18            IN VARCHAR2
83001  , p_source_18_meaning    IN VARCHAR2
83002 --Purchase Order Number
83003  , p_source_19            IN VARCHAR2
83004 --Invoice Distribution Type
83005  , p_source_20            IN VARCHAR2
83006  , p_source_20_meaning    IN VARCHAR2
83007 --Purchase Order Charge Account
83008  , p_source_28            IN NUMBER
83009 --When to Account for Payment Option
83010  , p_source_38            IN VARCHAR2
83011 --Payment Distribution Type
83012  , p_source_39            IN VARCHAR2
83013  , p_source_39_meaning    IN VARCHAR2
83014 --Accounting Reversal Indicator
83015  , p_source_40            IN VARCHAR2
83016 --Payment Distribution Amount
83017  , p_source_41            IN NUMBER
83018 --Business Flow Accounts Payable Application Identifier
83019  , p_source_42            IN NUMBER
83020 --Payment Distribution Identifier
83021  , p_source_47            IN NUMBER
83022 --Distribution Link Type
83023  , p_source_48            IN VARCHAR2
83024 --Payment Currency Code
83025  , p_source_49            IN VARCHAR2
83026 --Override Accounted Amount Indicator
83027  , p_source_53            IN VARCHAR2
83028  , p_source_53_meaning    IN VARCHAR2
83029 --Payment Supplier Identifier
83030  , p_source_54            IN NUMBER
83031 --Payment Supplier Site Identifier
83032  , p_source_55            IN NUMBER
83033 --Third Party Type
83034  , p_source_56            IN VARCHAR2
83035 --Payment Distribution Reversed Identifier
83036  , p_source_57            IN NUMBER
83037 --Invoice Distribution Tax Line Identifier
83038  , p_source_58            IN NUMBER
83039 --Invoice Distribution Summary Tax Line Identifier
83040  , p_source_59            IN NUMBER
83041 --Payment Type
83042  , p_source_60            IN VARCHAR2
83043  , p_source_60_meaning    IN VARCHAR2
83044 --Invoice Distribution Amount of the Payment Distribution
83045  , p_source_61            IN NUMBER
83046 --Business Flow Invoice Distribution Type
83047  , p_source_62            IN VARCHAR2
83048 --Business Flow Invoice Entity Code
83049  , p_source_63            IN VARCHAR2
83050 --Business Flow Invoice Distribution Identifier
83051  , p_source_64            IN NUMBER
83052 --Business Flow Invoice Identifier
83053  , p_source_65            IN NUMBER
83054 --Invoice Distribution Tax Distribution Identifier from Tax
83055  , p_source_66            IN NUMBER
83056 --Invoice Type Paid
83057  , p_source_101            IN VARCHAR2
83058  , p_source_101_meaning    IN VARCHAR2
83059 --Payment Exchange Date
83060  , p_source_114            IN DATE
83061 --Payment Exchange Rate
83062  , p_source_115            IN NUMBER
83063 --Payment Exchange Rate Type
83064  , p_source_116            IN VARCHAR2
83065 )
83066 IS
83067 
83068 l_component_type              VARCHAR2(80);
83069 l_component_code              VARCHAR2(30);
83070 l_component_type_code         VARCHAR2(1);
83071 l_component_appl_id           INTEGER;
83072 l_amb_context_code            VARCHAR2(30);
83073 l_entity_code                 VARCHAR2(30);
83074 l_event_class_code            VARCHAR2(30);
83075 l_ae_header_id                NUMBER;
83076 l_event_type_code             VARCHAR2(30);
83077 l_line_definition_code        VARCHAR2(30);
83078 l_line_definition_owner_code  VARCHAR2(1);
83079 --
83080 -- adr variables
83081 l_segment                     VARCHAR2(30);
83082 l_ccid                        NUMBER;
83086 l_adr_flex_value_set_id       NUMBER;
83083 l_adr_transaction_coa_id      NUMBER;
83084 l_adr_accounting_coa_id       NUMBER;
83085 l_adr_flexfield_segment_code  VARCHAR2(30);
83087 l_adr_value_type_code         VARCHAR2(30);
83088 l_adr_value_combination_id    NUMBER;
83089 l_adr_value_segment_code      VARCHAR2(30);
83090 
83091 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
83092 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
83093 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
83094 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
83095 
83096 -- 4262811 Variables ------------------------------------------------------------------------------------------
83097 l_entered_amt_idx             NUMBER;
83098 l_accted_amt_idx              NUMBER;
83099 l_acc_rev_flag                VARCHAR2(1);
83100 l_accrual_line_num            NUMBER;
83101 l_tmp_amt                     NUMBER;
83102 l_acc_rev_natural_side_code   VARCHAR2(1);
83103 
83104 l_num_entries                 NUMBER;
83105 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
83106 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
83107 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
83108 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
83109 l_recog_line_1                NUMBER;
83110 l_recog_line_2                NUMBER;
83111 
83112 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
83113 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
83114 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
83115 
83116 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83117 
83118 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
83119 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
83120 
83121 ---------------------------------------------------------------------------------------------------------------
83122 
83123 
83124 --
83125 -- bulk performance
83126 --
83127 l_balance_type_code           VARCHAR2(1);
83128 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
83129 l_log_module                  VARCHAR2(240);
83130 
83131 --
83132 -- Upgrade strategy
83133 --
83134 l_actual_upg_option           VARCHAR2(1);
83135 l_enc_upg_option           VARCHAR2(1);
83136 
83137 --
83138 BEGIN
83139 --
83140 IF g_log_enabled THEN
83141       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_151';
83142 END IF;
83143 --
83144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83145 
83146       trace
83147          (p_msg      => 'BEGIN of AcctLineType_151'
83148          ,p_level    => C_LEVEL_PROCEDURE
83149          ,p_module   => l_log_module);
83150 
83151 END IF;
83152 --
83153 l_component_type             := 'AMB_JLT';
83154 l_component_code             := 'AP_PREPAID_EXPENSE_CASH_PMT';
83155 l_component_type_code        := 'S';
83156 l_component_appl_id          :=  200;
83157 l_amb_context_code           := 'DEFAULT';
83158 l_entity_code                := 'AP_PAYMENTS';
83159 l_event_class_code           := 'PAYMENTS';
83160 l_event_type_code            := 'PAYMENTS_ALL';
83161 l_line_definition_owner_code := 'S';
83162 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
83163 --
83164 l_balance_type_code          := 'A';
83165 l_segment                     := NULL;
83166 l_ccid                        := NULL;
83167 l_adr_transaction_coa_id      := NULL;
83168 l_adr_accounting_coa_id       := NULL;
83169 l_adr_flexfield_segment_code  := NULL;
83170 l_adr_flex_value_set_id       := NULL;
83171 l_adr_value_type_code         := NULL;
83172 l_adr_value_combination_id    := NULL;
83173 l_adr_value_segment_code      := NULL;
83174 
83175 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
83176 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
83177 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
83178 l_budgetary_control_flag     := 'N';
83179 
83180 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
83181 l_bflow_applied_to_amt       := NULL; -- 5132302
83182 l_entered_amt_idx            := NULL;          -- 4262811
83183 l_accted_amt_idx             := NULL;          -- 4262811
83184 l_acc_rev_flag               := NULL;          -- 4262811
83185 l_accrual_line_num           := NULL;          -- 4262811
83186 l_tmp_amt                    := NULL;          -- 4262811
83187 --
83188  
83189 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83190     l_balance_type_code <> 'B' THEN
83191 IF NVL(p_source_38,'
83192 ') <>  'CLEAR_CLEAR' AND 
83193 (NVL(p_source_20,'
83194 ') =  'ITEM' OR 
83195 NVL(p_source_20,'
83196 ') =  'AWT' OR 
83197 NVL(p_source_20,'
83198 ') =  'RETROEXPENSE') AND 
83199 NVL(p_source_101,'
83200 ') =  'PREPAYMENT' AND 
83201 (NVL(p_source_39,'
83202 ') =  'CASH' OR 
83203 NVL(p_source_39,'
83204 ') =  'AWT' OR 
83205 NVL(p_source_39,'
83206 ') =  'DISCOUNT') AND 
83207 NVL(p_source_60,'
83208 ') <>  'R'
83209  THEN 
83210 
83211    --
83212    XLA_AE_LINES_PKG.SetNewLine;
83213 
83214    p_balance_type_code          := l_balance_type_code;
83215    -- set the flag so later we will know whether the gain loss line needs to be created
83216    
83220 
83217    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83218      p_actual_flag :='A';
83219    END IF;
83221    --
83222    -- bulk performance
83223    --
83224    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83225                                       p_header_num   => 0); -- 4262811
83226    --
83227    -- set accounting line options
83228    --
83229    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83230            p_natural_side_code          => 'D'
83231          , p_gain_or_loss_flag          => 'N'
83232          , p_gl_transfer_mode_code      => 'S'
83233          , p_acct_entry_type_code       => 'A'
83234          , p_switch_side_flag           => 'Y'
83235          , p_merge_duplicate_code       => 'A'
83236          );
83237    --
83238    l_acc_rev_natural_side_code := 'C';  -- 4262811
83239    -- 
83240    --
83241    -- set accounting line type info
83242    --
83243    xla_ae_lines_pkg.SetAcctLineType
83244       (p_component_type             => l_component_type
83245       ,p_event_type_code            => l_event_type_code
83246       ,p_line_definition_owner_code => l_line_definition_owner_code
83247       ,p_line_definition_code       => l_line_definition_code
83248       ,p_accounting_line_code       => l_component_code
83249       ,p_accounting_line_type_code  => l_component_type_code
83250       ,p_accounting_line_appl_id    => l_component_appl_id
83251       ,p_amb_context_code           => l_amb_context_code
83252       ,p_entity_code                => l_entity_code
83253       ,p_event_class_code           => l_event_class_code);
83254    --
83255    -- set accounting class
83256    --
83257    xla_ae_lines_pkg.SetAcctClass(
83258            p_accounting_class_code  => 'PREPAID_EXPENSE'
83259          , p_ae_header_id           => l_ae_header_id
83260          );
83261 
83262    --
83263    -- set rounding class
83264    --
83265    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
83266                       'PREPAID_EXPENSE';
83267 
83268    --
83269    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
83270    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
83271    --
83272    -- bulk performance
83273    --
83274    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
83275 
83276    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
83277       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
83278 
83279    -- 4955764
83280    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83281       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
83282 
83283    -- 4458381 Public Sector Enh
83284    
83285    --
83286    -- set accounting attributes for the line type
83287    --
83288    l_entered_amt_idx := 10;
83289    l_accted_amt_idx  := 15;
83290    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
83291    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
83292    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
83293    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
83294    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
83295    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
83296    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
83297    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
83298    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
83299    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
83300    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
83301    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
83302    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
83303    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
83304    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
83305    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
83306    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
83307    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
83308    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
83309    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
83310    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
83311    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
83312    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
83313    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
83314    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
83315    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
83316    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
83317    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
83318    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
83319    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
83320    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
83321    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
83322    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
83323    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
83324    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
83325    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
83329    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
83326    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
83327    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
83328    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
83330    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
83331    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
83332    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
83333    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
83334    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
83335    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
83336    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
83337    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
83338    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
83339 
83340    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
83341    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
83342 
83343    ---------------------------------------------------------------------------------------------------------------
83344    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83345    ---------------------------------------------------------------------------------------------------------------
83346    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83347 
83348    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83349    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83350 
83351    IF xla_accounting_cache_pkg.GetValueChar
83352          (p_source_code         => 'LEDGER_CATEGORY_CODE'
83353          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83354    AND l_bflow_method_code = 'PRIOR_ENTRY'
83355 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83356    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83357          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83358        )
83359    THEN
83360          xla_ae_lines_pkg.BflowUpgEntry
83361            (p_business_method_code    => l_bflow_method_code
83362            ,p_business_class_code     => l_bflow_class_code
83363            ,p_balance_type            => l_balance_type_code);
83364    ELSE
83365       NULL;
83366 -- No business flow processing for business flow method of NONE.
83367    END IF;
83368 
83369    --
83370    -- call analytical criteria
83371    --
83372    
83373    --
83374    -- call description
83375    --
83376    -- No description or it is inherited.
83377    --
83378    -- call ADRs
83379    -- Bug 4922099
83380    --
83381    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83382         (NVL(l_actual_upg_option, 'N') = 'O') OR
83383         (NVL(l_enc_upg_option, 'N') = 'O')
83384       )
83385    THEN
83386    NULL;
83387    --
83388    --
83389    
83390   l_ccid := AcctDerRule_30(
83391            p_application_id           => p_application_id
83392          , p_ae_header_id             => l_ae_header_id 
83393 , p_source_17 => p_source_17
83394 , p_source_18 => p_source_18
83395 , p_source_18_meaning => p_source_18_meaning
83396 , p_source_19 => p_source_19
83397 , p_source_20 => p_source_20
83398 , p_source_20_meaning => p_source_20_meaning
83399 , p_source_28 => p_source_28
83400          , x_transaction_coa_id       => l_adr_transaction_coa_id
83401          , x_accounting_coa_id        => l_adr_accounting_coa_id
83402          , x_value_type_code          => l_adr_value_type_code
83403          , p_side                     => 'NA'
83404    );
83405 
83406    xla_ae_lines_pkg.set_ccid(
83407     p_code_combination_id          => l_ccid
83408   , p_value_type_code              => l_adr_value_type_code
83409   , p_transaction_coa_id           => l_adr_transaction_coa_id
83410   , p_accounting_coa_id            => l_adr_accounting_coa_id
83411   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
83412   , p_adr_type_code                => 'S'
83413   , p_component_type               => l_component_type
83414   , p_component_code               => l_component_code
83415   , p_component_type_code          => l_component_type_code
83416   , p_component_appl_id            => l_component_appl_id
83417   , p_amb_context_code             => l_amb_context_code
83418   , p_side                         => 'NA'
83419   );
83420 
83421 
83422    l_segment := AcctDerRule_9(
83423            p_application_id           => p_application_id
83424          , p_ae_header_id             => l_ae_header_id 
83425 , p_source_17 => p_source_17
83426 , p_source_18 => p_source_18
83427 , p_source_18_meaning => p_source_18_meaning
83428 , p_source_19 => p_source_19
83429 , p_source_20 => p_source_20
83430 , p_source_20_meaning => p_source_20_meaning
83431          , x_transaction_coa_id       => l_adr_transaction_coa_id
83432          , x_accounting_coa_id        => l_adr_accounting_coa_id
83433          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
83434          , x_flex_value_set_id        => l_adr_flex_value_set_id
83435          , x_value_type_code          => l_adr_value_type_code
83436          , x_value_combination_id     => l_adr_value_combination_id
83437          , x_value_segment_code       => l_adr_value_segment_code
83438          , p_side                     => 'NA'
83442    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
83439          , p_override_seg_flag        => 'Y'
83440    );
83441 
83443 
83444       xla_ae_lines_pkg.set_segment(
83445           p_to_segment_code         => 'GL_ACCOUNT'
83446         , p_segment_value           => l_segment
83447         , p_from_segment_code       => l_adr_value_segment_code
83448         , p_from_combination_id     => l_adr_value_combination_id
83449         , p_value_type_code         => l_adr_value_type_code
83450         , p_transaction_coa_id      => l_adr_transaction_coa_id
83451         , p_accounting_coa_id       => l_adr_accounting_coa_id
83452         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
83453         , p_flex_value_set_id       => l_adr_flex_value_set_id
83454         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
83455         , p_adr_type_code           => 'S'
83456         , p_component_type          => l_component_type
83457         , p_component_code          => l_component_code
83458         , p_component_type_code     => l_component_type_code
83459         , p_component_appl_id       => l_component_appl_id
83460         , p_amb_context_code        => l_amb_context_code
83461         , p_entity_code             => 'AP_PAYMENTS'
83462         , p_event_class_code        => 'PAYMENTS'
83463         , p_side                    => 'NA'
83464         );
83465 
83466   END IF;
83467 
83468    --
83469    --
83470    END IF;
83471    --
83472    -- Bug 4922099
83473    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83474           (NVL(l_enc_upg_option, 'N') = 'O')
83475         ) AND
83476         (l_bflow_method_code = 'PRIOR_ENTRY')
83477       )
83478    THEN
83479       IF
83480       --
83481       1 = 2
83482       --
83483       THEN
83484       xla_accounting_err_pkg.build_message
83485                                     (p_appli_s_name            => 'XLA'
83486                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83487                                     ,p_token_1                 => 'LINE_NUMBER'
83488                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
83489                                     ,p_token_2                 => 'LINE_TYPE_NAME'
83490                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
83491                                                                              l_component_type
83492                                                                             ,l_component_code
83493                                                                             ,l_component_type_code
83494                                                                             ,l_component_appl_id
83495                                                                             ,l_amb_context_code
83496                                                                             ,l_entity_code
83497                                                                             ,l_event_class_code
83498                                                                            )
83499                                     ,p_token_3                 => 'OWNER'
83500                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
83501                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
83502                                                                           ,p_lookup_code    => l_component_type_code
83503                                                                          )
83504                                     ,p_token_4                 => 'PRODUCT_NAME'
83505                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83506                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83507                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83508                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83509                                     ,p_ae_header_id            =>  NULL
83510                                        );
83511 
83512         IF (C_LEVEL_ERROR>= g_log_level) THEN
83513                  trace
83514                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83515                       ,p_level    => C_LEVEL_ERROR
83516                       ,p_module   => l_log_module);
83517         END IF;
83518       END IF;
83519    END IF;
83520    --
83521    --
83522    ------------------------------------------------------------------------------------------------
83523    -- 4219869 Business Flow
83524    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83525    -- Prior Entry.  Currently, the following code is always generated.
83526    ------------------------------------------------------------------------------------------------
83527    XLA_AE_LINES_PKG.ValidateCurrentLine;
83528 
83529    ------------------------------------------------------------------------------------
83530    -- 4219869 Business Flow
83531    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83532    ------------------------------------------------------------------------------------
83533    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83534 
83538    ----------------------------------------------------------------------------------
83535    ----------------------------------------------------------------------------------
83536    -- 4219869 Business Flow
83537    -- Update journal entry status -- Need to generate this within IF <condition>
83539    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83540          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83541          ,p_balance_type_code => l_balance_type_code
83542          );
83543 
83544    -------------------------------------------------------------------------------------------
83545    -- 4262811 - Generate the Accrual Reversal lines
83546    -------------------------------------------------------------------------------------------
83547    BEGIN
83548       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83549                               (g_array_event(p_event_id).array_value_num('header_index'));
83550       IF l_acc_rev_flag IS NULL THEN
83551          l_acc_rev_flag := 'N';
83552       END IF;
83553    EXCEPTION
83554       WHEN OTHERS THEN
83555          l_acc_rev_flag := 'N';
83556    END;
83557    --
83558    IF (l_acc_rev_flag = 'Y') THEN
83559 
83560        -- 4645092  ------------------------------------------------------------------------------
83561        -- To allow MPA report to determine if it should generate report process
83562        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83563        ------------------------------------------------------------------------------------------
83564 
83565        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83566        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83567    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
83568    -- call ADRs
83569    -- Bug 4922099
83570    --
83571    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83572         (NVL(l_actual_upg_option, 'N') = 'O') OR
83573         (NVL(l_enc_upg_option, 'N') = 'O')
83574       )
83575    THEN
83576    NULL;
83577    --
83578    --
83579    
83580   l_ccid := AcctDerRule_30(
83581            p_application_id           => p_application_id
83582          , p_ae_header_id             => l_ae_header_id 
83583 , p_source_17 => p_source_17
83584 , p_source_18 => p_source_18
83585 , p_source_18_meaning => p_source_18_meaning
83586 , p_source_19 => p_source_19
83587 , p_source_20 => p_source_20
83588 , p_source_20_meaning => p_source_20_meaning
83589 , p_source_28 => p_source_28
83590          , x_transaction_coa_id       => l_adr_transaction_coa_id
83591          , x_accounting_coa_id        => l_adr_accounting_coa_id
83592          , x_value_type_code          => l_adr_value_type_code
83593          , p_side                     => 'NA'
83594    );
83595 
83596    xla_ae_lines_pkg.set_ccid(
83597     p_code_combination_id          => l_ccid
83598   , p_value_type_code              => l_adr_value_type_code
83599   , p_transaction_coa_id           => l_adr_transaction_coa_id
83600   , p_accounting_coa_id            => l_adr_accounting_coa_id
83601   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
83602   , p_adr_type_code                => 'S'
83603   , p_component_type               => l_component_type
83604   , p_component_code               => l_component_code
83605   , p_component_type_code          => l_component_type_code
83606   , p_component_appl_id            => l_component_appl_id
83607   , p_amb_context_code             => l_amb_context_code
83608   , p_side                         => 'NA'
83609   );
83610 
83611 
83612    l_segment := AcctDerRule_9(
83613            p_application_id           => p_application_id
83614          , p_ae_header_id             => l_ae_header_id 
83615 , p_source_17 => p_source_17
83616 , p_source_18 => p_source_18
83617 , p_source_18_meaning => p_source_18_meaning
83618 , p_source_19 => p_source_19
83619 , p_source_20 => p_source_20
83620 , p_source_20_meaning => p_source_20_meaning
83621          , x_transaction_coa_id       => l_adr_transaction_coa_id
83622          , x_accounting_coa_id        => l_adr_accounting_coa_id
83623          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
83624          , x_flex_value_set_id        => l_adr_flex_value_set_id
83625          , x_value_type_code          => l_adr_value_type_code
83626          , x_value_combination_id     => l_adr_value_combination_id
83627          , x_value_segment_code       => l_adr_value_segment_code
83628          , p_side                     => 'NA'
83629          , p_override_seg_flag        => 'Y'
83630    );
83631 
83632    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
83633 
83634       xla_ae_lines_pkg.set_segment(
83635           p_to_segment_code         => 'GL_ACCOUNT'
83636         , p_segment_value           => l_segment
83637         , p_from_segment_code       => l_adr_value_segment_code
83638         , p_from_combination_id     => l_adr_value_combination_id
83639         , p_value_type_code         => l_adr_value_type_code
83640         , p_transaction_coa_id      => l_adr_transaction_coa_id
83641         , p_accounting_coa_id       => l_adr_accounting_coa_id
83642         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
83643         , p_flex_value_set_id       => l_adr_flex_value_set_id
83644         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
83645         , p_adr_type_code           => 'S'
83646         , p_component_type          => l_component_type
83650         , p_amb_context_code        => l_amb_context_code
83647         , p_component_code          => l_component_code
83648         , p_component_type_code     => l_component_type_code
83649         , p_component_appl_id       => l_component_appl_id
83651         , p_entity_code             => 'AP_PAYMENTS'
83652         , p_event_class_code        => 'PAYMENTS'
83653         , p_side                    => 'NA'
83654         );
83655 
83656   END IF;
83657 
83658    --
83659    --
83660    END IF;
83661 
83662        --
83663        -- Update the line information that should be overwritten
83664        --
83665        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83666                                          p_header_num   => 1);
83667        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
83668 
83669        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83670 
83671        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
83672           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83673        END IF;
83674 
83675       --
83676       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83677       --
83678       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83679           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
83680       ELSE
83681           ---------------------------------------------------------------------------------------------------
83682           -- 4262811a Switch Sign
83683           ---------------------------------------------------------------------------------------------------
83684           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
83685           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83686                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83687           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83688                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83689           -- 5132302
83690           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83691                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83692 
83693       END IF;
83694 
83695       -- 4955764
83696       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83697       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83698 
83699 
83700       XLA_AE_LINES_PKG.ValidateCurrentLine;
83701       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83702 
83703       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83704                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83705                ,p_balance_type_code => l_balance_type_code);
83706 
83707    END IF;
83708 
83709    -----------------------------------------------------------------------------------------
83710    -- 4262811 Multiperiod Accounting
83711    -----------------------------------------------------------------------------------------
83712      -- No MPA option is assigned.
83713 
83714 
83715 END IF;
83716 END IF;
83717 --
83718 
83719 --
83720 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83721    trace
83722       (p_msg      => 'END of AcctLineType_151'
83723       ,p_level    => C_LEVEL_PROCEDURE
83724       ,p_module   => l_log_module);
83725 END IF;
83726 --
83727 EXCEPTION
83728   WHEN xla_exceptions_pkg.application_exception THEN
83729       RAISE;
83730   WHEN OTHERS THEN
83731        xla_exceptions_pkg.raise_message
83732            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_151');
83733 END AcctLineType_151;
83734 --
83735 
83736 ---------------------------------------
83737 --
83738 -- PRIVATE FUNCTION
83739 --         AcctLineType_152
83740 --
83741 ---------------------------------------
83742 PROCEDURE AcctLineType_152 (
83743   p_application_id        IN NUMBER
83744  ,p_event_id              IN NUMBER
83745  ,p_calculate_acctd_flag  IN VARCHAR2
83746  ,p_calculate_g_l_flag    IN VARCHAR2
83747  ,p_actual_flag           IN OUT VARCHAR2
83748  ,p_balance_type_code     OUT VARCHAR2
83749  ,p_gain_or_loss_ref      OUT VARCHAR2
83750  
83751 --Payment Distribution (Cleared Rate) Ledger Amount
83752  , p_source_10            IN NUMBER
83753 --Invoice Distribution Account
83754  , p_source_17            IN NUMBER
83755 --Invoice Distribution Type
83756  , p_source_20            IN VARCHAR2
83757  , p_source_20_meaning    IN VARCHAR2
83758 --When to Account for Payment Option
83759  , p_source_38            IN VARCHAR2
83760 --Payment Distribution Type
83761  , p_source_39            IN VARCHAR2
83762  , p_source_39_meaning    IN VARCHAR2
83763 --Accounting Reversal Indicator
83764  , p_source_40            IN VARCHAR2
83765 --Payment Distribution Amount
83766  , p_source_41            IN NUMBER
83767 --Business Flow Accounts Payable Application Identifier
83768  , p_source_42            IN NUMBER
83769 --Business Flow Payment Distribution Type
83770  , p_source_43            IN VARCHAR2
83774  , p_source_45            IN NUMBER
83771 --Business Flow Payment Entity Code
83772  , p_source_44            IN VARCHAR2
83773 --Business Flow Payment Distribution Identifier
83775 --Business Flow Payment Identifier
83776  , p_source_46            IN NUMBER
83777 --Payment Distribution Identifier
83778  , p_source_47            IN NUMBER
83779 --Distribution Link Type
83780  , p_source_48            IN VARCHAR2
83781 --Payment Currency Code
83782  , p_source_49            IN VARCHAR2
83783 --Override Accounted Amount Indicator
83784  , p_source_53            IN VARCHAR2
83785  , p_source_53_meaning    IN VARCHAR2
83786 --Payment Supplier Identifier
83787  , p_source_54            IN NUMBER
83788 --Payment Supplier Site Identifier
83789  , p_source_55            IN NUMBER
83790 --Third Party Type
83791  , p_source_56            IN VARCHAR2
83792 --Payment Distribution Reversed Identifier
83793  , p_source_57            IN NUMBER
83794 --Invoice Distribution Tax Line Identifier
83795  , p_source_58            IN NUMBER
83796 --Invoice Distribution Summary Tax Line Identifier
83797  , p_source_59            IN NUMBER
83798 --Payment Type
83799  , p_source_60            IN VARCHAR2
83800  , p_source_60_meaning    IN VARCHAR2
83801 --Invoice Type Paid
83802  , p_source_101            IN VARCHAR2
83803  , p_source_101_meaning    IN VARCHAR2
83804 --Cleared Exchange Date
83805  , p_source_107            IN DATE
83806 --Cleared Exchange Rate
83807  , p_source_108            IN NUMBER
83808 --Cleared Exchange Rate Type
83809  , p_source_109            IN VARCHAR2
83810 )
83811 IS
83812 
83813 l_component_type              VARCHAR2(80);
83814 l_component_code              VARCHAR2(30);
83815 l_component_type_code         VARCHAR2(1);
83816 l_component_appl_id           INTEGER;
83817 l_amb_context_code            VARCHAR2(30);
83818 l_entity_code                 VARCHAR2(30);
83819 l_event_class_code            VARCHAR2(30);
83820 l_ae_header_id                NUMBER;
83821 l_event_type_code             VARCHAR2(30);
83822 l_line_definition_code        VARCHAR2(30);
83823 l_line_definition_owner_code  VARCHAR2(1);
83824 --
83825 -- adr variables
83826 l_segment                     VARCHAR2(30);
83827 l_ccid                        NUMBER;
83828 l_adr_transaction_coa_id      NUMBER;
83829 l_adr_accounting_coa_id       NUMBER;
83830 l_adr_flexfield_segment_code  VARCHAR2(30);
83831 l_adr_flex_value_set_id       NUMBER;
83832 l_adr_value_type_code         VARCHAR2(30);
83833 l_adr_value_combination_id    NUMBER;
83834 l_adr_value_segment_code      VARCHAR2(30);
83835 
83836 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
83837 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
83838 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
83839 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
83840 
83841 -- 4262811 Variables ------------------------------------------------------------------------------------------
83842 l_entered_amt_idx             NUMBER;
83843 l_accted_amt_idx              NUMBER;
83844 l_acc_rev_flag                VARCHAR2(1);
83845 l_accrual_line_num            NUMBER;
83846 l_tmp_amt                     NUMBER;
83847 l_acc_rev_natural_side_code   VARCHAR2(1);
83848 
83849 l_num_entries                 NUMBER;
83850 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
83851 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
83852 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
83853 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
83854 l_recog_line_1                NUMBER;
83855 l_recog_line_2                NUMBER;
83856 
83857 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
83858 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
83859 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
83860 
83861 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83862 
83863 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
83864 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
83865 
83866 ---------------------------------------------------------------------------------------------------------------
83867 
83868 
83869 --
83870 -- bulk performance
83871 --
83872 l_balance_type_code           VARCHAR2(1);
83873 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
83874 l_log_module                  VARCHAR2(240);
83875 
83876 --
83877 -- Upgrade strategy
83878 --
83879 l_actual_upg_option           VARCHAR2(1);
83880 l_enc_upg_option           VARCHAR2(1);
83881 
83882 --
83883 BEGIN
83884 --
83885 IF g_log_enabled THEN
83886       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_152';
83887 END IF;
83888 --
83889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83890 
83891       trace
83892          (p_msg      => 'BEGIN of AcctLineType_152'
83893          ,p_level    => C_LEVEL_PROCEDURE
83894          ,p_module   => l_log_module);
83895 
83896 END IF;
83897 --
83898 l_component_type             := 'AMB_JLT';
83899 l_component_code             := 'AP_PREPAID_EXPENSE_CLEAR';
83900 l_component_type_code        := 'S';
83901 l_component_appl_id          :=  200;
83902 l_amb_context_code           := 'DEFAULT';
83903 l_entity_code                := 'AP_PAYMENTS';
83907 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
83904 l_event_class_code           := 'RECONCILED PAYMENTS';
83905 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
83906 l_line_definition_owner_code := 'S';
83908 --
83909 l_balance_type_code          := 'A';
83910 l_segment                     := NULL;
83911 l_ccid                        := NULL;
83912 l_adr_transaction_coa_id      := NULL;
83913 l_adr_accounting_coa_id       := NULL;
83914 l_adr_flexfield_segment_code  := NULL;
83915 l_adr_flex_value_set_id       := NULL;
83916 l_adr_value_type_code         := NULL;
83917 l_adr_value_combination_id    := NULL;
83918 l_adr_value_segment_code      := NULL;
83919 
83920 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
83921 l_bflow_class_code           := '';    -- 4219869 Business Flow
83922 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
83923 l_budgetary_control_flag     := 'N';
83924 
83925 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
83926 l_bflow_applied_to_amt       := NULL; -- 5132302
83927 l_entered_amt_idx            := NULL;          -- 4262811
83928 l_accted_amt_idx             := NULL;          -- 4262811
83929 l_acc_rev_flag               := NULL;          -- 4262811
83930 l_accrual_line_num           := NULL;          -- 4262811
83931 l_tmp_amt                    := NULL;          -- 4262811
83932 --
83933  
83934 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83935     l_balance_type_code <> 'B' THEN
83936 IF NVL(p_source_38,'
83937 ') =  'CLEAR_CLEAR' AND 
83938 (NVL(p_source_20,'
83939 ') =  'ITEM' OR 
83940 NVL(p_source_20,'
83941 ') =  'RETROEXPENSE') AND 
83942 NVL(p_source_101,'
83943 ') =  'PREPAYMENT' AND 
83944 (NVL(p_source_39,'
83945 ') =  'CASH' OR 
83946 NVL(p_source_39,'
83947 ') =  'DISCOUNT') AND 
83948 NVL(p_source_60,'
83949 ') <>  'R'
83950  THEN 
83951 
83952    --
83953    XLA_AE_LINES_PKG.SetNewLine;
83954 
83955    p_balance_type_code          := l_balance_type_code;
83956    -- set the flag so later we will know whether the gain loss line needs to be created
83957    
83958    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83959      p_actual_flag :='A';
83960    END IF;
83961 
83962    --
83963    -- bulk performance
83964    --
83965    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83966                                       p_header_num   => 0); -- 4262811
83967    --
83968    -- set accounting line options
83969    --
83970    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83971            p_natural_side_code          => 'D'
83972          , p_gain_or_loss_flag          => 'N'
83973          , p_gl_transfer_mode_code      => 'S'
83974          , p_acct_entry_type_code       => 'A'
83975          , p_switch_side_flag           => 'Y'
83976          , p_merge_duplicate_code       => 'A'
83977          );
83978    --
83979    l_acc_rev_natural_side_code := 'C';  -- 4262811
83980    -- 
83981    --
83982    -- set accounting line type info
83983    --
83984    xla_ae_lines_pkg.SetAcctLineType
83985       (p_component_type             => l_component_type
83986       ,p_event_type_code            => l_event_type_code
83987       ,p_line_definition_owner_code => l_line_definition_owner_code
83988       ,p_line_definition_code       => l_line_definition_code
83989       ,p_accounting_line_code       => l_component_code
83990       ,p_accounting_line_type_code  => l_component_type_code
83991       ,p_accounting_line_appl_id    => l_component_appl_id
83992       ,p_amb_context_code           => l_amb_context_code
83993       ,p_entity_code                => l_entity_code
83994       ,p_event_class_code           => l_event_class_code);
83995    --
83996    -- set accounting class
83997    --
83998    xla_ae_lines_pkg.SetAcctClass(
83999            p_accounting_class_code  => 'PREPAID_EXPENSE'
84000          , p_ae_header_id           => l_ae_header_id
84001          );
84002 
84003    --
84004    -- set rounding class
84005    --
84006    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84007                       'PREPAID_EXPENSE';
84008 
84009    --
84010    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84011    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84012    --
84013    -- bulk performance
84014    --
84015    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84016 
84017    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84018       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84019 
84020    -- 4955764
84021    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84022       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84023 
84024    -- 4458381 Public Sector Enh
84025    
84026    --
84027    -- set accounting attributes for the line type
84028    --
84029    l_entered_amt_idx := 10;
84030    l_accted_amt_idx  := 15;
84031    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
84032    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84033    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
84037    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
84034    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
84035    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
84036    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
84038    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84039    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
84040    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
84041    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
84042    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
84043    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
84044    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84045    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
84046    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
84047    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
84048    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
84049    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
84050    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
84051    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
84052    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
84053    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
84054    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
84055    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
84056    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
84057    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
84058    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
84059    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
84060    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
84061    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
84062    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
84063    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
84064    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
84065    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
84066    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
84067    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
84068    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
84069    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
84070    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
84071    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
84072    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
84073    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
84074    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
84075    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
84076    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
84077    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
84078    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
84079    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
84080 
84081    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84082    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84083 
84084    ---------------------------------------------------------------------------------------------------------------
84085    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84086    ---------------------------------------------------------------------------------------------------------------
84087    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84088 
84089    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84090    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84091 
84092    IF xla_accounting_cache_pkg.GetValueChar
84093          (p_source_code         => 'LEDGER_CATEGORY_CODE'
84094          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84095    AND l_bflow_method_code = 'PRIOR_ENTRY'
84096 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84097    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84098          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84099        )
84100    THEN
84101          xla_ae_lines_pkg.BflowUpgEntry
84102            (p_business_method_code    => l_bflow_method_code
84103            ,p_business_class_code     => l_bflow_class_code
84104            ,p_balance_type            => l_balance_type_code);
84105    ELSE
84106       NULL;
84107 -- No business flow processing for business flow method of NONE.
84108    END IF;
84109 
84110    --
84111    -- call analytical criteria
84112    --
84113    
84114    --
84115    -- call description
84116    --
84117    -- No description or it is inherited.
84118    --
84119    -- call ADRs
84120    -- Bug 4922099
84121    --
84122    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84123         (NVL(l_actual_upg_option, 'N') = 'O') OR
84124         (NVL(l_enc_upg_option, 'N') = 'O')
84125       )
84126    THEN
84127    NULL;
84128    --
84129    --
84130    
84131   l_ccid := AcctDerRule_26(
84132            p_application_id           => p_application_id
84133          , p_ae_header_id             => l_ae_header_id 
84137          , x_value_type_code          => l_adr_value_type_code
84134 , p_source_17 => p_source_17
84135          , x_transaction_coa_id       => l_adr_transaction_coa_id
84136          , x_accounting_coa_id        => l_adr_accounting_coa_id
84138          , p_side                     => 'NA'
84139    );
84140 
84141    xla_ae_lines_pkg.set_ccid(
84142     p_code_combination_id          => l_ccid
84143   , p_value_type_code              => l_adr_value_type_code
84144   , p_transaction_coa_id           => l_adr_transaction_coa_id
84145   , p_accounting_coa_id            => l_adr_accounting_coa_id
84146   , p_adr_code                     => 'AP_INVOICE_DIST'
84147   , p_adr_type_code                => 'S'
84148   , p_component_type               => l_component_type
84149   , p_component_code               => l_component_code
84150   , p_component_type_code          => l_component_type_code
84151   , p_component_appl_id            => l_component_appl_id
84152   , p_amb_context_code             => l_amb_context_code
84153   , p_side                         => 'NA'
84154   );
84155 
84156 
84157    --
84158    --
84159    END IF;
84160    --
84161    -- Bug 4922099
84162    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84163           (NVL(l_enc_upg_option, 'N') = 'O')
84164         ) AND
84165         (l_bflow_method_code = 'PRIOR_ENTRY')
84166       )
84167    THEN
84168       IF
84169       --
84170       1 = 2
84171       --
84172       THEN
84173       xla_accounting_err_pkg.build_message
84174                                     (p_appli_s_name            => 'XLA'
84175                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84176                                     ,p_token_1                 => 'LINE_NUMBER'
84177                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
84178                                     ,p_token_2                 => 'LINE_TYPE_NAME'
84179                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
84180                                                                              l_component_type
84181                                                                             ,l_component_code
84182                                                                             ,l_component_type_code
84183                                                                             ,l_component_appl_id
84184                                                                             ,l_amb_context_code
84185                                                                             ,l_entity_code
84186                                                                             ,l_event_class_code
84187                                                                            )
84188                                     ,p_token_3                 => 'OWNER'
84189                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
84190                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
84191                                                                           ,p_lookup_code    => l_component_type_code
84192                                                                          )
84193                                     ,p_token_4                 => 'PRODUCT_NAME'
84194                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84195                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84196                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84197                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84198                                     ,p_ae_header_id            =>  NULL
84199                                        );
84200 
84201         IF (C_LEVEL_ERROR>= g_log_level) THEN
84202                  trace
84203                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84204                       ,p_level    => C_LEVEL_ERROR
84205                       ,p_module   => l_log_module);
84206         END IF;
84207       END IF;
84208    END IF;
84209    --
84210    --
84211    ------------------------------------------------------------------------------------------------
84212    -- 4219869 Business Flow
84213    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84214    -- Prior Entry.  Currently, the following code is always generated.
84215    ------------------------------------------------------------------------------------------------
84216    XLA_AE_LINES_PKG.ValidateCurrentLine;
84217 
84218    ------------------------------------------------------------------------------------
84219    -- 4219869 Business Flow
84220    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84221    ------------------------------------------------------------------------------------
84222    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84223 
84224    ----------------------------------------------------------------------------------
84225    -- 4219869 Business Flow
84226    -- Update journal entry status -- Need to generate this within IF <condition>
84227    ----------------------------------------------------------------------------------
84228    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84229          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84233    -------------------------------------------------------------------------------------------
84230          ,p_balance_type_code => l_balance_type_code
84231          );
84232 
84234    -- 4262811 - Generate the Accrual Reversal lines
84235    -------------------------------------------------------------------------------------------
84236    BEGIN
84237       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84238                               (g_array_event(p_event_id).array_value_num('header_index'));
84239       IF l_acc_rev_flag IS NULL THEN
84240          l_acc_rev_flag := 'N';
84241       END IF;
84242    EXCEPTION
84243       WHEN OTHERS THEN
84244          l_acc_rev_flag := 'N';
84245    END;
84246    --
84247    IF (l_acc_rev_flag = 'Y') THEN
84248 
84249        -- 4645092  ------------------------------------------------------------------------------
84250        -- To allow MPA report to determine if it should generate report process
84251        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84252        ------------------------------------------------------------------------------------------
84253 
84254        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84255        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84256    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
84257    -- call ADRs
84258    -- Bug 4922099
84259    --
84260    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84261         (NVL(l_actual_upg_option, 'N') = 'O') OR
84262         (NVL(l_enc_upg_option, 'N') = 'O')
84263       )
84264    THEN
84265    NULL;
84266    --
84267    --
84268    
84269   l_ccid := AcctDerRule_26(
84270            p_application_id           => p_application_id
84271          , p_ae_header_id             => l_ae_header_id 
84272 , p_source_17 => p_source_17
84273          , x_transaction_coa_id       => l_adr_transaction_coa_id
84274          , x_accounting_coa_id        => l_adr_accounting_coa_id
84275          , x_value_type_code          => l_adr_value_type_code
84276          , p_side                     => 'NA'
84277    );
84278 
84279    xla_ae_lines_pkg.set_ccid(
84280     p_code_combination_id          => l_ccid
84281   , p_value_type_code              => l_adr_value_type_code
84282   , p_transaction_coa_id           => l_adr_transaction_coa_id
84283   , p_accounting_coa_id            => l_adr_accounting_coa_id
84284   , p_adr_code                     => 'AP_INVOICE_DIST'
84285   , p_adr_type_code                => 'S'
84286   , p_component_type               => l_component_type
84287   , p_component_code               => l_component_code
84288   , p_component_type_code          => l_component_type_code
84289   , p_component_appl_id            => l_component_appl_id
84290   , p_amb_context_code             => l_amb_context_code
84291   , p_side                         => 'NA'
84292   );
84293 
84294 
84295    --
84296    --
84297    END IF;
84298 
84299        --
84300        -- Update the line information that should be overwritten
84301        --
84302        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84303                                          p_header_num   => 1);
84304        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
84305 
84306        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84307 
84308        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
84309           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84310        END IF;
84311 
84312       --
84313       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84314       --
84315       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84316           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
84317       ELSE
84318           ---------------------------------------------------------------------------------------------------
84319           -- 4262811a Switch Sign
84320           ---------------------------------------------------------------------------------------------------
84321           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
84322           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84323                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84324           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84325                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84326           -- 5132302
84327           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84328                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84329 
84330       END IF;
84331 
84332       -- 4955764
84333       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84334       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84335 
84336 
84337       XLA_AE_LINES_PKG.ValidateCurrentLine;
84338       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84339 
84340       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84344    END IF;
84341                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84342                ,p_balance_type_code => l_balance_type_code);
84343 
84345 
84346    -----------------------------------------------------------------------------------------
84347    -- 4262811 Multiperiod Accounting
84348    -----------------------------------------------------------------------------------------
84349      -- No MPA option is assigned.
84350 
84351 
84352 END IF;
84353 END IF;
84354 --
84355 
84356 --
84357 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84358    trace
84359       (p_msg      => 'END of AcctLineType_152'
84360       ,p_level    => C_LEVEL_PROCEDURE
84361       ,p_module   => l_log_module);
84362 END IF;
84363 --
84364 EXCEPTION
84365   WHEN xla_exceptions_pkg.application_exception THEN
84366       RAISE;
84367   WHEN OTHERS THEN
84368        xla_exceptions_pkg.raise_message
84369            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_152');
84370 END AcctLineType_152;
84371 --
84372 
84373 ---------------------------------------
84374 --
84375 -- PRIVATE FUNCTION
84376 --         AcctLineType_153
84377 --
84378 ---------------------------------------
84379 PROCEDURE AcctLineType_153 (
84380   p_application_id        IN NUMBER
84381  ,p_event_id              IN NUMBER
84382  ,p_calculate_acctd_flag  IN VARCHAR2
84383  ,p_calculate_g_l_flag    IN VARCHAR2
84384  ,p_actual_flag           IN OUT VARCHAR2
84385  ,p_balance_type_code     OUT VARCHAR2
84386  ,p_gain_or_loss_ref      OUT VARCHAR2
84387  
84388 --When to Account for Payment Option
84389  , p_source_38            IN VARCHAR2
84390 --Accounting Reversal Indicator
84391  , p_source_40            IN VARCHAR2
84392 --Business Flow Accounts Payable Application Identifier
84393  , p_source_42            IN NUMBER
84394 --Distribution Link Type
84395  , p_source_48            IN VARCHAR2
84396 --Override Accounted Amount Indicator
84397  , p_source_53            IN VARCHAR2
84398  , p_source_53_meaning    IN VARCHAR2
84399 --Third Party Type
84400  , p_source_56            IN VARCHAR2
84401 --Invoice Distribution Tax Line Identifier
84402  , p_source_58            IN NUMBER
84403 --Invoice Distribution Summary Tax Line Identifier
84404  , p_source_59            IN NUMBER
84405 --Invoice Distribution Tax Distribution Identifier from Tax
84406  , p_source_66            IN NUMBER
84407 --Prepayment Distribution Type
84408  , p_source_67            IN VARCHAR2
84409 --Prepayment Application Distribution Identifier
84410  , p_source_71            IN NUMBER
84411 --Invoice Identifier
84412  , p_source_72            IN NUMBER
84413 --Upgrade Encumbrance Credit Account Class
84414  , p_source_77            IN VARCHAR2
84415 --Payables Encumbrance Upgrade Credit Account
84416  , p_source_78            IN NUMBER
84417 --Payables Encumbrance Upgrade Credit Amount
84418  , p_source_79            IN NUMBER
84419 --Invoice Currency Code
84420  , p_source_80            IN VARCHAR2
84421 --Payables Encumbrance Upgrade Credit Base Amount
84422  , p_source_81            IN NUMBER
84423 --Upgrade Encumbrance Debit Account Class
84424  , p_source_82            IN VARCHAR2
84425 --Payables Encumbrance Upgrade Debit Account
84426  , p_source_83            IN NUMBER
84427 --Payables Encumbrance Upgrade Debit Amount
84428  , p_source_84            IN NUMBER
84429 --Payables Encumbrance Upgrade Debit Base Amount
84430  , p_source_85            IN NUMBER
84431 --Payables Encumbrance Upgrade Option
84432  , p_source_86            IN VARCHAR2
84433 --Prepayment Distribution Amount
84434  , p_source_87            IN NUMBER
84435 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
84436  , p_source_89            IN NUMBER
84437 --Deferred Accounting End Date
84438  , p_source_90            IN DATE
84439 --Deferred Accounting Option
84440  , p_source_91            IN VARCHAR2
84441 --Deferred Accounting Start Date
84442  , p_source_92            IN DATE
84443 --Identifier of the Prepayment Application Reversed
84444  , p_source_95            IN NUMBER
84445 --Payables Upgrade Credit Encumbrance Type Identifier
84446  , p_source_96            IN NUMBER
84447 --Payables Upgrade Debit Encumbrance Type Identifier
84448  , p_source_97            IN NUMBER
84449 --Business Flow Prepayment Clearing Distribution Type
84450  , p_source_134            IN VARCHAR2
84451 --Business Flow Cash Basis Clearing Only Prepayment Entity Code
84452  , p_source_135            IN VARCHAR2
84453 --Business Flow Prepay Payment Clearing Distribution Id
84454  , p_source_136            IN NUMBER
84455 --Business Flow Prepay Payment Id
84456  , p_source_137            IN NUMBER
84457 )
84458 IS
84459 
84460 l_component_type              VARCHAR2(80);
84461 l_component_code              VARCHAR2(30);
84462 l_component_type_code         VARCHAR2(1);
84463 l_component_appl_id           INTEGER;
84464 l_amb_context_code            VARCHAR2(30);
84465 l_entity_code                 VARCHAR2(30);
84466 l_event_class_code            VARCHAR2(30);
84467 l_ae_header_id                NUMBER;
84468 l_event_type_code             VARCHAR2(30);
84469 l_line_definition_code        VARCHAR2(30);
84470 l_line_definition_owner_code  VARCHAR2(1);
84471 --
84472 -- adr variables
84473 l_segment                     VARCHAR2(30);
84474 l_ccid                        NUMBER;
84475 l_adr_transaction_coa_id      NUMBER;
84476 l_adr_accounting_coa_id       NUMBER;
84480 l_adr_value_combination_id    NUMBER;
84477 l_adr_flexfield_segment_code  VARCHAR2(30);
84478 l_adr_flex_value_set_id       NUMBER;
84479 l_adr_value_type_code         VARCHAR2(30);
84481 l_adr_value_segment_code      VARCHAR2(30);
84482 
84483 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
84484 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
84485 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
84486 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
84487 
84488 -- 4262811 Variables ------------------------------------------------------------------------------------------
84489 l_entered_amt_idx             NUMBER;
84490 l_accted_amt_idx              NUMBER;
84491 l_acc_rev_flag                VARCHAR2(1);
84492 l_accrual_line_num            NUMBER;
84493 l_tmp_amt                     NUMBER;
84494 l_acc_rev_natural_side_code   VARCHAR2(1);
84495 
84496 l_num_entries                 NUMBER;
84497 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
84498 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
84499 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
84500 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
84501 l_recog_line_1                NUMBER;
84502 l_recog_line_2                NUMBER;
84503 
84504 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
84505 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
84506 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
84507 
84508 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
84509 
84510 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
84511 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
84512 
84513 ---------------------------------------------------------------------------------------------------------------
84514 
84515 
84516 --
84517 -- bulk performance
84518 --
84519 l_balance_type_code           VARCHAR2(1);
84520 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
84521 l_log_module                  VARCHAR2(240);
84522 
84523 --
84524 -- Upgrade strategy
84525 --
84526 l_actual_upg_option           VARCHAR2(1);
84527 l_enc_upg_option           VARCHAR2(1);
84528 
84529 --
84530 BEGIN
84531 --
84532 IF g_log_enabled THEN
84533       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_153';
84534 END IF;
84535 --
84536 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84537 
84538       trace
84539          (p_msg      => 'BEGIN of AcctLineType_153'
84540          ,p_level    => C_LEVEL_PROCEDURE
84541          ,p_module   => l_log_module);
84542 
84543 END IF;
84544 --
84545 l_component_type             := 'AMB_JLT';
84546 l_component_code             := 'AP_PREPAID_EXP_CASH_CLR_XRATE';
84547 l_component_type_code        := 'S';
84548 l_component_appl_id          :=  200;
84549 l_amb_context_code           := 'DEFAULT';
84550 l_entity_code                := 'AP_INVOICES';
84551 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
84552 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
84553 l_line_definition_owner_code := 'S';
84554 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
84555 --
84556 l_balance_type_code          := 'A';
84557 l_segment                     := NULL;
84558 l_ccid                        := NULL;
84559 l_adr_transaction_coa_id      := NULL;
84560 l_adr_accounting_coa_id       := NULL;
84561 l_adr_flexfield_segment_code  := NULL;
84562 l_adr_flex_value_set_id       := NULL;
84563 l_adr_value_type_code         := NULL;
84564 l_adr_value_combination_id    := NULL;
84565 l_adr_value_segment_code      := NULL;
84566 
84567 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
84568 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
84569 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
84570 l_budgetary_control_flag     := 'N';
84571 
84572 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
84573 l_bflow_applied_to_amt       := NULL; -- 5132302
84574 l_entered_amt_idx            := NULL;          -- 4262811
84575 l_accted_amt_idx             := NULL;          -- 4262811
84576 l_acc_rev_flag               := NULL;          -- 4262811
84577 l_accrual_line_num           := NULL;          -- 4262811
84578 l_tmp_amt                    := NULL;          -- 4262811
84579 --
84580  
84581 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84582     l_balance_type_code <> 'B' THEN
84583 IF NVL(p_source_38,'
84584 ') =  'CLEAR_CLEAR' AND 
84585 (NVL(p_source_67,'
84586 ') =  'PREPAY APPL' OR 
84587 NVL(p_source_67,'
84588 ') =  'PREPAY APPL NONREC TAX' OR 
84589 NVL(p_source_67,'
84590 ') =  'PREPAY APPL REC TAX' OR 
84591 NVL(p_source_67,'
84592 ') =  'TAX DIFF' OR 
84593 NVL(p_source_67,'
84594 ') =  'FINAL APPLICATION ROUNDING')
84595  THEN 
84596 
84597    --
84598    XLA_AE_LINES_PKG.SetNewLine;
84599 
84600    p_balance_type_code          := l_balance_type_code;
84601    -- set the flag so later we will know whether the gain loss line needs to be created
84602    
84603    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
84604      p_actual_flag :='A';
84605    END IF;
84606 
84610    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84607    --
84608    -- bulk performance
84609    --
84611                                       p_header_num   => 0); -- 4262811
84612    --
84613    -- set accounting line options
84614    --
84615    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84616            p_natural_side_code          => 'D'
84617          , p_gain_or_loss_flag          => 'N'
84618          , p_gl_transfer_mode_code      => 'S'
84619          , p_acct_entry_type_code       => 'A'
84620          , p_switch_side_flag           => 'Y'
84621          , p_merge_duplicate_code       => 'A'
84622          );
84623    --
84624    l_acc_rev_natural_side_code := 'C';  -- 4262811
84625    -- 
84626    --
84627    -- set accounting line type info
84628    --
84629    xla_ae_lines_pkg.SetAcctLineType
84630       (p_component_type             => l_component_type
84631       ,p_event_type_code            => l_event_type_code
84632       ,p_line_definition_owner_code => l_line_definition_owner_code
84633       ,p_line_definition_code       => l_line_definition_code
84634       ,p_accounting_line_code       => l_component_code
84635       ,p_accounting_line_type_code  => l_component_type_code
84636       ,p_accounting_line_appl_id    => l_component_appl_id
84637       ,p_amb_context_code           => l_amb_context_code
84638       ,p_entity_code                => l_entity_code
84639       ,p_event_class_code           => l_event_class_code);
84640    --
84641    -- set accounting class
84642    --
84643    xla_ae_lines_pkg.SetAcctClass(
84644            p_accounting_class_code  => 'PREPAID_EXPENSE'
84645          , p_ae_header_id           => l_ae_header_id
84646          );
84647 
84648    --
84649    -- set rounding class
84650    --
84651    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84652                       'PREPAID_EXPENSE';
84653 
84654    --
84655    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84656    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84657    --
84658    -- bulk performance
84659    --
84660    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84661 
84662    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84663       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84664 
84665    -- 4955764
84666    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84667       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84668 
84669    -- 4458381 Public Sector Enh
84670    
84671    --
84672    -- set accounting attributes for the line type
84673    --
84674    l_entered_amt_idx := 25;
84675    l_accted_amt_idx  := 27;
84676    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
84677    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84678    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
84679    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
84680    l_rec_acct_attrs.array_num_value(2)  := 
84681 xla_ae_sources_pkg.GetSystemSourceNum(
84682    p_source_code           => 'XLA_EVENT_APPL_ID'
84683  , p_source_type_code      => 'Y'
84684  , p_source_application_id =>  602
84685 );
84686    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
84687    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
84688    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
84689    l_rec_acct_attrs.array_char_value(4)  := 
84690 xla_ae_sources_pkg.GetSystemSourceChar(
84691    p_source_code           => 'XLA_ENTITY_CODE'
84692  , p_source_type_code      => 'Y'
84693  , p_source_application_id =>  602
84694 );
84695    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
84696    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
84697    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
84698    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
84699    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
84700    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
84701    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84702    l_rec_acct_attrs.array_char_value(8)  := p_source_134;
84703    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
84704    l_rec_acct_attrs.array_char_value(9)  := p_source_135;
84705    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
84706    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_136);
84707    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84708    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_137);
84709    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
84710    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
84711    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
84712    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
84713    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
84714    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
84715    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
84716    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
84720    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
84717    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
84718    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
84719    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
84721    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
84722    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
84723    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
84724    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
84725    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
84726    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
84727    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
84728    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
84729    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
84730    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
84731    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
84732    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
84733    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
84734    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
84735    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
84736    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
84737    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
84738    l_rec_acct_attrs.array_char_value(26)  := p_source_80;
84739    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
84740    l_rec_acct_attrs.array_num_value(27)  := p_source_89;
84741    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
84742    l_rec_acct_attrs.array_date_value(28)  := p_source_90;
84743    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
84744    l_rec_acct_attrs.array_char_value(29)  := p_source_91;
84745    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
84746    l_rec_acct_attrs.array_date_value(30)  := p_source_92;
84747    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
84748    l_rec_acct_attrs.array_char_value(31)  := p_source_53;
84749    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
84750    l_rec_acct_attrs.array_char_value(32)  := p_source_56;
84751    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
84752    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_95);
84753    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
84754    l_rec_acct_attrs.array_char_value(34)  := p_source_48;
84755    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
84756    l_rec_acct_attrs.array_num_value(35)  := p_source_58;
84757    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
84758    l_rec_acct_attrs.array_num_value(36)  := p_source_66;
84759    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
84760    l_rec_acct_attrs.array_num_value(37)  := p_source_59;
84761    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
84762    l_rec_acct_attrs.array_num_value(38)  := p_source_96;
84763    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
84764    l_rec_acct_attrs.array_num_value(39)  := p_source_97;
84765 
84766    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84767    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84768 
84769    ---------------------------------------------------------------------------------------------------------------
84770    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84771    ---------------------------------------------------------------------------------------------------------------
84772    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84773 
84774    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84775    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84776 
84777    IF xla_accounting_cache_pkg.GetValueChar
84778          (p_source_code         => 'LEDGER_CATEGORY_CODE'
84779          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84780    AND l_bflow_method_code = 'PRIOR_ENTRY'
84781 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84782    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84783          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84784        )
84785    THEN
84786          xla_ae_lines_pkg.BflowUpgEntry
84787            (p_business_method_code    => l_bflow_method_code
84788            ,p_business_class_code     => l_bflow_class_code
84789            ,p_balance_type            => l_balance_type_code);
84790    ELSE
84791       NULL;
84792 XLA_AE_LINES_PKG.business_flow_validation(
84793                                 p_business_method_code     => l_bflow_method_code
84794                                ,p_business_class_code      => l_bflow_class_code
84795                                ,p_inherit_description_flag => l_inherit_desc_flag);
84796    END IF;
84797 
84798    --
84799    -- call analytical criteria
84800    --
84801    -- Inherited Analytical Criteria for business flow method of Prior Entry.
84802    --
84803    -- call description
84804    --
84805    -- No description or it is inherited.
84806    --
84807    -- call ADRs
84808    -- Bug 4922099
84809    --
84810    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84814    THEN
84811         (NVL(l_actual_upg_option, 'N') = 'O') OR
84812         (NVL(l_enc_upg_option, 'N') = 'O')
84813       )
84815    NULL;
84816    --
84817    --
84818    
84819    --
84820    --
84821    END IF;
84822    --
84823    -- Bug 4922099
84824    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84825           (NVL(l_enc_upg_option, 'N') = 'O')
84826         ) AND
84827         (l_bflow_method_code = 'PRIOR_ENTRY')
84828       )
84829    THEN
84830       IF
84831       --
84832       1 = 1
84833       --
84834       THEN
84835       xla_accounting_err_pkg.build_message
84836                                     (p_appli_s_name            => 'XLA'
84837                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84838                                     ,p_token_1                 => 'LINE_NUMBER'
84839                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
84840                                     ,p_token_2                 => 'LINE_TYPE_NAME'
84841                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
84842                                                                              l_component_type
84843                                                                             ,l_component_code
84844                                                                             ,l_component_type_code
84845                                                                             ,l_component_appl_id
84846                                                                             ,l_amb_context_code
84847                                                                             ,l_entity_code
84848                                                                             ,l_event_class_code
84849                                                                            )
84850                                     ,p_token_3                 => 'OWNER'
84851                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
84852                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
84853                                                                           ,p_lookup_code    => l_component_type_code
84854                                                                          )
84855                                     ,p_token_4                 => 'PRODUCT_NAME'
84856                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84857                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84858                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84859                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84860                                     ,p_ae_header_id            =>  NULL
84861                                        );
84862 
84863         IF (C_LEVEL_ERROR>= g_log_level) THEN
84864                  trace
84865                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84866                       ,p_level    => C_LEVEL_ERROR
84867                       ,p_module   => l_log_module);
84868         END IF;
84869       END IF;
84870    END IF;
84871    --
84872    --
84873    ------------------------------------------------------------------------------------------------
84874    -- 4219869 Business Flow
84875    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84876    -- Prior Entry.  Currently, the following code is always generated.
84877    ------------------------------------------------------------------------------------------------
84878    -- No ValidateCurrentLine for business flow method of Prior Entry
84879 
84880    ------------------------------------------------------------------------------------
84881    -- 4219869 Business Flow
84882    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84883    ------------------------------------------------------------------------------------
84884    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84885 
84886    ----------------------------------------------------------------------------------
84887    -- 4219869 Business Flow
84888    -- Update journal entry status -- Need to generate this within IF <condition>
84889    ----------------------------------------------------------------------------------
84890    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84891          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84892          ,p_balance_type_code => l_balance_type_code
84893          );
84894 
84895    -------------------------------------------------------------------------------------------
84896    -- 4262811 - Generate the Accrual Reversal lines
84897    -------------------------------------------------------------------------------------------
84898    BEGIN
84899       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84900                               (g_array_event(p_event_id).array_value_num('header_index'));
84901       IF l_acc_rev_flag IS NULL THEN
84902          l_acc_rev_flag := 'N';
84903       END IF;
84904    EXCEPTION
84905       WHEN OTHERS THEN
84906          l_acc_rev_flag := 'N';
84907    END;
84908    --
84909    IF (l_acc_rev_flag = 'Y') THEN
84910 
84914        ------------------------------------------------------------------------------------------
84911        -- 4645092  ------------------------------------------------------------------------------
84912        -- To allow MPA report to determine if it should generate report process
84913        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84915 
84916        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84917        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84918    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
84919    -- call ADRs
84920    -- Bug 4922099
84921    --
84922    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84923         (NVL(l_actual_upg_option, 'N') = 'O') OR
84924         (NVL(l_enc_upg_option, 'N') = 'O')
84925       )
84926    THEN
84927    NULL;
84928    --
84929    --
84930    
84931    --
84932    --
84933    END IF;
84934 
84935        --
84936        -- Update the line information that should be overwritten
84937        --
84938        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84939                                          p_header_num   => 1);
84940        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
84941 
84942        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84943 
84944        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
84945           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84946        END IF;
84947 
84948       --
84949       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84950       --
84951       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84952           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
84953       ELSE
84954           ---------------------------------------------------------------------------------------------------
84955           -- 4262811a Switch Sign
84956           ---------------------------------------------------------------------------------------------------
84957           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
84958           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84959                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84960           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84961                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84962           -- 5132302
84963           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84964                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84965 
84966       END IF;
84967 
84968       -- 4955764
84969       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84970       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84971 
84972 
84973       XLA_AE_LINES_PKG.ValidateCurrentLine;
84974       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84975 
84976       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84977                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84978                ,p_balance_type_code => l_balance_type_code);
84979 
84980    END IF;
84981 
84982    -----------------------------------------------------------------------------------------
84983    -- 4262811 Multiperiod Accounting
84984    -----------------------------------------------------------------------------------------
84985      -- No MPA option is assigned.
84986 
84987 
84988 END IF;
84989 END IF;
84990 --
84991 
84992 --
84993 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84994    trace
84995       (p_msg      => 'END of AcctLineType_153'
84996       ,p_level    => C_LEVEL_PROCEDURE
84997       ,p_module   => l_log_module);
84998 END IF;
84999 --
85000 EXCEPTION
85001   WHEN xla_exceptions_pkg.application_exception THEN
85002       RAISE;
85003   WHEN OTHERS THEN
85004        xla_exceptions_pkg.raise_message
85005            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_153');
85006 END AcctLineType_153;
85007 --
85008 
85009 ---------------------------------------
85010 --
85011 -- PRIVATE FUNCTION
85012 --         AcctLineType_154
85013 --
85014 ---------------------------------------
85015 PROCEDURE AcctLineType_154 (
85016   p_application_id        IN NUMBER
85017  ,p_event_id              IN NUMBER
85018  ,p_calculate_acctd_flag  IN VARCHAR2
85019  ,p_calculate_g_l_flag    IN VARCHAR2
85020  ,p_actual_flag           IN OUT VARCHAR2
85021  ,p_balance_type_code     OUT VARCHAR2
85022  ,p_gain_or_loss_ref      OUT VARCHAR2
85023  
85024 --When to Account for Payment Option
85025  , p_source_38            IN VARCHAR2
85026 --Accounting Reversal Indicator
85027  , p_source_40            IN VARCHAR2
85028 --Business Flow Accounts Payable Application Identifier
85029  , p_source_42            IN NUMBER
85030 --Distribution Link Type
85031  , p_source_48            IN VARCHAR2
85032 --Override Accounted Amount Indicator
85033  , p_source_53            IN VARCHAR2
85034  , p_source_53_meaning    IN VARCHAR2
85038  , p_source_58            IN NUMBER
85035 --Third Party Type
85036  , p_source_56            IN VARCHAR2
85037 --Invoice Distribution Tax Line Identifier
85039 --Invoice Distribution Summary Tax Line Identifier
85040  , p_source_59            IN NUMBER
85041 --Invoice Distribution Tax Distribution Identifier from Tax
85042  , p_source_66            IN NUMBER
85043 --Prepayment Distribution Type
85044  , p_source_67            IN VARCHAR2
85045 --Prepayment Application Distribution Identifier
85046  , p_source_71            IN NUMBER
85047 --Invoice Identifier
85048  , p_source_72            IN NUMBER
85049 --Upgrade Encumbrance Credit Account Class
85050  , p_source_77            IN VARCHAR2
85051 --Payables Encumbrance Upgrade Credit Account
85052  , p_source_78            IN NUMBER
85053 --Payables Encumbrance Upgrade Credit Amount
85054  , p_source_79            IN NUMBER
85055 --Invoice Currency Code
85056  , p_source_80            IN VARCHAR2
85057 --Payables Encumbrance Upgrade Credit Base Amount
85058  , p_source_81            IN NUMBER
85059 --Upgrade Encumbrance Debit Account Class
85060  , p_source_82            IN VARCHAR2
85061 --Payables Encumbrance Upgrade Debit Account
85062  , p_source_83            IN NUMBER
85063 --Payables Encumbrance Upgrade Debit Amount
85064  , p_source_84            IN NUMBER
85065 --Payables Encumbrance Upgrade Debit Base Amount
85066  , p_source_85            IN NUMBER
85067 --Payables Encumbrance Upgrade Option
85068  , p_source_86            IN VARCHAR2
85069 --Prepayment Distribution Amount
85070  , p_source_87            IN NUMBER
85071 --Deferred Accounting End Date
85072  , p_source_90            IN DATE
85073 --Deferred Accounting Option
85074  , p_source_91            IN VARCHAR2
85075 --Deferred Accounting Start Date
85076  , p_source_92            IN DATE
85077 --Identifier of the Prepayment Application Reversed
85078  , p_source_95            IN NUMBER
85079 --Payables Upgrade Credit Encumbrance Type Identifier
85080  , p_source_96            IN NUMBER
85081 --Payables Upgrade Debit Encumbrance Type Identifier
85082  , p_source_97            IN NUMBER
85083 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
85084  , p_source_99            IN NUMBER
85085 --Business Flow Prepay Payment Id
85086  , p_source_137            IN NUMBER
85087 --Business Flow Prepayment Payment Distribution Type
85088  , p_source_138            IN VARCHAR2
85089 --Business Flow Cash Basis Prepayment Entity Code
85090  , p_source_139            IN VARCHAR2
85091 --Business Flow Prepay Payment Distribution Id
85092  , p_source_140            IN NUMBER
85093 )
85094 IS
85095 
85096 l_component_type              VARCHAR2(80);
85097 l_component_code              VARCHAR2(30);
85098 l_component_type_code         VARCHAR2(1);
85099 l_component_appl_id           INTEGER;
85100 l_amb_context_code            VARCHAR2(30);
85101 l_entity_code                 VARCHAR2(30);
85102 l_event_class_code            VARCHAR2(30);
85103 l_ae_header_id                NUMBER;
85104 l_event_type_code             VARCHAR2(30);
85105 l_line_definition_code        VARCHAR2(30);
85106 l_line_definition_owner_code  VARCHAR2(1);
85107 --
85108 -- adr variables
85109 l_segment                     VARCHAR2(30);
85110 l_ccid                        NUMBER;
85111 l_adr_transaction_coa_id      NUMBER;
85112 l_adr_accounting_coa_id       NUMBER;
85113 l_adr_flexfield_segment_code  VARCHAR2(30);
85114 l_adr_flex_value_set_id       NUMBER;
85115 l_adr_value_type_code         VARCHAR2(30);
85116 l_adr_value_combination_id    NUMBER;
85117 l_adr_value_segment_code      VARCHAR2(30);
85118 
85119 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
85120 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
85121 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
85122 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
85123 
85124 -- 4262811 Variables ------------------------------------------------------------------------------------------
85125 l_entered_amt_idx             NUMBER;
85126 l_accted_amt_idx              NUMBER;
85127 l_acc_rev_flag                VARCHAR2(1);
85128 l_accrual_line_num            NUMBER;
85129 l_tmp_amt                     NUMBER;
85130 l_acc_rev_natural_side_code   VARCHAR2(1);
85131 
85132 l_num_entries                 NUMBER;
85133 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
85134 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
85135 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
85136 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
85137 l_recog_line_1                NUMBER;
85138 l_recog_line_2                NUMBER;
85139 
85140 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
85141 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
85142 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
85143 
85144 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85145 
85146 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
85147 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
85148 
85149 ---------------------------------------------------------------------------------------------------------------
85150 
85151 
85152 --
85153 -- bulk performance
85154 --
85158 
85155 l_balance_type_code           VARCHAR2(1);
85156 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
85157 l_log_module                  VARCHAR2(240);
85159 --
85160 -- Upgrade strategy
85161 --
85162 l_actual_upg_option           VARCHAR2(1);
85163 l_enc_upg_option           VARCHAR2(1);
85164 
85165 --
85166 BEGIN
85167 --
85168 IF g_log_enabled THEN
85169       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_154';
85170 END IF;
85171 --
85172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85173 
85174       trace
85175          (p_msg      => 'BEGIN of AcctLineType_154'
85176          ,p_level    => C_LEVEL_PROCEDURE
85177          ,p_module   => l_log_module);
85178 
85179 END IF;
85180 --
85181 l_component_type             := 'AMB_JLT';
85182 l_component_code             := 'AP_PREPAID_EXP_CASH_PAY_XRATE';
85183 l_component_type_code        := 'S';
85184 l_component_appl_id          :=  200;
85185 l_amb_context_code           := 'DEFAULT';
85186 l_entity_code                := 'AP_INVOICES';
85187 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
85188 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
85189 l_line_definition_owner_code := 'S';
85190 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
85191 --
85192 l_balance_type_code          := 'A';
85193 l_segment                     := NULL;
85194 l_ccid                        := NULL;
85195 l_adr_transaction_coa_id      := NULL;
85196 l_adr_accounting_coa_id       := NULL;
85197 l_adr_flexfield_segment_code  := NULL;
85198 l_adr_flex_value_set_id       := NULL;
85199 l_adr_value_type_code         := NULL;
85200 l_adr_value_combination_id    := NULL;
85201 l_adr_value_segment_code      := NULL;
85202 
85203 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
85204 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
85205 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
85206 l_budgetary_control_flag     := 'N';
85207 
85208 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
85209 l_bflow_applied_to_amt       := NULL; -- 5132302
85210 l_entered_amt_idx            := NULL;          -- 4262811
85211 l_accted_amt_idx             := NULL;          -- 4262811
85212 l_acc_rev_flag               := NULL;          -- 4262811
85213 l_accrual_line_num           := NULL;          -- 4262811
85214 l_tmp_amt                    := NULL;          -- 4262811
85215 --
85216  
85217 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85218     l_balance_type_code <> 'B' THEN
85219 IF NVL(p_source_38,'
85220 ') <>  'CLEAR_CLEAR' AND 
85221 (NVL(p_source_67,'
85222 ') =  'PREPAY APPL' OR 
85223 NVL(p_source_67,'
85224 ') =  'PREPAY APPL NONREC TAX' OR 
85225 NVL(p_source_67,'
85226 ') =  'PREPAY APPL REC TAX' OR 
85227 NVL(p_source_67,'
85228 ') =  'TAX DIFF' OR 
85229 NVL(p_source_67,'
85230 ') =  'FINAL APPLICATION ROUNDING')
85231  THEN 
85232 
85233    --
85234    XLA_AE_LINES_PKG.SetNewLine;
85235 
85236    p_balance_type_code          := l_balance_type_code;
85237    -- set the flag so later we will know whether the gain loss line needs to be created
85238    
85239    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
85240      p_actual_flag :='A';
85241    END IF;
85242 
85243    --
85244    -- bulk performance
85245    --
85246    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85247                                       p_header_num   => 0); -- 4262811
85248    --
85249    -- set accounting line options
85250    --
85251    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85252            p_natural_side_code          => 'D'
85253          , p_gain_or_loss_flag          => 'N'
85254          , p_gl_transfer_mode_code      => 'S'
85255          , p_acct_entry_type_code       => 'A'
85256          , p_switch_side_flag           => 'Y'
85257          , p_merge_duplicate_code       => 'A'
85258          );
85259    --
85260    l_acc_rev_natural_side_code := 'C';  -- 4262811
85261    -- 
85262    --
85263    -- set accounting line type info
85264    --
85265    xla_ae_lines_pkg.SetAcctLineType
85266       (p_component_type             => l_component_type
85267       ,p_event_type_code            => l_event_type_code
85268       ,p_line_definition_owner_code => l_line_definition_owner_code
85269       ,p_line_definition_code       => l_line_definition_code
85270       ,p_accounting_line_code       => l_component_code
85271       ,p_accounting_line_type_code  => l_component_type_code
85272       ,p_accounting_line_appl_id    => l_component_appl_id
85273       ,p_amb_context_code           => l_amb_context_code
85274       ,p_entity_code                => l_entity_code
85275       ,p_event_class_code           => l_event_class_code);
85276    --
85277    -- set accounting class
85278    --
85279    xla_ae_lines_pkg.SetAcctClass(
85280            p_accounting_class_code  => 'PREPAID_EXPENSE'
85281          , p_ae_header_id           => l_ae_header_id
85282          );
85283 
85284    --
85285    -- set rounding class
85286    --
85287    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85288                       'PREPAID_EXPENSE';
85289 
85290    --
85291    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85295    --
85292    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85293    --
85294    -- bulk performance
85296    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85297 
85298    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85299       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85300 
85301    -- 4955764
85302    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85303       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85304 
85305    -- 4458381 Public Sector Enh
85306    
85307    --
85308    -- set accounting attributes for the line type
85309    --
85310    l_entered_amt_idx := 25;
85311    l_accted_amt_idx  := 27;
85312    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
85313    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85314    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
85315    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
85316    l_rec_acct_attrs.array_num_value(2)  := 
85317 xla_ae_sources_pkg.GetSystemSourceNum(
85318    p_source_code           => 'XLA_EVENT_APPL_ID'
85319  , p_source_type_code      => 'Y'
85320  , p_source_application_id =>  602
85321 );
85322    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
85323    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
85324    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
85325    l_rec_acct_attrs.array_char_value(4)  := 
85326 xla_ae_sources_pkg.GetSystemSourceChar(
85327    p_source_code           => 'XLA_ENTITY_CODE'
85328  , p_source_type_code      => 'Y'
85329  , p_source_application_id =>  602
85330 );
85331    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
85332    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
85333    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
85334    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
85335    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
85336    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
85337    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85338    l_rec_acct_attrs.array_char_value(8)  := p_source_138;
85339    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
85340    l_rec_acct_attrs.array_char_value(9)  := p_source_139;
85341    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
85342    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_140);
85343    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85344    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_137);
85345    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
85346    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
85347    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
85348    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
85349    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
85350    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
85351    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
85352    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
85353    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
85354    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
85355    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
85356    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
85357    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
85358    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
85359    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
85360    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
85361    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
85362    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
85363    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
85364    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
85365    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
85366    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
85367    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
85368    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
85369    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
85370    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
85371    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
85372    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
85373    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
85374    l_rec_acct_attrs.array_char_value(26)  := p_source_80;
85375    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
85376    l_rec_acct_attrs.array_num_value(27)  := p_source_99;
85377    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
85378    l_rec_acct_attrs.array_date_value(28)  := p_source_90;
85379    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
85380    l_rec_acct_attrs.array_char_value(29)  := p_source_91;
85381    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
85382    l_rec_acct_attrs.array_date_value(30)  := p_source_92;
85383    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
85384    l_rec_acct_attrs.array_char_value(31)  := p_source_53;
85388    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_95);
85385    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
85386    l_rec_acct_attrs.array_char_value(32)  := p_source_56;
85387    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
85389    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
85390    l_rec_acct_attrs.array_char_value(34)  := p_source_48;
85391    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
85392    l_rec_acct_attrs.array_num_value(35)  := p_source_58;
85393    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
85394    l_rec_acct_attrs.array_num_value(36)  := p_source_66;
85395    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
85396    l_rec_acct_attrs.array_num_value(37)  := p_source_59;
85397    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
85398    l_rec_acct_attrs.array_num_value(38)  := p_source_96;
85399    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
85400    l_rec_acct_attrs.array_num_value(39)  := p_source_97;
85401 
85402    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85403    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85404 
85405    ---------------------------------------------------------------------------------------------------------------
85406    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85407    ---------------------------------------------------------------------------------------------------------------
85408    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85409 
85410    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85411    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85412 
85413    IF xla_accounting_cache_pkg.GetValueChar
85414          (p_source_code         => 'LEDGER_CATEGORY_CODE'
85415          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85416    AND l_bflow_method_code = 'PRIOR_ENTRY'
85417 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85418    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85419          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85420        )
85421    THEN
85422          xla_ae_lines_pkg.BflowUpgEntry
85423            (p_business_method_code    => l_bflow_method_code
85424            ,p_business_class_code     => l_bflow_class_code
85425            ,p_balance_type            => l_balance_type_code);
85426    ELSE
85427       NULL;
85428 XLA_AE_LINES_PKG.business_flow_validation(
85429                                 p_business_method_code     => l_bflow_method_code
85430                                ,p_business_class_code      => l_bflow_class_code
85431                                ,p_inherit_description_flag => l_inherit_desc_flag);
85432    END IF;
85433 
85434    --
85435    -- call analytical criteria
85436    --
85437    -- Inherited Analytical Criteria for business flow method of Prior Entry.
85438    --
85439    -- call description
85440    --
85441    -- No description or it is inherited.
85442    --
85443    -- call ADRs
85444    -- Bug 4922099
85445    --
85446    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85447         (NVL(l_actual_upg_option, 'N') = 'O') OR
85448         (NVL(l_enc_upg_option, 'N') = 'O')
85449       )
85450    THEN
85451    NULL;
85452    --
85453    --
85454    
85455    --
85456    --
85457    END IF;
85458    --
85459    -- Bug 4922099
85460    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85461           (NVL(l_enc_upg_option, 'N') = 'O')
85462         ) AND
85463         (l_bflow_method_code = 'PRIOR_ENTRY')
85464       )
85465    THEN
85466       IF
85467       --
85468       1 = 1
85469       --
85470       THEN
85471       xla_accounting_err_pkg.build_message
85472                                     (p_appli_s_name            => 'XLA'
85473                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85474                                     ,p_token_1                 => 'LINE_NUMBER'
85475                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
85476                                     ,p_token_2                 => 'LINE_TYPE_NAME'
85477                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
85478                                                                              l_component_type
85479                                                                             ,l_component_code
85480                                                                             ,l_component_type_code
85481                                                                             ,l_component_appl_id
85482                                                                             ,l_amb_context_code
85483                                                                             ,l_entity_code
85484                                                                             ,l_event_class_code
85485                                                                            )
85486                                     ,p_token_3                 => 'OWNER'
85490                                                                          )
85487                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
85488                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
85489                                                                           ,p_lookup_code    => l_component_type_code
85491                                     ,p_token_4                 => 'PRODUCT_NAME'
85492                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85493                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85494                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85495                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85496                                     ,p_ae_header_id            =>  NULL
85497                                        );
85498 
85499         IF (C_LEVEL_ERROR>= g_log_level) THEN
85500                  trace
85501                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85502                       ,p_level    => C_LEVEL_ERROR
85503                       ,p_module   => l_log_module);
85504         END IF;
85505       END IF;
85506    END IF;
85507    --
85508    --
85509    ------------------------------------------------------------------------------------------------
85510    -- 4219869 Business Flow
85511    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85512    -- Prior Entry.  Currently, the following code is always generated.
85513    ------------------------------------------------------------------------------------------------
85514    -- No ValidateCurrentLine for business flow method of Prior Entry
85515 
85516    ------------------------------------------------------------------------------------
85517    -- 4219869 Business Flow
85518    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85519    ------------------------------------------------------------------------------------
85520    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85521 
85522    ----------------------------------------------------------------------------------
85523    -- 4219869 Business Flow
85524    -- Update journal entry status -- Need to generate this within IF <condition>
85525    ----------------------------------------------------------------------------------
85526    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85527          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85528          ,p_balance_type_code => l_balance_type_code
85529          );
85530 
85531    -------------------------------------------------------------------------------------------
85532    -- 4262811 - Generate the Accrual Reversal lines
85533    -------------------------------------------------------------------------------------------
85534    BEGIN
85535       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85536                               (g_array_event(p_event_id).array_value_num('header_index'));
85537       IF l_acc_rev_flag IS NULL THEN
85538          l_acc_rev_flag := 'N';
85539       END IF;
85540    EXCEPTION
85541       WHEN OTHERS THEN
85542          l_acc_rev_flag := 'N';
85543    END;
85544    --
85545    IF (l_acc_rev_flag = 'Y') THEN
85546 
85547        -- 4645092  ------------------------------------------------------------------------------
85548        -- To allow MPA report to determine if it should generate report process
85549        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85550        ------------------------------------------------------------------------------------------
85551 
85552        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85553        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85554    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
85555    -- call ADRs
85556    -- Bug 4922099
85557    --
85558    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85559         (NVL(l_actual_upg_option, 'N') = 'O') OR
85560         (NVL(l_enc_upg_option, 'N') = 'O')
85561       )
85562    THEN
85563    NULL;
85564    --
85565    --
85566    
85567    --
85568    --
85569    END IF;
85570 
85571        --
85572        -- Update the line information that should be overwritten
85573        --
85574        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
85575                                          p_header_num   => 1);
85576        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
85577 
85578        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
85579 
85580        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
85581           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
85582        END IF;
85583 
85584       --
85585       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
85586       --
85587       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
85588           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
85589       ELSE
85593           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
85590           ---------------------------------------------------------------------------------------------------
85591           -- 4262811a Switch Sign
85592           ---------------------------------------------------------------------------------------------------
85594           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85595                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85596           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85597                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85598           -- 5132302
85599           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
85600                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85601 
85602       END IF;
85603 
85604       -- 4955764
85605       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85606       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
85607 
85608 
85609       XLA_AE_LINES_PKG.ValidateCurrentLine;
85610       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85611 
85612       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85613                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
85614                ,p_balance_type_code => l_balance_type_code);
85615 
85616    END IF;
85617 
85618    -----------------------------------------------------------------------------------------
85619    -- 4262811 Multiperiod Accounting
85620    -----------------------------------------------------------------------------------------
85621      -- No MPA option is assigned.
85622 
85623 
85624 END IF;
85625 END IF;
85626 --
85627 
85628 --
85629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85630    trace
85631       (p_msg      => 'END of AcctLineType_154'
85632       ,p_level    => C_LEVEL_PROCEDURE
85633       ,p_module   => l_log_module);
85634 END IF;
85635 --
85636 EXCEPTION
85637   WHEN xla_exceptions_pkg.application_exception THEN
85638       RAISE;
85639   WHEN OTHERS THEN
85640        xla_exceptions_pkg.raise_message
85641            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_154');
85642 END AcctLineType_154;
85643 --
85644 
85645 ---------------------------------------
85646 --
85647 -- PRIVATE FUNCTION
85648 --         AcctLineType_155
85649 --
85650 ---------------------------------------
85651 PROCEDURE AcctLineType_155 (
85652   p_application_id        IN NUMBER
85653  ,p_event_id              IN NUMBER
85654  ,p_calculate_acctd_flag  IN VARCHAR2
85655  ,p_calculate_g_l_flag    IN VARCHAR2
85656  ,p_actual_flag           IN OUT VARCHAR2
85657  ,p_balance_type_code     OUT VARCHAR2
85658  ,p_gain_or_loss_ref      OUT VARCHAR2
85659  
85660 --Invoice Distribution Account
85661  , p_source_17            IN NUMBER
85662 --Accounting Reversal Indicator
85663  , p_source_40            IN VARCHAR2
85664 --Business Flow Accounts Payable Application Identifier
85665  , p_source_42            IN NUMBER
85666 --Distribution Link Type
85667  , p_source_48            IN VARCHAR2
85668 --Override Accounted Amount Indicator
85669  , p_source_53            IN VARCHAR2
85670  , p_source_53_meaning    IN VARCHAR2
85671 --Third Party Type
85672  , p_source_56            IN VARCHAR2
85673 --Invoice Distribution Tax Line Identifier
85674  , p_source_58            IN NUMBER
85675 --Invoice Distribution Summary Tax Line Identifier
85676  , p_source_59            IN NUMBER
85677 --Invoice Distribution Tax Distribution Identifier from Tax
85678  , p_source_66            IN NUMBER
85679 --Prepayment Distribution Type
85680  , p_source_67            IN VARCHAR2
85681 --Prepayment Application Distribution Identifier
85682  , p_source_71            IN NUMBER
85683 --Invoice Identifier
85684  , p_source_72            IN NUMBER
85685 --Business Flow Prepayment Invoice Distribution Type
85686  , p_source_73            IN VARCHAR2
85687 --Business Flow Prepayment Invoice Entity Code
85688  , p_source_74            IN VARCHAR2
85689 --Business Flow Prepayment Invoice Distribution Identifier
85690  , p_source_75            IN NUMBER
85691 --Business Flow Prepayment Invoice Identifier
85692  , p_source_76            IN NUMBER
85693 --Upgrade Encumbrance Credit Account Class
85694  , p_source_77            IN VARCHAR2
85695 --Payables Encumbrance Upgrade Credit Account
85696  , p_source_78            IN NUMBER
85697 --Payables Encumbrance Upgrade Credit Amount
85698  , p_source_79            IN NUMBER
85699 --Invoice Currency Code
85700  , p_source_80            IN VARCHAR2
85701 --Payables Encumbrance Upgrade Credit Base Amount
85702  , p_source_81            IN NUMBER
85703 --Upgrade Encumbrance Debit Account Class
85704  , p_source_82            IN VARCHAR2
85705 --Payables Encumbrance Upgrade Debit Account
85706  , p_source_83            IN NUMBER
85707 --Payables Encumbrance Upgrade Debit Amount
85708  , p_source_84            IN NUMBER
85709 --Payables Encumbrance Upgrade Debit Base Amount
85710  , p_source_85            IN NUMBER
85711 --Payables Encumbrance Upgrade Option
85712  , p_source_86            IN VARCHAR2
85713 --Prepayment Distribution Amount
85717 --Deferred Accounting Option
85714  , p_source_87            IN NUMBER
85715 --Deferred Accounting End Date
85716  , p_source_90            IN DATE
85718  , p_source_91            IN VARCHAR2
85719 --Deferred Accounting Start Date
85720  , p_source_92            IN DATE
85721 --Invoice Supplier Identifier
85722  , p_source_93            IN NUMBER
85723 --Invoice Supplier Site Identifier
85724  , p_source_94            IN NUMBER
85725 --Identifier of the Prepayment Application Reversed
85726  , p_source_95            IN NUMBER
85727 --Payables Upgrade Credit Encumbrance Type Identifier
85728  , p_source_96            IN NUMBER
85729 --Payables Upgrade Debit Encumbrance Type Identifier
85730  , p_source_97            IN NUMBER
85731 --Purchasing Encumbrance Option
85732  , p_source_102            IN VARCHAR2
85733  , p_source_102_meaning    IN VARCHAR2
85734 --Invoice Encumbered Option
85735  , p_source_104            IN VARCHAR2
85736  , p_source_104_meaning    IN VARCHAR2
85737 --Invoice Exchange Date
85738  , p_source_124            IN DATE
85739 --Invoice Exchange Rate
85740  , p_source_125            IN NUMBER
85741 --Invoice Exchange Rate Type
85742  , p_source_126            IN VARCHAR2
85743 --Prepayment Distribution (Invoice Rate) Ledger Amount
85744  , p_source_141            IN NUMBER
85745 )
85746 IS
85747 
85748 l_component_type              VARCHAR2(80);
85749 l_component_code              VARCHAR2(30);
85750 l_component_type_code         VARCHAR2(1);
85751 l_component_appl_id           INTEGER;
85752 l_amb_context_code            VARCHAR2(30);
85753 l_entity_code                 VARCHAR2(30);
85754 l_event_class_code            VARCHAR2(30);
85755 l_ae_header_id                NUMBER;
85756 l_event_type_code             VARCHAR2(30);
85757 l_line_definition_code        VARCHAR2(30);
85758 l_line_definition_owner_code  VARCHAR2(1);
85759 --
85760 -- adr variables
85761 l_segment                     VARCHAR2(30);
85762 l_ccid                        NUMBER;
85763 l_adr_transaction_coa_id      NUMBER;
85764 l_adr_accounting_coa_id       NUMBER;
85765 l_adr_flexfield_segment_code  VARCHAR2(30);
85766 l_adr_flex_value_set_id       NUMBER;
85767 l_adr_value_type_code         VARCHAR2(30);
85768 l_adr_value_combination_id    NUMBER;
85769 l_adr_value_segment_code      VARCHAR2(30);
85770 
85771 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
85772 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
85773 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
85774 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
85775 
85776 -- 4262811 Variables ------------------------------------------------------------------------------------------
85777 l_entered_amt_idx             NUMBER;
85778 l_accted_amt_idx              NUMBER;
85779 l_acc_rev_flag                VARCHAR2(1);
85780 l_accrual_line_num            NUMBER;
85781 l_tmp_amt                     NUMBER;
85782 l_acc_rev_natural_side_code   VARCHAR2(1);
85783 
85784 l_num_entries                 NUMBER;
85785 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
85786 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
85787 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
85788 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
85789 l_recog_line_1                NUMBER;
85790 l_recog_line_2                NUMBER;
85791 
85792 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
85793 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
85794 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
85795 
85796 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85797 
85798 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
85799 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
85800 
85801 ---------------------------------------------------------------------------------------------------------------
85802 
85803 
85804 --
85805 -- bulk performance
85806 --
85807 l_balance_type_code           VARCHAR2(1);
85808 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
85809 l_log_module                  VARCHAR2(240);
85810 
85811 --
85812 -- Upgrade strategy
85813 --
85814 l_actual_upg_option           VARCHAR2(1);
85815 l_enc_upg_option           VARCHAR2(1);
85816 
85817 --
85818 BEGIN
85819 --
85820 IF g_log_enabled THEN
85821       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_155';
85822 END IF;
85823 --
85824 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85825 
85826       trace
85827          (p_msg      => 'BEGIN of AcctLineType_155'
85828          ,p_level    => C_LEVEL_PROCEDURE
85829          ,p_module   => l_log_module);
85830 
85831 END IF;
85832 --
85833 l_component_type             := 'AMB_JLT';
85834 l_component_code             := 'AP_PREPAID_EXP_PREPAY_APP_ENC';
85835 l_component_type_code        := 'S';
85836 l_component_appl_id          :=  200;
85837 l_amb_context_code           := 'DEFAULT';
85838 l_entity_code                := 'AP_INVOICES';
85839 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
85840 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
85841 l_line_definition_owner_code := 'S';
85842 l_line_definition_code       := 'AP_ENC_REV_PREPAY_APPL_ALL';
85843 --
85844 l_balance_type_code          := 'E';
85848 l_adr_accounting_coa_id       := NULL;
85845 l_segment                     := NULL;
85846 l_ccid                        := NULL;
85847 l_adr_transaction_coa_id      := NULL;
85849 l_adr_flexfield_segment_code  := NULL;
85850 l_adr_flex_value_set_id       := NULL;
85851 l_adr_value_type_code         := NULL;
85852 l_adr_value_combination_id    := NULL;
85853 l_adr_value_segment_code      := NULL;
85854 
85855 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
85856 l_bflow_class_code           := '';    -- 4219869 Business Flow
85857 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
85858 l_budgetary_control_flag     := 'N';
85859 
85860 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
85861 l_bflow_applied_to_amt       := NULL; -- 5132302
85862 l_entered_amt_idx            := NULL;          -- 4262811
85863 l_accted_amt_idx             := NULL;          -- 4262811
85864 l_acc_rev_flag               := NULL;          -- 4262811
85865 l_accrual_line_num           := NULL;          -- 4262811
85866 l_tmp_amt                    := NULL;          -- 4262811
85867 --
85868  
85869 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85870     l_balance_type_code <> 'B' THEN
85871 IF (NVL(p_source_67,'
85872 ') =  'PREPAY APPL' OR 
85873 NVL(p_source_67,'
85874 ') =  'PREPAY APPL NONREC TAX' OR 
85875 NVL(p_source_67,'
85876 ') =  'PREPAY APPL REC TAX' OR 
85877 NVL(p_source_67,'
85878 ') =  'TAX DIFF' OR 
85879 NVL(p_source_67,'
85880 ') =  'FINAL APPLICATION ROUNDING') AND 
85881 NVL(p_source_102,'
85882 ') =  'Y' AND 
85883 NVL(p_source_104,'
85884 ') =  'Y'
85885  THEN 
85886 
85887    --
85888    XLA_AE_LINES_PKG.SetNewLine;
85889 
85890    p_balance_type_code          := l_balance_type_code;
85891    -- set the flag so later we will know whether the gain loss line needs to be created
85892    
85893    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
85894      p_actual_flag :='A';
85895    END IF;
85896 
85897    --
85898    -- bulk performance
85899    --
85900    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85901                                       p_header_num   => 0); -- 4262811
85902    --
85903    -- set accounting line options
85904    --
85905    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85906            p_natural_side_code          => 'C'
85907          , p_gain_or_loss_flag          => 'N'
85908          , p_gl_transfer_mode_code      => 'S'
85909          , p_acct_entry_type_code       => 'E'
85910          , p_switch_side_flag           => 'Y'
85911          , p_merge_duplicate_code       => 'A'
85912          );
85913    --
85914    l_acc_rev_natural_side_code := 'D';  -- 4262811
85915    -- 
85916    --
85917    -- set accounting line type info
85918    --
85919    xla_ae_lines_pkg.SetAcctLineType
85920       (p_component_type             => l_component_type
85921       ,p_event_type_code            => l_event_type_code
85922       ,p_line_definition_owner_code => l_line_definition_owner_code
85923       ,p_line_definition_code       => l_line_definition_code
85924       ,p_accounting_line_code       => l_component_code
85925       ,p_accounting_line_type_code  => l_component_type_code
85926       ,p_accounting_line_appl_id    => l_component_appl_id
85927       ,p_amb_context_code           => l_amb_context_code
85928       ,p_entity_code                => l_entity_code
85929       ,p_event_class_code           => l_event_class_code);
85930    --
85931    -- set accounting class
85932    --
85933    xla_ae_lines_pkg.SetAcctClass(
85934            p_accounting_class_code  => 'PREPAID_EXPENSE'
85935          , p_ae_header_id           => l_ae_header_id
85936          );
85937 
85938    --
85939    -- set rounding class
85940    --
85941    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85942                       'PREPAID_EXPENSE';
85943 
85944    --
85945    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85946    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85947    --
85948    -- bulk performance
85949    --
85950    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85951 
85952    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85953       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85954 
85955    -- 4955764
85956    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85957       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85958 
85959    -- 4458381 Public Sector Enh
85960       XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
85961    --
85962    -- set accounting attributes for the line type
85963    --
85964    l_entered_amt_idx := 25;
85965    l_accted_amt_idx  := 30;
85966    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
85967    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85968    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
85969    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
85970    l_rec_acct_attrs.array_num_value(2)  := 
85974  , p_source_application_id =>  602
85971 xla_ae_sources_pkg.GetSystemSourceNum(
85972    p_source_code           => 'XLA_EVENT_APPL_ID'
85973  , p_source_type_code      => 'Y'
85975 );
85976    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
85977    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
85978    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
85979    l_rec_acct_attrs.array_char_value(4)  := 
85980 xla_ae_sources_pkg.GetSystemSourceChar(
85981    p_source_code           => 'XLA_ENTITY_CODE'
85982  , p_source_type_code      => 'Y'
85983  , p_source_application_id =>  602
85984 );
85985    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
85986    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
85987    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
85988    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
85989    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
85990    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
85991    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85992    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
85993    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
85994    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
85995    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
85996    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
85997    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85998    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
85999    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
86000    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
86001    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
86002    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
86003    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
86004    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
86005    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
86006    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
86007    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
86008    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
86009    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
86010    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
86011    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
86012    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
86013    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
86014    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
86015    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
86016    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
86017    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
86018    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
86019    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
86020    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
86021    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
86022    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
86023    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
86024    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
86025    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
86026    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
86027    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
86028    l_rec_acct_attrs.array_char_value(26)  := p_source_80;
86029    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
86030    l_rec_acct_attrs.array_date_value(27)  := p_source_124;
86031    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
86032    l_rec_acct_attrs.array_num_value(28)  := p_source_125;
86033    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
86034    l_rec_acct_attrs.array_char_value(29)  := p_source_126;
86035    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
86036    l_rec_acct_attrs.array_num_value(30)  := p_source_141;
86037    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
86038    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
86039    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
86040    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
86041    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
86042    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
86043    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
86044    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
86045    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
86046    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
86047    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
86048    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
86049    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
86050    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
86051    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
86052    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
86053    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
86054    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
86055    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
86056    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
86060    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
86057    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
86058    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
86059    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
86061    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
86062    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
86063    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
86064    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
86065 
86066    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86067    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86068 
86069    ---------------------------------------------------------------------------------------------------------------
86070    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86071    ---------------------------------------------------------------------------------------------------------------
86072    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86073 
86074    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86075    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86076 
86077    IF xla_accounting_cache_pkg.GetValueChar
86078          (p_source_code         => 'LEDGER_CATEGORY_CODE'
86079          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86080    AND l_bflow_method_code = 'PRIOR_ENTRY'
86081 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86082    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86083          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86084        )
86085    THEN
86086          xla_ae_lines_pkg.BflowUpgEntry
86087            (p_business_method_code    => l_bflow_method_code
86088            ,p_business_class_code     => l_bflow_class_code
86089            ,p_balance_type            => l_balance_type_code);
86090    ELSE
86091       NULL;
86092 -- No business flow processing for business flow method of NONE.
86093    END IF;
86094 
86095    --
86096    -- call analytical criteria
86097    --
86098    
86099    --
86100    -- call description
86101    --
86102    -- No description or it is inherited.
86103    --
86104    -- call ADRs
86105    -- Bug 4922099
86106    --
86107    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86108         (NVL(l_actual_upg_option, 'N') = 'O') OR
86109         (NVL(l_enc_upg_option, 'N') = 'O')
86110       )
86111    THEN
86112    NULL;
86113    --
86114    --
86115    
86116   l_ccid := AcctDerRule_37(
86117            p_application_id           => p_application_id
86118          , p_ae_header_id             => l_ae_header_id 
86119 , p_source_17 => p_source_17
86120          , x_transaction_coa_id       => l_adr_transaction_coa_id
86121          , x_accounting_coa_id        => l_adr_accounting_coa_id
86122          , x_value_type_code          => l_adr_value_type_code
86123          , p_side                     => 'NA'
86124    );
86125 
86126    xla_ae_lines_pkg.set_ccid(
86127     p_code_combination_id          => l_ccid
86128   , p_value_type_code              => l_adr_value_type_code
86129   , p_transaction_coa_id           => l_adr_transaction_coa_id
86130   , p_accounting_coa_id            => l_adr_accounting_coa_id
86131   , p_adr_code                     => 'FV_AP_INV_DISTRBUTION_CCID'
86132   , p_adr_type_code                => 'S'
86133   , p_component_type               => l_component_type
86134   , p_component_code               => l_component_code
86135   , p_component_type_code          => l_component_type_code
86136   , p_component_appl_id            => l_component_appl_id
86137   , p_amb_context_code             => l_amb_context_code
86138   , p_side                         => 'NA'
86139   );
86140 
86141 
86142    --
86143    --
86144    END IF;
86145    --
86146    -- Bug 4922099
86147    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86148           (NVL(l_enc_upg_option, 'N') = 'O')
86149         ) AND
86150         (l_bflow_method_code = 'PRIOR_ENTRY')
86151       )
86152    THEN
86153       IF
86154       --
86155       1 = 2
86156       --
86157       THEN
86158       xla_accounting_err_pkg.build_message
86159                                     (p_appli_s_name            => 'XLA'
86160                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86161                                     ,p_token_1                 => 'LINE_NUMBER'
86162                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
86163                                     ,p_token_2                 => 'LINE_TYPE_NAME'
86164                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
86165                                                                              l_component_type
86166                                                                             ,l_component_code
86167                                                                             ,l_component_type_code
86168                                                                             ,l_component_appl_id
86169                                                                             ,l_amb_context_code
86173                                     ,p_token_3                 => 'OWNER'
86170                                                                             ,l_entity_code
86171                                                                             ,l_event_class_code
86172                                                                            )
86174                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
86175                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
86176                                                                           ,p_lookup_code    => l_component_type_code
86177                                                                          )
86178                                     ,p_token_4                 => 'PRODUCT_NAME'
86179                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86180                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86181                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86182                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86183                                     ,p_ae_header_id            =>  NULL
86184                                        );
86185 
86186         IF (C_LEVEL_ERROR>= g_log_level) THEN
86187                  trace
86188                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86189                       ,p_level    => C_LEVEL_ERROR
86190                       ,p_module   => l_log_module);
86191         END IF;
86192       END IF;
86193    END IF;
86194    --
86195    --
86196    ------------------------------------------------------------------------------------------------
86197    -- 4219869 Business Flow
86198    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86199    -- Prior Entry.  Currently, the following code is always generated.
86200    ------------------------------------------------------------------------------------------------
86201    XLA_AE_LINES_PKG.ValidateCurrentLine;
86202 
86203    ------------------------------------------------------------------------------------
86204    -- 4219869 Business Flow
86205    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86206    ------------------------------------------------------------------------------------
86207    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86208 
86209    ----------------------------------------------------------------------------------
86210    -- 4219869 Business Flow
86211    -- Update journal entry status -- Need to generate this within IF <condition>
86212    ----------------------------------------------------------------------------------
86213    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86214          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86215          ,p_balance_type_code => l_balance_type_code
86216          );
86217 
86218    -------------------------------------------------------------------------------------------
86219    -- 4262811 - Generate the Accrual Reversal lines
86220    -------------------------------------------------------------------------------------------
86221    BEGIN
86222       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86223                               (g_array_event(p_event_id).array_value_num('header_index'));
86224       IF l_acc_rev_flag IS NULL THEN
86225          l_acc_rev_flag := 'N';
86226       END IF;
86227    EXCEPTION
86228       WHEN OTHERS THEN
86229          l_acc_rev_flag := 'N';
86230    END;
86231    --
86232    IF (l_acc_rev_flag = 'Y') THEN
86233 
86234        -- 4645092  ------------------------------------------------------------------------------
86235        -- To allow MPA report to determine if it should generate report process
86236        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86237        ------------------------------------------------------------------------------------------
86238 
86239        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86240        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86241    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
86242    -- call ADRs
86243    -- Bug 4922099
86244    --
86245    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86246         (NVL(l_actual_upg_option, 'N') = 'O') OR
86247         (NVL(l_enc_upg_option, 'N') = 'O')
86248       )
86249    THEN
86250    NULL;
86251    --
86252    --
86253    
86254   l_ccid := AcctDerRule_37(
86255            p_application_id           => p_application_id
86256          , p_ae_header_id             => l_ae_header_id 
86257 , p_source_17 => p_source_17
86258          , x_transaction_coa_id       => l_adr_transaction_coa_id
86259          , x_accounting_coa_id        => l_adr_accounting_coa_id
86260          , x_value_type_code          => l_adr_value_type_code
86261          , p_side                     => 'NA'
86262    );
86263 
86264    xla_ae_lines_pkg.set_ccid(
86265     p_code_combination_id          => l_ccid
86266   , p_value_type_code              => l_adr_value_type_code
86267   , p_transaction_coa_id           => l_adr_transaction_coa_id
86268   , p_accounting_coa_id            => l_adr_accounting_coa_id
86269   , p_adr_code                     => 'FV_AP_INV_DISTRBUTION_CCID'
86270   , p_adr_type_code                => 'S'
86274   , p_component_appl_id            => l_component_appl_id
86271   , p_component_type               => l_component_type
86272   , p_component_code               => l_component_code
86273   , p_component_type_code          => l_component_type_code
86275   , p_amb_context_code             => l_amb_context_code
86276   , p_side                         => 'NA'
86277   );
86278 
86279 
86280    --
86281    --
86282    END IF;
86283 
86284        --
86285        -- Update the line information that should be overwritten
86286        --
86287        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86288                                          p_header_num   => 1);
86289        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
86290 
86291        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86292 
86293        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
86294           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86295        END IF;
86296 
86297       --
86298       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86299       --
86300       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86301           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
86302       ELSE
86303           ---------------------------------------------------------------------------------------------------
86304           -- 4262811a Switch Sign
86305           ---------------------------------------------------------------------------------------------------
86306           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
86307           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86308                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86309           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86310                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86311           -- 5132302
86312           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86313                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86314 
86315       END IF;
86316 
86317       -- 4955764
86318       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86319       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86320 
86321 
86322       XLA_AE_LINES_PKG.ValidateCurrentLine;
86323       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86324 
86325       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86326                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86327                ,p_balance_type_code => l_balance_type_code);
86328 
86329    END IF;
86330 
86331    -----------------------------------------------------------------------------------------
86332    -- 4262811 Multiperiod Accounting
86333    -----------------------------------------------------------------------------------------
86334      -- No MPA option is assigned.
86335 
86336 
86337 END IF;
86338 END IF;
86339 --
86340 
86341 --
86342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86343    trace
86344       (p_msg      => 'END of AcctLineType_155'
86345       ,p_level    => C_LEVEL_PROCEDURE
86346       ,p_module   => l_log_module);
86347 END IF;
86348 --
86349 EXCEPTION
86350   WHEN xla_exceptions_pkg.application_exception THEN
86351       RAISE;
86352   WHEN OTHERS THEN
86353        xla_exceptions_pkg.raise_message
86354            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_155');
86355 END AcctLineType_155;
86356 --
86357 
86358 ---------------------------------------
86359 --
86360 -- PRIVATE FUNCTION
86361 --         AcctLineType_156
86362 --
86363 ---------------------------------------
86364 PROCEDURE AcctLineType_156 (
86365   p_application_id        IN NUMBER
86366  ,p_event_id              IN NUMBER
86367  ,p_calculate_acctd_flag  IN VARCHAR2
86368  ,p_calculate_g_l_flag    IN VARCHAR2
86369  ,p_actual_flag           IN OUT VARCHAR2
86370  ,p_balance_type_code     OUT VARCHAR2
86371  ,p_gain_or_loss_ref      OUT VARCHAR2
86372  
86373 --When to Account for Payment Option
86374  , p_source_38            IN VARCHAR2
86375 --Payment Distribution Type
86376  , p_source_39            IN VARCHAR2
86377  , p_source_39_meaning    IN VARCHAR2
86378 --Accounting Reversal Indicator
86379  , p_source_40            IN VARCHAR2
86380 --Payment Distribution Amount
86381  , p_source_41            IN NUMBER
86382 --Business Flow Accounts Payable Application Identifier
86383  , p_source_42            IN NUMBER
86384 --Payment Distribution Identifier
86385  , p_source_47            IN NUMBER
86386 --Distribution Link Type
86387  , p_source_48            IN VARCHAR2
86388 --Payment Currency Code
86389  , p_source_49            IN VARCHAR2
86390 --Override Accounted Amount Indicator
86391  , p_source_53            IN VARCHAR2
86392  , p_source_53_meaning    IN VARCHAR2
86393 --Third Party Type
86394  , p_source_56            IN VARCHAR2
86395 --Payment Distribution Reversed Identifier
86399 --Invoice Distribution Summary Tax Line Identifier
86396  , p_source_57            IN NUMBER
86397 --Invoice Distribution Tax Line Identifier
86398  , p_source_58            IN NUMBER
86400  , p_source_59            IN NUMBER
86401 --Business Flow Invoice Distribution Type
86402  , p_source_62            IN VARCHAR2
86403 --Business Flow Invoice Entity Code
86404  , p_source_63            IN VARCHAR2
86405 --Business Flow Invoice Distribution Identifier
86406  , p_source_64            IN NUMBER
86407 --Business Flow Invoice Identifier
86408  , p_source_65            IN NUMBER
86409 --Accrue on Receipt Option
86410  , p_source_100            IN VARCHAR2
86411  , p_source_100_meaning    IN VARCHAR2
86412 --Purchasing Encumbrance Option
86413  , p_source_102            IN VARCHAR2
86414  , p_source_102_meaning    IN VARCHAR2
86415 --Invoice Encumbered Option
86416  , p_source_104            IN VARCHAR2
86417  , p_source_104_meaning    IN VARCHAR2
86418 --Prorated Amount of Quantity Variance in Ledger Currency for Cash Basis
86419  , p_source_142            IN NUMBER
86420 --Prorated Amount of Quantity Variance for Cash Basis
86421  , p_source_143            IN NUMBER
86422 )
86423 IS
86424 
86425 l_component_type              VARCHAR2(80);
86426 l_component_code              VARCHAR2(30);
86427 l_component_type_code         VARCHAR2(1);
86428 l_component_appl_id           INTEGER;
86429 l_amb_context_code            VARCHAR2(30);
86430 l_entity_code                 VARCHAR2(30);
86431 l_event_class_code            VARCHAR2(30);
86432 l_ae_header_id                NUMBER;
86433 l_event_type_code             VARCHAR2(30);
86434 l_line_definition_code        VARCHAR2(30);
86435 l_line_definition_owner_code  VARCHAR2(1);
86436 --
86437 -- adr variables
86438 l_segment                     VARCHAR2(30);
86439 l_ccid                        NUMBER;
86440 l_adr_transaction_coa_id      NUMBER;
86441 l_adr_accounting_coa_id       NUMBER;
86442 l_adr_flexfield_segment_code  VARCHAR2(30);
86443 l_adr_flex_value_set_id       NUMBER;
86444 l_adr_value_type_code         VARCHAR2(30);
86445 l_adr_value_combination_id    NUMBER;
86446 l_adr_value_segment_code      VARCHAR2(30);
86447 
86448 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
86449 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
86450 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
86451 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
86452 
86453 -- 4262811 Variables ------------------------------------------------------------------------------------------
86454 l_entered_amt_idx             NUMBER;
86455 l_accted_amt_idx              NUMBER;
86456 l_acc_rev_flag                VARCHAR2(1);
86457 l_accrual_line_num            NUMBER;
86458 l_tmp_amt                     NUMBER;
86459 l_acc_rev_natural_side_code   VARCHAR2(1);
86460 
86461 l_num_entries                 NUMBER;
86462 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
86463 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
86464 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
86465 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
86466 l_recog_line_1                NUMBER;
86467 l_recog_line_2                NUMBER;
86468 
86469 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
86470 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
86471 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
86472 
86473 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
86474 
86475 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
86476 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
86477 
86478 ---------------------------------------------------------------------------------------------------------------
86479 
86480 
86481 --
86482 -- bulk performance
86483 --
86484 l_balance_type_code           VARCHAR2(1);
86485 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
86486 l_log_module                  VARCHAR2(240);
86487 
86488 --
86489 -- Upgrade strategy
86490 --
86491 l_actual_upg_option           VARCHAR2(1);
86492 l_enc_upg_option           VARCHAR2(1);
86493 
86494 --
86495 BEGIN
86496 --
86497 IF g_log_enabled THEN
86498       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_156';
86499 END IF;
86500 --
86501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86502 
86503       trace
86504          (p_msg      => 'BEGIN of AcctLineType_156'
86505          ,p_level    => C_LEVEL_PROCEDURE
86506          ,p_module   => l_log_module);
86507 
86508 END IF;
86509 --
86510 l_component_type             := 'AMB_JLT';
86511 l_component_code             := 'AP_QUANTITY_VARIANCE_CLR_ENC';
86512 l_component_type_code        := 'S';
86513 l_component_appl_id          :=  200;
86514 l_amb_context_code           := 'DEFAULT';
86515 l_entity_code                := 'AP_PAYMENTS';
86516 l_event_class_code           := 'RECONCILED PAYMENTS';
86517 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
86518 l_line_definition_owner_code := 'S';
86519 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
86520 --
86521 l_balance_type_code          := 'E';
86522 l_segment                     := NULL;
86526 l_adr_flexfield_segment_code  := NULL;
86523 l_ccid                        := NULL;
86524 l_adr_transaction_coa_id      := NULL;
86525 l_adr_accounting_coa_id       := NULL;
86527 l_adr_flex_value_set_id       := NULL;
86528 l_adr_value_type_code         := NULL;
86529 l_adr_value_combination_id    := NULL;
86530 l_adr_value_segment_code      := NULL;
86531 
86532 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
86533 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
86534 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
86535 l_budgetary_control_flag     := 'N';
86536 
86537 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
86538 l_bflow_applied_to_amt       := NULL; -- 5132302
86539 l_entered_amt_idx            := NULL;          -- 4262811
86540 l_accted_amt_idx             := NULL;          -- 4262811
86541 l_acc_rev_flag               := NULL;          -- 4262811
86542 l_accrual_line_num           := NULL;          -- 4262811
86543 l_tmp_amt                    := NULL;          -- 4262811
86544 --
86545  
86546 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86547     l_balance_type_code <> 'B' THEN
86548 IF NVL(p_source_38,'
86549 ') =  'CLEAR_CLEAR' AND 
86550 NVL(p_source_100,'
86551 ') <>  'Y' AND 
86552 (NVL(p_source_39,'
86553 ') =  'CASH' OR 
86554 NVL(p_source_39,'
86555 ') =  'DISCOUNT') AND 
86556 NVL(p_source_102,'
86557 ') =  'Y' AND 
86558 p_source_142 IS NOT NULL AND 
86559 NVL(p_source_104,'
86560 ') =  'Y'
86561  THEN 
86562 
86563    --
86564    XLA_AE_LINES_PKG.SetNewLine;
86565 
86566    p_balance_type_code          := l_balance_type_code;
86567    -- set the flag so later we will know whether the gain loss line needs to be created
86568    
86569    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86570      p_actual_flag :='A';
86571    END IF;
86572 
86573    --
86574    -- bulk performance
86575    --
86576    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86577                                       p_header_num   => 0); -- 4262811
86578    --
86579    -- set accounting line options
86580    --
86581    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86582            p_natural_side_code          => 'C'
86583          , p_gain_or_loss_flag          => 'N'
86584          , p_gl_transfer_mode_code      => 'S'
86585          , p_acct_entry_type_code       => 'E'
86586          , p_switch_side_flag           => 'Y'
86587          , p_merge_duplicate_code       => 'A'
86588          );
86589    --
86590    l_acc_rev_natural_side_code := 'D';  -- 4262811
86591    -- 
86592    --
86593    -- set accounting line type info
86594    --
86595    xla_ae_lines_pkg.SetAcctLineType
86596       (p_component_type             => l_component_type
86597       ,p_event_type_code            => l_event_type_code
86598       ,p_line_definition_owner_code => l_line_definition_owner_code
86599       ,p_line_definition_code       => l_line_definition_code
86600       ,p_accounting_line_code       => l_component_code
86601       ,p_accounting_line_type_code  => l_component_type_code
86602       ,p_accounting_line_appl_id    => l_component_appl_id
86603       ,p_amb_context_code           => l_amb_context_code
86604       ,p_entity_code                => l_entity_code
86605       ,p_event_class_code           => l_event_class_code);
86606    --
86607    -- set accounting class
86608    --
86609    xla_ae_lines_pkg.SetAcctClass(
86610            p_accounting_class_code  => 'QV'
86611          , p_ae_header_id           => l_ae_header_id
86612          );
86613 
86614    --
86615    -- set rounding class
86616    --
86617    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86618                       'QV';
86619 
86620    --
86621    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86622    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86623    --
86624    -- bulk performance
86625    --
86626    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86627 
86628    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86629       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86630 
86631    -- 4955764
86632    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86633       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86634 
86635    -- 4458381 Public Sector Enh
86636    
86637    --
86638    -- set accounting attributes for the line type
86639    --
86640    l_entered_amt_idx := 10;
86641    l_accted_amt_idx  := 12;
86642    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
86643    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86644    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
86645    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
86646    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
86647    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
86648    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
86649    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86653    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
86650    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
86651    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
86652    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
86654    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
86655    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86656    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
86657    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
86658    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
86659    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
86660    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
86661    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
86662    l_rec_acct_attrs.array_num_value(10)  := p_source_143;
86663    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
86664    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
86665    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
86666    l_rec_acct_attrs.array_num_value(12)  := p_source_142;
86667    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
86668    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
86669    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
86670    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
86671    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
86672    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
86673    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
86674    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
86675    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
86676    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
86677    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
86678    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
86679    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
86680    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
86681 
86682    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86683    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86684 
86685    ---------------------------------------------------------------------------------------------------------------
86686    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86687    ---------------------------------------------------------------------------------------------------------------
86688    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86689 
86690    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86691    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86692 
86693    IF xla_accounting_cache_pkg.GetValueChar
86694          (p_source_code         => 'LEDGER_CATEGORY_CODE'
86695          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86696    AND l_bflow_method_code = 'PRIOR_ENTRY'
86697 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86698    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86699          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86700        )
86701    THEN
86702          xla_ae_lines_pkg.BflowUpgEntry
86703            (p_business_method_code    => l_bflow_method_code
86704            ,p_business_class_code     => l_bflow_class_code
86705            ,p_balance_type            => l_balance_type_code);
86706    ELSE
86707       NULL;
86708 XLA_AE_LINES_PKG.business_flow_validation(
86709                                 p_business_method_code     => l_bflow_method_code
86710                                ,p_business_class_code      => l_bflow_class_code
86711                                ,p_inherit_description_flag => l_inherit_desc_flag);
86712    END IF;
86713 
86714    --
86715    -- call analytical criteria
86716    --
86717    -- Inherited Analytical Criteria for business flow method of Prior Entry.
86718    --
86719    -- call description
86720    --
86721    -- No description or it is inherited.
86722    --
86723    -- call ADRs
86724    -- Bug 4922099
86725    --
86726    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86727         (NVL(l_actual_upg_option, 'N') = 'O') OR
86728         (NVL(l_enc_upg_option, 'N') = 'O')
86729       )
86730    THEN
86731    NULL;
86732    --
86733    --
86734    
86735    --
86736    --
86737    END IF;
86738    --
86739    -- Bug 4922099
86740    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86741           (NVL(l_enc_upg_option, 'N') = 'O')
86742         ) AND
86743         (l_bflow_method_code = 'PRIOR_ENTRY')
86744       )
86745    THEN
86746       IF
86747       --
86748       1 = 1
86749       --
86750       THEN
86751       xla_accounting_err_pkg.build_message
86752                                     (p_appli_s_name            => 'XLA'
86753                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86754                                     ,p_token_1                 => 'LINE_NUMBER'
86755                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
86759                                                                             ,l_component_code
86756                                     ,p_token_2                 => 'LINE_TYPE_NAME'
86757                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
86758                                                                              l_component_type
86760                                                                             ,l_component_type_code
86761                                                                             ,l_component_appl_id
86762                                                                             ,l_amb_context_code
86763                                                                             ,l_entity_code
86764                                                                             ,l_event_class_code
86765                                                                            )
86766                                     ,p_token_3                 => 'OWNER'
86767                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
86768                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
86769                                                                           ,p_lookup_code    => l_component_type_code
86770                                                                          )
86771                                     ,p_token_4                 => 'PRODUCT_NAME'
86772                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86773                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86774                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86775                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86776                                     ,p_ae_header_id            =>  NULL
86777                                        );
86778 
86779         IF (C_LEVEL_ERROR>= g_log_level) THEN
86780                  trace
86781                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86782                       ,p_level    => C_LEVEL_ERROR
86783                       ,p_module   => l_log_module);
86784         END IF;
86785       END IF;
86786    END IF;
86787    --
86788    --
86789    ------------------------------------------------------------------------------------------------
86790    -- 4219869 Business Flow
86791    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86792    -- Prior Entry.  Currently, the following code is always generated.
86793    ------------------------------------------------------------------------------------------------
86794    -- No ValidateCurrentLine for business flow method of Prior Entry
86795 
86796    ------------------------------------------------------------------------------------
86797    -- 4219869 Business Flow
86798    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86799    ------------------------------------------------------------------------------------
86800    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86801 
86802    ----------------------------------------------------------------------------------
86803    -- 4219869 Business Flow
86804    -- Update journal entry status -- Need to generate this within IF <condition>
86805    ----------------------------------------------------------------------------------
86806    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86807          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86808          ,p_balance_type_code => l_balance_type_code
86809          );
86810 
86811    -------------------------------------------------------------------------------------------
86812    -- 4262811 - Generate the Accrual Reversal lines
86813    -------------------------------------------------------------------------------------------
86814    BEGIN
86815       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86816                               (g_array_event(p_event_id).array_value_num('header_index'));
86817       IF l_acc_rev_flag IS NULL THEN
86818          l_acc_rev_flag := 'N';
86819       END IF;
86820    EXCEPTION
86821       WHEN OTHERS THEN
86822          l_acc_rev_flag := 'N';
86823    END;
86824    --
86825    IF (l_acc_rev_flag = 'Y') THEN
86826 
86827        -- 4645092  ------------------------------------------------------------------------------
86828        -- To allow MPA report to determine if it should generate report process
86829        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86830        ------------------------------------------------------------------------------------------
86831 
86832        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86833        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86834    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
86835    -- call ADRs
86836    -- Bug 4922099
86837    --
86838    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86839         (NVL(l_actual_upg_option, 'N') = 'O') OR
86840         (NVL(l_enc_upg_option, 'N') = 'O')
86841       )
86842    THEN
86843    NULL;
86844    --
86845    --
86846    
86847    --
86848    --
86849    END IF;
86850 
86851        --
86852        -- Update the line information that should be overwritten
86853        --
86854        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86858        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86855                                          p_header_num   => 1);
86856        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
86857 
86859 
86860        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
86861           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86862        END IF;
86863 
86864       --
86865       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86866       --
86867       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86868           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
86869       ELSE
86870           ---------------------------------------------------------------------------------------------------
86871           -- 4262811a Switch Sign
86872           ---------------------------------------------------------------------------------------------------
86873           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
86874           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86875                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86876           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86877                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86878           -- 5132302
86879           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86880                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86881 
86882       END IF;
86883 
86884       -- 4955764
86885       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86886       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86887 
86888 
86889       XLA_AE_LINES_PKG.ValidateCurrentLine;
86890       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86891 
86892       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86893                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86894                ,p_balance_type_code => l_balance_type_code);
86895 
86896    END IF;
86897 
86898    -----------------------------------------------------------------------------------------
86899    -- 4262811 Multiperiod Accounting
86900    -----------------------------------------------------------------------------------------
86901      -- No MPA option is assigned.
86902 
86903 
86904 END IF;
86905 END IF;
86906 --
86907 
86908 --
86909 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86910    trace
86911       (p_msg      => 'END of AcctLineType_156'
86912       ,p_level    => C_LEVEL_PROCEDURE
86913       ,p_module   => l_log_module);
86914 END IF;
86915 --
86916 EXCEPTION
86917   WHEN xla_exceptions_pkg.application_exception THEN
86918       RAISE;
86919   WHEN OTHERS THEN
86920        xla_exceptions_pkg.raise_message
86921            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_156');
86922 END AcctLineType_156;
86923 --
86924 
86925 ---------------------------------------
86926 --
86927 -- PRIVATE FUNCTION
86928 --         AcctLineType_157
86929 --
86930 ---------------------------------------
86931 PROCEDURE AcctLineType_157 (
86932   p_application_id        IN NUMBER
86933  ,p_event_id              IN NUMBER
86934  ,p_calculate_acctd_flag  IN VARCHAR2
86935  ,p_calculate_g_l_flag    IN VARCHAR2
86936  ,p_actual_flag           IN OUT VARCHAR2
86937  ,p_balance_type_code     OUT VARCHAR2
86938  ,p_gain_or_loss_ref      OUT VARCHAR2
86939  
86940 --When to Account for Payment Option
86941  , p_source_38            IN VARCHAR2
86942 --Payment Distribution Type
86943  , p_source_39            IN VARCHAR2
86944  , p_source_39_meaning    IN VARCHAR2
86945 --Accounting Reversal Indicator
86946  , p_source_40            IN VARCHAR2
86947 --Business Flow Accounts Payable Application Identifier
86948  , p_source_42            IN NUMBER
86949 --Payment Distribution Identifier
86950  , p_source_47            IN NUMBER
86951 --Distribution Link Type
86952  , p_source_48            IN VARCHAR2
86953 --Payment Currency Code
86954  , p_source_49            IN VARCHAR2
86955 --Override Accounted Amount Indicator
86956  , p_source_53            IN VARCHAR2
86957  , p_source_53_meaning    IN VARCHAR2
86958 --Third Party Type
86959  , p_source_56            IN VARCHAR2
86960 --Payment Distribution Reversed Identifier
86961  , p_source_57            IN NUMBER
86962 --Invoice Distribution Tax Line Identifier
86963  , p_source_58            IN NUMBER
86964 --Invoice Distribution Summary Tax Line Identifier
86965  , p_source_59            IN NUMBER
86966 --Payment Type
86967  , p_source_60            IN VARCHAR2
86968  , p_source_60_meaning    IN VARCHAR2
86969 --Invoice Distribution Amount of the Payment Distribution
86970  , p_source_61            IN NUMBER
86971 --Business Flow Invoice Distribution Type
86972  , p_source_62            IN VARCHAR2
86973 --Business Flow Invoice Entity Code
86974  , p_source_63            IN VARCHAR2
86975 --Business Flow Invoice Distribution Identifier
86979 --Invoice Distribution Tax Distribution Identifier from Tax
86976  , p_source_64            IN NUMBER
86977 --Business Flow Invoice Identifier
86978  , p_source_65            IN NUMBER
86980  , p_source_66            IN NUMBER
86981 --Accrue on Receipt Option
86982  , p_source_100            IN VARCHAR2
86983  , p_source_100_meaning    IN VARCHAR2
86984 --Purchasing Encumbrance Option
86985  , p_source_102            IN VARCHAR2
86986  , p_source_102_meaning    IN VARCHAR2
86987 --Invoice Encumbered Option
86988  , p_source_104            IN VARCHAR2
86989  , p_source_104_meaning    IN VARCHAR2
86990 --Prorated Amount of Quantity Variance in Ledger Currency for Cash Basis
86991  , p_source_142            IN NUMBER
86992 --Prorated Amount of Quantity Variance for Cash Basis
86993  , p_source_143            IN NUMBER
86994 )
86995 IS
86996 
86997 l_component_type              VARCHAR2(80);
86998 l_component_code              VARCHAR2(30);
86999 l_component_type_code         VARCHAR2(1);
87000 l_component_appl_id           INTEGER;
87001 l_amb_context_code            VARCHAR2(30);
87002 l_entity_code                 VARCHAR2(30);
87003 l_event_class_code            VARCHAR2(30);
87004 l_ae_header_id                NUMBER;
87005 l_event_type_code             VARCHAR2(30);
87006 l_line_definition_code        VARCHAR2(30);
87007 l_line_definition_owner_code  VARCHAR2(1);
87008 --
87009 -- adr variables
87010 l_segment                     VARCHAR2(30);
87011 l_ccid                        NUMBER;
87012 l_adr_transaction_coa_id      NUMBER;
87013 l_adr_accounting_coa_id       NUMBER;
87014 l_adr_flexfield_segment_code  VARCHAR2(30);
87015 l_adr_flex_value_set_id       NUMBER;
87016 l_adr_value_type_code         VARCHAR2(30);
87017 l_adr_value_combination_id    NUMBER;
87018 l_adr_value_segment_code      VARCHAR2(30);
87019 
87020 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
87021 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
87022 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
87023 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
87024 
87025 -- 4262811 Variables ------------------------------------------------------------------------------------------
87026 l_entered_amt_idx             NUMBER;
87027 l_accted_amt_idx              NUMBER;
87028 l_acc_rev_flag                VARCHAR2(1);
87029 l_accrual_line_num            NUMBER;
87030 l_tmp_amt                     NUMBER;
87031 l_acc_rev_natural_side_code   VARCHAR2(1);
87032 
87033 l_num_entries                 NUMBER;
87034 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
87035 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
87036 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
87037 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
87038 l_recog_line_1                NUMBER;
87039 l_recog_line_2                NUMBER;
87040 
87041 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
87042 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
87043 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
87044 
87045 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87046 
87047 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
87048 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
87049 
87050 ---------------------------------------------------------------------------------------------------------------
87051 
87052 
87053 --
87054 -- bulk performance
87055 --
87056 l_balance_type_code           VARCHAR2(1);
87057 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
87058 l_log_module                  VARCHAR2(240);
87059 
87060 --
87061 -- Upgrade strategy
87062 --
87063 l_actual_upg_option           VARCHAR2(1);
87064 l_enc_upg_option           VARCHAR2(1);
87065 
87066 --
87067 BEGIN
87068 --
87069 IF g_log_enabled THEN
87070       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_157';
87071 END IF;
87072 --
87073 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87074 
87075       trace
87076          (p_msg      => 'BEGIN of AcctLineType_157'
87077          ,p_level    => C_LEVEL_PROCEDURE
87078          ,p_module   => l_log_module);
87079 
87080 END IF;
87081 --
87082 l_component_type             := 'AMB_JLT';
87083 l_component_code             := 'AP_QUANTITY_VARIANCE_PMT_ENC';
87084 l_component_type_code        := 'S';
87085 l_component_appl_id          :=  200;
87086 l_amb_context_code           := 'DEFAULT';
87087 l_entity_code                := 'AP_PAYMENTS';
87088 l_event_class_code           := 'PAYMENTS';
87089 l_event_type_code            := 'PAYMENTS_ALL';
87090 l_line_definition_owner_code := 'S';
87091 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
87092 --
87093 l_balance_type_code          := 'E';
87094 l_segment                     := NULL;
87095 l_ccid                        := NULL;
87096 l_adr_transaction_coa_id      := NULL;
87097 l_adr_accounting_coa_id       := NULL;
87098 l_adr_flexfield_segment_code  := NULL;
87099 l_adr_flex_value_set_id       := NULL;
87100 l_adr_value_type_code         := NULL;
87101 l_adr_value_combination_id    := NULL;
87102 l_adr_value_segment_code      := NULL;
87103 
87107 l_budgetary_control_flag     := 'N';
87104 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
87105 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
87106 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
87108 
87109 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
87110 l_bflow_applied_to_amt       := NULL; -- 5132302
87111 l_entered_amt_idx            := NULL;          -- 4262811
87112 l_accted_amt_idx             := NULL;          -- 4262811
87113 l_acc_rev_flag               := NULL;          -- 4262811
87114 l_accrual_line_num           := NULL;          -- 4262811
87115 l_tmp_amt                    := NULL;          -- 4262811
87116 --
87117  
87118 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87119     l_balance_type_code <> 'B' THEN
87120 IF NVL(p_source_38,'
87121 ') <>  'CLEAR_CLEAR' AND 
87122 NVL(p_source_100,'
87123 ') <>  'Y' AND 
87124 (NVL(p_source_39,'
87125 ') =  'CASH' OR 
87126 NVL(p_source_39,'
87127 ') =  'DISCOUNT') AND 
87128 NVL(p_source_60,'
87129 ') <>  'R' AND 
87130 NVL(p_source_102,'
87131 ') =  'Y' AND 
87132 p_source_142 IS NOT NULL AND 
87133 NVL(p_source_104,'
87134 ') =  'Y'
87135  THEN 
87136 
87137    --
87138    XLA_AE_LINES_PKG.SetNewLine;
87139 
87140    p_balance_type_code          := l_balance_type_code;
87141    -- set the flag so later we will know whether the gain loss line needs to be created
87142    
87143    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87144      p_actual_flag :='A';
87145    END IF;
87146 
87147    --
87148    -- bulk performance
87149    --
87150    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87151                                       p_header_num   => 0); -- 4262811
87152    --
87153    -- set accounting line options
87154    --
87155    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87156            p_natural_side_code          => 'C'
87157          , p_gain_or_loss_flag          => 'N'
87158          , p_gl_transfer_mode_code      => 'S'
87159          , p_acct_entry_type_code       => 'E'
87160          , p_switch_side_flag           => 'Y'
87161          , p_merge_duplicate_code       => 'A'
87162          );
87163    --
87164    l_acc_rev_natural_side_code := 'D';  -- 4262811
87165    -- 
87166    --
87167    -- set accounting line type info
87168    --
87169    xla_ae_lines_pkg.SetAcctLineType
87170       (p_component_type             => l_component_type
87171       ,p_event_type_code            => l_event_type_code
87172       ,p_line_definition_owner_code => l_line_definition_owner_code
87173       ,p_line_definition_code       => l_line_definition_code
87174       ,p_accounting_line_code       => l_component_code
87175       ,p_accounting_line_type_code  => l_component_type_code
87176       ,p_accounting_line_appl_id    => l_component_appl_id
87177       ,p_amb_context_code           => l_amb_context_code
87178       ,p_entity_code                => l_entity_code
87179       ,p_event_class_code           => l_event_class_code);
87180    --
87181    -- set accounting class
87182    --
87183    xla_ae_lines_pkg.SetAcctClass(
87184            p_accounting_class_code  => 'QV'
87185          , p_ae_header_id           => l_ae_header_id
87186          );
87187 
87188    --
87189    -- set rounding class
87190    --
87191    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87192                       'QV';
87193 
87194    --
87195    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87196    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87197    --
87198    -- bulk performance
87199    --
87200    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87201 
87202    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87203       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87204 
87205    -- 4955764
87206    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87207       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87208 
87209    -- 4458381 Public Sector Enh
87210    
87211    --
87212    -- set accounting attributes for the line type
87213    --
87214    l_entered_amt_idx := 10;
87215    l_accted_amt_idx  := 12;
87216    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
87217    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87218    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
87219    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
87220    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
87221    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
87222    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
87223    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87224    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
87225    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
87226    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
87227    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
87228    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
87232    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
87229    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87230    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
87231    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
87233    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
87234    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
87235    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
87236    l_rec_acct_attrs.array_num_value(10)  := p_source_143;
87237    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
87238    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
87239    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
87240    l_rec_acct_attrs.array_num_value(12)  := p_source_142;
87241    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
87242    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
87243    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
87244    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
87245    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
87246    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
87247    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
87248    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
87249    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
87250    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
87251    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
87252    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
87253    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
87254    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
87255 
87256    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87257    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87258 
87259    ---------------------------------------------------------------------------------------------------------------
87260    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87261    ---------------------------------------------------------------------------------------------------------------
87262    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87263 
87264    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87265    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87266 
87267    IF xla_accounting_cache_pkg.GetValueChar
87268          (p_source_code         => 'LEDGER_CATEGORY_CODE'
87269          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87270    AND l_bflow_method_code = 'PRIOR_ENTRY'
87271 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87272    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87273          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87274        )
87275    THEN
87276          xla_ae_lines_pkg.BflowUpgEntry
87277            (p_business_method_code    => l_bflow_method_code
87278            ,p_business_class_code     => l_bflow_class_code
87279            ,p_balance_type            => l_balance_type_code);
87280    ELSE
87281       NULL;
87282 XLA_AE_LINES_PKG.business_flow_validation(
87283                                 p_business_method_code     => l_bflow_method_code
87284                                ,p_business_class_code      => l_bflow_class_code
87285                                ,p_inherit_description_flag => l_inherit_desc_flag);
87286    END IF;
87287 
87288    --
87289    -- call analytical criteria
87290    --
87291    -- Inherited Analytical Criteria for business flow method of Prior Entry.
87292    --
87293    -- call description
87294    --
87295    -- No description or it is inherited.
87296    --
87297    -- call ADRs
87298    -- Bug 4922099
87299    --
87300    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87301         (NVL(l_actual_upg_option, 'N') = 'O') OR
87302         (NVL(l_enc_upg_option, 'N') = 'O')
87303       )
87304    THEN
87305    NULL;
87306    --
87307    --
87308    
87309    --
87310    --
87311    END IF;
87312    --
87313    -- Bug 4922099
87314    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87315           (NVL(l_enc_upg_option, 'N') = 'O')
87316         ) AND
87317         (l_bflow_method_code = 'PRIOR_ENTRY')
87318       )
87319    THEN
87320       IF
87321       --
87322       1 = 1
87323       --
87324       THEN
87325       xla_accounting_err_pkg.build_message
87326                                     (p_appli_s_name            => 'XLA'
87327                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87328                                     ,p_token_1                 => 'LINE_NUMBER'
87329                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87330                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87331                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87332                                                                              l_component_type
87333                                                                             ,l_component_code
87337                                                                             ,l_entity_code
87334                                                                             ,l_component_type_code
87335                                                                             ,l_component_appl_id
87336                                                                             ,l_amb_context_code
87338                                                                             ,l_event_class_code
87339                                                                            )
87340                                     ,p_token_3                 => 'OWNER'
87341                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87342                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87343                                                                           ,p_lookup_code    => l_component_type_code
87344                                                                          )
87345                                     ,p_token_4                 => 'PRODUCT_NAME'
87346                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87347                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87348                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87349                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87350                                     ,p_ae_header_id            =>  NULL
87351                                        );
87352 
87353         IF (C_LEVEL_ERROR>= g_log_level) THEN
87354                  trace
87355                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87356                       ,p_level    => C_LEVEL_ERROR
87357                       ,p_module   => l_log_module);
87358         END IF;
87359       END IF;
87360    END IF;
87361    --
87362    --
87363    ------------------------------------------------------------------------------------------------
87364    -- 4219869 Business Flow
87365    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87366    -- Prior Entry.  Currently, the following code is always generated.
87367    ------------------------------------------------------------------------------------------------
87368    -- No ValidateCurrentLine for business flow method of Prior Entry
87369 
87370    ------------------------------------------------------------------------------------
87371    -- 4219869 Business Flow
87372    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87373    ------------------------------------------------------------------------------------
87374    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87375 
87376    ----------------------------------------------------------------------------------
87377    -- 4219869 Business Flow
87378    -- Update journal entry status -- Need to generate this within IF <condition>
87379    ----------------------------------------------------------------------------------
87380    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87381          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87382          ,p_balance_type_code => l_balance_type_code
87383          );
87384 
87385    -------------------------------------------------------------------------------------------
87386    -- 4262811 - Generate the Accrual Reversal lines
87387    -------------------------------------------------------------------------------------------
87388    BEGIN
87389       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87390                               (g_array_event(p_event_id).array_value_num('header_index'));
87391       IF l_acc_rev_flag IS NULL THEN
87392          l_acc_rev_flag := 'N';
87393       END IF;
87394    EXCEPTION
87395       WHEN OTHERS THEN
87396          l_acc_rev_flag := 'N';
87397    END;
87398    --
87399    IF (l_acc_rev_flag = 'Y') THEN
87400 
87401        -- 4645092  ------------------------------------------------------------------------------
87402        -- To allow MPA report to determine if it should generate report process
87403        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87404        ------------------------------------------------------------------------------------------
87405 
87406        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87407        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87408    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
87409    -- call ADRs
87410    -- Bug 4922099
87411    --
87412    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87413         (NVL(l_actual_upg_option, 'N') = 'O') OR
87414         (NVL(l_enc_upg_option, 'N') = 'O')
87415       )
87416    THEN
87417    NULL;
87418    --
87419    --
87420    
87421    --
87422    --
87423    END IF;
87424 
87425        --
87426        -- Update the line information that should be overwritten
87427        --
87428        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87429                                          p_header_num   => 1);
87430        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
87431 
87432        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87433 
87434        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
87438       --
87435           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87436        END IF;
87437 
87439       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87440       --
87441       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87442           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
87443       ELSE
87444           ---------------------------------------------------------------------------------------------------
87445           -- 4262811a Switch Sign
87446           ---------------------------------------------------------------------------------------------------
87447           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
87448           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87449                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87450           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87451                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87452           -- 5132302
87453           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87454                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87455 
87456       END IF;
87457 
87458       -- 4955764
87459       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87460       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
87461 
87462 
87463       XLA_AE_LINES_PKG.ValidateCurrentLine;
87464       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87465 
87466       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87467                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
87468                ,p_balance_type_code => l_balance_type_code);
87469 
87470    END IF;
87471 
87472    -----------------------------------------------------------------------------------------
87473    -- 4262811 Multiperiod Accounting
87474    -----------------------------------------------------------------------------------------
87475      -- No MPA option is assigned.
87476 
87477 
87478 END IF;
87479 END IF;
87480 --
87481 
87482 --
87483 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87484    trace
87485       (p_msg      => 'END of AcctLineType_157'
87486       ,p_level    => C_LEVEL_PROCEDURE
87487       ,p_module   => l_log_module);
87488 END IF;
87489 --
87490 EXCEPTION
87491   WHEN xla_exceptions_pkg.application_exception THEN
87492       RAISE;
87493   WHEN OTHERS THEN
87494        xla_exceptions_pkg.raise_message
87495            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_157');
87496 END AcctLineType_157;
87497 --
87498 
87499 ---------------------------------------
87500 --
87501 -- PRIVATE FUNCTION
87502 --         AcctLineType_158
87503 --
87504 ---------------------------------------
87505 PROCEDURE AcctLineType_158 (
87506   p_application_id        IN NUMBER
87507  ,p_event_id              IN NUMBER
87508  ,p_calculate_acctd_flag  IN VARCHAR2
87509  ,p_calculate_g_l_flag    IN VARCHAR2
87510  ,p_actual_flag           IN OUT VARCHAR2
87511  ,p_balance_type_code     OUT VARCHAR2
87512  ,p_gain_or_loss_ref      OUT VARCHAR2
87513  
87514 --Payment Distribution (Payment Rate) Ledger Amount
87515  , p_source_9            IN NUMBER
87516 --Invoice Distribution Type
87517  , p_source_20            IN VARCHAR2
87518  , p_source_20_meaning    IN VARCHAR2
87519 --When to Account for Payment Option
87520  , p_source_38            IN VARCHAR2
87521 --Payment Distribution Type
87522  , p_source_39            IN VARCHAR2
87523  , p_source_39_meaning    IN VARCHAR2
87524 --Accounting Reversal Indicator
87525  , p_source_40            IN VARCHAR2
87526 --Payment Distribution Amount
87527  , p_source_41            IN NUMBER
87528 --Business Flow Accounts Payable Application Identifier
87529  , p_source_42            IN NUMBER
87530 --Payment Distribution Identifier
87531  , p_source_47            IN NUMBER
87532 --Distribution Link Type
87533  , p_source_48            IN VARCHAR2
87534 --Payment Currency Code
87535  , p_source_49            IN VARCHAR2
87536 --Override Accounted Amount Indicator
87537  , p_source_53            IN VARCHAR2
87538  , p_source_53_meaning    IN VARCHAR2
87539 --Third Party Type
87540  , p_source_56            IN VARCHAR2
87541 --Payment Distribution Reversed Identifier
87542  , p_source_57            IN NUMBER
87543 --Invoice Distribution Tax Line Identifier
87544  , p_source_58            IN NUMBER
87545 --Invoice Distribution Summary Tax Line Identifier
87546  , p_source_59            IN NUMBER
87547 --Payment Type
87548  , p_source_60            IN VARCHAR2
87549  , p_source_60_meaning    IN VARCHAR2
87550 --Business Flow Invoice Distribution Type
87551  , p_source_62            IN VARCHAR2
87552 --Business Flow Invoice Entity Code
87553  , p_source_63            IN VARCHAR2
87554 --Business Flow Invoice Distribution Identifier
87555  , p_source_64            IN NUMBER
87556 --Business Flow Invoice Identifier
87557  , p_source_65            IN NUMBER
87561  , p_source_102            IN VARCHAR2
87558 --Invoice Distribution Tax Distribution Identifier from Tax
87559  , p_source_66            IN NUMBER
87560 --Purchasing Encumbrance Option
87562  , p_source_102_meaning    IN VARCHAR2
87563 --Invoice Encumbered Option
87564  , p_source_104            IN VARCHAR2
87565  , p_source_104_meaning    IN VARCHAR2
87566 )
87567 IS
87568 
87569 l_component_type              VARCHAR2(80);
87570 l_component_code              VARCHAR2(30);
87571 l_component_type_code         VARCHAR2(1);
87572 l_component_appl_id           INTEGER;
87573 l_amb_context_code            VARCHAR2(30);
87574 l_entity_code                 VARCHAR2(30);
87575 l_event_class_code            VARCHAR2(30);
87576 l_ae_header_id                NUMBER;
87577 l_event_type_code             VARCHAR2(30);
87578 l_line_definition_code        VARCHAR2(30);
87579 l_line_definition_owner_code  VARCHAR2(1);
87580 --
87581 -- adr variables
87582 l_segment                     VARCHAR2(30);
87583 l_ccid                        NUMBER;
87584 l_adr_transaction_coa_id      NUMBER;
87585 l_adr_accounting_coa_id       NUMBER;
87586 l_adr_flexfield_segment_code  VARCHAR2(30);
87587 l_adr_flex_value_set_id       NUMBER;
87588 l_adr_value_type_code         VARCHAR2(30);
87589 l_adr_value_combination_id    NUMBER;
87590 l_adr_value_segment_code      VARCHAR2(30);
87591 
87592 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
87593 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
87594 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
87595 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
87596 
87597 -- 4262811 Variables ------------------------------------------------------------------------------------------
87598 l_entered_amt_idx             NUMBER;
87599 l_accted_amt_idx              NUMBER;
87600 l_acc_rev_flag                VARCHAR2(1);
87601 l_accrual_line_num            NUMBER;
87602 l_tmp_amt                     NUMBER;
87603 l_acc_rev_natural_side_code   VARCHAR2(1);
87604 
87605 l_num_entries                 NUMBER;
87606 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
87607 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
87608 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
87609 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
87610 l_recog_line_1                NUMBER;
87611 l_recog_line_2                NUMBER;
87612 
87613 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
87614 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
87615 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
87616 
87617 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87618 
87619 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
87620 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
87621 
87622 ---------------------------------------------------------------------------------------------------------------
87623 
87624 
87625 --
87626 -- bulk performance
87627 --
87628 l_balance_type_code           VARCHAR2(1);
87629 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
87630 l_log_module                  VARCHAR2(240);
87631 
87632 --
87633 -- Upgrade strategy
87634 --
87635 l_actual_upg_option           VARCHAR2(1);
87636 l_enc_upg_option           VARCHAR2(1);
87637 
87638 --
87639 BEGIN
87640 --
87641 IF g_log_enabled THEN
87642       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_158';
87643 END IF;
87644 --
87645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87646 
87647       trace
87648          (p_msg      => 'BEGIN of AcctLineType_158'
87649          ,p_level    => C_LEVEL_PROCEDURE
87650          ,p_module   => l_log_module);
87651 
87652 END IF;
87653 --
87654 l_component_type             := 'AMB_JLT';
87655 l_component_code             := 'AP_QUANTITY_VARIANCE_REF_ENC';
87656 l_component_type_code        := 'S';
87657 l_component_appl_id          :=  200;
87658 l_amb_context_code           := 'DEFAULT';
87659 l_entity_code                := 'AP_PAYMENTS';
87660 l_event_class_code           := 'REFUNDS';
87661 l_event_type_code            := 'REFUNDS_ALL';
87662 l_line_definition_owner_code := 'S';
87663 l_line_definition_code       := 'ENC_REFUNDS_ALL';
87664 --
87665 l_balance_type_code          := 'E';
87666 l_segment                     := NULL;
87667 l_ccid                        := NULL;
87668 l_adr_transaction_coa_id      := NULL;
87669 l_adr_accounting_coa_id       := NULL;
87670 l_adr_flexfield_segment_code  := NULL;
87671 l_adr_flex_value_set_id       := NULL;
87672 l_adr_value_type_code         := NULL;
87673 l_adr_value_combination_id    := NULL;
87674 l_adr_value_segment_code      := NULL;
87675 
87676 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
87677 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
87678 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
87679 l_budgetary_control_flag     := 'N';
87680 
87681 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
87682 l_bflow_applied_to_amt       := NULL; -- 5132302
87683 l_entered_amt_idx            := NULL;          -- 4262811
87684 l_accted_amt_idx             := NULL;          -- 4262811
87688 --
87685 l_acc_rev_flag               := NULL;          -- 4262811
87686 l_accrual_line_num           := NULL;          -- 4262811
87687 l_tmp_amt                    := NULL;          -- 4262811
87689  
87690 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87691     l_balance_type_code <> 'B' THEN
87692 IF NVL(p_source_38,'
87693 ') <>  'CLEAR_CLEAR' AND 
87694 NVL(p_source_20,'
87695 ') <>  'ACCRUAL' AND 
87696 (NVL(p_source_39,'
87697 ') =  'CASH' OR 
87698 NVL(p_source_39,'
87699 ') =  'DISCOUNT') AND 
87700 NVL(p_source_60,'
87701 ') =  'R' AND 
87702 NVL(p_source_102,'
87703 ') =  'Y' AND 
87704 NVL(p_source_104,'
87705 ') =  'Y'
87706  THEN 
87707 
87708    --
87709    XLA_AE_LINES_PKG.SetNewLine;
87710 
87711    p_balance_type_code          := l_balance_type_code;
87712    -- set the flag so later we will know whether the gain loss line needs to be created
87713    
87714    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87715      p_actual_flag :='A';
87716    END IF;
87717 
87718    --
87719    -- bulk performance
87720    --
87721    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87722                                       p_header_num   => 0); -- 4262811
87723    --
87724    -- set accounting line options
87725    --
87726    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87727            p_natural_side_code          => 'D'
87728          , p_gain_or_loss_flag          => 'N'
87729          , p_gl_transfer_mode_code      => 'S'
87730          , p_acct_entry_type_code       => 'E'
87731          , p_switch_side_flag           => 'Y'
87732          , p_merge_duplicate_code       => 'A'
87733          );
87734    --
87735    l_acc_rev_natural_side_code := 'C';  -- 4262811
87736    -- 
87737    --
87738    -- set accounting line type info
87739    --
87740    xla_ae_lines_pkg.SetAcctLineType
87741       (p_component_type             => l_component_type
87742       ,p_event_type_code            => l_event_type_code
87743       ,p_line_definition_owner_code => l_line_definition_owner_code
87744       ,p_line_definition_code       => l_line_definition_code
87745       ,p_accounting_line_code       => l_component_code
87746       ,p_accounting_line_type_code  => l_component_type_code
87747       ,p_accounting_line_appl_id    => l_component_appl_id
87748       ,p_amb_context_code           => l_amb_context_code
87749       ,p_entity_code                => l_entity_code
87750       ,p_event_class_code           => l_event_class_code);
87751    --
87752    -- set accounting class
87753    --
87754    xla_ae_lines_pkg.SetAcctClass(
87755            p_accounting_class_code  => 'QV'
87756          , p_ae_header_id           => l_ae_header_id
87757          );
87758 
87759    --
87760    -- set rounding class
87761    --
87762    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87763                       'QV';
87764 
87765    --
87766    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87767    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87768    --
87769    -- bulk performance
87770    --
87771    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87772 
87773    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87774       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87775 
87776    -- 4955764
87777    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87778       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87779 
87780    -- 4458381 Public Sector Enh
87781    
87782    --
87783    -- set accounting attributes for the line type
87784    --
87785    l_entered_amt_idx := 9;
87786    l_accted_amt_idx  := 11;
87787    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
87788    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87789    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
87790    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
87791    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
87792    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87793    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
87794    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
87795    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
87796    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
87797    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
87798    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87799    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
87800    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
87801    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
87802    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
87803    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
87804    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
87805    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
87806    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
87810    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
87807    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
87808    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
87809    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
87811    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
87812    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
87813    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
87814    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
87815    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
87816    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
87817    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
87818    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
87819    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
87820    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
87821    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
87822    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
87823    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
87824 
87825    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87826    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87827 
87828    ---------------------------------------------------------------------------------------------------------------
87829    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87830    ---------------------------------------------------------------------------------------------------------------
87831    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87832 
87833    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87834    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87835 
87836    IF xla_accounting_cache_pkg.GetValueChar
87837          (p_source_code         => 'LEDGER_CATEGORY_CODE'
87838          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87839    AND l_bflow_method_code = 'PRIOR_ENTRY'
87840 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87841    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87842          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87843        )
87844    THEN
87845          xla_ae_lines_pkg.BflowUpgEntry
87846            (p_business_method_code    => l_bflow_method_code
87847            ,p_business_class_code     => l_bflow_class_code
87848            ,p_balance_type            => l_balance_type_code);
87849    ELSE
87850       NULL;
87851 XLA_AE_LINES_PKG.business_flow_validation(
87852                                 p_business_method_code     => l_bflow_method_code
87853                                ,p_business_class_code      => l_bflow_class_code
87854                                ,p_inherit_description_flag => l_inherit_desc_flag);
87855    END IF;
87856 
87857    --
87858    -- call analytical criteria
87859    --
87860    -- Inherited Analytical Criteria for business flow method of Prior Entry.
87861    --
87862    -- call description
87863    --
87864    -- No description or it is inherited.
87865    --
87866    -- call ADRs
87867    -- Bug 4922099
87868    --
87869    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87870         (NVL(l_actual_upg_option, 'N') = 'O') OR
87871         (NVL(l_enc_upg_option, 'N') = 'O')
87872       )
87873    THEN
87874    NULL;
87875    --
87876    --
87877    
87878    --
87879    --
87880    END IF;
87881    --
87882    -- Bug 4922099
87883    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87884           (NVL(l_enc_upg_option, 'N') = 'O')
87885         ) AND
87886         (l_bflow_method_code = 'PRIOR_ENTRY')
87887       )
87888    THEN
87889       IF
87890       --
87891       1 = 1
87892       --
87893       THEN
87894       xla_accounting_err_pkg.build_message
87895                                     (p_appli_s_name            => 'XLA'
87896                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87897                                     ,p_token_1                 => 'LINE_NUMBER'
87898                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87899                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87900                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87901                                                                              l_component_type
87902                                                                             ,l_component_code
87903                                                                             ,l_component_type_code
87904                                                                             ,l_component_appl_id
87905                                                                             ,l_amb_context_code
87906                                                                             ,l_entity_code
87907                                                                             ,l_event_class_code
87908                                                                            )
87909                                     ,p_token_3                 => 'OWNER'
87913                                                                          )
87910                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87911                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87912                                                                           ,p_lookup_code    => l_component_type_code
87914                                     ,p_token_4                 => 'PRODUCT_NAME'
87915                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87916                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87917                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87918                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87919                                     ,p_ae_header_id            =>  NULL
87920                                        );
87921 
87922         IF (C_LEVEL_ERROR>= g_log_level) THEN
87923                  trace
87924                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87925                       ,p_level    => C_LEVEL_ERROR
87926                       ,p_module   => l_log_module);
87927         END IF;
87928       END IF;
87929    END IF;
87930    --
87931    --
87932    ------------------------------------------------------------------------------------------------
87933    -- 4219869 Business Flow
87934    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87935    -- Prior Entry.  Currently, the following code is always generated.
87936    ------------------------------------------------------------------------------------------------
87937    -- No ValidateCurrentLine for business flow method of Prior Entry
87938 
87939    ------------------------------------------------------------------------------------
87940    -- 4219869 Business Flow
87941    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87942    ------------------------------------------------------------------------------------
87943    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87944 
87945    ----------------------------------------------------------------------------------
87946    -- 4219869 Business Flow
87947    -- Update journal entry status -- Need to generate this within IF <condition>
87948    ----------------------------------------------------------------------------------
87949    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87950          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87951          ,p_balance_type_code => l_balance_type_code
87952          );
87953 
87954    -------------------------------------------------------------------------------------------
87955    -- 4262811 - Generate the Accrual Reversal lines
87956    -------------------------------------------------------------------------------------------
87957    BEGIN
87958       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87959                               (g_array_event(p_event_id).array_value_num('header_index'));
87960       IF l_acc_rev_flag IS NULL THEN
87961          l_acc_rev_flag := 'N';
87962       END IF;
87963    EXCEPTION
87964       WHEN OTHERS THEN
87965          l_acc_rev_flag := 'N';
87966    END;
87967    --
87968    IF (l_acc_rev_flag = 'Y') THEN
87969 
87970        -- 4645092  ------------------------------------------------------------------------------
87971        -- To allow MPA report to determine if it should generate report process
87972        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87973        ------------------------------------------------------------------------------------------
87974 
87975        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87976        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87977    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
87978    -- call ADRs
87979    -- Bug 4922099
87980    --
87981    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87982         (NVL(l_actual_upg_option, 'N') = 'O') OR
87983         (NVL(l_enc_upg_option, 'N') = 'O')
87984       )
87985    THEN
87986    NULL;
87987    --
87988    --
87989    
87990    --
87991    --
87992    END IF;
87993 
87994        --
87995        -- Update the line information that should be overwritten
87996        --
87997        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87998                                          p_header_num   => 1);
87999        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
88000 
88001        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88002 
88003        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
88004           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88005        END IF;
88006 
88007       --
88008       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88009       --
88010       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88011           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
88012       ELSE
88013           ---------------------------------------------------------------------------------------------------
88014           -- 4262811a Switch Sign
88018                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88015           ---------------------------------------------------------------------------------------------------
88016           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
88017           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88019           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88020                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88021           -- 5132302
88022           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88023                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88024 
88025       END IF;
88026 
88027       -- 4955764
88028       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88029       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88030 
88031 
88032       XLA_AE_LINES_PKG.ValidateCurrentLine;
88033       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88034 
88035       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88036                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88037                ,p_balance_type_code => l_balance_type_code);
88038 
88039    END IF;
88040 
88041    -----------------------------------------------------------------------------------------
88042    -- 4262811 Multiperiod Accounting
88043    -----------------------------------------------------------------------------------------
88044      -- No MPA option is assigned.
88045 
88046 
88047 END IF;
88048 END IF;
88049 --
88050 
88051 --
88052 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88053    trace
88054       (p_msg      => 'END of AcctLineType_158'
88055       ,p_level    => C_LEVEL_PROCEDURE
88056       ,p_module   => l_log_module);
88057 END IF;
88058 --
88059 EXCEPTION
88060   WHEN xla_exceptions_pkg.application_exception THEN
88061       RAISE;
88062   WHEN OTHERS THEN
88063        xla_exceptions_pkg.raise_message
88064            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_158');
88065 END AcctLineType_158;
88066 --
88067 
88068 ---------------------------------------
88069 --
88070 -- PRIVATE FUNCTION
88071 --         AcctLineType_159
88072 --
88073 ---------------------------------------
88074 PROCEDURE AcctLineType_159 (
88075   p_application_id        IN NUMBER
88076  ,p_event_id              IN NUMBER
88077  ,p_calculate_acctd_flag  IN VARCHAR2
88078  ,p_calculate_g_l_flag    IN VARCHAR2
88079  ,p_actual_flag           IN OUT VARCHAR2
88080  ,p_balance_type_code     OUT VARCHAR2
88081  ,p_gain_or_loss_ref      OUT VARCHAR2
88082  
88083 --Recipient Invoice Distribution Account
88084  , p_source_36            IN NUMBER
88085 --When to Account for Payment Option
88086  , p_source_38            IN VARCHAR2
88087 --Accounting Reversal Indicator
88088  , p_source_40            IN VARCHAR2
88089 --Business Flow Accounts Payable Application Identifier
88090  , p_source_42            IN NUMBER
88091 --Distribution Link Type
88092  , p_source_48            IN VARCHAR2
88093 --Override Accounted Amount Indicator
88094  , p_source_53            IN VARCHAR2
88095  , p_source_53_meaning    IN VARCHAR2
88096 --Third Party Type
88097  , p_source_56            IN VARCHAR2
88098 --Invoice Distribution Tax Line Identifier
88099  , p_source_58            IN NUMBER
88100 --Invoice Distribution Summary Tax Line Identifier
88101  , p_source_59            IN NUMBER
88102 --Invoice Distribution Tax Distribution Identifier from Tax
88103  , p_source_66            IN NUMBER
88104 --Prepayment Distribution Type
88105  , p_source_67            IN VARCHAR2
88106 --Recipient Invoice Distribution Type
88107  , p_source_68            IN VARCHAR2
88108  , p_source_68_meaning    IN VARCHAR2
88109 --Prepayment Application Distribution Identifier
88110  , p_source_71            IN NUMBER
88111 --Invoice Identifier
88112  , p_source_72            IN NUMBER
88113 --Business Flow Prepayment Invoice Distribution Type
88114  , p_source_73            IN VARCHAR2
88115 --Business Flow Prepayment Invoice Entity Code
88116  , p_source_74            IN VARCHAR2
88117 --Business Flow Prepayment Invoice Distribution Identifier
88118  , p_source_75            IN NUMBER
88119 --Business Flow Prepayment Invoice Identifier
88120  , p_source_76            IN NUMBER
88121 --Upgrade Encumbrance Credit Account Class
88122  , p_source_77            IN VARCHAR2
88123 --Payables Encumbrance Upgrade Credit Account
88124  , p_source_78            IN NUMBER
88125 --Payables Encumbrance Upgrade Credit Amount
88126  , p_source_79            IN NUMBER
88127 --Invoice Currency Code
88128  , p_source_80            IN VARCHAR2
88129 --Payables Encumbrance Upgrade Credit Base Amount
88130  , p_source_81            IN NUMBER
88131 --Upgrade Encumbrance Debit Account Class
88132  , p_source_82            IN VARCHAR2
88133 --Payables Encumbrance Upgrade Debit Account
88134  , p_source_83            IN NUMBER
88135 --Payables Encumbrance Upgrade Debit Amount
88136  , p_source_84            IN NUMBER
88137 --Payables Encumbrance Upgrade Debit Base Amount
88138  , p_source_85            IN NUMBER
88139 --Payables Encumbrance Upgrade Option
88140  , p_source_86            IN VARCHAR2
88144  , p_source_88            IN VARCHAR2
88141 --Prepayment Distribution Amount
88142  , p_source_87            IN NUMBER
88143 --Prepayment Clearing Currency Code
88145 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
88146  , p_source_89            IN NUMBER
88147 --Deferred Accounting End Date
88148  , p_source_90            IN DATE
88149 --Deferred Accounting Option
88150  , p_source_91            IN VARCHAR2
88151 --Deferred Accounting Start Date
88152  , p_source_92            IN DATE
88153 --Invoice Supplier Identifier
88154  , p_source_93            IN NUMBER
88155 --Invoice Supplier Site Identifier
88156  , p_source_94            IN NUMBER
88157 --Identifier of the Prepayment Application Reversed
88158  , p_source_95            IN NUMBER
88159 --Payables Upgrade Credit Encumbrance Type Identifier
88160  , p_source_96            IN NUMBER
88161 --Payables Upgrade Debit Encumbrance Type Identifier
88162  , p_source_97            IN NUMBER
88163 --Prepayment Clearing Exchange Date
88164  , p_source_118            IN DATE
88165 --Prepayment Clearing Exchange Rate
88166  , p_source_119            IN NUMBER
88167 --Prepayment Clearing Exchange Rate Type
88168  , p_source_120            IN VARCHAR2
88169 )
88170 IS
88171 
88172 l_component_type              VARCHAR2(80);
88173 l_component_code              VARCHAR2(30);
88174 l_component_type_code         VARCHAR2(1);
88175 l_component_appl_id           INTEGER;
88176 l_amb_context_code            VARCHAR2(30);
88177 l_entity_code                 VARCHAR2(30);
88178 l_event_class_code            VARCHAR2(30);
88179 l_ae_header_id                NUMBER;
88180 l_event_type_code             VARCHAR2(30);
88181 l_line_definition_code        VARCHAR2(30);
88182 l_line_definition_owner_code  VARCHAR2(1);
88183 --
88184 -- adr variables
88185 l_segment                     VARCHAR2(30);
88186 l_ccid                        NUMBER;
88187 l_adr_transaction_coa_id      NUMBER;
88188 l_adr_accounting_coa_id       NUMBER;
88189 l_adr_flexfield_segment_code  VARCHAR2(30);
88190 l_adr_flex_value_set_id       NUMBER;
88191 l_adr_value_type_code         VARCHAR2(30);
88192 l_adr_value_combination_id    NUMBER;
88193 l_adr_value_segment_code      VARCHAR2(30);
88194 
88195 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
88196 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
88197 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
88198 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
88199 
88200 -- 4262811 Variables ------------------------------------------------------------------------------------------
88201 l_entered_amt_idx             NUMBER;
88202 l_accted_amt_idx              NUMBER;
88203 l_acc_rev_flag                VARCHAR2(1);
88204 l_accrual_line_num            NUMBER;
88205 l_tmp_amt                     NUMBER;
88206 l_acc_rev_natural_side_code   VARCHAR2(1);
88207 
88208 l_num_entries                 NUMBER;
88209 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
88210 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
88211 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
88212 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
88213 l_recog_line_1                NUMBER;
88214 l_recog_line_2                NUMBER;
88215 
88216 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
88217 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
88218 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
88219 
88220 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88221 
88222 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
88223 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
88224 
88225 ---------------------------------------------------------------------------------------------------------------
88226 
88227 
88228 --
88229 -- bulk performance
88230 --
88231 l_balance_type_code           VARCHAR2(1);
88232 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
88233 l_log_module                  VARCHAR2(240);
88234 
88235 --
88236 -- Upgrade strategy
88237 --
88238 l_actual_upg_option           VARCHAR2(1);
88239 l_enc_upg_option           VARCHAR2(1);
88240 
88241 --
88242 BEGIN
88243 --
88244 IF g_log_enabled THEN
88245       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_159';
88246 END IF;
88247 --
88248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88249 
88250       trace
88251          (p_msg      => 'BEGIN of AcctLineType_159'
88252          ,p_level    => C_LEVEL_PROCEDURE
88253          ,p_module   => l_log_module);
88254 
88255 END IF;
88256 --
88257 l_component_type             := 'AMB_JLT';
88258 l_component_code             := 'AP_RECOV_PREPAY_CLR_RATE_APP';
88259 l_component_type_code        := 'S';
88260 l_component_appl_id          :=  200;
88261 l_amb_context_code           := 'DEFAULT';
88262 l_entity_code                := 'AP_INVOICES';
88263 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
88264 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
88265 l_line_definition_owner_code := 'S';
88266 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
88267 --
88268 l_balance_type_code          := 'A';
88272 l_adr_accounting_coa_id       := NULL;
88269 l_segment                     := NULL;
88270 l_ccid                        := NULL;
88271 l_adr_transaction_coa_id      := NULL;
88273 l_adr_flexfield_segment_code  := NULL;
88274 l_adr_flex_value_set_id       := NULL;
88275 l_adr_value_type_code         := NULL;
88276 l_adr_value_combination_id    := NULL;
88277 l_adr_value_segment_code      := NULL;
88278 
88279 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
88280 l_bflow_class_code           := '';    -- 4219869 Business Flow
88281 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
88282 l_budgetary_control_flag     := 'N';
88283 
88284 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
88285 l_bflow_applied_to_amt       := NULL; -- 5132302
88286 l_entered_amt_idx            := NULL;          -- 4262811
88287 l_accted_amt_idx             := NULL;          -- 4262811
88288 l_acc_rev_flag               := NULL;          -- 4262811
88289 l_accrual_line_num           := NULL;          -- 4262811
88290 l_tmp_amt                    := NULL;          -- 4262811
88291 --
88292  
88293 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
88294     l_balance_type_code <> 'B' THEN
88295 IF NVL(p_source_38,'
88296 ') =  'CLEAR_CLEAR' AND 
88297 (NVL(p_source_67,'
88298 ') =  'PREPAY APPL' OR 
88299 NVL(p_source_67,'
88300 ') =  'PREPAY APPL NONREC TAX' OR 
88301 NVL(p_source_67,'
88302 ') =  'PREPAY APPL REC TAX') AND 
88303 NVL(p_source_68,'
88304 ') =  'REC_TAX'
88305  THEN 
88306 
88307    --
88308    XLA_AE_LINES_PKG.SetNewLine;
88309 
88310    p_balance_type_code          := l_balance_type_code;
88311    -- set the flag so later we will know whether the gain loss line needs to be created
88312    
88313    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
88314      p_actual_flag :='A';
88315    END IF;
88316 
88317    --
88318    -- bulk performance
88319    --
88320    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
88321                                       p_header_num   => 0); -- 4262811
88322    --
88323    -- set accounting line options
88324    --
88325    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
88326            p_natural_side_code          => 'C'
88327          , p_gain_or_loss_flag          => 'N'
88328          , p_gl_transfer_mode_code      => 'S'
88329          , p_acct_entry_type_code       => 'A'
88330          , p_switch_side_flag           => 'Y'
88331          , p_merge_duplicate_code       => 'A'
88332          );
88333    --
88334    l_acc_rev_natural_side_code := 'D';  -- 4262811
88335    -- 
88336    --
88337    -- set accounting line type info
88338    --
88339    xla_ae_lines_pkg.SetAcctLineType
88340       (p_component_type             => l_component_type
88341       ,p_event_type_code            => l_event_type_code
88342       ,p_line_definition_owner_code => l_line_definition_owner_code
88343       ,p_line_definition_code       => l_line_definition_code
88344       ,p_accounting_line_code       => l_component_code
88345       ,p_accounting_line_type_code  => l_component_type_code
88346       ,p_accounting_line_appl_id    => l_component_appl_id
88347       ,p_amb_context_code           => l_amb_context_code
88348       ,p_entity_code                => l_entity_code
88349       ,p_event_class_code           => l_event_class_code);
88350    --
88351    -- set accounting class
88352    --
88353    xla_ae_lines_pkg.SetAcctClass(
88354            p_accounting_class_code  => 'RTAX'
88355          , p_ae_header_id           => l_ae_header_id
88356          );
88357 
88358    --
88359    -- set rounding class
88360    --
88361    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88362                       'RTAX';
88363 
88364    --
88365    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88366    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88367    --
88368    -- bulk performance
88369    --
88370    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88371 
88372    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88373       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88374 
88375    -- 4955764
88376    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88377       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88378 
88379    -- 4458381 Public Sector Enh
88380    
88381    --
88382    -- set accounting attributes for the line type
88383    --
88384    l_entered_amt_idx := 25;
88385    l_accted_amt_idx  := 30;
88386    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
88387    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88388    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
88389    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
88390    l_rec_acct_attrs.array_num_value(2)  := 
88391 xla_ae_sources_pkg.GetSystemSourceNum(
88392    p_source_code           => 'XLA_EVENT_APPL_ID'
88393  , p_source_type_code      => 'Y'
88394  , p_source_application_id =>  602
88395 );
88399    l_rec_acct_attrs.array_char_value(4)  := 
88396    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
88397    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
88398    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
88400 xla_ae_sources_pkg.GetSystemSourceChar(
88401    p_source_code           => 'XLA_ENTITY_CODE'
88402  , p_source_type_code      => 'Y'
88403  , p_source_application_id =>  602
88404 );
88405    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
88406    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
88407    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
88408    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
88409    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
88410    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
88411    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88412    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
88413    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
88414    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
88415    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
88416    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
88417    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88418    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
88419    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
88420    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
88421    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
88422    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
88423    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
88424    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
88425    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
88426    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
88427    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
88428    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
88429    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
88430    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
88431    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
88432    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
88433    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
88434    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
88435    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
88436    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
88437    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
88438    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
88439    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
88440    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
88441    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
88442    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
88443    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
88444    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
88445    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
88446    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
88447    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
88448    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
88449    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
88450    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
88451    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
88452    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
88453    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
88454    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
88455    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
88456    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
88457    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
88458    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
88459    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
88460    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
88461    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
88462    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
88463    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
88464    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
88465    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
88466    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
88467    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
88468    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
88469    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
88470    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
88471    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
88472    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
88473    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
88474    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
88475    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
88476    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
88477    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
88478    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
88479    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
88480    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
88484    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
88481    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
88482    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
88483    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
88485 
88486    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
88487    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
88488 
88489    ---------------------------------------------------------------------------------------------------------------
88490    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
88491    ---------------------------------------------------------------------------------------------------------------
88492    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
88493 
88494    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88495    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88496 
88497    IF xla_accounting_cache_pkg.GetValueChar
88498          (p_source_code         => 'LEDGER_CATEGORY_CODE'
88499          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
88500    AND l_bflow_method_code = 'PRIOR_ENTRY'
88501 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
88502    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
88503          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
88504        )
88505    THEN
88506          xla_ae_lines_pkg.BflowUpgEntry
88507            (p_business_method_code    => l_bflow_method_code
88508            ,p_business_class_code     => l_bflow_class_code
88509            ,p_balance_type            => l_balance_type_code);
88510    ELSE
88511       NULL;
88512 -- No business flow processing for business flow method of NONE.
88513    END IF;
88514 
88515    --
88516    -- call analytical criteria
88517    --
88518    
88519    --
88520    -- call description
88521    --
88522    -- No description or it is inherited.
88523    --
88524    -- call ADRs
88525    -- Bug 4922099
88526    --
88527    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88528         (NVL(l_actual_upg_option, 'N') = 'O') OR
88529         (NVL(l_enc_upg_option, 'N') = 'O')
88530       )
88531    THEN
88532    NULL;
88533    --
88534    --
88535    
88536   l_ccid := AcctDerRule_33(
88537            p_application_id           => p_application_id
88538          , p_ae_header_id             => l_ae_header_id 
88539 , p_source_36 => p_source_36
88540          , x_transaction_coa_id       => l_adr_transaction_coa_id
88541          , x_accounting_coa_id        => l_adr_accounting_coa_id
88542          , x_value_type_code          => l_adr_value_type_code
88543          , p_side                     => 'NA'
88544    );
88545 
88546    xla_ae_lines_pkg.set_ccid(
88547     p_code_combination_id          => l_ccid
88548   , p_value_type_code              => l_adr_value_type_code
88549   , p_transaction_coa_id           => l_adr_transaction_coa_id
88550   , p_accounting_coa_id            => l_adr_accounting_coa_id
88551   , p_adr_code                     => 'AP_RECP_INV_DIST'
88552   , p_adr_type_code                => 'S'
88553   , p_component_type               => l_component_type
88554   , p_component_code               => l_component_code
88555   , p_component_type_code          => l_component_type_code
88556   , p_component_appl_id            => l_component_appl_id
88557   , p_amb_context_code             => l_amb_context_code
88558   , p_side                         => 'NA'
88559   );
88560 
88561 
88562    --
88563    --
88564    END IF;
88565    --
88566    -- Bug 4922099
88567    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88568           (NVL(l_enc_upg_option, 'N') = 'O')
88569         ) AND
88570         (l_bflow_method_code = 'PRIOR_ENTRY')
88571       )
88572    THEN
88573       IF
88574       --
88575       1 = 2
88576       --
88577       THEN
88578       xla_accounting_err_pkg.build_message
88579                                     (p_appli_s_name            => 'XLA'
88580                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88581                                     ,p_token_1                 => 'LINE_NUMBER'
88582                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
88583                                     ,p_token_2                 => 'LINE_TYPE_NAME'
88584                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
88585                                                                              l_component_type
88586                                                                             ,l_component_code
88587                                                                             ,l_component_type_code
88588                                                                             ,l_component_appl_id
88589                                                                             ,l_amb_context_code
88590                                                                             ,l_entity_code
88591                                                                             ,l_event_class_code
88592                                                                            )
88593                                     ,p_token_3                 => 'OWNER'
88597                                                                          )
88594                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
88595                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
88596                                                                           ,p_lookup_code    => l_component_type_code
88598                                     ,p_token_4                 => 'PRODUCT_NAME'
88599                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88600                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88601                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88602                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88603                                     ,p_ae_header_id            =>  NULL
88604                                        );
88605 
88606         IF (C_LEVEL_ERROR>= g_log_level) THEN
88607                  trace
88608                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88609                       ,p_level    => C_LEVEL_ERROR
88610                       ,p_module   => l_log_module);
88611         END IF;
88612       END IF;
88613    END IF;
88614    --
88615    --
88616    ------------------------------------------------------------------------------------------------
88617    -- 4219869 Business Flow
88618    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88619    -- Prior Entry.  Currently, the following code is always generated.
88620    ------------------------------------------------------------------------------------------------
88621    XLA_AE_LINES_PKG.ValidateCurrentLine;
88622 
88623    ------------------------------------------------------------------------------------
88624    -- 4219869 Business Flow
88625    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88626    ------------------------------------------------------------------------------------
88627    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88628 
88629    ----------------------------------------------------------------------------------
88630    -- 4219869 Business Flow
88631    -- Update journal entry status -- Need to generate this within IF <condition>
88632    ----------------------------------------------------------------------------------
88633    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88634          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88635          ,p_balance_type_code => l_balance_type_code
88636          );
88637 
88638    -------------------------------------------------------------------------------------------
88639    -- 4262811 - Generate the Accrual Reversal lines
88640    -------------------------------------------------------------------------------------------
88641    BEGIN
88642       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88643                               (g_array_event(p_event_id).array_value_num('header_index'));
88644       IF l_acc_rev_flag IS NULL THEN
88645          l_acc_rev_flag := 'N';
88646       END IF;
88647    EXCEPTION
88648       WHEN OTHERS THEN
88649          l_acc_rev_flag := 'N';
88650    END;
88651    --
88652    IF (l_acc_rev_flag = 'Y') THEN
88653 
88654        -- 4645092  ------------------------------------------------------------------------------
88655        -- To allow MPA report to determine if it should generate report process
88656        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88657        ------------------------------------------------------------------------------------------
88658 
88659        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88660        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88661    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
88662    -- call ADRs
88663    -- Bug 4922099
88664    --
88665    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88666         (NVL(l_actual_upg_option, 'N') = 'O') OR
88667         (NVL(l_enc_upg_option, 'N') = 'O')
88668       )
88669    THEN
88670    NULL;
88671    --
88672    --
88673    
88674   l_ccid := AcctDerRule_33(
88675            p_application_id           => p_application_id
88676          , p_ae_header_id             => l_ae_header_id 
88677 , p_source_36 => p_source_36
88678          , x_transaction_coa_id       => l_adr_transaction_coa_id
88679          , x_accounting_coa_id        => l_adr_accounting_coa_id
88680          , x_value_type_code          => l_adr_value_type_code
88681          , p_side                     => 'NA'
88682    );
88683 
88684    xla_ae_lines_pkg.set_ccid(
88685     p_code_combination_id          => l_ccid
88686   , p_value_type_code              => l_adr_value_type_code
88687   , p_transaction_coa_id           => l_adr_transaction_coa_id
88688   , p_accounting_coa_id            => l_adr_accounting_coa_id
88689   , p_adr_code                     => 'AP_RECP_INV_DIST'
88690   , p_adr_type_code                => 'S'
88691   , p_component_type               => l_component_type
88692   , p_component_code               => l_component_code
88693   , p_component_type_code          => l_component_type_code
88694   , p_component_appl_id            => l_component_appl_id
88695   , p_amb_context_code             => l_amb_context_code
88696   , p_side                         => 'NA'
88700    --
88697   );
88698 
88699 
88701    --
88702    END IF;
88703 
88704        --
88705        -- Update the line information that should be overwritten
88706        --
88707        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88708                                          p_header_num   => 1);
88709        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
88710 
88711        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88712 
88713        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
88714           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88715        END IF;
88716 
88717       --
88718       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88719       --
88720       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88721           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
88722       ELSE
88723           ---------------------------------------------------------------------------------------------------
88724           -- 4262811a Switch Sign
88725           ---------------------------------------------------------------------------------------------------
88726           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
88727           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88728                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88729           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88730                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88731           -- 5132302
88732           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88733                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88734 
88735       END IF;
88736 
88737       -- 4955764
88738       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88739       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88740 
88741 
88742       XLA_AE_LINES_PKG.ValidateCurrentLine;
88743       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88744 
88745       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88746                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88747                ,p_balance_type_code => l_balance_type_code);
88748 
88749    END IF;
88750 
88751    -----------------------------------------------------------------------------------------
88752    -- 4262811 Multiperiod Accounting
88753    -----------------------------------------------------------------------------------------
88754      -- No MPA option is assigned.
88755 
88756 
88757 END IF;
88758 END IF;
88759 --
88760 
88761 --
88762 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88763    trace
88764       (p_msg      => 'END of AcctLineType_159'
88765       ,p_level    => C_LEVEL_PROCEDURE
88766       ,p_module   => l_log_module);
88767 END IF;
88768 --
88769 EXCEPTION
88770   WHEN xla_exceptions_pkg.application_exception THEN
88771       RAISE;
88772   WHEN OTHERS THEN
88773        xla_exceptions_pkg.raise_message
88774            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_159');
88775 END AcctLineType_159;
88776 --
88777 
88778 ---------------------------------------
88779 --
88780 -- PRIVATE FUNCTION
88781 --         AcctLineType_160
88782 --
88783 ---------------------------------------
88784 PROCEDURE AcctLineType_160 (
88785   p_application_id        IN NUMBER
88786  ,p_event_id              IN NUMBER
88787  ,p_calculate_acctd_flag  IN VARCHAR2
88788  ,p_calculate_g_l_flag    IN VARCHAR2
88789  ,p_actual_flag           IN OUT VARCHAR2
88790  ,p_balance_type_code     OUT VARCHAR2
88791  ,p_gain_or_loss_ref      OUT VARCHAR2
88792  
88793 --Recipient Invoice Distribution Account
88794  , p_source_36            IN NUMBER
88795 --When to Account for Payment Option
88796  , p_source_38            IN VARCHAR2
88797 --Accounting Reversal Indicator
88798  , p_source_40            IN VARCHAR2
88799 --Business Flow Accounts Payable Application Identifier
88800  , p_source_42            IN NUMBER
88801 --Distribution Link Type
88802  , p_source_48            IN VARCHAR2
88803 --Override Accounted Amount Indicator
88804  , p_source_53            IN VARCHAR2
88805  , p_source_53_meaning    IN VARCHAR2
88806 --Third Party Type
88807  , p_source_56            IN VARCHAR2
88808 --Invoice Distribution Tax Line Identifier
88809  , p_source_58            IN NUMBER
88810 --Invoice Distribution Summary Tax Line Identifier
88811  , p_source_59            IN NUMBER
88812 --Invoice Distribution Tax Distribution Identifier from Tax
88813  , p_source_66            IN NUMBER
88814 --Prepayment Distribution Type
88815  , p_source_67            IN VARCHAR2
88816 --Recipient Invoice Distribution Type
88817  , p_source_68            IN VARCHAR2
88818  , p_source_68_meaning    IN VARCHAR2
88819 --Prepayment Application Distribution Identifier
88820  , p_source_71            IN NUMBER
88821 --Invoice Identifier
88822  , p_source_72            IN NUMBER
88826  , p_source_74            IN VARCHAR2
88823 --Business Flow Prepayment Invoice Distribution Type
88824  , p_source_73            IN VARCHAR2
88825 --Business Flow Prepayment Invoice Entity Code
88827 --Business Flow Prepayment Invoice Distribution Identifier
88828  , p_source_75            IN NUMBER
88829 --Business Flow Prepayment Invoice Identifier
88830  , p_source_76            IN NUMBER
88831 --Upgrade Encumbrance Credit Account Class
88832  , p_source_77            IN VARCHAR2
88833 --Payables Encumbrance Upgrade Credit Account
88834  , p_source_78            IN NUMBER
88835 --Payables Encumbrance Upgrade Credit Amount
88836  , p_source_79            IN NUMBER
88837 --Invoice Currency Code
88838  , p_source_80            IN VARCHAR2
88839 --Payables Encumbrance Upgrade Credit Base Amount
88840  , p_source_81            IN NUMBER
88841 --Upgrade Encumbrance Debit Account Class
88842  , p_source_82            IN VARCHAR2
88843 --Payables Encumbrance Upgrade Debit Account
88844  , p_source_83            IN NUMBER
88845 --Payables Encumbrance Upgrade Debit Amount
88846  , p_source_84            IN NUMBER
88847 --Payables Encumbrance Upgrade Debit Base Amount
88848  , p_source_85            IN NUMBER
88849 --Payables Encumbrance Upgrade Option
88850  , p_source_86            IN VARCHAR2
88851 --Prepayment Distribution Amount
88852  , p_source_87            IN NUMBER
88853 --Deferred Accounting End Date
88854  , p_source_90            IN DATE
88855 --Deferred Accounting Option
88856  , p_source_91            IN VARCHAR2
88857 --Deferred Accounting Start Date
88858  , p_source_92            IN DATE
88859 --Invoice Supplier Identifier
88860  , p_source_93            IN NUMBER
88861 --Invoice Supplier Site Identifier
88862  , p_source_94            IN NUMBER
88863 --Identifier of the Prepayment Application Reversed
88864  , p_source_95            IN NUMBER
88865 --Payables Upgrade Credit Encumbrance Type Identifier
88866  , p_source_96            IN NUMBER
88867 --Payables Upgrade Debit Encumbrance Type Identifier
88868  , p_source_97            IN NUMBER
88869 --Prepayment Payment Currency Code
88870  , p_source_98            IN VARCHAR2
88871 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
88872  , p_source_99            IN NUMBER
88873 --Prepayment Payment Exchange Date
88874  , p_source_121            IN DATE
88875 --Prepayment Payment Exchange Rate
88876  , p_source_122            IN NUMBER
88877 --Prepayment Payment Exchange Rate Type
88878  , p_source_123            IN VARCHAR2
88879 )
88880 IS
88881 
88882 l_component_type              VARCHAR2(80);
88883 l_component_code              VARCHAR2(30);
88884 l_component_type_code         VARCHAR2(1);
88885 l_component_appl_id           INTEGER;
88886 l_amb_context_code            VARCHAR2(30);
88887 l_entity_code                 VARCHAR2(30);
88888 l_event_class_code            VARCHAR2(30);
88889 l_ae_header_id                NUMBER;
88890 l_event_type_code             VARCHAR2(30);
88891 l_line_definition_code        VARCHAR2(30);
88892 l_line_definition_owner_code  VARCHAR2(1);
88893 --
88894 -- adr variables
88895 l_segment                     VARCHAR2(30);
88896 l_ccid                        NUMBER;
88897 l_adr_transaction_coa_id      NUMBER;
88898 l_adr_accounting_coa_id       NUMBER;
88899 l_adr_flexfield_segment_code  VARCHAR2(30);
88900 l_adr_flex_value_set_id       NUMBER;
88901 l_adr_value_type_code         VARCHAR2(30);
88902 l_adr_value_combination_id    NUMBER;
88903 l_adr_value_segment_code      VARCHAR2(30);
88904 
88905 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
88906 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
88907 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
88908 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
88909 
88910 -- 4262811 Variables ------------------------------------------------------------------------------------------
88911 l_entered_amt_idx             NUMBER;
88912 l_accted_amt_idx              NUMBER;
88913 l_acc_rev_flag                VARCHAR2(1);
88914 l_accrual_line_num            NUMBER;
88915 l_tmp_amt                     NUMBER;
88916 l_acc_rev_natural_side_code   VARCHAR2(1);
88917 
88918 l_num_entries                 NUMBER;
88919 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
88920 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
88921 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
88922 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
88923 l_recog_line_1                NUMBER;
88924 l_recog_line_2                NUMBER;
88925 
88926 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
88927 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
88928 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
88929 
88930 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88931 
88932 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
88933 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
88934 
88935 ---------------------------------------------------------------------------------------------------------------
88936 
88937 
88938 --
88939 -- bulk performance
88940 --
88944 
88941 l_balance_type_code           VARCHAR2(1);
88942 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
88943 l_log_module                  VARCHAR2(240);
88945 --
88946 -- Upgrade strategy
88947 --
88948 l_actual_upg_option           VARCHAR2(1);
88949 l_enc_upg_option           VARCHAR2(1);
88950 
88951 --
88952 BEGIN
88953 --
88954 IF g_log_enabled THEN
88955       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_160';
88956 END IF;
88957 --
88958 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88959 
88960       trace
88961          (p_msg      => 'BEGIN of AcctLineType_160'
88962          ,p_level    => C_LEVEL_PROCEDURE
88963          ,p_module   => l_log_module);
88964 
88965 END IF;
88966 --
88967 l_component_type             := 'AMB_JLT';
88968 l_component_code             := 'AP_RECOV_PREPAY_PAY_RATE_APP';
88969 l_component_type_code        := 'S';
88970 l_component_appl_id          :=  200;
88971 l_amb_context_code           := 'DEFAULT';
88972 l_entity_code                := 'AP_INVOICES';
88973 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
88974 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
88975 l_line_definition_owner_code := 'S';
88976 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
88977 --
88978 l_balance_type_code          := 'A';
88979 l_segment                     := NULL;
88980 l_ccid                        := NULL;
88981 l_adr_transaction_coa_id      := NULL;
88982 l_adr_accounting_coa_id       := NULL;
88983 l_adr_flexfield_segment_code  := NULL;
88984 l_adr_flex_value_set_id       := NULL;
88985 l_adr_value_type_code         := NULL;
88986 l_adr_value_combination_id    := NULL;
88987 l_adr_value_segment_code      := NULL;
88988 
88989 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
88990 l_bflow_class_code           := '';    -- 4219869 Business Flow
88991 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
88992 l_budgetary_control_flag     := 'N';
88993 
88994 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
88995 l_bflow_applied_to_amt       := NULL; -- 5132302
88996 l_entered_amt_idx            := NULL;          -- 4262811
88997 l_accted_amt_idx             := NULL;          -- 4262811
88998 l_acc_rev_flag               := NULL;          -- 4262811
88999 l_accrual_line_num           := NULL;          -- 4262811
89000 l_tmp_amt                    := NULL;          -- 4262811
89001 --
89002  
89003 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89004     l_balance_type_code <> 'B' THEN
89005 IF NVL(p_source_38,'
89006 ') <>  'CLEAR_CLEAR' AND 
89007 (NVL(p_source_67,'
89008 ') =  'PREPAY APPL' OR 
89009 NVL(p_source_67,'
89010 ') =  'PREPAY APPL NONREC TAX' OR 
89011 NVL(p_source_67,'
89012 ') =  'PREPAY APPL REC TAX') AND 
89013 NVL(p_source_68,'
89014 ') =  'REC_TAX'
89015  THEN 
89016 
89017    --
89018    XLA_AE_LINES_PKG.SetNewLine;
89019 
89020    p_balance_type_code          := l_balance_type_code;
89021    -- set the flag so later we will know whether the gain loss line needs to be created
89022    
89023    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89024      p_actual_flag :='A';
89025    END IF;
89026 
89027    --
89028    -- bulk performance
89029    --
89030    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89031                                       p_header_num   => 0); -- 4262811
89032    --
89033    -- set accounting line options
89034    --
89035    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89036            p_natural_side_code          => 'C'
89037          , p_gain_or_loss_flag          => 'N'
89038          , p_gl_transfer_mode_code      => 'S'
89039          , p_acct_entry_type_code       => 'A'
89040          , p_switch_side_flag           => 'Y'
89041          , p_merge_duplicate_code       => 'A'
89042          );
89043    --
89044    l_acc_rev_natural_side_code := 'D';  -- 4262811
89045    -- 
89046    --
89047    -- set accounting line type info
89048    --
89049    xla_ae_lines_pkg.SetAcctLineType
89050       (p_component_type             => l_component_type
89051       ,p_event_type_code            => l_event_type_code
89052       ,p_line_definition_owner_code => l_line_definition_owner_code
89053       ,p_line_definition_code       => l_line_definition_code
89054       ,p_accounting_line_code       => l_component_code
89055       ,p_accounting_line_type_code  => l_component_type_code
89056       ,p_accounting_line_appl_id    => l_component_appl_id
89057       ,p_amb_context_code           => l_amb_context_code
89058       ,p_entity_code                => l_entity_code
89059       ,p_event_class_code           => l_event_class_code);
89060    --
89061    -- set accounting class
89062    --
89063    xla_ae_lines_pkg.SetAcctClass(
89064            p_accounting_class_code  => 'RTAX'
89065          , p_ae_header_id           => l_ae_header_id
89066          );
89067 
89068    --
89069    -- set rounding class
89070    --
89071    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89072                       'RTAX';
89073 
89074    --
89075    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89079    --
89076    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89077    --
89078    -- bulk performance
89080    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89081 
89082    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89083       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89084 
89085    -- 4955764
89086    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89087       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89088 
89089    -- 4458381 Public Sector Enh
89090    
89091    --
89092    -- set accounting attributes for the line type
89093    --
89094    l_entered_amt_idx := 25;
89095    l_accted_amt_idx  := 30;
89096    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
89097    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89098    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
89099    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
89100    l_rec_acct_attrs.array_num_value(2)  := 
89101 xla_ae_sources_pkg.GetSystemSourceNum(
89102    p_source_code           => 'XLA_EVENT_APPL_ID'
89103  , p_source_type_code      => 'Y'
89104  , p_source_application_id =>  602
89105 );
89106    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
89107    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
89108    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
89109    l_rec_acct_attrs.array_char_value(4)  := 
89110 xla_ae_sources_pkg.GetSystemSourceChar(
89111    p_source_code           => 'XLA_ENTITY_CODE'
89112  , p_source_type_code      => 'Y'
89113  , p_source_application_id =>  602
89114 );
89115    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
89116    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
89117    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
89118    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
89119    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
89120    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
89121    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89122    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
89123    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
89124    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
89125    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
89126    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
89127    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89128    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
89129    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
89130    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
89131    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
89132    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
89133    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
89134    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
89135    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
89136    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
89137    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
89138    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
89139    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
89140    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
89141    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
89142    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
89143    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
89144    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
89145    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
89146    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
89147    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
89148    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
89149    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
89150    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
89151    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
89152    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
89153    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
89154    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
89155    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
89156    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
89157    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
89158    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
89159    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
89160    l_rec_acct_attrs.array_date_value(27)  := p_source_121;
89161    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
89162    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
89163    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
89164    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
89165    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
89166    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
89167    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
89168    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
89169    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
89173    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
89170    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
89171    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
89172    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
89174    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
89175    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
89176    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
89177    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
89178    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
89179    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
89180    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
89181    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
89182    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
89183    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
89184    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
89185    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
89186    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
89187    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
89188    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
89189    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
89190    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
89191    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
89192    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
89193    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
89194    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
89195 
89196    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89197    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89198 
89199    ---------------------------------------------------------------------------------------------------------------
89200    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89201    ---------------------------------------------------------------------------------------------------------------
89202    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89203 
89204    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89205    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89206 
89207    IF xla_accounting_cache_pkg.GetValueChar
89208          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89209          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89210    AND l_bflow_method_code = 'PRIOR_ENTRY'
89211 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89212    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89213          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89214        )
89215    THEN
89216          xla_ae_lines_pkg.BflowUpgEntry
89217            (p_business_method_code    => l_bflow_method_code
89218            ,p_business_class_code     => l_bflow_class_code
89219            ,p_balance_type            => l_balance_type_code);
89220    ELSE
89221       NULL;
89222 -- No business flow processing for business flow method of NONE.
89223    END IF;
89224 
89225    --
89226    -- call analytical criteria
89227    --
89228    
89229    --
89230    -- call description
89231    --
89232    -- No description or it is inherited.
89233    --
89234    -- call ADRs
89235    -- Bug 4922099
89236    --
89237    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89238         (NVL(l_actual_upg_option, 'N') = 'O') OR
89239         (NVL(l_enc_upg_option, 'N') = 'O')
89240       )
89241    THEN
89242    NULL;
89243    --
89244    --
89245    
89246   l_ccid := AcctDerRule_33(
89247            p_application_id           => p_application_id
89248          , p_ae_header_id             => l_ae_header_id 
89249 , p_source_36 => p_source_36
89250          , x_transaction_coa_id       => l_adr_transaction_coa_id
89251          , x_accounting_coa_id        => l_adr_accounting_coa_id
89252          , x_value_type_code          => l_adr_value_type_code
89253          , p_side                     => 'NA'
89254    );
89255 
89256    xla_ae_lines_pkg.set_ccid(
89257     p_code_combination_id          => l_ccid
89258   , p_value_type_code              => l_adr_value_type_code
89259   , p_transaction_coa_id           => l_adr_transaction_coa_id
89260   , p_accounting_coa_id            => l_adr_accounting_coa_id
89261   , p_adr_code                     => 'AP_RECP_INV_DIST'
89262   , p_adr_type_code                => 'S'
89263   , p_component_type               => l_component_type
89264   , p_component_code               => l_component_code
89265   , p_component_type_code          => l_component_type_code
89266   , p_component_appl_id            => l_component_appl_id
89267   , p_amb_context_code             => l_amb_context_code
89268   , p_side                         => 'NA'
89269   );
89270 
89271 
89272    --
89273    --
89274    END IF;
89275    --
89276    -- Bug 4922099
89277    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89278           (NVL(l_enc_upg_option, 'N') = 'O')
89279         ) AND
89280         (l_bflow_method_code = 'PRIOR_ENTRY')
89281       )
89282    THEN
89283       IF
89284       --
89285       1 = 2
89286       --
89287       THEN
89291                                     ,p_token_1                 => 'LINE_NUMBER'
89288       xla_accounting_err_pkg.build_message
89289                                     (p_appli_s_name            => 'XLA'
89290                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89292                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89293                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89294                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89295                                                                              l_component_type
89296                                                                             ,l_component_code
89297                                                                             ,l_component_type_code
89298                                                                             ,l_component_appl_id
89299                                                                             ,l_amb_context_code
89300                                                                             ,l_entity_code
89301                                                                             ,l_event_class_code
89302                                                                            )
89303                                     ,p_token_3                 => 'OWNER'
89304                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
89305                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
89306                                                                           ,p_lookup_code    => l_component_type_code
89307                                                                          )
89308                                     ,p_token_4                 => 'PRODUCT_NAME'
89309                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89310                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89311                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89312                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89313                                     ,p_ae_header_id            =>  NULL
89314                                        );
89315 
89316         IF (C_LEVEL_ERROR>= g_log_level) THEN
89317                  trace
89318                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89319                       ,p_level    => C_LEVEL_ERROR
89320                       ,p_module   => l_log_module);
89321         END IF;
89322       END IF;
89323    END IF;
89324    --
89325    --
89326    ------------------------------------------------------------------------------------------------
89327    -- 4219869 Business Flow
89328    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89329    -- Prior Entry.  Currently, the following code is always generated.
89330    ------------------------------------------------------------------------------------------------
89331    XLA_AE_LINES_PKG.ValidateCurrentLine;
89332 
89333    ------------------------------------------------------------------------------------
89334    -- 4219869 Business Flow
89335    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89336    ------------------------------------------------------------------------------------
89337    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89338 
89339    ----------------------------------------------------------------------------------
89340    -- 4219869 Business Flow
89341    -- Update journal entry status -- Need to generate this within IF <condition>
89342    ----------------------------------------------------------------------------------
89343    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89344          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89345          ,p_balance_type_code => l_balance_type_code
89346          );
89347 
89348    -------------------------------------------------------------------------------------------
89349    -- 4262811 - Generate the Accrual Reversal lines
89350    -------------------------------------------------------------------------------------------
89351    BEGIN
89352       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89353                               (g_array_event(p_event_id).array_value_num('header_index'));
89354       IF l_acc_rev_flag IS NULL THEN
89355          l_acc_rev_flag := 'N';
89356       END IF;
89357    EXCEPTION
89358       WHEN OTHERS THEN
89359          l_acc_rev_flag := 'N';
89360    END;
89361    --
89362    IF (l_acc_rev_flag = 'Y') THEN
89363 
89364        -- 4645092  ------------------------------------------------------------------------------
89365        -- To allow MPA report to determine if it should generate report process
89366        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89367        ------------------------------------------------------------------------------------------
89368 
89369        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89370        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89371    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
89372    -- call ADRs
89373    -- Bug 4922099
89374    --
89375    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89376         (NVL(l_actual_upg_option, 'N') = 'O') OR
89377         (NVL(l_enc_upg_option, 'N') = 'O')
89378       )
89382    --
89379    THEN
89380    NULL;
89381    --
89383    
89384   l_ccid := AcctDerRule_33(
89385            p_application_id           => p_application_id
89386          , p_ae_header_id             => l_ae_header_id 
89387 , p_source_36 => p_source_36
89388          , x_transaction_coa_id       => l_adr_transaction_coa_id
89389          , x_accounting_coa_id        => l_adr_accounting_coa_id
89390          , x_value_type_code          => l_adr_value_type_code
89391          , p_side                     => 'NA'
89392    );
89393 
89394    xla_ae_lines_pkg.set_ccid(
89395     p_code_combination_id          => l_ccid
89396   , p_value_type_code              => l_adr_value_type_code
89397   , p_transaction_coa_id           => l_adr_transaction_coa_id
89398   , p_accounting_coa_id            => l_adr_accounting_coa_id
89399   , p_adr_code                     => 'AP_RECP_INV_DIST'
89400   , p_adr_type_code                => 'S'
89401   , p_component_type               => l_component_type
89402   , p_component_code               => l_component_code
89403   , p_component_type_code          => l_component_type_code
89404   , p_component_appl_id            => l_component_appl_id
89405   , p_amb_context_code             => l_amb_context_code
89406   , p_side                         => 'NA'
89407   );
89408 
89409 
89410    --
89411    --
89412    END IF;
89413 
89414        --
89415        -- Update the line information that should be overwritten
89416        --
89417        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
89418                                          p_header_num   => 1);
89419        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
89420 
89421        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
89422 
89423        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
89424           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
89425        END IF;
89426 
89427       --
89428       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
89429       --
89430       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
89431           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
89432       ELSE
89433           ---------------------------------------------------------------------------------------------------
89434           -- 4262811a Switch Sign
89435           ---------------------------------------------------------------------------------------------------
89436           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
89437           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89438                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89439           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89440                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89441           -- 5132302
89442           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
89443                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89444 
89445       END IF;
89446 
89447       -- 4955764
89448       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89449       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
89450 
89451 
89452       XLA_AE_LINES_PKG.ValidateCurrentLine;
89453       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89454 
89455       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89456                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
89457                ,p_balance_type_code => l_balance_type_code);
89458 
89459    END IF;
89460 
89461    -----------------------------------------------------------------------------------------
89462    -- 4262811 Multiperiod Accounting
89463    -----------------------------------------------------------------------------------------
89464      -- No MPA option is assigned.
89465 
89466 
89467 END IF;
89468 END IF;
89469 --
89470 
89471 --
89472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89473    trace
89474       (p_msg      => 'END of AcctLineType_160'
89475       ,p_level    => C_LEVEL_PROCEDURE
89476       ,p_module   => l_log_module);
89477 END IF;
89478 --
89479 EXCEPTION
89480   WHEN xla_exceptions_pkg.application_exception THEN
89481       RAISE;
89482   WHEN OTHERS THEN
89483        xla_exceptions_pkg.raise_message
89484            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_160');
89485 END AcctLineType_160;
89486 --
89487 
89488 ---------------------------------------
89489 --
89490 -- PRIVATE FUNCTION
89491 --         AcctLineType_161
89492 --
89493 ---------------------------------------
89494 PROCEDURE AcctLineType_161 (
89495   p_application_id        IN NUMBER
89496  ,p_event_id              IN NUMBER
89497  ,p_calculate_acctd_flag  IN VARCHAR2
89498  ,p_calculate_g_l_flag    IN VARCHAR2
89499  ,p_actual_flag           IN OUT VARCHAR2
89500  ,p_balance_type_code     OUT VARCHAR2
89501  ,p_gain_or_loss_ref      OUT VARCHAR2
89502  
89506  , p_source_17            IN NUMBER
89503 --Payment Distribution (Cleared Rate) Ledger Amount
89504  , p_source_10            IN NUMBER
89505 --Invoice Distribution Account
89507 --Invoice Distribution Type
89508  , p_source_20            IN VARCHAR2
89509  , p_source_20_meaning    IN VARCHAR2
89510 --When to Account for Payment Option
89511  , p_source_38            IN VARCHAR2
89512 --Payment Distribution Type
89513  , p_source_39            IN VARCHAR2
89514  , p_source_39_meaning    IN VARCHAR2
89515 --Accounting Reversal Indicator
89516  , p_source_40            IN VARCHAR2
89517 --Payment Distribution Amount
89518  , p_source_41            IN NUMBER
89519 --Business Flow Accounts Payable Application Identifier
89520  , p_source_42            IN NUMBER
89521 --Business Flow Payment Distribution Type
89522  , p_source_43            IN VARCHAR2
89523 --Business Flow Payment Entity Code
89524  , p_source_44            IN VARCHAR2
89525 --Business Flow Payment Distribution Identifier
89526  , p_source_45            IN NUMBER
89527 --Business Flow Payment Identifier
89528  , p_source_46            IN NUMBER
89529 --Payment Distribution Identifier
89530  , p_source_47            IN NUMBER
89531 --Distribution Link Type
89532  , p_source_48            IN VARCHAR2
89533 --Payment Currency Code
89534  , p_source_49            IN VARCHAR2
89535 --Override Accounted Amount Indicator
89536  , p_source_53            IN VARCHAR2
89537  , p_source_53_meaning    IN VARCHAR2
89538 --Payment Supplier Identifier
89539  , p_source_54            IN NUMBER
89540 --Payment Supplier Site Identifier
89541  , p_source_55            IN NUMBER
89542 --Third Party Type
89543  , p_source_56            IN VARCHAR2
89544 --Payment Distribution Reversed Identifier
89545  , p_source_57            IN NUMBER
89546 --Invoice Distribution Tax Line Identifier
89547  , p_source_58            IN NUMBER
89548 --Invoice Distribution Summary Tax Line Identifier
89549  , p_source_59            IN NUMBER
89550 --Cleared Exchange Date
89551  , p_source_107            IN DATE
89552 --Cleared Exchange Rate
89553  , p_source_108            IN NUMBER
89554 --Cleared Exchange Rate Type
89555  , p_source_109            IN VARCHAR2
89556 )
89557 IS
89558 
89559 l_component_type              VARCHAR2(80);
89560 l_component_code              VARCHAR2(30);
89561 l_component_type_code         VARCHAR2(1);
89562 l_component_appl_id           INTEGER;
89563 l_amb_context_code            VARCHAR2(30);
89564 l_entity_code                 VARCHAR2(30);
89565 l_event_class_code            VARCHAR2(30);
89566 l_ae_header_id                NUMBER;
89567 l_event_type_code             VARCHAR2(30);
89568 l_line_definition_code        VARCHAR2(30);
89569 l_line_definition_owner_code  VARCHAR2(1);
89570 --
89571 -- adr variables
89572 l_segment                     VARCHAR2(30);
89573 l_ccid                        NUMBER;
89574 l_adr_transaction_coa_id      NUMBER;
89575 l_adr_accounting_coa_id       NUMBER;
89576 l_adr_flexfield_segment_code  VARCHAR2(30);
89577 l_adr_flex_value_set_id       NUMBER;
89578 l_adr_value_type_code         VARCHAR2(30);
89579 l_adr_value_combination_id    NUMBER;
89580 l_adr_value_segment_code      VARCHAR2(30);
89581 
89582 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
89583 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
89584 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
89585 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
89586 
89587 -- 4262811 Variables ------------------------------------------------------------------------------------------
89588 l_entered_amt_idx             NUMBER;
89589 l_accted_amt_idx              NUMBER;
89590 l_acc_rev_flag                VARCHAR2(1);
89591 l_accrual_line_num            NUMBER;
89592 l_tmp_amt                     NUMBER;
89593 l_acc_rev_natural_side_code   VARCHAR2(1);
89594 
89595 l_num_entries                 NUMBER;
89596 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
89597 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
89598 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
89599 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
89600 l_recog_line_1                NUMBER;
89601 l_recog_line_2                NUMBER;
89602 
89603 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
89604 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
89605 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
89606 
89607 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89608 
89609 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
89610 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
89611 
89612 ---------------------------------------------------------------------------------------------------------------
89613 
89614 
89615 --
89616 -- bulk performance
89617 --
89618 l_balance_type_code           VARCHAR2(1);
89619 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
89620 l_log_module                  VARCHAR2(240);
89621 
89622 --
89623 -- Upgrade strategy
89624 --
89625 l_actual_upg_option           VARCHAR2(1);
89626 l_enc_upg_option           VARCHAR2(1);
89627 
89628 --
89632       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_161';
89629 BEGIN
89630 --
89631 IF g_log_enabled THEN
89633 END IF;
89634 --
89635 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89636 
89637       trace
89638          (p_msg      => 'BEGIN of AcctLineType_161'
89639          ,p_level    => C_LEVEL_PROCEDURE
89640          ,p_module   => l_log_module);
89641 
89642 END IF;
89643 --
89644 l_component_type             := 'AMB_JLT';
89645 l_component_code             := 'AP_RECOV_TAX_CLEAR';
89646 l_component_type_code        := 'S';
89647 l_component_appl_id          :=  200;
89648 l_amb_context_code           := 'DEFAULT';
89649 l_entity_code                := 'AP_PAYMENTS';
89650 l_event_class_code           := 'RECONCILED PAYMENTS';
89651 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
89652 l_line_definition_owner_code := 'S';
89653 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
89654 --
89655 l_balance_type_code          := 'A';
89656 l_segment                     := NULL;
89657 l_ccid                        := NULL;
89658 l_adr_transaction_coa_id      := NULL;
89659 l_adr_accounting_coa_id       := NULL;
89660 l_adr_flexfield_segment_code  := NULL;
89661 l_adr_flex_value_set_id       := NULL;
89662 l_adr_value_type_code         := NULL;
89663 l_adr_value_combination_id    := NULL;
89664 l_adr_value_segment_code      := NULL;
89665 
89666 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
89667 l_bflow_class_code           := '';    -- 4219869 Business Flow
89668 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
89669 l_budgetary_control_flag     := 'N';
89670 
89671 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
89672 l_bflow_applied_to_amt       := NULL; -- 5132302
89673 l_entered_amt_idx            := NULL;          -- 4262811
89674 l_accted_amt_idx             := NULL;          -- 4262811
89675 l_acc_rev_flag               := NULL;          -- 4262811
89676 l_accrual_line_num           := NULL;          -- 4262811
89677 l_tmp_amt                    := NULL;          -- 4262811
89678 --
89679  
89680 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89681     l_balance_type_code <> 'B' THEN
89682 IF NVL(p_source_38,'
89683 ') =  'CLEAR_CLEAR' AND 
89684 NVL(p_source_20,'
89685 ') =  'REC_TAX' AND 
89686 (NVL(p_source_39,'
89687 ') =  'CASH' OR 
89688 NVL(p_source_39,'
89689 ') =  'AWT' OR 
89690 NVL(p_source_39,'
89691 ') =  'DISCOUNT')
89692  THEN 
89693 
89694    --
89695    XLA_AE_LINES_PKG.SetNewLine;
89696 
89697    p_balance_type_code          := l_balance_type_code;
89698    -- set the flag so later we will know whether the gain loss line needs to be created
89699    
89700    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89701      p_actual_flag :='A';
89702    END IF;
89703 
89704    --
89705    -- bulk performance
89706    --
89707    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89708                                       p_header_num   => 0); -- 4262811
89709    --
89710    -- set accounting line options
89711    --
89712    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89713            p_natural_side_code          => 'D'
89714          , p_gain_or_loss_flag          => 'N'
89715          , p_gl_transfer_mode_code      => 'S'
89716          , p_acct_entry_type_code       => 'A'
89717          , p_switch_side_flag           => 'Y'
89718          , p_merge_duplicate_code       => 'A'
89719          );
89720    --
89721    l_acc_rev_natural_side_code := 'C';  -- 4262811
89722    -- 
89723    --
89724    -- set accounting line type info
89725    --
89726    xla_ae_lines_pkg.SetAcctLineType
89727       (p_component_type             => l_component_type
89728       ,p_event_type_code            => l_event_type_code
89729       ,p_line_definition_owner_code => l_line_definition_owner_code
89730       ,p_line_definition_code       => l_line_definition_code
89731       ,p_accounting_line_code       => l_component_code
89732       ,p_accounting_line_type_code  => l_component_type_code
89733       ,p_accounting_line_appl_id    => l_component_appl_id
89734       ,p_amb_context_code           => l_amb_context_code
89735       ,p_entity_code                => l_entity_code
89736       ,p_event_class_code           => l_event_class_code);
89737    --
89738    -- set accounting class
89739    --
89740    xla_ae_lines_pkg.SetAcctClass(
89741            p_accounting_class_code  => 'RTAX'
89742          , p_ae_header_id           => l_ae_header_id
89743          );
89744 
89745    --
89746    -- set rounding class
89747    --
89748    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89749                       'RTAX';
89750 
89751    --
89752    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89753    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89754    --
89755    -- bulk performance
89756    --
89757    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89758 
89759    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89760       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89761 
89762    -- 4955764
89766    -- 4458381 Public Sector Enh
89763    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89764       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89765 
89767    
89768    --
89769    -- set accounting attributes for the line type
89770    --
89771    l_entered_amt_idx := 10;
89772    l_accted_amt_idx  := 15;
89773    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
89774    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89775    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
89776    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
89777    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
89778    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
89779    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
89780    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89781    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
89782    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
89783    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
89784    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
89785    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
89786    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89787    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
89788    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
89789    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
89790    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
89791    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
89792    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
89793    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
89794    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
89795    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
89796    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
89797    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
89798    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
89799    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
89800    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
89801    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
89802    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
89803    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
89804    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
89805    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
89806    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
89807    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
89808    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
89809    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
89810    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
89811    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
89812    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
89813    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
89814    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
89815    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
89816    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
89817    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
89818    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
89819    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
89820    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
89821    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
89822 
89823    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89824    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89825 
89826    ---------------------------------------------------------------------------------------------------------------
89827    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89828    ---------------------------------------------------------------------------------------------------------------
89829    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89830 
89831    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89832    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89833 
89834    IF xla_accounting_cache_pkg.GetValueChar
89835          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89836          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89837    AND l_bflow_method_code = 'PRIOR_ENTRY'
89838 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89839    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89840          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89841        )
89842    THEN
89843          xla_ae_lines_pkg.BflowUpgEntry
89844            (p_business_method_code    => l_bflow_method_code
89845            ,p_business_class_code     => l_bflow_class_code
89846            ,p_balance_type            => l_balance_type_code);
89847    ELSE
89848       NULL;
89849 -- No business flow processing for business flow method of NONE.
89850    END IF;
89851 
89852    --
89853    -- call analytical criteria
89854    --
89855    
89856    --
89857    -- call description
89858    --
89859    -- No description or it is inherited.
89863    --
89860    --
89861    -- call ADRs
89862    -- Bug 4922099
89864    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89865         (NVL(l_actual_upg_option, 'N') = 'O') OR
89866         (NVL(l_enc_upg_option, 'N') = 'O')
89867       )
89868    THEN
89869    NULL;
89870    --
89871    --
89872    
89873   l_ccid := AcctDerRule_26(
89874            p_application_id           => p_application_id
89875          , p_ae_header_id             => l_ae_header_id 
89876 , p_source_17 => p_source_17
89877          , x_transaction_coa_id       => l_adr_transaction_coa_id
89878          , x_accounting_coa_id        => l_adr_accounting_coa_id
89879          , x_value_type_code          => l_adr_value_type_code
89880          , p_side                     => 'NA'
89881    );
89882 
89883    xla_ae_lines_pkg.set_ccid(
89884     p_code_combination_id          => l_ccid
89885   , p_value_type_code              => l_adr_value_type_code
89886   , p_transaction_coa_id           => l_adr_transaction_coa_id
89887   , p_accounting_coa_id            => l_adr_accounting_coa_id
89888   , p_adr_code                     => 'AP_INVOICE_DIST'
89889   , p_adr_type_code                => 'S'
89890   , p_component_type               => l_component_type
89891   , p_component_code               => l_component_code
89892   , p_component_type_code          => l_component_type_code
89893   , p_component_appl_id            => l_component_appl_id
89894   , p_amb_context_code             => l_amb_context_code
89895   , p_side                         => 'NA'
89896   );
89897 
89898 
89899    --
89900    --
89901    END IF;
89902    --
89903    -- Bug 4922099
89904    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89905           (NVL(l_enc_upg_option, 'N') = 'O')
89906         ) AND
89907         (l_bflow_method_code = 'PRIOR_ENTRY')
89908       )
89909    THEN
89910       IF
89911       --
89912       1 = 2
89913       --
89914       THEN
89915       xla_accounting_err_pkg.build_message
89916                                     (p_appli_s_name            => 'XLA'
89917                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89918                                     ,p_token_1                 => 'LINE_NUMBER'
89919                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89920                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89921                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89922                                                                              l_component_type
89923                                                                             ,l_component_code
89924                                                                             ,l_component_type_code
89925                                                                             ,l_component_appl_id
89926                                                                             ,l_amb_context_code
89927                                                                             ,l_entity_code
89928                                                                             ,l_event_class_code
89929                                                                            )
89930                                     ,p_token_3                 => 'OWNER'
89931                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
89932                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
89933                                                                           ,p_lookup_code    => l_component_type_code
89934                                                                          )
89935                                     ,p_token_4                 => 'PRODUCT_NAME'
89936                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89937                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89938                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89939                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89940                                     ,p_ae_header_id            =>  NULL
89941                                        );
89942 
89943         IF (C_LEVEL_ERROR>= g_log_level) THEN
89944                  trace
89945                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89946                       ,p_level    => C_LEVEL_ERROR
89947                       ,p_module   => l_log_module);
89948         END IF;
89949       END IF;
89950    END IF;
89951    --
89952    --
89953    ------------------------------------------------------------------------------------------------
89954    -- 4219869 Business Flow
89955    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89956    -- Prior Entry.  Currently, the following code is always generated.
89957    ------------------------------------------------------------------------------------------------
89958    XLA_AE_LINES_PKG.ValidateCurrentLine;
89959 
89960    ------------------------------------------------------------------------------------
89961    -- 4219869 Business Flow
89962    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89963    ------------------------------------------------------------------------------------
89967    -- 4219869 Business Flow
89964    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89965 
89966    ----------------------------------------------------------------------------------
89968    -- Update journal entry status -- Need to generate this within IF <condition>
89969    ----------------------------------------------------------------------------------
89970    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89971          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89972          ,p_balance_type_code => l_balance_type_code
89973          );
89974 
89975    -------------------------------------------------------------------------------------------
89976    -- 4262811 - Generate the Accrual Reversal lines
89977    -------------------------------------------------------------------------------------------
89978    BEGIN
89979       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89980                               (g_array_event(p_event_id).array_value_num('header_index'));
89981       IF l_acc_rev_flag IS NULL THEN
89982          l_acc_rev_flag := 'N';
89983       END IF;
89984    EXCEPTION
89985       WHEN OTHERS THEN
89986          l_acc_rev_flag := 'N';
89987    END;
89988    --
89989    IF (l_acc_rev_flag = 'Y') THEN
89990 
89991        -- 4645092  ------------------------------------------------------------------------------
89992        -- To allow MPA report to determine if it should generate report process
89993        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89994        ------------------------------------------------------------------------------------------
89995 
89996        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89997        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89998    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
89999    -- call ADRs
90000    -- Bug 4922099
90001    --
90002    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90003         (NVL(l_actual_upg_option, 'N') = 'O') OR
90004         (NVL(l_enc_upg_option, 'N') = 'O')
90005       )
90006    THEN
90007    NULL;
90008    --
90009    --
90010    
90011   l_ccid := AcctDerRule_26(
90012            p_application_id           => p_application_id
90013          , p_ae_header_id             => l_ae_header_id 
90014 , p_source_17 => p_source_17
90015          , x_transaction_coa_id       => l_adr_transaction_coa_id
90016          , x_accounting_coa_id        => l_adr_accounting_coa_id
90017          , x_value_type_code          => l_adr_value_type_code
90018          , p_side                     => 'NA'
90019    );
90020 
90021    xla_ae_lines_pkg.set_ccid(
90022     p_code_combination_id          => l_ccid
90023   , p_value_type_code              => l_adr_value_type_code
90024   , p_transaction_coa_id           => l_adr_transaction_coa_id
90025   , p_accounting_coa_id            => l_adr_accounting_coa_id
90026   , p_adr_code                     => 'AP_INVOICE_DIST'
90027   , p_adr_type_code                => 'S'
90028   , p_component_type               => l_component_type
90029   , p_component_code               => l_component_code
90030   , p_component_type_code          => l_component_type_code
90031   , p_component_appl_id            => l_component_appl_id
90032   , p_amb_context_code             => l_amb_context_code
90033   , p_side                         => 'NA'
90034   );
90035 
90036 
90037    --
90038    --
90039    END IF;
90040 
90041        --
90042        -- Update the line information that should be overwritten
90043        --
90044        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90045                                          p_header_num   => 1);
90046        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
90047 
90048        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90049 
90050        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
90051           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90052        END IF;
90053 
90054       --
90055       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90056       --
90057       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90058           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
90059       ELSE
90060           ---------------------------------------------------------------------------------------------------
90061           -- 4262811a Switch Sign
90062           ---------------------------------------------------------------------------------------------------
90063           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
90064           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90065                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90066           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90067                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90068           -- 5132302
90069           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90070                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90071 
90072       END IF;
90073 
90074       -- 4955764
90078 
90075       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90076       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90077 
90079       XLA_AE_LINES_PKG.ValidateCurrentLine;
90080       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90081 
90082       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90083                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90084                ,p_balance_type_code => l_balance_type_code);
90085 
90086    END IF;
90087 
90088    -----------------------------------------------------------------------------------------
90089    -- 4262811 Multiperiod Accounting
90090    -----------------------------------------------------------------------------------------
90091      -- No MPA option is assigned.
90092 
90093 
90094 END IF;
90095 END IF;
90096 --
90097 
90098 --
90099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90100    trace
90101       (p_msg      => 'END of AcctLineType_161'
90102       ,p_level    => C_LEVEL_PROCEDURE
90103       ,p_module   => l_log_module);
90104 END IF;
90105 --
90106 EXCEPTION
90107   WHEN xla_exceptions_pkg.application_exception THEN
90108       RAISE;
90109   WHEN OTHERS THEN
90110        xla_exceptions_pkg.raise_message
90111            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_161');
90112 END AcctLineType_161;
90113 --
90114 
90115 ---------------------------------------
90116 --
90117 -- PRIVATE FUNCTION
90118 --         AcctLineType_162
90119 --
90120 ---------------------------------------
90121 PROCEDURE AcctLineType_162 (
90122   p_application_id        IN NUMBER
90123  ,p_event_id              IN NUMBER
90124  ,p_calculate_acctd_flag  IN VARCHAR2
90125  ,p_calculate_g_l_flag    IN VARCHAR2
90126  ,p_actual_flag           IN OUT VARCHAR2
90127  ,p_balance_type_code     OUT VARCHAR2
90128  ,p_gain_or_loss_ref      OUT VARCHAR2
90129  
90130 --Payment Distribution (Payment Rate) Ledger Amount
90131  , p_source_9            IN NUMBER
90132 --Invoice Distribution Account
90133  , p_source_17            IN NUMBER
90134 --Invoice Distribution Type
90135  , p_source_20            IN VARCHAR2
90136  , p_source_20_meaning    IN VARCHAR2
90137 --When to Account for Payment Option
90138  , p_source_38            IN VARCHAR2
90139 --Payment Distribution Type
90140  , p_source_39            IN VARCHAR2
90141  , p_source_39_meaning    IN VARCHAR2
90142 --Accounting Reversal Indicator
90143  , p_source_40            IN VARCHAR2
90144 --Payment Distribution Amount
90145  , p_source_41            IN NUMBER
90146 --Business Flow Accounts Payable Application Identifier
90147  , p_source_42            IN NUMBER
90148 --Payment Distribution Identifier
90149  , p_source_47            IN NUMBER
90150 --Distribution Link Type
90151  , p_source_48            IN VARCHAR2
90152 --Payment Currency Code
90153  , p_source_49            IN VARCHAR2
90154 --Override Accounted Amount Indicator
90155  , p_source_53            IN VARCHAR2
90156  , p_source_53_meaning    IN VARCHAR2
90157 --Payment Supplier Identifier
90158  , p_source_54            IN NUMBER
90159 --Payment Supplier Site Identifier
90160  , p_source_55            IN NUMBER
90161 --Third Party Type
90162  , p_source_56            IN VARCHAR2
90163 --Payment Distribution Reversed Identifier
90164  , p_source_57            IN NUMBER
90165 --Invoice Distribution Tax Line Identifier
90166  , p_source_58            IN NUMBER
90167 --Invoice Distribution Summary Tax Line Identifier
90168  , p_source_59            IN NUMBER
90169 --Payment Type
90170  , p_source_60            IN VARCHAR2
90171  , p_source_60_meaning    IN VARCHAR2
90172 --Invoice Distribution Amount of the Payment Distribution
90173  , p_source_61            IN NUMBER
90174 --Business Flow Invoice Distribution Type
90175  , p_source_62            IN VARCHAR2
90176 --Business Flow Invoice Entity Code
90177  , p_source_63            IN VARCHAR2
90178 --Business Flow Invoice Distribution Identifier
90179  , p_source_64            IN NUMBER
90180 --Business Flow Invoice Identifier
90181  , p_source_65            IN NUMBER
90182 --Invoice Distribution Tax Distribution Identifier from Tax
90183  , p_source_66            IN NUMBER
90184 --Payment Exchange Date
90185  , p_source_114            IN DATE
90186 --Payment Exchange Rate
90187  , p_source_115            IN NUMBER
90188 --Payment Exchange Rate Type
90189  , p_source_116            IN VARCHAR2
90190 )
90191 IS
90192 
90193 l_component_type              VARCHAR2(80);
90194 l_component_code              VARCHAR2(30);
90195 l_component_type_code         VARCHAR2(1);
90196 l_component_appl_id           INTEGER;
90197 l_amb_context_code            VARCHAR2(30);
90198 l_entity_code                 VARCHAR2(30);
90199 l_event_class_code            VARCHAR2(30);
90200 l_ae_header_id                NUMBER;
90201 l_event_type_code             VARCHAR2(30);
90202 l_line_definition_code        VARCHAR2(30);
90203 l_line_definition_owner_code  VARCHAR2(1);
90204 --
90205 -- adr variables
90206 l_segment                     VARCHAR2(30);
90207 l_ccid                        NUMBER;
90208 l_adr_transaction_coa_id      NUMBER;
90209 l_adr_accounting_coa_id       NUMBER;
90210 l_adr_flexfield_segment_code  VARCHAR2(30);
90211 l_adr_flex_value_set_id       NUMBER;
90215 
90212 l_adr_value_type_code         VARCHAR2(30);
90213 l_adr_value_combination_id    NUMBER;
90214 l_adr_value_segment_code      VARCHAR2(30);
90216 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
90217 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
90218 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
90219 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
90220 
90221 -- 4262811 Variables ------------------------------------------------------------------------------------------
90222 l_entered_amt_idx             NUMBER;
90223 l_accted_amt_idx              NUMBER;
90224 l_acc_rev_flag                VARCHAR2(1);
90225 l_accrual_line_num            NUMBER;
90226 l_tmp_amt                     NUMBER;
90227 l_acc_rev_natural_side_code   VARCHAR2(1);
90228 
90229 l_num_entries                 NUMBER;
90230 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
90231 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
90232 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
90233 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
90234 l_recog_line_1                NUMBER;
90235 l_recog_line_2                NUMBER;
90236 
90237 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
90238 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
90239 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
90240 
90241 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90242 
90243 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
90244 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
90245 
90246 ---------------------------------------------------------------------------------------------------------------
90247 
90248 
90249 --
90250 -- bulk performance
90251 --
90252 l_balance_type_code           VARCHAR2(1);
90253 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
90254 l_log_module                  VARCHAR2(240);
90255 
90256 --
90257 -- Upgrade strategy
90258 --
90259 l_actual_upg_option           VARCHAR2(1);
90260 l_enc_upg_option           VARCHAR2(1);
90261 
90262 --
90263 BEGIN
90264 --
90265 IF g_log_enabled THEN
90266       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_162';
90267 END IF;
90268 --
90269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90270 
90271       trace
90272          (p_msg      => 'BEGIN of AcctLineType_162'
90273          ,p_level    => C_LEVEL_PROCEDURE
90274          ,p_module   => l_log_module);
90275 
90276 END IF;
90277 --
90278 l_component_type             := 'AMB_JLT';
90279 l_component_code             := 'AP_RECOV_TAX_PMT';
90280 l_component_type_code        := 'S';
90281 l_component_appl_id          :=  200;
90282 l_amb_context_code           := 'DEFAULT';
90283 l_entity_code                := 'AP_PAYMENTS';
90284 l_event_class_code           := 'PAYMENTS';
90285 l_event_type_code            := 'PAYMENTS_ALL';
90286 l_line_definition_owner_code := 'S';
90287 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
90288 --
90289 l_balance_type_code          := 'A';
90290 l_segment                     := NULL;
90291 l_ccid                        := NULL;
90292 l_adr_transaction_coa_id      := NULL;
90293 l_adr_accounting_coa_id       := NULL;
90294 l_adr_flexfield_segment_code  := NULL;
90295 l_adr_flex_value_set_id       := NULL;
90296 l_adr_value_type_code         := NULL;
90297 l_adr_value_combination_id    := NULL;
90298 l_adr_value_segment_code      := NULL;
90299 
90300 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
90301 l_bflow_class_code           := '';    -- 4219869 Business Flow
90302 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
90303 l_budgetary_control_flag     := 'N';
90304 
90305 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
90306 l_bflow_applied_to_amt       := NULL; -- 5132302
90307 l_entered_amt_idx            := NULL;          -- 4262811
90308 l_accted_amt_idx             := NULL;          -- 4262811
90309 l_acc_rev_flag               := NULL;          -- 4262811
90310 l_accrual_line_num           := NULL;          -- 4262811
90311 l_tmp_amt                    := NULL;          -- 4262811
90312 --
90313  
90314 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90315     l_balance_type_code <> 'B' THEN
90316 IF NVL(p_source_38,'
90317 ') <>  'CLEAR_CLEAR' AND 
90318 NVL(p_source_20,'
90319 ') =  'REC_TAX' AND 
90320 (NVL(p_source_39,'
90321 ') =  'CASH' OR 
90322 NVL(p_source_39,'
90323 ') =  'AWT' OR 
90324 NVL(p_source_39,'
90325 ') =  'DISCOUNT') AND 
90326 NVL(p_source_60,'
90327 ') <>  'R'
90328  THEN 
90329 
90330    --
90331    XLA_AE_LINES_PKG.SetNewLine;
90332 
90333    p_balance_type_code          := l_balance_type_code;
90334    -- set the flag so later we will know whether the gain loss line needs to be created
90335    
90336    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90337      p_actual_flag :='A';
90338    END IF;
90339 
90340    --
90341    -- bulk performance
90342    --
90343    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90347    --
90344                                       p_header_num   => 0); -- 4262811
90345    --
90346    -- set accounting line options
90348    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90349            p_natural_side_code          => 'D'
90350          , p_gain_or_loss_flag          => 'N'
90351          , p_gl_transfer_mode_code      => 'S'
90352          , p_acct_entry_type_code       => 'A'
90353          , p_switch_side_flag           => 'Y'
90354          , p_merge_duplicate_code       => 'A'
90355          );
90356    --
90357    l_acc_rev_natural_side_code := 'C';  -- 4262811
90358    -- 
90359    --
90360    -- set accounting line type info
90361    --
90362    xla_ae_lines_pkg.SetAcctLineType
90363       (p_component_type             => l_component_type
90364       ,p_event_type_code            => l_event_type_code
90365       ,p_line_definition_owner_code => l_line_definition_owner_code
90366       ,p_line_definition_code       => l_line_definition_code
90367       ,p_accounting_line_code       => l_component_code
90368       ,p_accounting_line_type_code  => l_component_type_code
90369       ,p_accounting_line_appl_id    => l_component_appl_id
90370       ,p_amb_context_code           => l_amb_context_code
90371       ,p_entity_code                => l_entity_code
90372       ,p_event_class_code           => l_event_class_code);
90373    --
90374    -- set accounting class
90375    --
90376    xla_ae_lines_pkg.SetAcctClass(
90377            p_accounting_class_code  => 'RTAX'
90378          , p_ae_header_id           => l_ae_header_id
90379          );
90380 
90381    --
90382    -- set rounding class
90383    --
90384    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90385                       'RTAX';
90386 
90387    --
90388    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90389    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90390    --
90391    -- bulk performance
90392    --
90393    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90394 
90395    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90396       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90397 
90398    -- 4955764
90399    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90400       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90401 
90402    -- 4458381 Public Sector Enh
90403    
90404    --
90405    -- set accounting attributes for the line type
90406    --
90407    l_entered_amt_idx := 10;
90408    l_accted_amt_idx  := 15;
90409    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
90410    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90411    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
90412    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
90413    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
90414    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
90415    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
90416    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90417    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
90418    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
90419    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
90420    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
90421    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
90422    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90423    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
90424    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
90425    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
90426    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
90427    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
90428    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
90429    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
90430    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
90431    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
90432    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
90433    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
90434    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
90435    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
90436    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
90437    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
90438    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
90439    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
90440    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
90441    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
90442    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
90443    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
90444    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
90445    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
90446    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
90447    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
90448    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
90452    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
90449    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
90450    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
90451    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
90453    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
90454    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
90455    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
90456    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
90457    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
90458 
90459    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
90460    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
90461 
90462    ---------------------------------------------------------------------------------------------------------------
90463    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
90464    ---------------------------------------------------------------------------------------------------------------
90465    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
90466 
90467    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90468    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90469 
90470    IF xla_accounting_cache_pkg.GetValueChar
90471          (p_source_code         => 'LEDGER_CATEGORY_CODE'
90472          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
90473    AND l_bflow_method_code = 'PRIOR_ENTRY'
90474 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
90475    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
90476          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
90477        )
90478    THEN
90479          xla_ae_lines_pkg.BflowUpgEntry
90480            (p_business_method_code    => l_bflow_method_code
90481            ,p_business_class_code     => l_bflow_class_code
90482            ,p_balance_type            => l_balance_type_code);
90483    ELSE
90484       NULL;
90485 -- No business flow processing for business flow method of NONE.
90486    END IF;
90487 
90488    --
90489    -- call analytical criteria
90490    --
90491    
90492    --
90493    -- call description
90494    --
90495    -- No description or it is inherited.
90496    --
90497    -- call ADRs
90498    -- Bug 4922099
90499    --
90500    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90501         (NVL(l_actual_upg_option, 'N') = 'O') OR
90502         (NVL(l_enc_upg_option, 'N') = 'O')
90503       )
90504    THEN
90505    NULL;
90506    --
90507    --
90508    
90509   l_ccid := AcctDerRule_26(
90510            p_application_id           => p_application_id
90511          , p_ae_header_id             => l_ae_header_id 
90512 , p_source_17 => p_source_17
90513          , x_transaction_coa_id       => l_adr_transaction_coa_id
90514          , x_accounting_coa_id        => l_adr_accounting_coa_id
90515          , x_value_type_code          => l_adr_value_type_code
90516          , p_side                     => 'NA'
90517    );
90518 
90519    xla_ae_lines_pkg.set_ccid(
90520     p_code_combination_id          => l_ccid
90521   , p_value_type_code              => l_adr_value_type_code
90522   , p_transaction_coa_id           => l_adr_transaction_coa_id
90523   , p_accounting_coa_id            => l_adr_accounting_coa_id
90524   , p_adr_code                     => 'AP_INVOICE_DIST'
90525   , p_adr_type_code                => 'S'
90526   , p_component_type               => l_component_type
90527   , p_component_code               => l_component_code
90528   , p_component_type_code          => l_component_type_code
90529   , p_component_appl_id            => l_component_appl_id
90530   , p_amb_context_code             => l_amb_context_code
90531   , p_side                         => 'NA'
90532   );
90533 
90534 
90535    --
90536    --
90537    END IF;
90538    --
90539    -- Bug 4922099
90540    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90541           (NVL(l_enc_upg_option, 'N') = 'O')
90542         ) AND
90543         (l_bflow_method_code = 'PRIOR_ENTRY')
90544       )
90545    THEN
90546       IF
90547       --
90548       1 = 2
90549       --
90550       THEN
90551       xla_accounting_err_pkg.build_message
90552                                     (p_appli_s_name            => 'XLA'
90553                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90554                                     ,p_token_1                 => 'LINE_NUMBER'
90555                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
90556                                     ,p_token_2                 => 'LINE_TYPE_NAME'
90557                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
90558                                                                              l_component_type
90559                                                                             ,l_component_code
90560                                                                             ,l_component_type_code
90561                                                                             ,l_component_appl_id
90562                                                                             ,l_amb_context_code
90566                                     ,p_token_3                 => 'OWNER'
90563                                                                             ,l_entity_code
90564                                                                             ,l_event_class_code
90565                                                                            )
90567                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
90568                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
90569                                                                           ,p_lookup_code    => l_component_type_code
90570                                                                          )
90571                                     ,p_token_4                 => 'PRODUCT_NAME'
90572                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90573                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90574                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90575                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90576                                     ,p_ae_header_id            =>  NULL
90577                                        );
90578 
90579         IF (C_LEVEL_ERROR>= g_log_level) THEN
90580                  trace
90581                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90582                       ,p_level    => C_LEVEL_ERROR
90583                       ,p_module   => l_log_module);
90584         END IF;
90585       END IF;
90586    END IF;
90587    --
90588    --
90589    ------------------------------------------------------------------------------------------------
90590    -- 4219869 Business Flow
90591    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90592    -- Prior Entry.  Currently, the following code is always generated.
90593    ------------------------------------------------------------------------------------------------
90594    XLA_AE_LINES_PKG.ValidateCurrentLine;
90595 
90596    ------------------------------------------------------------------------------------
90597    -- 4219869 Business Flow
90598    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90599    ------------------------------------------------------------------------------------
90600    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90601 
90602    ----------------------------------------------------------------------------------
90603    -- 4219869 Business Flow
90604    -- Update journal entry status -- Need to generate this within IF <condition>
90605    ----------------------------------------------------------------------------------
90606    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90607          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90608          ,p_balance_type_code => l_balance_type_code
90609          );
90610 
90611    -------------------------------------------------------------------------------------------
90612    -- 4262811 - Generate the Accrual Reversal lines
90613    -------------------------------------------------------------------------------------------
90614    BEGIN
90615       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90616                               (g_array_event(p_event_id).array_value_num('header_index'));
90617       IF l_acc_rev_flag IS NULL THEN
90618          l_acc_rev_flag := 'N';
90619       END IF;
90620    EXCEPTION
90621       WHEN OTHERS THEN
90622          l_acc_rev_flag := 'N';
90623    END;
90624    --
90625    IF (l_acc_rev_flag = 'Y') THEN
90626 
90627        -- 4645092  ------------------------------------------------------------------------------
90628        -- To allow MPA report to determine if it should generate report process
90629        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90630        ------------------------------------------------------------------------------------------
90631 
90632        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90633        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90634    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
90635    -- call ADRs
90636    -- Bug 4922099
90637    --
90638    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90639         (NVL(l_actual_upg_option, 'N') = 'O') OR
90640         (NVL(l_enc_upg_option, 'N') = 'O')
90641       )
90642    THEN
90643    NULL;
90644    --
90645    --
90646    
90647   l_ccid := AcctDerRule_26(
90648            p_application_id           => p_application_id
90649          , p_ae_header_id             => l_ae_header_id 
90650 , p_source_17 => p_source_17
90651          , x_transaction_coa_id       => l_adr_transaction_coa_id
90652          , x_accounting_coa_id        => l_adr_accounting_coa_id
90653          , x_value_type_code          => l_adr_value_type_code
90654          , p_side                     => 'NA'
90655    );
90656 
90657    xla_ae_lines_pkg.set_ccid(
90658     p_code_combination_id          => l_ccid
90659   , p_value_type_code              => l_adr_value_type_code
90660   , p_transaction_coa_id           => l_adr_transaction_coa_id
90661   , p_accounting_coa_id            => l_adr_accounting_coa_id
90662   , p_adr_code                     => 'AP_INVOICE_DIST'
90663   , p_adr_type_code                => 'S'
90664   , p_component_type               => l_component_type
90668   , p_amb_context_code             => l_amb_context_code
90665   , p_component_code               => l_component_code
90666   , p_component_type_code          => l_component_type_code
90667   , p_component_appl_id            => l_component_appl_id
90669   , p_side                         => 'NA'
90670   );
90671 
90672 
90673    --
90674    --
90675    END IF;
90676 
90677        --
90678        -- Update the line information that should be overwritten
90679        --
90680        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90681                                          p_header_num   => 1);
90682        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
90683 
90684        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90685 
90686        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
90687           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90688        END IF;
90689 
90690       --
90691       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90692       --
90693       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90694           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
90695       ELSE
90696           ---------------------------------------------------------------------------------------------------
90697           -- 4262811a Switch Sign
90698           ---------------------------------------------------------------------------------------------------
90699           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
90700           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90701                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90702           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90703                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90704           -- 5132302
90705           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90706                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90707 
90708       END IF;
90709 
90710       -- 4955764
90711       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90712       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90713 
90714 
90715       XLA_AE_LINES_PKG.ValidateCurrentLine;
90716       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90717 
90718       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90719                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90720                ,p_balance_type_code => l_balance_type_code);
90721 
90722    END IF;
90723 
90724    -----------------------------------------------------------------------------------------
90725    -- 4262811 Multiperiod Accounting
90726    -----------------------------------------------------------------------------------------
90727      -- No MPA option is assigned.
90728 
90729 
90730 END IF;
90731 END IF;
90732 --
90733 
90734 --
90735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90736    trace
90737       (p_msg      => 'END of AcctLineType_162'
90738       ,p_level    => C_LEVEL_PROCEDURE
90739       ,p_module   => l_log_module);
90740 END IF;
90741 --
90742 EXCEPTION
90743   WHEN xla_exceptions_pkg.application_exception THEN
90744       RAISE;
90745   WHEN OTHERS THEN
90746        xla_exceptions_pkg.raise_message
90747            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_162');
90748 END AcctLineType_162;
90749 --
90750 
90751 ---------------------------------------
90752 --
90753 -- PRIVATE FUNCTION
90754 --         AcctLineType_163
90755 --
90756 ---------------------------------------
90757 PROCEDURE AcctLineType_163 (
90758   p_application_id        IN NUMBER
90759  ,p_event_id              IN NUMBER
90760  ,p_calculate_acctd_flag  IN VARCHAR2
90761  ,p_calculate_g_l_flag    IN VARCHAR2
90762  ,p_actual_flag           IN OUT VARCHAR2
90763  ,p_balance_type_code     OUT VARCHAR2
90764  ,p_gain_or_loss_ref      OUT VARCHAR2
90765  
90766 --Payment Distribution (Payment Rate) Ledger Amount
90767  , p_source_9            IN NUMBER
90768 --Invoice Distribution Account
90769  , p_source_17            IN NUMBER
90770 --Invoice Distribution Type
90771  , p_source_20            IN VARCHAR2
90772  , p_source_20_meaning    IN VARCHAR2
90773 --When to Account for Payment Option
90774  , p_source_38            IN VARCHAR2
90775 --Payment Distribution Type
90776  , p_source_39            IN VARCHAR2
90777  , p_source_39_meaning    IN VARCHAR2
90778 --Accounting Reversal Indicator
90779  , p_source_40            IN VARCHAR2
90780 --Payment Distribution Amount
90781  , p_source_41            IN NUMBER
90782 --Business Flow Accounts Payable Application Identifier
90783  , p_source_42            IN NUMBER
90784 --Payment Distribution Identifier
90785  , p_source_47            IN NUMBER
90786 --Distribution Link Type
90787  , p_source_48            IN VARCHAR2
90788 --Payment Currency Code
90792  , p_source_53_meaning    IN VARCHAR2
90789  , p_source_49            IN VARCHAR2
90790 --Override Accounted Amount Indicator
90791  , p_source_53            IN VARCHAR2
90793 --Payment Supplier Identifier
90794  , p_source_54            IN NUMBER
90795 --Payment Supplier Site Identifier
90796  , p_source_55            IN NUMBER
90797 --Third Party Type
90798  , p_source_56            IN VARCHAR2
90799 --Payment Distribution Reversed Identifier
90800  , p_source_57            IN NUMBER
90801 --Invoice Distribution Tax Line Identifier
90802  , p_source_58            IN NUMBER
90803 --Invoice Distribution Summary Tax Line Identifier
90804  , p_source_59            IN NUMBER
90805 --Payment Type
90806  , p_source_60            IN VARCHAR2
90807  , p_source_60_meaning    IN VARCHAR2
90808 --Business Flow Invoice Distribution Type
90809  , p_source_62            IN VARCHAR2
90810 --Business Flow Invoice Entity Code
90811  , p_source_63            IN VARCHAR2
90812 --Business Flow Invoice Distribution Identifier
90813  , p_source_64            IN NUMBER
90814 --Business Flow Invoice Identifier
90815  , p_source_65            IN NUMBER
90816 --Invoice Distribution Tax Distribution Identifier from Tax
90817  , p_source_66            IN NUMBER
90818 --Payment Exchange Date
90819  , p_source_114            IN DATE
90820 --Payment Exchange Rate
90821  , p_source_115            IN NUMBER
90822 --Payment Exchange Rate Type
90823  , p_source_116            IN VARCHAR2
90824 )
90825 IS
90826 
90827 l_component_type              VARCHAR2(80);
90828 l_component_code              VARCHAR2(30);
90829 l_component_type_code         VARCHAR2(1);
90830 l_component_appl_id           INTEGER;
90831 l_amb_context_code            VARCHAR2(30);
90832 l_entity_code                 VARCHAR2(30);
90833 l_event_class_code            VARCHAR2(30);
90834 l_ae_header_id                NUMBER;
90835 l_event_type_code             VARCHAR2(30);
90836 l_line_definition_code        VARCHAR2(30);
90837 l_line_definition_owner_code  VARCHAR2(1);
90838 --
90839 -- adr variables
90840 l_segment                     VARCHAR2(30);
90841 l_ccid                        NUMBER;
90842 l_adr_transaction_coa_id      NUMBER;
90843 l_adr_accounting_coa_id       NUMBER;
90844 l_adr_flexfield_segment_code  VARCHAR2(30);
90845 l_adr_flex_value_set_id       NUMBER;
90846 l_adr_value_type_code         VARCHAR2(30);
90847 l_adr_value_combination_id    NUMBER;
90848 l_adr_value_segment_code      VARCHAR2(30);
90849 
90850 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
90851 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
90852 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
90853 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
90854 
90855 -- 4262811 Variables ------------------------------------------------------------------------------------------
90856 l_entered_amt_idx             NUMBER;
90857 l_accted_amt_idx              NUMBER;
90858 l_acc_rev_flag                VARCHAR2(1);
90859 l_accrual_line_num            NUMBER;
90860 l_tmp_amt                     NUMBER;
90861 l_acc_rev_natural_side_code   VARCHAR2(1);
90862 
90863 l_num_entries                 NUMBER;
90864 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
90865 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
90866 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
90867 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
90868 l_recog_line_1                NUMBER;
90869 l_recog_line_2                NUMBER;
90870 
90871 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
90872 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
90873 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
90874 
90875 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90876 
90877 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
90878 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
90879 
90880 ---------------------------------------------------------------------------------------------------------------
90881 
90882 
90883 --
90884 -- bulk performance
90885 --
90886 l_balance_type_code           VARCHAR2(1);
90887 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
90888 l_log_module                  VARCHAR2(240);
90889 
90890 --
90891 -- Upgrade strategy
90892 --
90893 l_actual_upg_option           VARCHAR2(1);
90894 l_enc_upg_option           VARCHAR2(1);
90895 
90896 --
90897 BEGIN
90898 --
90899 IF g_log_enabled THEN
90900       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_163';
90901 END IF;
90902 --
90903 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90904 
90905       trace
90906          (p_msg      => 'BEGIN of AcctLineType_163'
90907          ,p_level    => C_LEVEL_PROCEDURE
90908          ,p_module   => l_log_module);
90909 
90910 END IF;
90911 --
90912 l_component_type             := 'AMB_JLT';
90913 l_component_code             := 'AP_RECOV_TAX_REF';
90914 l_component_type_code        := 'S';
90915 l_component_appl_id          :=  200;
90916 l_amb_context_code           := 'DEFAULT';
90917 l_entity_code                := 'AP_PAYMENTS';
90921 l_line_definition_code       := 'CASH_REFUNDS_ALL';
90918 l_event_class_code           := 'REFUNDS';
90919 l_event_type_code            := 'REFUNDS_ALL';
90920 l_line_definition_owner_code := 'S';
90922 --
90923 l_balance_type_code          := 'A';
90924 l_segment                     := NULL;
90925 l_ccid                        := NULL;
90926 l_adr_transaction_coa_id      := NULL;
90927 l_adr_accounting_coa_id       := NULL;
90928 l_adr_flexfield_segment_code  := NULL;
90929 l_adr_flex_value_set_id       := NULL;
90930 l_adr_value_type_code         := NULL;
90931 l_adr_value_combination_id    := NULL;
90932 l_adr_value_segment_code      := NULL;
90933 
90934 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
90935 l_bflow_class_code           := '';    -- 4219869 Business Flow
90936 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
90937 l_budgetary_control_flag     := 'N';
90938 
90939 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
90940 l_bflow_applied_to_amt       := NULL; -- 5132302
90941 l_entered_amt_idx            := NULL;          -- 4262811
90942 l_accted_amt_idx             := NULL;          -- 4262811
90943 l_acc_rev_flag               := NULL;          -- 4262811
90944 l_accrual_line_num           := NULL;          -- 4262811
90945 l_tmp_amt                    := NULL;          -- 4262811
90946 --
90947  
90948 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90949     l_balance_type_code <> 'B' THEN
90950 IF NVL(p_source_38,'
90951 ') <>  'CLEAR_CLEAR' AND 
90952 NVL(p_source_20,'
90953 ') =  'REC_TAX' AND 
90954 (NVL(p_source_39,'
90955 ') =  'CASH' OR 
90956 NVL(p_source_39,'
90957 ') =  'DISCOUNT') AND 
90958 NVL(p_source_60,'
90959 ') =  'R'
90960  THEN 
90961 
90962    --
90963    XLA_AE_LINES_PKG.SetNewLine;
90964 
90965    p_balance_type_code          := l_balance_type_code;
90966    -- set the flag so later we will know whether the gain loss line needs to be created
90967    
90968    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90969      p_actual_flag :='A';
90970    END IF;
90971 
90972    --
90973    -- bulk performance
90974    --
90975    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90976                                       p_header_num   => 0); -- 4262811
90977    --
90978    -- set accounting line options
90979    --
90980    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90981            p_natural_side_code          => 'D'
90982          , p_gain_or_loss_flag          => 'N'
90983          , p_gl_transfer_mode_code      => 'S'
90984          , p_acct_entry_type_code       => 'A'
90985          , p_switch_side_flag           => 'Y'
90986          , p_merge_duplicate_code       => 'A'
90987          );
90988    --
90989    l_acc_rev_natural_side_code := 'C';  -- 4262811
90990    -- 
90991    --
90992    -- set accounting line type info
90993    --
90994    xla_ae_lines_pkg.SetAcctLineType
90995       (p_component_type             => l_component_type
90996       ,p_event_type_code            => l_event_type_code
90997       ,p_line_definition_owner_code => l_line_definition_owner_code
90998       ,p_line_definition_code       => l_line_definition_code
90999       ,p_accounting_line_code       => l_component_code
91000       ,p_accounting_line_type_code  => l_component_type_code
91001       ,p_accounting_line_appl_id    => l_component_appl_id
91002       ,p_amb_context_code           => l_amb_context_code
91003       ,p_entity_code                => l_entity_code
91004       ,p_event_class_code           => l_event_class_code);
91005    --
91006    -- set accounting class
91007    --
91008    xla_ae_lines_pkg.SetAcctClass(
91009            p_accounting_class_code  => 'RTAX'
91010          , p_ae_header_id           => l_ae_header_id
91011          );
91012 
91013    --
91014    -- set rounding class
91015    --
91016    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
91017                       'RTAX';
91018 
91019    --
91020    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
91021    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
91022    --
91023    -- bulk performance
91024    --
91025    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
91026 
91027    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
91028       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
91029 
91030    -- 4955764
91031    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91032       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
91033 
91034    -- 4458381 Public Sector Enh
91035    
91036    --
91037    -- set accounting attributes for the line type
91038    --
91039    l_entered_amt_idx := 9;
91040    l_accted_amt_idx  := 14;
91041    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
91042    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
91043    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
91044    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
91048    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
91045    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
91046    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91047    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
91049    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
91050    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
91051    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
91052    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91053    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
91054    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
91055    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
91056    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
91057    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
91058    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
91059    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
91060    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
91061    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
91062    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
91063    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
91064    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
91065    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
91066    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
91067    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
91068    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
91069    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
91070    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
91071    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
91072    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
91073    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
91074    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
91075    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
91076    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
91077    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
91078    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
91079    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
91080    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
91081    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
91082    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
91083    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
91084    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
91085    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
91086    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
91087    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
91088 
91089    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91090    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91091 
91092    ---------------------------------------------------------------------------------------------------------------
91093    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91094    ---------------------------------------------------------------------------------------------------------------
91095    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91096 
91097    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91098    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91099 
91100    IF xla_accounting_cache_pkg.GetValueChar
91101          (p_source_code         => 'LEDGER_CATEGORY_CODE'
91102          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91103    AND l_bflow_method_code = 'PRIOR_ENTRY'
91104 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91105    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91106          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91107        )
91108    THEN
91109          xla_ae_lines_pkg.BflowUpgEntry
91110            (p_business_method_code    => l_bflow_method_code
91111            ,p_business_class_code     => l_bflow_class_code
91112            ,p_balance_type            => l_balance_type_code);
91113    ELSE
91114       NULL;
91115 -- No business flow processing for business flow method of NONE.
91116    END IF;
91117 
91118    --
91119    -- call analytical criteria
91120    --
91121    
91122    --
91123    -- call description
91124    --
91125    -- No description or it is inherited.
91126    --
91127    -- call ADRs
91128    -- Bug 4922099
91129    --
91130    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91131         (NVL(l_actual_upg_option, 'N') = 'O') OR
91132         (NVL(l_enc_upg_option, 'N') = 'O')
91133       )
91134    THEN
91135    NULL;
91136    --
91137    --
91138    
91139   l_ccid := AcctDerRule_26(
91140            p_application_id           => p_application_id
91141          , p_ae_header_id             => l_ae_header_id 
91142 , p_source_17 => p_source_17
91143          , x_transaction_coa_id       => l_adr_transaction_coa_id
91144          , x_accounting_coa_id        => l_adr_accounting_coa_id
91145          , x_value_type_code          => l_adr_value_type_code
91146          , p_side                     => 'NA'
91147    );
91148 
91149    xla_ae_lines_pkg.set_ccid(
91153   , p_accounting_coa_id            => l_adr_accounting_coa_id
91150     p_code_combination_id          => l_ccid
91151   , p_value_type_code              => l_adr_value_type_code
91152   , p_transaction_coa_id           => l_adr_transaction_coa_id
91154   , p_adr_code                     => 'AP_INVOICE_DIST'
91155   , p_adr_type_code                => 'S'
91156   , p_component_type               => l_component_type
91157   , p_component_code               => l_component_code
91158   , p_component_type_code          => l_component_type_code
91159   , p_component_appl_id            => l_component_appl_id
91160   , p_amb_context_code             => l_amb_context_code
91161   , p_side                         => 'NA'
91162   );
91163 
91164 
91165    --
91166    --
91167    END IF;
91168    --
91169    -- Bug 4922099
91170    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91171           (NVL(l_enc_upg_option, 'N') = 'O')
91172         ) AND
91173         (l_bflow_method_code = 'PRIOR_ENTRY')
91174       )
91175    THEN
91176       IF
91177       --
91178       1 = 2
91179       --
91180       THEN
91181       xla_accounting_err_pkg.build_message
91182                                     (p_appli_s_name            => 'XLA'
91183                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91184                                     ,p_token_1                 => 'LINE_NUMBER'
91185                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
91186                                     ,p_token_2                 => 'LINE_TYPE_NAME'
91187                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
91188                                                                              l_component_type
91189                                                                             ,l_component_code
91190                                                                             ,l_component_type_code
91191                                                                             ,l_component_appl_id
91192                                                                             ,l_amb_context_code
91193                                                                             ,l_entity_code
91194                                                                             ,l_event_class_code
91195                                                                            )
91196                                     ,p_token_3                 => 'OWNER'
91197                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
91198                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
91199                                                                           ,p_lookup_code    => l_component_type_code
91200                                                                          )
91201                                     ,p_token_4                 => 'PRODUCT_NAME'
91202                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91203                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91204                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91205                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91206                                     ,p_ae_header_id            =>  NULL
91207                                        );
91208 
91209         IF (C_LEVEL_ERROR>= g_log_level) THEN
91210                  trace
91211                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91212                       ,p_level    => C_LEVEL_ERROR
91213                       ,p_module   => l_log_module);
91214         END IF;
91215       END IF;
91216    END IF;
91217    --
91218    --
91219    ------------------------------------------------------------------------------------------------
91220    -- 4219869 Business Flow
91221    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91222    -- Prior Entry.  Currently, the following code is always generated.
91223    ------------------------------------------------------------------------------------------------
91224    XLA_AE_LINES_PKG.ValidateCurrentLine;
91225 
91226    ------------------------------------------------------------------------------------
91227    -- 4219869 Business Flow
91228    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91229    ------------------------------------------------------------------------------------
91230    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91231 
91232    ----------------------------------------------------------------------------------
91233    -- 4219869 Business Flow
91234    -- Update journal entry status -- Need to generate this within IF <condition>
91235    ----------------------------------------------------------------------------------
91236    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91237          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91238          ,p_balance_type_code => l_balance_type_code
91239          );
91240 
91241    -------------------------------------------------------------------------------------------
91242    -- 4262811 - Generate the Accrual Reversal lines
91243    -------------------------------------------------------------------------------------------
91244    BEGIN
91248          l_acc_rev_flag := 'N';
91245       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91246                               (g_array_event(p_event_id).array_value_num('header_index'));
91247       IF l_acc_rev_flag IS NULL THEN
91249       END IF;
91250    EXCEPTION
91251       WHEN OTHERS THEN
91252          l_acc_rev_flag := 'N';
91253    END;
91254    --
91255    IF (l_acc_rev_flag = 'Y') THEN
91256 
91257        -- 4645092  ------------------------------------------------------------------------------
91258        -- To allow MPA report to determine if it should generate report process
91259        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91260        ------------------------------------------------------------------------------------------
91261 
91262        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91263        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91264    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
91265    -- call ADRs
91266    -- Bug 4922099
91267    --
91268    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91269         (NVL(l_actual_upg_option, 'N') = 'O') OR
91270         (NVL(l_enc_upg_option, 'N') = 'O')
91271       )
91272    THEN
91273    NULL;
91274    --
91275    --
91276    
91277   l_ccid := AcctDerRule_26(
91278            p_application_id           => p_application_id
91279          , p_ae_header_id             => l_ae_header_id 
91280 , p_source_17 => p_source_17
91281          , x_transaction_coa_id       => l_adr_transaction_coa_id
91282          , x_accounting_coa_id        => l_adr_accounting_coa_id
91283          , x_value_type_code          => l_adr_value_type_code
91284          , p_side                     => 'NA'
91285    );
91286 
91287    xla_ae_lines_pkg.set_ccid(
91288     p_code_combination_id          => l_ccid
91289   , p_value_type_code              => l_adr_value_type_code
91290   , p_transaction_coa_id           => l_adr_transaction_coa_id
91291   , p_accounting_coa_id            => l_adr_accounting_coa_id
91292   , p_adr_code                     => 'AP_INVOICE_DIST'
91293   , p_adr_type_code                => 'S'
91294   , p_component_type               => l_component_type
91295   , p_component_code               => l_component_code
91296   , p_component_type_code          => l_component_type_code
91297   , p_component_appl_id            => l_component_appl_id
91298   , p_amb_context_code             => l_amb_context_code
91299   , p_side                         => 'NA'
91300   );
91301 
91302 
91303    --
91304    --
91305    END IF;
91306 
91307        --
91308        -- Update the line information that should be overwritten
91309        --
91310        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91311                                          p_header_num   => 1);
91312        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
91313 
91314        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91315 
91316        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
91317           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91318        END IF;
91319 
91320       --
91321       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91322       --
91323       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91324           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
91325       ELSE
91326           ---------------------------------------------------------------------------------------------------
91327           -- 4262811a Switch Sign
91328           ---------------------------------------------------------------------------------------------------
91329           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
91330           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91331                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91332           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91333                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91334           -- 5132302
91335           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91336                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91337 
91338       END IF;
91339 
91340       -- 4955764
91341       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91342       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91343 
91344 
91345       XLA_AE_LINES_PKG.ValidateCurrentLine;
91346       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91347 
91348       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91349                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91350                ,p_balance_type_code => l_balance_type_code);
91351 
91352    END IF;
91353 
91354    -----------------------------------------------------------------------------------------
91355    -- 4262811 Multiperiod Accounting
91356    -----------------------------------------------------------------------------------------
91360 END IF;
91357      -- No MPA option is assigned.
91358 
91359 
91361 END IF;
91362 --
91363 
91364 --
91365 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91366    trace
91367       (p_msg      => 'END of AcctLineType_163'
91368       ,p_level    => C_LEVEL_PROCEDURE
91369       ,p_module   => l_log_module);
91370 END IF;
91371 --
91372 EXCEPTION
91373   WHEN xla_exceptions_pkg.application_exception THEN
91374       RAISE;
91375   WHEN OTHERS THEN
91376        xla_exceptions_pkg.raise_message
91377            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_163');
91378 END AcctLineType_163;
91379 --
91380 
91381 ---------------------------------------
91382 --
91383 -- PRIVATE FUNCTION
91384 --         AcctLineType_164
91385 --
91386 ---------------------------------------
91387 PROCEDURE AcctLineType_164 (
91388   p_application_id        IN NUMBER
91389  ,p_event_id              IN NUMBER
91390  ,p_calculate_acctd_flag  IN VARCHAR2
91391  ,p_calculate_g_l_flag    IN VARCHAR2
91392  ,p_actual_flag           IN OUT VARCHAR2
91393  ,p_balance_type_code     OUT VARCHAR2
91394  ,p_gain_or_loss_ref      OUT VARCHAR2
91395  
91396 --Automatic Offsets Value
91397  , p_source_4            IN VARCHAR2
91398  , p_source_4_meaning    IN VARCHAR2
91399 --Payment Distribution (Cleared Rate) Ledger Amount
91400  , p_source_10            IN NUMBER
91401 --Invoice Distribution Account
91402  , p_source_17            IN NUMBER
91403 --Invoice Distribution Type
91404  , p_source_20            IN VARCHAR2
91405  , p_source_20_meaning    IN VARCHAR2
91406 --Retainage Account
91407  , p_source_22            IN NUMBER
91408 --Retainage Related Item Distribution Account
91409  , p_source_23            IN NUMBER
91410 --When to Account for Payment Option
91411  , p_source_38            IN VARCHAR2
91412 --Accounting Reversal Indicator
91413  , p_source_40            IN VARCHAR2
91414 --Payment Distribution Amount
91415  , p_source_41            IN NUMBER
91416 --Business Flow Accounts Payable Application Identifier
91417  , p_source_42            IN NUMBER
91418 --Business Flow Payment Distribution Type
91419  , p_source_43            IN VARCHAR2
91420 --Business Flow Payment Entity Code
91421  , p_source_44            IN VARCHAR2
91422 --Business Flow Payment Distribution Identifier
91423  , p_source_45            IN NUMBER
91424 --Business Flow Payment Identifier
91425  , p_source_46            IN NUMBER
91426 --Payment Distribution Identifier
91427  , p_source_47            IN NUMBER
91428 --Distribution Link Type
91429  , p_source_48            IN VARCHAR2
91430 --Payment Currency Code
91431  , p_source_49            IN VARCHAR2
91432 --Override Accounted Amount Indicator
91433  , p_source_53            IN VARCHAR2
91434  , p_source_53_meaning    IN VARCHAR2
91435 --Payment Supplier Identifier
91436  , p_source_54            IN NUMBER
91437 --Payment Supplier Site Identifier
91438  , p_source_55            IN NUMBER
91439 --Third Party Type
91440  , p_source_56            IN VARCHAR2
91441 --Payment Distribution Reversed Identifier
91442  , p_source_57            IN NUMBER
91443 --Invoice Distribution Tax Line Identifier
91444  , p_source_58            IN NUMBER
91445 --Invoice Distribution Summary Tax Line Identifier
91446  , p_source_59            IN NUMBER
91447 --Invoice Type Paid
91448  , p_source_101            IN VARCHAR2
91449  , p_source_101_meaning    IN VARCHAR2
91450 --Cleared Exchange Date
91451  , p_source_107            IN DATE
91452 --Cleared Exchange Rate
91453  , p_source_108            IN NUMBER
91454 --Cleared Exchange Rate Type
91455  , p_source_109            IN VARCHAR2
91456 )
91457 IS
91458 
91459 l_component_type              VARCHAR2(80);
91460 l_component_code              VARCHAR2(30);
91461 l_component_type_code         VARCHAR2(1);
91462 l_component_appl_id           INTEGER;
91463 l_amb_context_code            VARCHAR2(30);
91464 l_entity_code                 VARCHAR2(30);
91465 l_event_class_code            VARCHAR2(30);
91466 l_ae_header_id                NUMBER;
91467 l_event_type_code             VARCHAR2(30);
91468 l_line_definition_code        VARCHAR2(30);
91469 l_line_definition_owner_code  VARCHAR2(1);
91470 --
91471 -- adr variables
91472 l_segment                     VARCHAR2(30);
91473 l_ccid                        NUMBER;
91474 l_adr_transaction_coa_id      NUMBER;
91475 l_adr_accounting_coa_id       NUMBER;
91476 l_adr_flexfield_segment_code  VARCHAR2(30);
91477 l_adr_flex_value_set_id       NUMBER;
91478 l_adr_value_type_code         VARCHAR2(30);
91479 l_adr_value_combination_id    NUMBER;
91480 l_adr_value_segment_code      VARCHAR2(30);
91481 
91482 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
91483 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
91484 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
91485 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
91486 
91487 -- 4262811 Variables ------------------------------------------------------------------------------------------
91488 l_entered_amt_idx             NUMBER;
91489 l_accted_amt_idx              NUMBER;
91490 l_acc_rev_flag                VARCHAR2(1);
91491 l_accrual_line_num            NUMBER;
91492 l_tmp_amt                     NUMBER;
91493 l_acc_rev_natural_side_code   VARCHAR2(1);
91494 
91498 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
91495 l_num_entries                 NUMBER;
91496 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
91497 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
91499 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
91500 l_recog_line_1                NUMBER;
91501 l_recog_line_2                NUMBER;
91502 
91503 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
91504 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
91505 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
91506 
91507 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
91508 
91509 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
91510 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
91511 
91512 ---------------------------------------------------------------------------------------------------------------
91513 
91514 
91515 --
91516 -- bulk performance
91517 --
91518 l_balance_type_code           VARCHAR2(1);
91519 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
91520 l_log_module                  VARCHAR2(240);
91521 
91522 --
91523 -- Upgrade strategy
91524 --
91525 l_actual_upg_option           VARCHAR2(1);
91526 l_enc_upg_option           VARCHAR2(1);
91527 
91528 --
91529 BEGIN
91530 --
91531 IF g_log_enabled THEN
91532       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_164';
91533 END IF;
91534 --
91535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91536 
91537       trace
91538          (p_msg      => 'BEGIN of AcctLineType_164'
91539          ,p_level    => C_LEVEL_PROCEDURE
91540          ,p_module   => l_log_module);
91541 
91542 END IF;
91543 --
91544 l_component_type             := 'AMB_JLT';
91545 l_component_code             := 'AP_RETAINAGE_CLR_CASH';
91546 l_component_type_code        := 'S';
91547 l_component_appl_id          :=  200;
91548 l_amb_context_code           := 'DEFAULT';
91549 l_entity_code                := 'AP_PAYMENTS';
91550 l_event_class_code           := 'RECONCILED PAYMENTS';
91551 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
91552 l_line_definition_owner_code := 'S';
91553 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
91554 --
91555 l_balance_type_code          := 'A';
91556 l_segment                     := NULL;
91557 l_ccid                        := NULL;
91558 l_adr_transaction_coa_id      := NULL;
91559 l_adr_accounting_coa_id       := NULL;
91560 l_adr_flexfield_segment_code  := NULL;
91561 l_adr_flex_value_set_id       := NULL;
91562 l_adr_value_type_code         := NULL;
91563 l_adr_value_combination_id    := NULL;
91564 l_adr_value_segment_code      := NULL;
91565 
91566 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
91567 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
91568 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
91569 l_budgetary_control_flag     := 'N';
91570 
91571 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
91572 l_bflow_applied_to_amt       := NULL; -- 5132302
91573 l_entered_amt_idx            := NULL;          -- 4262811
91574 l_accted_amt_idx             := NULL;          -- 4262811
91575 l_acc_rev_flag               := NULL;          -- 4262811
91576 l_accrual_line_num           := NULL;          -- 4262811
91577 l_tmp_amt                    := NULL;          -- 4262811
91578 --
91579  
91580 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
91581     l_balance_type_code <> 'B' THEN
91582 IF NVL(p_source_38,'
91583 ') =  'CLEAR_CLEAR' AND 
91584 NVL(p_source_101,'
91585 ') <>  'STANDARD' AND 
91586 NVL(p_source_20,'
91587 ') =  'RETAINAGE'
91588  THEN 
91589 
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          => 'D'
91610          , p_gain_or_loss_flag          => 'N'
91611          , p_gl_transfer_mode_code      => 'S'
91612          , p_acct_entry_type_code       => 'A'
91613          , p_switch_side_flag           => 'Y'
91614          , p_merge_duplicate_code       => 'A'
91615          );
91616    --
91617    l_acc_rev_natural_side_code := 'C';  -- 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
91629       ,p_accounting_line_appl_id    => l_component_appl_id
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
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  => 'RETAINAGE'
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                       'RETAINAGE';
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 := 10;
91668    l_accted_amt_idx  := 15;
91669    l_bflow_applied_to_amt_idx  := 2;  -- 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_40;
91672    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
91673    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
91674    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
91675    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
91676    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91677    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
91678    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
91679    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
91680    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
91681    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
91682    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91683    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
91684    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
91685    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
91686    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
91687    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
91688    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
91689    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
91690    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
91691    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
91692    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
91693    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
91694    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
91695    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
91696    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
91697    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
91698    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
91699    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
91700    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
91701    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
91702    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
91703    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
91704    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
91705    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
91706    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
91707    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
91708    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
91709    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
91710    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
91711    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
91712    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
91713    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
91714    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
91715    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
91716    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
91717    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
91718 
91719    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91720    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91721 
91722    ---------------------------------------------------------------------------------------------------------------
91723    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91727    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91724    ---------------------------------------------------------------------------------------------------------------
91725    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91726 
91728    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91729 
91730    IF xla_accounting_cache_pkg.GetValueChar
91731          (p_source_code         => 'LEDGER_CATEGORY_CODE'
91732          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91733    AND l_bflow_method_code = 'PRIOR_ENTRY'
91734 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91735    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91736          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91737        )
91738    THEN
91739          xla_ae_lines_pkg.BflowUpgEntry
91740            (p_business_method_code    => l_bflow_method_code
91741            ,p_business_class_code     => l_bflow_class_code
91742            ,p_balance_type            => l_balance_type_code);
91743    ELSE
91744       NULL;
91745 -- No business flow processing for business flow method of NONE.
91746    END IF;
91747 
91748    --
91749    -- call analytical criteria
91750    --
91751    
91752    --
91753    -- call description
91754    --
91755    -- No description or it is inherited.
91756    --
91757    -- call ADRs
91758    -- Bug 4922099
91759    --
91760    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91761         (NVL(l_actual_upg_option, 'N') = 'O') OR
91762         (NVL(l_enc_upg_option, 'N') = 'O')
91763       )
91764    THEN
91765    NULL;
91766    --
91767    --
91768    
91769   l_ccid := AcctDerRule_34(
91770            p_application_id           => p_application_id
91771          , p_ae_header_id             => l_ae_header_id 
91772 , p_source_4 => p_source_4
91773 , p_source_4_meaning => p_source_4_meaning
91774 , p_source_17 => p_source_17
91775 , p_source_23 => p_source_23
91776          , x_transaction_coa_id       => l_adr_transaction_coa_id
91777          , x_accounting_coa_id        => l_adr_accounting_coa_id
91778          , x_value_type_code          => l_adr_value_type_code
91779          , p_side                     => 'NA'
91780    );
91781 
91782    xla_ae_lines_pkg.set_ccid(
91783     p_code_combination_id          => l_ccid
91784   , p_value_type_code              => l_adr_value_type_code
91785   , p_transaction_coa_id           => l_adr_transaction_coa_id
91786   , p_accounting_coa_id            => l_adr_accounting_coa_id
91787   , p_adr_code                     => 'AP_RETAINAGE'
91788   , p_adr_type_code                => 'S'
91789   , p_component_type               => l_component_type
91790   , p_component_code               => l_component_code
91791   , p_component_type_code          => l_component_type_code
91792   , p_component_appl_id            => l_component_appl_id
91793   , p_amb_context_code             => l_amb_context_code
91794   , p_side                         => 'NA'
91795   );
91796 
91797 
91798    l_segment := AcctDerRule_12(
91799            p_application_id           => p_application_id
91800          , p_ae_header_id             => l_ae_header_id 
91801 , p_source_22 => p_source_22
91802          , x_transaction_coa_id       => l_adr_transaction_coa_id
91803          , x_accounting_coa_id        => l_adr_accounting_coa_id
91804          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91805          , x_flex_value_set_id        => l_adr_flex_value_set_id
91806          , x_value_type_code          => l_adr_value_type_code
91807          , x_value_combination_id     => l_adr_value_combination_id
91808          , x_value_segment_code       => l_adr_value_segment_code
91809          , p_side                     => 'NA'
91810          , p_override_seg_flag        => 'Y'
91811    );
91812 
91813    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91814 
91815       xla_ae_lines_pkg.set_segment(
91816           p_to_segment_code         => 'GL_ACCOUNT'
91817         , p_segment_value           => l_segment
91818         , p_from_segment_code       => l_adr_value_segment_code
91819         , p_from_combination_id     => l_adr_value_combination_id
91820         , p_value_type_code         => l_adr_value_type_code
91821         , p_transaction_coa_id      => l_adr_transaction_coa_id
91822         , p_accounting_coa_id       => l_adr_accounting_coa_id
91823         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91824         , p_flex_value_set_id       => l_adr_flex_value_set_id
91825         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
91826         , p_adr_type_code           => 'S'
91827         , p_component_type          => l_component_type
91828         , p_component_code          => l_component_code
91829         , p_component_type_code     => l_component_type_code
91830         , p_component_appl_id       => l_component_appl_id
91831         , p_amb_context_code        => l_amb_context_code
91832         , p_entity_code             => 'AP_PAYMENTS'
91833         , p_event_class_code        => 'RECONCILED PAYMENTS'
91834         , p_side                    => 'NA'
91835         );
91836 
91837   END IF;
91838 
91839    l_segment := AcctDerRule_16(
91840            p_application_id           => p_application_id
91841          , p_ae_header_id             => l_ae_header_id 
91842 , p_source_4 => p_source_4
91846          , x_accounting_coa_id        => l_adr_accounting_coa_id
91843 , p_source_4_meaning => p_source_4_meaning
91844 , p_source_23 => p_source_23
91845          , x_transaction_coa_id       => l_adr_transaction_coa_id
91847          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91848          , x_flex_value_set_id        => l_adr_flex_value_set_id
91849          , x_value_type_code          => l_adr_value_type_code
91850          , x_value_combination_id     => l_adr_value_combination_id
91851          , x_value_segment_code       => l_adr_value_segment_code
91852          , p_side                     => 'NA'
91853          , p_override_seg_flag        => 'Y'
91854    );
91855 
91856    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91857 
91858       xla_ae_lines_pkg.set_segment(
91859           p_to_segment_code         => 'GL_BALANCING'
91860         , p_segment_value           => l_segment
91861         , p_from_segment_code       => l_adr_value_segment_code
91862         , p_from_combination_id     => l_adr_value_combination_id
91863         , p_value_type_code         => l_adr_value_type_code
91864         , p_transaction_coa_id      => l_adr_transaction_coa_id
91865         , p_accounting_coa_id       => l_adr_accounting_coa_id
91866         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91867         , p_flex_value_set_id       => l_adr_flex_value_set_id
91868         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
91869         , p_adr_type_code           => 'S'
91870         , p_component_type          => l_component_type
91871         , p_component_code          => l_component_code
91872         , p_component_type_code     => l_component_type_code
91873         , p_component_appl_id       => l_component_appl_id
91874         , p_amb_context_code        => l_amb_context_code
91875         , p_entity_code             => 'AP_PAYMENTS'
91876         , p_event_class_code        => 'RECONCILED PAYMENTS'
91877         , p_side                    => 'NA'
91878         );
91879 
91880   END IF;
91881 
91882    --
91883    --
91884    END IF;
91885    --
91886    -- Bug 4922099
91887    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91888           (NVL(l_enc_upg_option, 'N') = 'O')
91889         ) AND
91890         (l_bflow_method_code = 'PRIOR_ENTRY')
91891       )
91892    THEN
91893       IF
91894       --
91895       1 = 2
91896       --
91897       THEN
91898       xla_accounting_err_pkg.build_message
91899                                     (p_appli_s_name            => 'XLA'
91900                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91901                                     ,p_token_1                 => 'LINE_NUMBER'
91902                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
91903                                     ,p_token_2                 => 'LINE_TYPE_NAME'
91904                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
91905                                                                              l_component_type
91906                                                                             ,l_component_code
91907                                                                             ,l_component_type_code
91908                                                                             ,l_component_appl_id
91909                                                                             ,l_amb_context_code
91910                                                                             ,l_entity_code
91911                                                                             ,l_event_class_code
91912                                                                            )
91913                                     ,p_token_3                 => 'OWNER'
91914                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
91915                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
91916                                                                           ,p_lookup_code    => l_component_type_code
91917                                                                          )
91918                                     ,p_token_4                 => 'PRODUCT_NAME'
91919                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91920                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91921                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91922                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91923                                     ,p_ae_header_id            =>  NULL
91924                                        );
91925 
91926         IF (C_LEVEL_ERROR>= g_log_level) THEN
91927                  trace
91928                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91929                       ,p_level    => C_LEVEL_ERROR
91930                       ,p_module   => l_log_module);
91931         END IF;
91932       END IF;
91933    END IF;
91934    --
91935    --
91936    ------------------------------------------------------------------------------------------------
91937    -- 4219869 Business Flow
91938    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91942 
91939    -- Prior Entry.  Currently, the following code is always generated.
91940    ------------------------------------------------------------------------------------------------
91941    XLA_AE_LINES_PKG.ValidateCurrentLine;
91943    ------------------------------------------------------------------------------------
91944    -- 4219869 Business Flow
91945    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91946    ------------------------------------------------------------------------------------
91947    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91948 
91949    ----------------------------------------------------------------------------------
91950    -- 4219869 Business Flow
91951    -- Update journal entry status -- Need to generate this within IF <condition>
91952    ----------------------------------------------------------------------------------
91953    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91954          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91955          ,p_balance_type_code => l_balance_type_code
91956          );
91957 
91958    -------------------------------------------------------------------------------------------
91959    -- 4262811 - Generate the Accrual Reversal lines
91960    -------------------------------------------------------------------------------------------
91961    BEGIN
91962       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91963                               (g_array_event(p_event_id).array_value_num('header_index'));
91964       IF l_acc_rev_flag IS NULL THEN
91965          l_acc_rev_flag := 'N';
91966       END IF;
91967    EXCEPTION
91968       WHEN OTHERS THEN
91969          l_acc_rev_flag := 'N';
91970    END;
91971    --
91972    IF (l_acc_rev_flag = 'Y') THEN
91973 
91974        -- 4645092  ------------------------------------------------------------------------------
91975        -- To allow MPA report to determine if it should generate report process
91976        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91977        ------------------------------------------------------------------------------------------
91978 
91979        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91980        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91981    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
91982    -- call ADRs
91983    -- Bug 4922099
91984    --
91985    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91986         (NVL(l_actual_upg_option, 'N') = 'O') OR
91987         (NVL(l_enc_upg_option, 'N') = 'O')
91988       )
91989    THEN
91990    NULL;
91991    --
91992    --
91993    
91994   l_ccid := AcctDerRule_34(
91995            p_application_id           => p_application_id
91996          , p_ae_header_id             => l_ae_header_id 
91997 , p_source_4 => p_source_4
91998 , p_source_4_meaning => p_source_4_meaning
91999 , p_source_17 => p_source_17
92000 , p_source_23 => p_source_23
92001          , x_transaction_coa_id       => l_adr_transaction_coa_id
92002          , x_accounting_coa_id        => l_adr_accounting_coa_id
92003          , x_value_type_code          => l_adr_value_type_code
92004          , p_side                     => 'NA'
92005    );
92006 
92007    xla_ae_lines_pkg.set_ccid(
92008     p_code_combination_id          => l_ccid
92009   , p_value_type_code              => l_adr_value_type_code
92010   , p_transaction_coa_id           => l_adr_transaction_coa_id
92011   , p_accounting_coa_id            => l_adr_accounting_coa_id
92012   , p_adr_code                     => 'AP_RETAINAGE'
92013   , p_adr_type_code                => 'S'
92014   , p_component_type               => l_component_type
92015   , p_component_code               => l_component_code
92016   , p_component_type_code          => l_component_type_code
92017   , p_component_appl_id            => l_component_appl_id
92018   , p_amb_context_code             => l_amb_context_code
92019   , p_side                         => 'NA'
92020   );
92021 
92022 
92023    l_segment := AcctDerRule_12(
92024            p_application_id           => p_application_id
92025          , p_ae_header_id             => l_ae_header_id 
92026 , p_source_22 => p_source_22
92027          , x_transaction_coa_id       => l_adr_transaction_coa_id
92028          , x_accounting_coa_id        => l_adr_accounting_coa_id
92029          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
92030          , x_flex_value_set_id        => l_adr_flex_value_set_id
92031          , x_value_type_code          => l_adr_value_type_code
92032          , x_value_combination_id     => l_adr_value_combination_id
92033          , x_value_segment_code       => l_adr_value_segment_code
92034          , p_side                     => 'NA'
92035          , p_override_seg_flag        => 'Y'
92036    );
92037 
92038    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
92039 
92040       xla_ae_lines_pkg.set_segment(
92041           p_to_segment_code         => 'GL_ACCOUNT'
92042         , p_segment_value           => l_segment
92043         , p_from_segment_code       => l_adr_value_segment_code
92044         , p_from_combination_id     => l_adr_value_combination_id
92045         , p_value_type_code         => l_adr_value_type_code
92046         , p_transaction_coa_id      => l_adr_transaction_coa_id
92047         , p_accounting_coa_id       => l_adr_accounting_coa_id
92048         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
92052         , p_component_type          => l_component_type
92049         , p_flex_value_set_id       => l_adr_flex_value_set_id
92050         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
92051         , p_adr_type_code           => 'S'
92053         , p_component_code          => l_component_code
92054         , p_component_type_code     => l_component_type_code
92055         , p_component_appl_id       => l_component_appl_id
92056         , p_amb_context_code        => l_amb_context_code
92057         , p_entity_code             => 'AP_PAYMENTS'
92058         , p_event_class_code        => 'RECONCILED PAYMENTS'
92059         , p_side                    => 'NA'
92060         );
92061 
92062   END IF;
92063 
92064    l_segment := AcctDerRule_16(
92065            p_application_id           => p_application_id
92066          , p_ae_header_id             => l_ae_header_id 
92067 , p_source_4 => p_source_4
92068 , p_source_4_meaning => p_source_4_meaning
92069 , p_source_23 => p_source_23
92070          , x_transaction_coa_id       => l_adr_transaction_coa_id
92071          , x_accounting_coa_id        => l_adr_accounting_coa_id
92072          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
92073          , x_flex_value_set_id        => l_adr_flex_value_set_id
92074          , x_value_type_code          => l_adr_value_type_code
92075          , x_value_combination_id     => l_adr_value_combination_id
92076          , x_value_segment_code       => l_adr_value_segment_code
92077          , p_side                     => 'NA'
92078          , p_override_seg_flag        => 'Y'
92079    );
92080 
92081    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
92082 
92083       xla_ae_lines_pkg.set_segment(
92084           p_to_segment_code         => 'GL_BALANCING'
92085         , p_segment_value           => l_segment
92086         , p_from_segment_code       => l_adr_value_segment_code
92087         , p_from_combination_id     => l_adr_value_combination_id
92088         , p_value_type_code         => l_adr_value_type_code
92089         , p_transaction_coa_id      => l_adr_transaction_coa_id
92090         , p_accounting_coa_id       => l_adr_accounting_coa_id
92091         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
92092         , p_flex_value_set_id       => l_adr_flex_value_set_id
92093         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
92094         , p_adr_type_code           => 'S'
92095         , p_component_type          => l_component_type
92096         , p_component_code          => l_component_code
92097         , p_component_type_code     => l_component_type_code
92098         , p_component_appl_id       => l_component_appl_id
92099         , p_amb_context_code        => l_amb_context_code
92100         , p_entity_code             => 'AP_PAYMENTS'
92101         , p_event_class_code        => 'RECONCILED PAYMENTS'
92102         , p_side                    => 'NA'
92103         );
92104 
92105   END IF;
92106 
92107    --
92108    --
92109    END IF;
92110 
92111        --
92112        -- Update the line information that should be overwritten
92113        --
92114        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92115                                          p_header_num   => 1);
92116        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
92117 
92118        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92119 
92120        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
92121           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92122        END IF;
92123 
92124       --
92125       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92126       --
92127       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92128           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
92129       ELSE
92130           ---------------------------------------------------------------------------------------------------
92131           -- 4262811a Switch Sign
92132           ---------------------------------------------------------------------------------------------------
92133           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92134           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92135                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92136           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92137                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92138           -- 5132302
92139           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92140                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92141 
92142       END IF;
92143 
92144       -- 4955764
92145       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92146       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92147 
92148 
92149       XLA_AE_LINES_PKG.ValidateCurrentLine;
92150       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92151 
92152       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92156    END IF;
92153                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92154                ,p_balance_type_code => l_balance_type_code);
92155 
92157 
92158    -----------------------------------------------------------------------------------------
92159    -- 4262811 Multiperiod Accounting
92160    -----------------------------------------------------------------------------------------
92161      -- No MPA option is assigned.
92162 
92163 
92164 END IF;
92165 END IF;
92166 --
92167 
92168 --
92169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92170    trace
92171       (p_msg      => 'END of AcctLineType_164'
92172       ,p_level    => C_LEVEL_PROCEDURE
92173       ,p_module   => l_log_module);
92174 END IF;
92175 --
92176 EXCEPTION
92177   WHEN xla_exceptions_pkg.application_exception THEN
92178       RAISE;
92179   WHEN OTHERS THEN
92180        xla_exceptions_pkg.raise_message
92181            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_164');
92182 END AcctLineType_164;
92183 --
92184 
92185 ---------------------------------------
92186 --
92187 -- PRIVATE FUNCTION
92188 --         AcctLineType_165
92189 --
92190 ---------------------------------------
92191 PROCEDURE AcctLineType_165 (
92192   p_application_id        IN NUMBER
92193  ,p_event_id              IN NUMBER
92194  ,p_calculate_acctd_flag  IN VARCHAR2
92195  ,p_calculate_g_l_flag    IN VARCHAR2
92196  ,p_actual_flag           IN OUT VARCHAR2
92197  ,p_balance_type_code     OUT VARCHAR2
92198  ,p_gain_or_loss_ref      OUT VARCHAR2
92199  
92200 --Automatic Offsets Value
92201  , p_source_4            IN VARCHAR2
92202  , p_source_4_meaning    IN VARCHAR2
92203 --Payment Distribution (Payment Rate) Ledger Amount
92204  , p_source_9            IN NUMBER
92205 --Invoice Distribution Account
92206  , p_source_17            IN NUMBER
92207 --Invoice Distribution Type
92208  , p_source_20            IN VARCHAR2
92209  , p_source_20_meaning    IN VARCHAR2
92210 --Retainage Account
92211  , p_source_22            IN NUMBER
92212 --Retainage Related Item Distribution Account
92213  , p_source_23            IN NUMBER
92214 --When to Account for Payment Option
92215  , p_source_38            IN VARCHAR2
92216 --Accounting Reversal Indicator
92217  , p_source_40            IN VARCHAR2
92218 --Payment Distribution Amount
92219  , p_source_41            IN NUMBER
92220 --Business Flow Accounts Payable Application Identifier
92221  , p_source_42            IN NUMBER
92222 --Payment Distribution Identifier
92223  , p_source_47            IN NUMBER
92224 --Distribution Link Type
92225  , p_source_48            IN VARCHAR2
92226 --Payment Currency Code
92227  , p_source_49            IN VARCHAR2
92228 --Override Accounted Amount Indicator
92229  , p_source_53            IN VARCHAR2
92230  , p_source_53_meaning    IN VARCHAR2
92231 --Payment Supplier Identifier
92232  , p_source_54            IN NUMBER
92233 --Payment Supplier Site Identifier
92234  , p_source_55            IN NUMBER
92235 --Third Party Type
92236  , p_source_56            IN VARCHAR2
92237 --Payment Distribution Reversed Identifier
92238  , p_source_57            IN NUMBER
92239 --Invoice Distribution Tax Line Identifier
92240  , p_source_58            IN NUMBER
92241 --Invoice Distribution Summary Tax Line Identifier
92242  , p_source_59            IN NUMBER
92243 --Invoice Distribution Amount of the Payment Distribution
92244  , p_source_61            IN NUMBER
92245 --Business Flow Invoice Distribution Type
92246  , p_source_62            IN VARCHAR2
92247 --Business Flow Invoice Entity Code
92248  , p_source_63            IN VARCHAR2
92249 --Business Flow Invoice Distribution Identifier
92250  , p_source_64            IN NUMBER
92251 --Business Flow Invoice Identifier
92252  , p_source_65            IN NUMBER
92253 --Invoice Distribution Tax Distribution Identifier from Tax
92254  , p_source_66            IN NUMBER
92255 --Invoice Type Paid
92256  , p_source_101            IN VARCHAR2
92257  , p_source_101_meaning    IN VARCHAR2
92258 --Payment Exchange Date
92259  , p_source_114            IN DATE
92260 --Payment Exchange Rate
92261  , p_source_115            IN NUMBER
92262 --Payment Exchange Rate Type
92263  , p_source_116            IN VARCHAR2
92264 )
92265 IS
92266 
92267 l_component_type              VARCHAR2(80);
92268 l_component_code              VARCHAR2(30);
92269 l_component_type_code         VARCHAR2(1);
92270 l_component_appl_id           INTEGER;
92271 l_amb_context_code            VARCHAR2(30);
92272 l_entity_code                 VARCHAR2(30);
92273 l_event_class_code            VARCHAR2(30);
92274 l_ae_header_id                NUMBER;
92275 l_event_type_code             VARCHAR2(30);
92276 l_line_definition_code        VARCHAR2(30);
92277 l_line_definition_owner_code  VARCHAR2(1);
92278 --
92279 -- adr variables
92280 l_segment                     VARCHAR2(30);
92281 l_ccid                        NUMBER;
92282 l_adr_transaction_coa_id      NUMBER;
92283 l_adr_accounting_coa_id       NUMBER;
92284 l_adr_flexfield_segment_code  VARCHAR2(30);
92285 l_adr_flex_value_set_id       NUMBER;
92286 l_adr_value_type_code         VARCHAR2(30);
92287 l_adr_value_combination_id    NUMBER;
92288 l_adr_value_segment_code      VARCHAR2(30);
92289 
92290 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
92291 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
92295 -- 4262811 Variables ------------------------------------------------------------------------------------------
92292 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
92293 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
92294 
92296 l_entered_amt_idx             NUMBER;
92297 l_accted_amt_idx              NUMBER;
92298 l_acc_rev_flag                VARCHAR2(1);
92299 l_accrual_line_num            NUMBER;
92300 l_tmp_amt                     NUMBER;
92301 l_acc_rev_natural_side_code   VARCHAR2(1);
92302 
92303 l_num_entries                 NUMBER;
92304 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
92305 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
92306 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
92307 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
92308 l_recog_line_1                NUMBER;
92309 l_recog_line_2                NUMBER;
92310 
92311 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
92312 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
92313 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
92314 
92315 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92316 
92317 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
92318 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
92319 
92320 ---------------------------------------------------------------------------------------------------------------
92321 
92322 
92323 --
92324 -- bulk performance
92325 --
92326 l_balance_type_code           VARCHAR2(1);
92327 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92328 l_log_module                  VARCHAR2(240);
92329 
92330 --
92331 -- Upgrade strategy
92332 --
92333 l_actual_upg_option           VARCHAR2(1);
92334 l_enc_upg_option           VARCHAR2(1);
92335 
92336 --
92337 BEGIN
92338 --
92339 IF g_log_enabled THEN
92340       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_165';
92341 END IF;
92342 --
92343 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92344 
92345       trace
92346          (p_msg      => 'BEGIN of AcctLineType_165'
92347          ,p_level    => C_LEVEL_PROCEDURE
92348          ,p_module   => l_log_module);
92349 
92350 END IF;
92351 --
92352 l_component_type             := 'AMB_JLT';
92353 l_component_code             := 'AP_RETAINAGE_PMT_CASH';
92354 l_component_type_code        := 'S';
92355 l_component_appl_id          :=  200;
92356 l_amb_context_code           := 'DEFAULT';
92357 l_entity_code                := 'AP_PAYMENTS';
92358 l_event_class_code           := 'PAYMENTS';
92359 l_event_type_code            := 'PAYMENTS_ALL';
92360 l_line_definition_owner_code := 'S';
92361 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
92362 --
92363 l_balance_type_code          := 'A';
92364 l_segment                     := NULL;
92365 l_ccid                        := NULL;
92366 l_adr_transaction_coa_id      := NULL;
92367 l_adr_accounting_coa_id       := NULL;
92368 l_adr_flexfield_segment_code  := NULL;
92369 l_adr_flex_value_set_id       := NULL;
92370 l_adr_value_type_code         := NULL;
92371 l_adr_value_combination_id    := NULL;
92372 l_adr_value_segment_code      := NULL;
92373 
92374 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
92375 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
92376 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92377 l_budgetary_control_flag     := 'N';
92378 
92379 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92380 l_bflow_applied_to_amt       := NULL; -- 5132302
92381 l_entered_amt_idx            := NULL;          -- 4262811
92382 l_accted_amt_idx             := NULL;          -- 4262811
92383 l_acc_rev_flag               := NULL;          -- 4262811
92384 l_accrual_line_num           := NULL;          -- 4262811
92385 l_tmp_amt                    := NULL;          -- 4262811
92386 --
92387  
92388 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92389     l_balance_type_code <> 'B' THEN
92390 IF NVL(p_source_38,'
92391 ') <>  'CLEAR_CLEAR' AND 
92392 NVL(p_source_101,'
92393 ') <>  'RETAINAGE RELEASE' AND 
92394 NVL(p_source_20,'
92395 ') =  'RETAINAGE'
92396  THEN 
92397 
92398    --
92399    XLA_AE_LINES_PKG.SetNewLine;
92400 
92401    p_balance_type_code          := l_balance_type_code;
92402    -- set the flag so later we will know whether the gain loss line needs to be created
92403    
92404    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92405      p_actual_flag :='A';
92406    END IF;
92407 
92408    --
92409    -- bulk performance
92410    --
92411    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92412                                       p_header_num   => 0); -- 4262811
92413    --
92414    -- set accounting line options
92415    --
92416    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92417            p_natural_side_code          => 'D'
92418          , p_gain_or_loss_flag          => 'N'
92419          , p_gl_transfer_mode_code      => 'S'
92420          , p_acct_entry_type_code       => 'A'
92421          , p_switch_side_flag           => 'Y'
92422          , p_merge_duplicate_code       => 'A'
92426    -- 
92423          );
92424    --
92425    l_acc_rev_natural_side_code := 'C';  -- 4262811
92427    --
92428    -- set accounting line type info
92429    --
92430    xla_ae_lines_pkg.SetAcctLineType
92431       (p_component_type             => l_component_type
92432       ,p_event_type_code            => l_event_type_code
92433       ,p_line_definition_owner_code => l_line_definition_owner_code
92434       ,p_line_definition_code       => l_line_definition_code
92435       ,p_accounting_line_code       => l_component_code
92436       ,p_accounting_line_type_code  => l_component_type_code
92437       ,p_accounting_line_appl_id    => l_component_appl_id
92438       ,p_amb_context_code           => l_amb_context_code
92439       ,p_entity_code                => l_entity_code
92440       ,p_event_class_code           => l_event_class_code);
92441    --
92442    -- set accounting class
92443    --
92444    xla_ae_lines_pkg.SetAcctClass(
92445            p_accounting_class_code  => 'RETAINAGE'
92446          , p_ae_header_id           => l_ae_header_id
92447          );
92448 
92449    --
92450    -- set rounding class
92451    --
92452    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92453                       'RETAINAGE';
92454 
92455    --
92456    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92457    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92458    --
92459    -- bulk performance
92460    --
92461    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92462 
92463    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92464       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92465 
92466    -- 4955764
92467    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92468       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92469 
92470    -- 4458381 Public Sector Enh
92471    
92472    --
92473    -- set accounting attributes for the line type
92474    --
92475    l_entered_amt_idx := 10;
92476    l_accted_amt_idx  := 15;
92477    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
92478    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92479    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
92480    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
92481    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
92482    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
92483    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
92484    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92485    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
92486    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
92487    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
92488    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
92489    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
92490    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92491    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
92492    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
92493    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
92494    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
92495    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
92496    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
92497    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
92498    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
92499    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
92500    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
92501    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
92502    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
92503    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
92504    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
92505    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
92506    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
92507    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
92508    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
92509    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
92510    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
92511    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
92512    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
92513    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
92514    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
92515    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
92516    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
92517    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
92518    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
92519    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
92520    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
92521    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
92522    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
92523    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
92524    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
92528    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92525    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
92526 
92527    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92529 
92530    ---------------------------------------------------------------------------------------------------------------
92531    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92532    ---------------------------------------------------------------------------------------------------------------
92533    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92534 
92535    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92536    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92537 
92538    IF xla_accounting_cache_pkg.GetValueChar
92539          (p_source_code         => 'LEDGER_CATEGORY_CODE'
92540          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92541    AND l_bflow_method_code = 'PRIOR_ENTRY'
92542 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92543    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92544          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92545        )
92546    THEN
92547          xla_ae_lines_pkg.BflowUpgEntry
92548            (p_business_method_code    => l_bflow_method_code
92549            ,p_business_class_code     => l_bflow_class_code
92550            ,p_balance_type            => l_balance_type_code);
92551    ELSE
92552       NULL;
92553 -- No business flow processing for business flow method of NONE.
92554    END IF;
92555 
92556    --
92557    -- call analytical criteria
92558    --
92559    
92560    --
92561    -- call description
92562    --
92563    -- No description or it is inherited.
92564    --
92565    -- call ADRs
92566    -- Bug 4922099
92567    --
92568    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92569         (NVL(l_actual_upg_option, 'N') = 'O') OR
92570         (NVL(l_enc_upg_option, 'N') = 'O')
92571       )
92572    THEN
92573    NULL;
92574    --
92575    --
92576    
92577   l_ccid := AcctDerRule_34(
92578            p_application_id           => p_application_id
92579          , p_ae_header_id             => l_ae_header_id 
92580 , p_source_4 => p_source_4
92581 , p_source_4_meaning => p_source_4_meaning
92582 , p_source_17 => p_source_17
92583 , p_source_23 => p_source_23
92584          , x_transaction_coa_id       => l_adr_transaction_coa_id
92585          , x_accounting_coa_id        => l_adr_accounting_coa_id
92586          , x_value_type_code          => l_adr_value_type_code
92587          , p_side                     => 'NA'
92588    );
92589 
92590    xla_ae_lines_pkg.set_ccid(
92591     p_code_combination_id          => l_ccid
92592   , p_value_type_code              => l_adr_value_type_code
92593   , p_transaction_coa_id           => l_adr_transaction_coa_id
92594   , p_accounting_coa_id            => l_adr_accounting_coa_id
92595   , p_adr_code                     => 'AP_RETAINAGE'
92596   , p_adr_type_code                => 'S'
92597   , p_component_type               => l_component_type
92598   , p_component_code               => l_component_code
92599   , p_component_type_code          => l_component_type_code
92600   , p_component_appl_id            => l_component_appl_id
92601   , p_amb_context_code             => l_amb_context_code
92602   , p_side                         => 'NA'
92603   );
92604 
92605 
92606    l_segment := AcctDerRule_12(
92607            p_application_id           => p_application_id
92608          , p_ae_header_id             => l_ae_header_id 
92609 , p_source_22 => p_source_22
92610          , x_transaction_coa_id       => l_adr_transaction_coa_id
92611          , x_accounting_coa_id        => l_adr_accounting_coa_id
92612          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
92613          , x_flex_value_set_id        => l_adr_flex_value_set_id
92614          , x_value_type_code          => l_adr_value_type_code
92615          , x_value_combination_id     => l_adr_value_combination_id
92616          , x_value_segment_code       => l_adr_value_segment_code
92617          , p_side                     => 'NA'
92618          , p_override_seg_flag        => 'Y'
92619    );
92620 
92621    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
92622 
92623       xla_ae_lines_pkg.set_segment(
92624           p_to_segment_code         => 'GL_ACCOUNT'
92625         , p_segment_value           => l_segment
92626         , p_from_segment_code       => l_adr_value_segment_code
92627         , p_from_combination_id     => l_adr_value_combination_id
92628         , p_value_type_code         => l_adr_value_type_code
92629         , p_transaction_coa_id      => l_adr_transaction_coa_id
92630         , p_accounting_coa_id       => l_adr_accounting_coa_id
92631         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
92632         , p_flex_value_set_id       => l_adr_flex_value_set_id
92633         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
92634         , p_adr_type_code           => 'S'
92635         , p_component_type          => l_component_type
92636         , p_component_code          => l_component_code
92637         , p_component_type_code     => l_component_type_code
92641         , p_event_class_code        => 'PAYMENTS'
92638         , p_component_appl_id       => l_component_appl_id
92639         , p_amb_context_code        => l_amb_context_code
92640         , p_entity_code             => 'AP_PAYMENTS'
92642         , p_side                    => 'NA'
92643         );
92644 
92645   END IF;
92646 
92647    l_segment := AcctDerRule_16(
92648            p_application_id           => p_application_id
92649          , p_ae_header_id             => l_ae_header_id 
92650 , p_source_4 => p_source_4
92651 , p_source_4_meaning => p_source_4_meaning
92652 , p_source_23 => p_source_23
92653          , x_transaction_coa_id       => l_adr_transaction_coa_id
92654          , x_accounting_coa_id        => l_adr_accounting_coa_id
92655          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
92656          , x_flex_value_set_id        => l_adr_flex_value_set_id
92657          , x_value_type_code          => l_adr_value_type_code
92658          , x_value_combination_id     => l_adr_value_combination_id
92659          , x_value_segment_code       => l_adr_value_segment_code
92660          , p_side                     => 'NA'
92661          , p_override_seg_flag        => 'Y'
92662    );
92663 
92664    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
92665 
92666       xla_ae_lines_pkg.set_segment(
92667           p_to_segment_code         => 'GL_BALANCING'
92668         , p_segment_value           => l_segment
92669         , p_from_segment_code       => l_adr_value_segment_code
92670         , p_from_combination_id     => l_adr_value_combination_id
92671         , p_value_type_code         => l_adr_value_type_code
92672         , p_transaction_coa_id      => l_adr_transaction_coa_id
92673         , p_accounting_coa_id       => l_adr_accounting_coa_id
92674         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
92675         , p_flex_value_set_id       => l_adr_flex_value_set_id
92676         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
92677         , p_adr_type_code           => 'S'
92678         , p_component_type          => l_component_type
92679         , p_component_code          => l_component_code
92680         , p_component_type_code     => l_component_type_code
92681         , p_component_appl_id       => l_component_appl_id
92682         , p_amb_context_code        => l_amb_context_code
92683         , p_entity_code             => 'AP_PAYMENTS'
92684         , p_event_class_code        => 'PAYMENTS'
92685         , p_side                    => 'NA'
92686         );
92687 
92688   END IF;
92689 
92690    --
92691    --
92692    END IF;
92693    --
92694    -- Bug 4922099
92695    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
92696           (NVL(l_enc_upg_option, 'N') = 'O')
92697         ) AND
92698         (l_bflow_method_code = 'PRIOR_ENTRY')
92699       )
92700    THEN
92701       IF
92702       --
92703       1 = 2
92704       --
92705       THEN
92706       xla_accounting_err_pkg.build_message
92707                                     (p_appli_s_name            => 'XLA'
92708                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92709                                     ,p_token_1                 => 'LINE_NUMBER'
92710                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
92711                                     ,p_token_2                 => 'LINE_TYPE_NAME'
92712                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
92713                                                                              l_component_type
92714                                                                             ,l_component_code
92715                                                                             ,l_component_type_code
92716                                                                             ,l_component_appl_id
92717                                                                             ,l_amb_context_code
92718                                                                             ,l_entity_code
92719                                                                             ,l_event_class_code
92720                                                                            )
92721                                     ,p_token_3                 => 'OWNER'
92722                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
92723                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
92724                                                                           ,p_lookup_code    => l_component_type_code
92725                                                                          )
92726                                     ,p_token_4                 => 'PRODUCT_NAME'
92727                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
92728                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
92729                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
92730                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
92731                                     ,p_ae_header_id            =>  NULL
92732                                        );
92733 
92734         IF (C_LEVEL_ERROR>= g_log_level) THEN
92735                  trace
92739         END IF;
92736                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92737                       ,p_level    => C_LEVEL_ERROR
92738                       ,p_module   => l_log_module);
92740       END IF;
92741    END IF;
92742    --
92743    --
92744    ------------------------------------------------------------------------------------------------
92745    -- 4219869 Business Flow
92746    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
92747    -- Prior Entry.  Currently, the following code is always generated.
92748    ------------------------------------------------------------------------------------------------
92749    XLA_AE_LINES_PKG.ValidateCurrentLine;
92750 
92751    ------------------------------------------------------------------------------------
92752    -- 4219869 Business Flow
92753    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92754    ------------------------------------------------------------------------------------
92755    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92756 
92757    ----------------------------------------------------------------------------------
92758    -- 4219869 Business Flow
92759    -- Update journal entry status -- Need to generate this within IF <condition>
92760    ----------------------------------------------------------------------------------
92761    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92762          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92763          ,p_balance_type_code => l_balance_type_code
92764          );
92765 
92766    -------------------------------------------------------------------------------------------
92767    -- 4262811 - Generate the Accrual Reversal lines
92768    -------------------------------------------------------------------------------------------
92769    BEGIN
92770       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92771                               (g_array_event(p_event_id).array_value_num('header_index'));
92772       IF l_acc_rev_flag IS NULL THEN
92773          l_acc_rev_flag := 'N';
92774       END IF;
92775    EXCEPTION
92776       WHEN OTHERS THEN
92777          l_acc_rev_flag := 'N';
92778    END;
92779    --
92780    IF (l_acc_rev_flag = 'Y') THEN
92781 
92782        -- 4645092  ------------------------------------------------------------------------------
92783        -- To allow MPA report to determine if it should generate report process
92784        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92785        ------------------------------------------------------------------------------------------
92786 
92787        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92788        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92789    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
92790    -- call ADRs
92791    -- Bug 4922099
92792    --
92793    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92794         (NVL(l_actual_upg_option, 'N') = 'O') OR
92795         (NVL(l_enc_upg_option, 'N') = 'O')
92796       )
92797    THEN
92798    NULL;
92799    --
92800    --
92801    
92802   l_ccid := AcctDerRule_34(
92803            p_application_id           => p_application_id
92804          , p_ae_header_id             => l_ae_header_id 
92805 , p_source_4 => p_source_4
92806 , p_source_4_meaning => p_source_4_meaning
92807 , p_source_17 => p_source_17
92808 , p_source_23 => p_source_23
92809          , x_transaction_coa_id       => l_adr_transaction_coa_id
92810          , x_accounting_coa_id        => l_adr_accounting_coa_id
92811          , x_value_type_code          => l_adr_value_type_code
92812          , p_side                     => 'NA'
92813    );
92814 
92815    xla_ae_lines_pkg.set_ccid(
92816     p_code_combination_id          => l_ccid
92817   , p_value_type_code              => l_adr_value_type_code
92818   , p_transaction_coa_id           => l_adr_transaction_coa_id
92819   , p_accounting_coa_id            => l_adr_accounting_coa_id
92820   , p_adr_code                     => 'AP_RETAINAGE'
92821   , p_adr_type_code                => 'S'
92822   , p_component_type               => l_component_type
92823   , p_component_code               => l_component_code
92824   , p_component_type_code          => l_component_type_code
92825   , p_component_appl_id            => l_component_appl_id
92826   , p_amb_context_code             => l_amb_context_code
92827   , p_side                         => 'NA'
92828   );
92829 
92830 
92831    l_segment := AcctDerRule_12(
92832            p_application_id           => p_application_id
92833          , p_ae_header_id             => l_ae_header_id 
92834 , p_source_22 => p_source_22
92835          , x_transaction_coa_id       => l_adr_transaction_coa_id
92836          , x_accounting_coa_id        => l_adr_accounting_coa_id
92837          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
92838          , x_flex_value_set_id        => l_adr_flex_value_set_id
92839          , x_value_type_code          => l_adr_value_type_code
92840          , x_value_combination_id     => l_adr_value_combination_id
92841          , x_value_segment_code       => l_adr_value_segment_code
92842          , p_side                     => 'NA'
92843          , p_override_seg_flag        => 'Y'
92844    );
92845 
92846    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
92847 
92848       xla_ae_lines_pkg.set_segment(
92849           p_to_segment_code         => 'GL_ACCOUNT'
92850         , p_segment_value           => l_segment
92854         , p_transaction_coa_id      => l_adr_transaction_coa_id
92851         , p_from_segment_code       => l_adr_value_segment_code
92852         , p_from_combination_id     => l_adr_value_combination_id
92853         , p_value_type_code         => l_adr_value_type_code
92855         , p_accounting_coa_id       => l_adr_accounting_coa_id
92856         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
92857         , p_flex_value_set_id       => l_adr_flex_value_set_id
92858         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
92859         , p_adr_type_code           => 'S'
92860         , p_component_type          => l_component_type
92861         , p_component_code          => l_component_code
92862         , p_component_type_code     => l_component_type_code
92863         , p_component_appl_id       => l_component_appl_id
92864         , p_amb_context_code        => l_amb_context_code
92865         , p_entity_code             => 'AP_PAYMENTS'
92866         , p_event_class_code        => 'PAYMENTS'
92867         , p_side                    => 'NA'
92868         );
92869 
92870   END IF;
92871 
92872    l_segment := AcctDerRule_16(
92873            p_application_id           => p_application_id
92874          , p_ae_header_id             => l_ae_header_id 
92875 , p_source_4 => p_source_4
92876 , p_source_4_meaning => p_source_4_meaning
92877 , p_source_23 => p_source_23
92878          , x_transaction_coa_id       => l_adr_transaction_coa_id
92879          , x_accounting_coa_id        => l_adr_accounting_coa_id
92880          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
92881          , x_flex_value_set_id        => l_adr_flex_value_set_id
92882          , x_value_type_code          => l_adr_value_type_code
92883          , x_value_combination_id     => l_adr_value_combination_id
92884          , x_value_segment_code       => l_adr_value_segment_code
92885          , p_side                     => 'NA'
92886          , p_override_seg_flag        => 'Y'
92887    );
92888 
92889    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
92890 
92891       xla_ae_lines_pkg.set_segment(
92892           p_to_segment_code         => 'GL_BALANCING'
92893         , p_segment_value           => l_segment
92894         , p_from_segment_code       => l_adr_value_segment_code
92895         , p_from_combination_id     => l_adr_value_combination_id
92896         , p_value_type_code         => l_adr_value_type_code
92897         , p_transaction_coa_id      => l_adr_transaction_coa_id
92898         , p_accounting_coa_id       => l_adr_accounting_coa_id
92899         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
92900         , p_flex_value_set_id       => l_adr_flex_value_set_id
92901         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
92902         , p_adr_type_code           => 'S'
92903         , p_component_type          => l_component_type
92904         , p_component_code          => l_component_code
92905         , p_component_type_code     => l_component_type_code
92906         , p_component_appl_id       => l_component_appl_id
92907         , p_amb_context_code        => l_amb_context_code
92908         , p_entity_code             => 'AP_PAYMENTS'
92909         , p_event_class_code        => 'PAYMENTS'
92910         , p_side                    => 'NA'
92911         );
92912 
92913   END IF;
92914 
92915    --
92916    --
92917    END IF;
92918 
92919        --
92920        -- Update the line information that should be overwritten
92921        --
92922        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92923                                          p_header_num   => 1);
92924        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
92925 
92926        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92927 
92928        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
92929           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92930        END IF;
92931 
92932       --
92933       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92934       --
92935       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92936           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
92937       ELSE
92938           ---------------------------------------------------------------------------------------------------
92939           -- 4262811a Switch Sign
92940           ---------------------------------------------------------------------------------------------------
92941           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92942           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92943                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92944           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92945                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92946           -- 5132302
92947           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92948                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92949 
92950       END IF;
92951 
92952       -- 4955764
92956 
92953       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92954       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92955 
92957       XLA_AE_LINES_PKG.ValidateCurrentLine;
92958       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92959 
92960       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92961                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92962                ,p_balance_type_code => l_balance_type_code);
92963 
92964    END IF;
92965 
92966    -----------------------------------------------------------------------------------------
92967    -- 4262811 Multiperiod Accounting
92968    -----------------------------------------------------------------------------------------
92969      -- No MPA option is assigned.
92970 
92971 
92972 END IF;
92973 END IF;
92974 --
92975 
92976 --
92977 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92978    trace
92979       (p_msg      => 'END of AcctLineType_165'
92980       ,p_level    => C_LEVEL_PROCEDURE
92981       ,p_module   => l_log_module);
92982 END IF;
92983 --
92984 EXCEPTION
92985   WHEN xla_exceptions_pkg.application_exception THEN
92986       RAISE;
92987   WHEN OTHERS THEN
92988        xla_exceptions_pkg.raise_message
92989            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_165');
92990 END AcctLineType_165;
92991 --
92992 
92993 ---------------------------------------
92994 --
92995 -- PRIVATE FUNCTION
92996 --         AcctLineType_166
92997 --
92998 ---------------------------------------
92999 PROCEDURE AcctLineType_166 (
93000   p_application_id        IN NUMBER
93001  ,p_event_id              IN NUMBER
93002  ,p_calculate_acctd_flag  IN VARCHAR2
93003  ,p_calculate_g_l_flag    IN VARCHAR2
93004  ,p_actual_flag           IN OUT VARCHAR2
93005  ,p_balance_type_code     OUT VARCHAR2
93006  ,p_gain_or_loss_ref      OUT VARCHAR2
93007  
93008 --Automatic Offsets Value
93009  , p_source_4            IN VARCHAR2
93010  , p_source_4_meaning    IN VARCHAR2
93011 --Invoice Distribution Account
93012  , p_source_17            IN NUMBER
93013 --Retainage Account
93014  , p_source_22            IN NUMBER
93015 --Retainage Related Item Distribution Account
93016  , p_source_23            IN NUMBER
93017 --When to Account for Payment Option
93018  , p_source_38            IN VARCHAR2
93019 --Accounting Reversal Indicator
93020  , p_source_40            IN VARCHAR2
93021 --Business Flow Accounts Payable Application Identifier
93022  , p_source_42            IN NUMBER
93023 --Distribution Link Type
93024  , p_source_48            IN VARCHAR2
93025 --Override Accounted Amount Indicator
93026  , p_source_53            IN VARCHAR2
93027  , p_source_53_meaning    IN VARCHAR2
93028 --Third Party Type
93029  , p_source_56            IN VARCHAR2
93030 --Invoice Distribution Tax Line Identifier
93031  , p_source_58            IN NUMBER
93032 --Invoice Distribution Summary Tax Line Identifier
93033  , p_source_59            IN NUMBER
93034 --Business Flow Invoice Distribution Type
93035  , p_source_62            IN VARCHAR2
93036 --Business Flow Invoice Entity Code
93037  , p_source_63            IN VARCHAR2
93038 --Invoice Distribution Tax Distribution Identifier from Tax
93039  , p_source_66            IN NUMBER
93040 --Prepayment Distribution Type
93041  , p_source_67            IN VARCHAR2
93042 --Recipient Invoice Distribution Type
93043  , p_source_68            IN VARCHAR2
93044  , p_source_68_meaning    IN VARCHAR2
93045 --Prepayment Application Distribution Identifier
93046  , p_source_71            IN NUMBER
93047 --Invoice Identifier
93048  , p_source_72            IN NUMBER
93049 --Upgrade Encumbrance Credit Account Class
93050  , p_source_77            IN VARCHAR2
93051 --Payables Encumbrance Upgrade Credit Account
93052  , p_source_78            IN NUMBER
93053 --Payables Encumbrance Upgrade Credit Amount
93054  , p_source_79            IN NUMBER
93055 --Invoice Currency Code
93056  , p_source_80            IN VARCHAR2
93057 --Payables Encumbrance Upgrade Credit Base Amount
93058  , p_source_81            IN NUMBER
93059 --Upgrade Encumbrance Debit Account Class
93060  , p_source_82            IN VARCHAR2
93061 --Payables Encumbrance Upgrade Debit Account
93062  , p_source_83            IN NUMBER
93063 --Payables Encumbrance Upgrade Debit Amount
93064  , p_source_84            IN NUMBER
93065 --Payables Encumbrance Upgrade Debit Base Amount
93066  , p_source_85            IN NUMBER
93067 --Payables Encumbrance Upgrade Option
93068  , p_source_86            IN VARCHAR2
93069 --Prepayment Distribution Amount
93070  , p_source_87            IN NUMBER
93071 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
93072  , p_source_89            IN NUMBER
93073 --Deferred Accounting End Date
93074  , p_source_90            IN DATE
93075 --Deferred Accounting Option
93076  , p_source_91            IN VARCHAR2
93077 --Deferred Accounting Start Date
93078  , p_source_92            IN DATE
93079 --Invoice Supplier Identifier
93080  , p_source_93            IN NUMBER
93081 --Invoice Supplier Site Identifier
93082  , p_source_94            IN NUMBER
93083 --Identifier of the Prepayment Application Reversed
93084  , p_source_95            IN NUMBER
93085 --Payables Upgrade Credit Encumbrance Type Identifier
93089 --Invoice Exchange Date
93086  , p_source_96            IN NUMBER
93087 --Payables Upgrade Debit Encumbrance Type Identifier
93088  , p_source_97            IN NUMBER
93090  , p_source_124            IN DATE
93091 --Invoice Exchange Rate
93092  , p_source_125            IN NUMBER
93093 --Invoice Exchange Rate Type
93094  , p_source_126            IN VARCHAR2
93095 --Prepayment Application Recipient Invoice Type
93096  , p_source_144            IN VARCHAR2
93097  , p_source_144_meaning    IN VARCHAR2
93098 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
93099  , p_source_145            IN NUMBER
93100 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
93101  , p_source_146            IN NUMBER
93102 )
93103 IS
93104 
93105 l_component_type              VARCHAR2(80);
93106 l_component_code              VARCHAR2(30);
93107 l_component_type_code         VARCHAR2(1);
93108 l_component_appl_id           INTEGER;
93109 l_amb_context_code            VARCHAR2(30);
93110 l_entity_code                 VARCHAR2(30);
93111 l_event_class_code            VARCHAR2(30);
93112 l_ae_header_id                NUMBER;
93113 l_event_type_code             VARCHAR2(30);
93114 l_line_definition_code        VARCHAR2(30);
93115 l_line_definition_owner_code  VARCHAR2(1);
93116 --
93117 -- adr variables
93118 l_segment                     VARCHAR2(30);
93119 l_ccid                        NUMBER;
93120 l_adr_transaction_coa_id      NUMBER;
93121 l_adr_accounting_coa_id       NUMBER;
93122 l_adr_flexfield_segment_code  VARCHAR2(30);
93123 l_adr_flex_value_set_id       NUMBER;
93124 l_adr_value_type_code         VARCHAR2(30);
93125 l_adr_value_combination_id    NUMBER;
93126 l_adr_value_segment_code      VARCHAR2(30);
93127 
93128 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
93129 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
93130 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
93131 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
93132 
93133 -- 4262811 Variables ------------------------------------------------------------------------------------------
93134 l_entered_amt_idx             NUMBER;
93135 l_accted_amt_idx              NUMBER;
93136 l_acc_rev_flag                VARCHAR2(1);
93137 l_accrual_line_num            NUMBER;
93138 l_tmp_amt                     NUMBER;
93139 l_acc_rev_natural_side_code   VARCHAR2(1);
93140 
93141 l_num_entries                 NUMBER;
93142 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
93143 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
93144 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
93145 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
93146 l_recog_line_1                NUMBER;
93147 l_recog_line_2                NUMBER;
93148 
93149 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
93150 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
93151 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
93152 
93153 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93154 
93155 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
93156 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
93157 
93158 ---------------------------------------------------------------------------------------------------------------
93159 
93160 
93161 --
93162 -- bulk performance
93163 --
93164 l_balance_type_code           VARCHAR2(1);
93165 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
93166 l_log_module                  VARCHAR2(240);
93167 
93168 --
93169 -- Upgrade strategy
93170 --
93171 l_actual_upg_option           VARCHAR2(1);
93172 l_enc_upg_option           VARCHAR2(1);
93173 
93174 --
93175 BEGIN
93176 --
93177 IF g_log_enabled THEN
93178       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_166';
93179 END IF;
93180 --
93181 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93182 
93183       trace
93184          (p_msg      => 'BEGIN of AcctLineType_166'
93185          ,p_level    => C_LEVEL_PROCEDURE
93186          ,p_module   => l_log_module);
93187 
93188 END IF;
93189 --
93190 l_component_type             := 'AMB_JLT';
93191 l_component_code             := 'AP_RET_CASH_CLR_XRATE';
93192 l_component_type_code        := 'S';
93193 l_component_appl_id          :=  200;
93194 l_amb_context_code           := 'DEFAULT';
93195 l_entity_code                := 'AP_INVOICES';
93196 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
93197 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
93198 l_line_definition_owner_code := 'S';
93199 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
93200 --
93201 l_balance_type_code          := 'A';
93202 l_segment                     := NULL;
93203 l_ccid                        := NULL;
93204 l_adr_transaction_coa_id      := NULL;
93205 l_adr_accounting_coa_id       := NULL;
93206 l_adr_flexfield_segment_code  := NULL;
93207 l_adr_flex_value_set_id       := NULL;
93208 l_adr_value_type_code         := NULL;
93209 l_adr_value_combination_id    := NULL;
93210 l_adr_value_segment_code      := NULL;
93211 
93212 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
93216 
93213 l_bflow_class_code           := '';    -- 4219869 Business Flow
93214 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
93215 l_budgetary_control_flag     := 'N';
93217 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
93218 l_bflow_applied_to_amt       := NULL; -- 5132302
93219 l_entered_amt_idx            := NULL;          -- 4262811
93220 l_accted_amt_idx             := NULL;          -- 4262811
93221 l_acc_rev_flag               := NULL;          -- 4262811
93222 l_accrual_line_num           := NULL;          -- 4262811
93223 l_tmp_amt                    := NULL;          -- 4262811
93224 --
93225  
93226 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93227     l_balance_type_code <> 'B' THEN
93228 IF NVL(p_source_38,'
93229 ') =  'CLEAR_CLEAR' AND 
93230 NVL(p_source_68,'
93231 ') =  'RETAINAGE' AND 
93232 NVL(p_source_144,'
93233 ') <>  'RETAINAGE RELEASE' AND 
93234 (NVL(p_source_67,'
93235 ') =  'PREPAY APPL' OR 
93236 NVL(p_source_67,'
93237 ') =  'PREPAY APPL NONREC TAX' OR 
93238 NVL(p_source_67,'
93239 ') =  'PREPAY APPL REC TAX')
93240  THEN 
93241 
93242    --
93243    XLA_AE_LINES_PKG.SetNewLine;
93244 
93245    p_balance_type_code          := l_balance_type_code;
93246    -- set the flag so later we will know whether the gain loss line needs to be created
93247    
93248    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93249      p_actual_flag :='A';
93250    END IF;
93251 
93252    --
93253    -- bulk performance
93254    --
93255    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93256                                       p_header_num   => 0); -- 4262811
93257    --
93258    -- set accounting line options
93259    --
93260    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93261            p_natural_side_code          => 'C'
93262          , p_gain_or_loss_flag          => 'N'
93263          , p_gl_transfer_mode_code      => 'S'
93264          , p_acct_entry_type_code       => 'A'
93265          , p_switch_side_flag           => 'Y'
93266          , p_merge_duplicate_code       => 'A'
93267          );
93268    --
93269    l_acc_rev_natural_side_code := 'D';  -- 4262811
93270    -- 
93271    --
93272    -- set accounting line type info
93273    --
93274    xla_ae_lines_pkg.SetAcctLineType
93275       (p_component_type             => l_component_type
93276       ,p_event_type_code            => l_event_type_code
93277       ,p_line_definition_owner_code => l_line_definition_owner_code
93278       ,p_line_definition_code       => l_line_definition_code
93279       ,p_accounting_line_code       => l_component_code
93280       ,p_accounting_line_type_code  => l_component_type_code
93281       ,p_accounting_line_appl_id    => l_component_appl_id
93282       ,p_amb_context_code           => l_amb_context_code
93283       ,p_entity_code                => l_entity_code
93284       ,p_event_class_code           => l_event_class_code);
93285    --
93286    -- set accounting class
93287    --
93288    xla_ae_lines_pkg.SetAcctClass(
93289            p_accounting_class_code  => 'RETAINAGE'
93290          , p_ae_header_id           => l_ae_header_id
93291          );
93292 
93293    --
93294    -- set rounding class
93295    --
93296    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93297                       'RETAINAGE';
93298 
93299    --
93300    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93301    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93302    --
93303    -- bulk performance
93304    --
93305    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93306 
93307    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93308       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93309 
93310    -- 4955764
93311    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93312       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93313 
93314    -- 4458381 Public Sector Enh
93315    
93316    --
93317    -- set accounting attributes for the line type
93318    --
93319    l_entered_amt_idx := 25;
93320    l_accted_amt_idx  := 30;
93321    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
93322    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93323    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
93324    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
93325    l_rec_acct_attrs.array_num_value(2)  := 
93326 xla_ae_sources_pkg.GetSystemSourceNum(
93327    p_source_code           => 'XLA_EVENT_APPL_ID'
93328  , p_source_type_code      => 'Y'
93329  , p_source_application_id =>  602
93330 );
93331    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
93332    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
93333    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
93334    l_rec_acct_attrs.array_char_value(4)  := 
93335 xla_ae_sources_pkg.GetSystemSourceChar(
93336    p_source_code           => 'XLA_ENTITY_CODE'
93337  , p_source_type_code      => 'Y'
93338  , p_source_application_id =>  602
93339 );
93343    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
93340    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
93341    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
93342    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
93344    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
93345    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
93346    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93347    l_rec_acct_attrs.array_char_value(8)  := p_source_62;
93348    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
93349    l_rec_acct_attrs.array_char_value(9)  := p_source_63;
93350    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
93351    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_145);
93352    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93353    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_146);
93354    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
93355    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
93356    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
93357    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
93358    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
93359    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
93360    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
93361    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
93362    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
93363    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
93364    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
93365    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
93366    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
93367    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
93368    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
93369    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
93370    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
93371    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
93372    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
93373    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
93374    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
93375    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
93376    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
93377    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
93378    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
93379    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
93380    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
93381    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
93382    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
93383    l_rec_acct_attrs.array_char_value(26)  := p_source_80;
93384    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
93385    l_rec_acct_attrs.array_date_value(27)  := p_source_124;
93386    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
93387    l_rec_acct_attrs.array_num_value(28)  := p_source_125;
93388    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
93389    l_rec_acct_attrs.array_char_value(29)  := p_source_126;
93390    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
93391    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
93392    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
93393    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
93394    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
93395    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
93396    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
93397    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
93398    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
93399    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
93400    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
93401    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
93402    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
93403    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
93404    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
93405    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
93406    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
93407    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
93408    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
93409    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
93410    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
93411    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
93412    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
93413    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
93414    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
93415    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
93416    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
93417    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
93418    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
93419    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
93420 
93421    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93422    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93423 
93427    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93424    ---------------------------------------------------------------------------------------------------------------
93425    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93426    ---------------------------------------------------------------------------------------------------------------
93428 
93429    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93430    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93431 
93432    IF xla_accounting_cache_pkg.GetValueChar
93433          (p_source_code         => 'LEDGER_CATEGORY_CODE'
93434          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93435    AND l_bflow_method_code = 'PRIOR_ENTRY'
93436 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93437    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93438          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93439        )
93440    THEN
93441          xla_ae_lines_pkg.BflowUpgEntry
93442            (p_business_method_code    => l_bflow_method_code
93443            ,p_business_class_code     => l_bflow_class_code
93444            ,p_balance_type            => l_balance_type_code);
93445    ELSE
93446       NULL;
93447 -- No business flow processing for business flow method of NONE.
93448    END IF;
93449 
93450    --
93451    -- call analytical criteria
93452    --
93453    
93454    --
93455    -- call description
93456    --
93457    -- No description or it is inherited.
93458    --
93459    -- call ADRs
93460    -- Bug 4922099
93461    --
93462    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93463         (NVL(l_actual_upg_option, 'N') = 'O') OR
93464         (NVL(l_enc_upg_option, 'N') = 'O')
93465       )
93466    THEN
93467    NULL;
93468    --
93469    --
93470    
93471   l_ccid := AcctDerRule_34(
93472            p_application_id           => p_application_id
93473          , p_ae_header_id             => l_ae_header_id 
93474 , p_source_4 => p_source_4
93475 , p_source_4_meaning => p_source_4_meaning
93476 , p_source_17 => p_source_17
93477 , p_source_23 => p_source_23
93478          , x_transaction_coa_id       => l_adr_transaction_coa_id
93479          , x_accounting_coa_id        => l_adr_accounting_coa_id
93480          , x_value_type_code          => l_adr_value_type_code
93481          , p_side                     => 'NA'
93482    );
93483 
93484    xla_ae_lines_pkg.set_ccid(
93485     p_code_combination_id          => l_ccid
93486   , p_value_type_code              => l_adr_value_type_code
93487   , p_transaction_coa_id           => l_adr_transaction_coa_id
93488   , p_accounting_coa_id            => l_adr_accounting_coa_id
93489   , p_adr_code                     => 'AP_RETAINAGE'
93490   , p_adr_type_code                => 'S'
93491   , p_component_type               => l_component_type
93492   , p_component_code               => l_component_code
93493   , p_component_type_code          => l_component_type_code
93494   , p_component_appl_id            => l_component_appl_id
93495   , p_amb_context_code             => l_amb_context_code
93496   , p_side                         => 'NA'
93497   );
93498 
93499 
93500    l_segment := AcctDerRule_12(
93501            p_application_id           => p_application_id
93502          , p_ae_header_id             => l_ae_header_id 
93503 , p_source_22 => p_source_22
93504          , x_transaction_coa_id       => l_adr_transaction_coa_id
93505          , x_accounting_coa_id        => l_adr_accounting_coa_id
93506          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
93507          , x_flex_value_set_id        => l_adr_flex_value_set_id
93508          , x_value_type_code          => l_adr_value_type_code
93509          , x_value_combination_id     => l_adr_value_combination_id
93510          , x_value_segment_code       => l_adr_value_segment_code
93511          , p_side                     => 'NA'
93512          , p_override_seg_flag        => 'Y'
93513    );
93514 
93515    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
93516 
93517       xla_ae_lines_pkg.set_segment(
93518           p_to_segment_code         => 'GL_ACCOUNT'
93519         , p_segment_value           => l_segment
93520         , p_from_segment_code       => l_adr_value_segment_code
93521         , p_from_combination_id     => l_adr_value_combination_id
93522         , p_value_type_code         => l_adr_value_type_code
93523         , p_transaction_coa_id      => l_adr_transaction_coa_id
93524         , p_accounting_coa_id       => l_adr_accounting_coa_id
93525         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
93526         , p_flex_value_set_id       => l_adr_flex_value_set_id
93527         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
93528         , p_adr_type_code           => 'S'
93529         , p_component_type          => l_component_type
93530         , p_component_code          => l_component_code
93531         , p_component_type_code     => l_component_type_code
93532         , p_component_appl_id       => l_component_appl_id
93533         , p_amb_context_code        => l_amb_context_code
93534         , p_entity_code             => 'AP_INVOICES'
93535         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
93536         , p_side                    => 'NA'
93540 
93537         );
93538 
93539   END IF;
93541    l_segment := AcctDerRule_16(
93542            p_application_id           => p_application_id
93543          , p_ae_header_id             => l_ae_header_id 
93544 , p_source_4 => p_source_4
93545 , p_source_4_meaning => p_source_4_meaning
93546 , p_source_23 => p_source_23
93547          , x_transaction_coa_id       => l_adr_transaction_coa_id
93548          , x_accounting_coa_id        => l_adr_accounting_coa_id
93549          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
93550          , x_flex_value_set_id        => l_adr_flex_value_set_id
93551          , x_value_type_code          => l_adr_value_type_code
93552          , x_value_combination_id     => l_adr_value_combination_id
93553          , x_value_segment_code       => l_adr_value_segment_code
93554          , p_side                     => 'NA'
93555          , p_override_seg_flag        => 'Y'
93556    );
93557 
93558    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
93559 
93560       xla_ae_lines_pkg.set_segment(
93561           p_to_segment_code         => 'GL_BALANCING'
93562         , p_segment_value           => l_segment
93563         , p_from_segment_code       => l_adr_value_segment_code
93564         , p_from_combination_id     => l_adr_value_combination_id
93565         , p_value_type_code         => l_adr_value_type_code
93566         , p_transaction_coa_id      => l_adr_transaction_coa_id
93567         , p_accounting_coa_id       => l_adr_accounting_coa_id
93568         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
93569         , p_flex_value_set_id       => l_adr_flex_value_set_id
93570         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
93571         , p_adr_type_code           => 'S'
93572         , p_component_type          => l_component_type
93573         , p_component_code          => l_component_code
93574         , p_component_type_code     => l_component_type_code
93575         , p_component_appl_id       => l_component_appl_id
93576         , p_amb_context_code        => l_amb_context_code
93577         , p_entity_code             => 'AP_INVOICES'
93578         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
93579         , p_side                    => 'NA'
93580         );
93581 
93582   END IF;
93583 
93584    --
93585    --
93586    END IF;
93587    --
93588    -- Bug 4922099
93589    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93590           (NVL(l_enc_upg_option, 'N') = 'O')
93591         ) AND
93592         (l_bflow_method_code = 'PRIOR_ENTRY')
93593       )
93594    THEN
93595       IF
93596       --
93597       1 = 2
93598       --
93599       THEN
93600       xla_accounting_err_pkg.build_message
93601                                     (p_appli_s_name            => 'XLA'
93602                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93603                                     ,p_token_1                 => 'LINE_NUMBER'
93604                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
93605                                     ,p_token_2                 => 'LINE_TYPE_NAME'
93606                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
93607                                                                              l_component_type
93608                                                                             ,l_component_code
93609                                                                             ,l_component_type_code
93610                                                                             ,l_component_appl_id
93611                                                                             ,l_amb_context_code
93612                                                                             ,l_entity_code
93613                                                                             ,l_event_class_code
93614                                                                            )
93615                                     ,p_token_3                 => 'OWNER'
93616                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
93617                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
93618                                                                           ,p_lookup_code    => l_component_type_code
93619                                                                          )
93620                                     ,p_token_4                 => 'PRODUCT_NAME'
93621                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93622                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93623                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93624                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93625                                     ,p_ae_header_id            =>  NULL
93626                                        );
93627 
93628         IF (C_LEVEL_ERROR>= g_log_level) THEN
93629                  trace
93630                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93631                       ,p_level    => C_LEVEL_ERROR
93632                       ,p_module   => l_log_module);
93633         END IF;
93634       END IF;
93635    END IF;
93636    --
93637    --
93641    -- Prior Entry.  Currently, the following code is always generated.
93638    ------------------------------------------------------------------------------------------------
93639    -- 4219869 Business Flow
93640    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93642    ------------------------------------------------------------------------------------------------
93643    XLA_AE_LINES_PKG.ValidateCurrentLine;
93644 
93645    ------------------------------------------------------------------------------------
93646    -- 4219869 Business Flow
93647    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93648    ------------------------------------------------------------------------------------
93649    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93650 
93651    ----------------------------------------------------------------------------------
93652    -- 4219869 Business Flow
93653    -- Update journal entry status -- Need to generate this within IF <condition>
93654    ----------------------------------------------------------------------------------
93655    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93656          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93657          ,p_balance_type_code => l_balance_type_code
93658          );
93659 
93660    -------------------------------------------------------------------------------------------
93661    -- 4262811 - Generate the Accrual Reversal lines
93662    -------------------------------------------------------------------------------------------
93663    BEGIN
93664       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93665                               (g_array_event(p_event_id).array_value_num('header_index'));
93666       IF l_acc_rev_flag IS NULL THEN
93667          l_acc_rev_flag := 'N';
93668       END IF;
93669    EXCEPTION
93670       WHEN OTHERS THEN
93671          l_acc_rev_flag := 'N';
93672    END;
93673    --
93674    IF (l_acc_rev_flag = 'Y') THEN
93675 
93676        -- 4645092  ------------------------------------------------------------------------------
93677        -- To allow MPA report to determine if it should generate report process
93678        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93679        ------------------------------------------------------------------------------------------
93680 
93681        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93682        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93683    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
93684    -- call ADRs
93685    -- Bug 4922099
93686    --
93687    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93688         (NVL(l_actual_upg_option, 'N') = 'O') OR
93689         (NVL(l_enc_upg_option, 'N') = 'O')
93690       )
93691    THEN
93692    NULL;
93693    --
93694    --
93695    
93696   l_ccid := AcctDerRule_34(
93697            p_application_id           => p_application_id
93698          , p_ae_header_id             => l_ae_header_id 
93699 , p_source_4 => p_source_4
93700 , p_source_4_meaning => p_source_4_meaning
93701 , p_source_17 => p_source_17
93702 , p_source_23 => p_source_23
93703          , x_transaction_coa_id       => l_adr_transaction_coa_id
93704          , x_accounting_coa_id        => l_adr_accounting_coa_id
93705          , x_value_type_code          => l_adr_value_type_code
93706          , p_side                     => 'NA'
93707    );
93708 
93709    xla_ae_lines_pkg.set_ccid(
93710     p_code_combination_id          => l_ccid
93711   , p_value_type_code              => l_adr_value_type_code
93712   , p_transaction_coa_id           => l_adr_transaction_coa_id
93713   , p_accounting_coa_id            => l_adr_accounting_coa_id
93714   , p_adr_code                     => 'AP_RETAINAGE'
93715   , p_adr_type_code                => 'S'
93716   , p_component_type               => l_component_type
93717   , p_component_code               => l_component_code
93718   , p_component_type_code          => l_component_type_code
93719   , p_component_appl_id            => l_component_appl_id
93720   , p_amb_context_code             => l_amb_context_code
93721   , p_side                         => 'NA'
93722   );
93723 
93724 
93725    l_segment := AcctDerRule_12(
93726            p_application_id           => p_application_id
93727          , p_ae_header_id             => l_ae_header_id 
93728 , p_source_22 => p_source_22
93729          , x_transaction_coa_id       => l_adr_transaction_coa_id
93730          , x_accounting_coa_id        => l_adr_accounting_coa_id
93731          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
93732          , x_flex_value_set_id        => l_adr_flex_value_set_id
93733          , x_value_type_code          => l_adr_value_type_code
93734          , x_value_combination_id     => l_adr_value_combination_id
93735          , x_value_segment_code       => l_adr_value_segment_code
93736          , p_side                     => 'NA'
93737          , p_override_seg_flag        => 'Y'
93738    );
93739 
93740    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
93741 
93742       xla_ae_lines_pkg.set_segment(
93743           p_to_segment_code         => 'GL_ACCOUNT'
93744         , p_segment_value           => l_segment
93745         , p_from_segment_code       => l_adr_value_segment_code
93746         , p_from_combination_id     => l_adr_value_combination_id
93747         , p_value_type_code         => l_adr_value_type_code
93751         , p_flex_value_set_id       => l_adr_flex_value_set_id
93748         , p_transaction_coa_id      => l_adr_transaction_coa_id
93749         , p_accounting_coa_id       => l_adr_accounting_coa_id
93750         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
93752         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
93753         , p_adr_type_code           => 'S'
93754         , p_component_type          => l_component_type
93755         , p_component_code          => l_component_code
93756         , p_component_type_code     => l_component_type_code
93757         , p_component_appl_id       => l_component_appl_id
93758         , p_amb_context_code        => l_amb_context_code
93759         , p_entity_code             => 'AP_INVOICES'
93760         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
93761         , p_side                    => 'NA'
93762         );
93763 
93764   END IF;
93765 
93766    l_segment := AcctDerRule_16(
93767            p_application_id           => p_application_id
93768          , p_ae_header_id             => l_ae_header_id 
93769 , p_source_4 => p_source_4
93770 , p_source_4_meaning => p_source_4_meaning
93771 , p_source_23 => p_source_23
93772          , x_transaction_coa_id       => l_adr_transaction_coa_id
93773          , x_accounting_coa_id        => l_adr_accounting_coa_id
93774          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
93775          , x_flex_value_set_id        => l_adr_flex_value_set_id
93776          , x_value_type_code          => l_adr_value_type_code
93777          , x_value_combination_id     => l_adr_value_combination_id
93778          , x_value_segment_code       => l_adr_value_segment_code
93779          , p_side                     => 'NA'
93780          , p_override_seg_flag        => 'Y'
93781    );
93782 
93783    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
93784 
93785       xla_ae_lines_pkg.set_segment(
93786           p_to_segment_code         => 'GL_BALANCING'
93787         , p_segment_value           => l_segment
93788         , p_from_segment_code       => l_adr_value_segment_code
93789         , p_from_combination_id     => l_adr_value_combination_id
93790         , p_value_type_code         => l_adr_value_type_code
93791         , p_transaction_coa_id      => l_adr_transaction_coa_id
93792         , p_accounting_coa_id       => l_adr_accounting_coa_id
93793         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
93794         , p_flex_value_set_id       => l_adr_flex_value_set_id
93795         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
93796         , p_adr_type_code           => 'S'
93797         , p_component_type          => l_component_type
93798         , p_component_code          => l_component_code
93799         , p_component_type_code     => l_component_type_code
93800         , p_component_appl_id       => l_component_appl_id
93801         , p_amb_context_code        => l_amb_context_code
93802         , p_entity_code             => 'AP_INVOICES'
93803         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
93804         , p_side                    => 'NA'
93805         );
93806 
93807   END IF;
93808 
93809    --
93810    --
93811    END IF;
93812 
93813        --
93814        -- Update the line information that should be overwritten
93815        --
93816        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93817                                          p_header_num   => 1);
93818        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
93819 
93820        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93821 
93822        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
93823           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93824        END IF;
93825 
93826       --
93827       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93828       --
93829       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93830           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
93831       ELSE
93832           ---------------------------------------------------------------------------------------------------
93833           -- 4262811a Switch Sign
93834           ---------------------------------------------------------------------------------------------------
93835           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
93836           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93837                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93838           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93839                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93840           -- 5132302
93841           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93842                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93843 
93844       END IF;
93845 
93846       -- 4955764
93847       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93848       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93849 
93853 
93850 
93851       XLA_AE_LINES_PKG.ValidateCurrentLine;
93852       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93854       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93855                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93856                ,p_balance_type_code => l_balance_type_code);
93857 
93858    END IF;
93859 
93860    -----------------------------------------------------------------------------------------
93861    -- 4262811 Multiperiod Accounting
93862    -----------------------------------------------------------------------------------------
93863      -- No MPA option is assigned.
93864 
93865 
93866 END IF;
93867 END IF;
93868 --
93869 
93870 --
93871 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93872    trace
93873       (p_msg      => 'END of AcctLineType_166'
93874       ,p_level    => C_LEVEL_PROCEDURE
93875       ,p_module   => l_log_module);
93876 END IF;
93877 --
93878 EXCEPTION
93879   WHEN xla_exceptions_pkg.application_exception THEN
93880       RAISE;
93881   WHEN OTHERS THEN
93882        xla_exceptions_pkg.raise_message
93883            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_166');
93884 END AcctLineType_166;
93885 --
93886 
93887 ---------------------------------------
93888 --
93889 -- PRIVATE FUNCTION
93890 --         AcctLineType_167
93891 --
93892 ---------------------------------------
93893 PROCEDURE AcctLineType_167 (
93894   p_application_id        IN NUMBER
93895  ,p_event_id              IN NUMBER
93896  ,p_calculate_acctd_flag  IN VARCHAR2
93897  ,p_calculate_g_l_flag    IN VARCHAR2
93898  ,p_actual_flag           IN OUT VARCHAR2
93899  ,p_balance_type_code     OUT VARCHAR2
93900  ,p_gain_or_loss_ref      OUT VARCHAR2
93901  
93902 --Automatic Offsets Value
93903  , p_source_4            IN VARCHAR2
93904  , p_source_4_meaning    IN VARCHAR2
93905 --Invoice Distribution Account
93906  , p_source_17            IN NUMBER
93907 --Retainage Account
93908  , p_source_22            IN NUMBER
93909 --Retainage Related Item Distribution Account
93910  , p_source_23            IN NUMBER
93911 --When to Account for Payment Option
93912  , p_source_38            IN VARCHAR2
93913 --Accounting Reversal Indicator
93914  , p_source_40            IN VARCHAR2
93915 --Business Flow Accounts Payable Application Identifier
93916  , p_source_42            IN NUMBER
93917 --Distribution Link Type
93918  , p_source_48            IN VARCHAR2
93919 --Override Accounted Amount Indicator
93920  , p_source_53            IN VARCHAR2
93921  , p_source_53_meaning    IN VARCHAR2
93922 --Third Party Type
93923  , p_source_56            IN VARCHAR2
93924 --Invoice Distribution Tax Line Identifier
93925  , p_source_58            IN NUMBER
93926 --Invoice Distribution Summary Tax Line Identifier
93927  , p_source_59            IN NUMBER
93928 --Business Flow Invoice Distribution Type
93929  , p_source_62            IN VARCHAR2
93930 --Business Flow Invoice Entity Code
93931  , p_source_63            IN VARCHAR2
93932 --Invoice Distribution Tax Distribution Identifier from Tax
93933  , p_source_66            IN NUMBER
93934 --Prepayment Distribution Type
93935  , p_source_67            IN VARCHAR2
93936 --Recipient Invoice Distribution Type
93937  , p_source_68            IN VARCHAR2
93938  , p_source_68_meaning    IN VARCHAR2
93939 --Prepayment Application Distribution Identifier
93940  , p_source_71            IN NUMBER
93941 --Invoice Identifier
93942  , p_source_72            IN NUMBER
93943 --Upgrade Encumbrance Credit Account Class
93944  , p_source_77            IN VARCHAR2
93945 --Payables Encumbrance Upgrade Credit Account
93946  , p_source_78            IN NUMBER
93947 --Payables Encumbrance Upgrade Credit Amount
93948  , p_source_79            IN NUMBER
93949 --Invoice Currency Code
93950  , p_source_80            IN VARCHAR2
93951 --Payables Encumbrance Upgrade Credit Base Amount
93952  , p_source_81            IN NUMBER
93953 --Upgrade Encumbrance Debit Account Class
93954  , p_source_82            IN VARCHAR2
93955 --Payables Encumbrance Upgrade Debit Account
93956  , p_source_83            IN NUMBER
93957 --Payables Encumbrance Upgrade Debit Amount
93958  , p_source_84            IN NUMBER
93959 --Payables Encumbrance Upgrade Debit Base Amount
93960  , p_source_85            IN NUMBER
93961 --Payables Encumbrance Upgrade Option
93962  , p_source_86            IN VARCHAR2
93963 --Prepayment Distribution Amount
93964  , p_source_87            IN NUMBER
93965 --Deferred Accounting End Date
93966  , p_source_90            IN DATE
93967 --Deferred Accounting Option
93968  , p_source_91            IN VARCHAR2
93969 --Deferred Accounting Start Date
93970  , p_source_92            IN DATE
93971 --Invoice Supplier Identifier
93972  , p_source_93            IN NUMBER
93973 --Invoice Supplier Site Identifier
93974  , p_source_94            IN NUMBER
93975 --Identifier of the Prepayment Application Reversed
93976  , p_source_95            IN NUMBER
93977 --Payables Upgrade Credit Encumbrance Type Identifier
93978  , p_source_96            IN NUMBER
93979 --Payables Upgrade Debit Encumbrance Type Identifier
93980  , p_source_97            IN NUMBER
93981 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
93982  , p_source_99            IN NUMBER
93983 --Invoice Exchange Date
93984  , p_source_124            IN DATE
93985 --Invoice Exchange Rate
93986  , p_source_125            IN NUMBER
93987 --Invoice Exchange Rate Type
93991  , p_source_144_meaning    IN VARCHAR2
93988  , p_source_126            IN VARCHAR2
93989 --Prepayment Application Recipient Invoice Type
93990  , p_source_144            IN VARCHAR2
93992 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
93993  , p_source_145            IN NUMBER
93994 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
93995  , p_source_146            IN NUMBER
93996 )
93997 IS
93998 
93999 l_component_type              VARCHAR2(80);
94000 l_component_code              VARCHAR2(30);
94001 l_component_type_code         VARCHAR2(1);
94002 l_component_appl_id           INTEGER;
94003 l_amb_context_code            VARCHAR2(30);
94004 l_entity_code                 VARCHAR2(30);
94005 l_event_class_code            VARCHAR2(30);
94006 l_ae_header_id                NUMBER;
94007 l_event_type_code             VARCHAR2(30);
94008 l_line_definition_code        VARCHAR2(30);
94009 l_line_definition_owner_code  VARCHAR2(1);
94010 --
94011 -- adr variables
94012 l_segment                     VARCHAR2(30);
94013 l_ccid                        NUMBER;
94014 l_adr_transaction_coa_id      NUMBER;
94015 l_adr_accounting_coa_id       NUMBER;
94016 l_adr_flexfield_segment_code  VARCHAR2(30);
94017 l_adr_flex_value_set_id       NUMBER;
94018 l_adr_value_type_code         VARCHAR2(30);
94019 l_adr_value_combination_id    NUMBER;
94020 l_adr_value_segment_code      VARCHAR2(30);
94021 
94022 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
94023 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
94024 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
94025 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
94026 
94027 -- 4262811 Variables ------------------------------------------------------------------------------------------
94028 l_entered_amt_idx             NUMBER;
94029 l_accted_amt_idx              NUMBER;
94030 l_acc_rev_flag                VARCHAR2(1);
94031 l_accrual_line_num            NUMBER;
94032 l_tmp_amt                     NUMBER;
94033 l_acc_rev_natural_side_code   VARCHAR2(1);
94034 
94035 l_num_entries                 NUMBER;
94036 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
94037 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
94038 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
94039 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
94040 l_recog_line_1                NUMBER;
94041 l_recog_line_2                NUMBER;
94042 
94043 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
94044 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
94045 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
94046 
94047 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94048 
94049 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
94050 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
94051 
94052 ---------------------------------------------------------------------------------------------------------------
94053 
94054 
94055 --
94056 -- bulk performance
94057 --
94058 l_balance_type_code           VARCHAR2(1);
94059 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
94060 l_log_module                  VARCHAR2(240);
94061 
94062 --
94063 -- Upgrade strategy
94064 --
94065 l_actual_upg_option           VARCHAR2(1);
94066 l_enc_upg_option           VARCHAR2(1);
94067 
94068 --
94069 BEGIN
94070 --
94071 IF g_log_enabled THEN
94072       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_167';
94073 END IF;
94074 --
94075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94076 
94077       trace
94078          (p_msg      => 'BEGIN of AcctLineType_167'
94079          ,p_level    => C_LEVEL_PROCEDURE
94080          ,p_module   => l_log_module);
94081 
94082 END IF;
94083 --
94084 l_component_type             := 'AMB_JLT';
94085 l_component_code             := 'AP_RET_CASH_PAY_XRATE';
94086 l_component_type_code        := 'S';
94087 l_component_appl_id          :=  200;
94088 l_amb_context_code           := 'DEFAULT';
94089 l_entity_code                := 'AP_INVOICES';
94090 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
94091 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
94092 l_line_definition_owner_code := 'S';
94093 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
94094 --
94095 l_balance_type_code          := 'A';
94096 l_segment                     := NULL;
94097 l_ccid                        := NULL;
94098 l_adr_transaction_coa_id      := NULL;
94099 l_adr_accounting_coa_id       := NULL;
94100 l_adr_flexfield_segment_code  := NULL;
94101 l_adr_flex_value_set_id       := NULL;
94102 l_adr_value_type_code         := NULL;
94103 l_adr_value_combination_id    := NULL;
94104 l_adr_value_segment_code      := NULL;
94105 
94106 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
94107 l_bflow_class_code           := '';    -- 4219869 Business Flow
94108 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
94109 l_budgetary_control_flag     := 'N';
94110 
94111 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
94112 l_bflow_applied_to_amt       := NULL; -- 5132302
94116 l_accrual_line_num           := NULL;          -- 4262811
94113 l_entered_amt_idx            := NULL;          -- 4262811
94114 l_accted_amt_idx             := NULL;          -- 4262811
94115 l_acc_rev_flag               := NULL;          -- 4262811
94117 l_tmp_amt                    := NULL;          -- 4262811
94118 --
94119  
94120 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94121     l_balance_type_code <> 'B' THEN
94122 IF NVL(p_source_38,'
94123 ') <>  'CLEAR_CLEAR' AND 
94124 NVL(p_source_68,'
94125 ') =  'RETAINAGE' AND 
94126 NVL(p_source_144,'
94127 ') <>  'RETAINAGE RELEASE' AND 
94128 (NVL(p_source_67,'
94129 ') =  'PREPAY APPL' OR 
94130 NVL(p_source_67,'
94131 ') =  'PREPAY APPL NONREC TAX' OR 
94132 NVL(p_source_67,'
94133 ') =  'PREPAY APPL REC TAX')
94134  THEN 
94135 
94136    --
94137    XLA_AE_LINES_PKG.SetNewLine;
94138 
94139    p_balance_type_code          := l_balance_type_code;
94140    -- set the flag so later we will know whether the gain loss line needs to be created
94141    
94142    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
94143      p_actual_flag :='A';
94144    END IF;
94145 
94146    --
94147    -- bulk performance
94148    --
94149    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94150                                       p_header_num   => 0); -- 4262811
94151    --
94152    -- set accounting line options
94153    --
94154    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94155            p_natural_side_code          => 'C'
94156          , p_gain_or_loss_flag          => 'N'
94157          , p_gl_transfer_mode_code      => 'S'
94158          , p_acct_entry_type_code       => 'A'
94159          , p_switch_side_flag           => 'Y'
94160          , p_merge_duplicate_code       => 'A'
94161          );
94162    --
94163    l_acc_rev_natural_side_code := 'D';  -- 4262811
94164    -- 
94165    --
94166    -- set accounting line type info
94167    --
94168    xla_ae_lines_pkg.SetAcctLineType
94169       (p_component_type             => l_component_type
94170       ,p_event_type_code            => l_event_type_code
94171       ,p_line_definition_owner_code => l_line_definition_owner_code
94172       ,p_line_definition_code       => l_line_definition_code
94173       ,p_accounting_line_code       => l_component_code
94174       ,p_accounting_line_type_code  => l_component_type_code
94175       ,p_accounting_line_appl_id    => l_component_appl_id
94176       ,p_amb_context_code           => l_amb_context_code
94177       ,p_entity_code                => l_entity_code
94178       ,p_event_class_code           => l_event_class_code);
94179    --
94180    -- set accounting class
94181    --
94182    xla_ae_lines_pkg.SetAcctClass(
94183            p_accounting_class_code  => 'RETAINAGE'
94184          , p_ae_header_id           => l_ae_header_id
94185          );
94186 
94187    --
94188    -- set rounding class
94189    --
94190    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94191                       'RETAINAGE';
94192 
94193    --
94194    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94195    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94196    --
94197    -- bulk performance
94198    --
94199    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94200 
94201    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94202       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94203 
94204    -- 4955764
94205    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94206       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94207 
94208    -- 4458381 Public Sector Enh
94209    
94210    --
94211    -- set accounting attributes for the line type
94212    --
94213    l_entered_amt_idx := 25;
94214    l_accted_amt_idx  := 30;
94215    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
94216    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
94217    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
94218    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
94219    l_rec_acct_attrs.array_num_value(2)  := 
94220 xla_ae_sources_pkg.GetSystemSourceNum(
94221    p_source_code           => 'XLA_EVENT_APPL_ID'
94222  , p_source_type_code      => 'Y'
94223  , p_source_application_id =>  602
94224 );
94225    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
94226    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
94227    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
94228    l_rec_acct_attrs.array_char_value(4)  := 
94229 xla_ae_sources_pkg.GetSystemSourceChar(
94230    p_source_code           => 'XLA_ENTITY_CODE'
94231  , p_source_type_code      => 'Y'
94232  , p_source_application_id =>  602
94233 );
94234    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
94235    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
94236    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
94237    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
94238    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
94239    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
94243    l_rec_acct_attrs.array_char_value(9)  := p_source_63;
94240    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
94241    l_rec_acct_attrs.array_char_value(8)  := p_source_62;
94242    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
94244    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
94245    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_145);
94246    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
94247    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_146);
94248    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
94249    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
94250    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
94251    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
94252    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
94253    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
94254    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
94255    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
94256    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
94257    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
94258    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
94259    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
94260    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
94261    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
94262    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
94263    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
94264    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
94265    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
94266    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
94267    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
94268    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
94269    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
94270    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
94271    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
94272    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
94273    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
94274    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
94275    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
94276    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
94277    l_rec_acct_attrs.array_char_value(26)  := p_source_80;
94278    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
94279    l_rec_acct_attrs.array_date_value(27)  := p_source_124;
94280    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
94281    l_rec_acct_attrs.array_num_value(28)  := p_source_125;
94282    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
94283    l_rec_acct_attrs.array_char_value(29)  := p_source_126;
94284    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
94285    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
94286    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
94287    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
94288    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
94289    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
94290    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
94291    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
94292    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
94293    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
94294    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
94295    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
94296    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
94297    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
94298    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
94299    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
94300    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
94301    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
94302    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
94303    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
94304    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
94305    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
94306    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
94307    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
94308    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
94309    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
94310    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
94311    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
94312    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
94313    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
94314 
94315    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
94316    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
94317 
94318    ---------------------------------------------------------------------------------------------------------------
94319    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
94320    ---------------------------------------------------------------------------------------------------------------
94324    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94321    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
94322 
94323    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94325 
94326    IF xla_accounting_cache_pkg.GetValueChar
94327          (p_source_code         => 'LEDGER_CATEGORY_CODE'
94328          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
94329    AND l_bflow_method_code = 'PRIOR_ENTRY'
94330 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
94331    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
94332          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
94333        )
94334    THEN
94335          xla_ae_lines_pkg.BflowUpgEntry
94336            (p_business_method_code    => l_bflow_method_code
94337            ,p_business_class_code     => l_bflow_class_code
94338            ,p_balance_type            => l_balance_type_code);
94339    ELSE
94340       NULL;
94341 -- No business flow processing for business flow method of NONE.
94342    END IF;
94343 
94344    --
94345    -- call analytical criteria
94346    --
94347    
94348    --
94349    -- call description
94350    --
94351    -- No description or it is inherited.
94352    --
94353    -- call ADRs
94354    -- Bug 4922099
94355    --
94356    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94357         (NVL(l_actual_upg_option, 'N') = 'O') OR
94358         (NVL(l_enc_upg_option, 'N') = 'O')
94359       )
94360    THEN
94361    NULL;
94362    --
94363    --
94364    
94365   l_ccid := AcctDerRule_34(
94366            p_application_id           => p_application_id
94367          , p_ae_header_id             => l_ae_header_id 
94368 , p_source_4 => p_source_4
94369 , p_source_4_meaning => p_source_4_meaning
94370 , p_source_17 => p_source_17
94371 , p_source_23 => p_source_23
94372          , x_transaction_coa_id       => l_adr_transaction_coa_id
94373          , x_accounting_coa_id        => l_adr_accounting_coa_id
94374          , x_value_type_code          => l_adr_value_type_code
94375          , p_side                     => 'NA'
94376    );
94377 
94378    xla_ae_lines_pkg.set_ccid(
94379     p_code_combination_id          => l_ccid
94380   , p_value_type_code              => l_adr_value_type_code
94381   , p_transaction_coa_id           => l_adr_transaction_coa_id
94382   , p_accounting_coa_id            => l_adr_accounting_coa_id
94383   , p_adr_code                     => 'AP_RETAINAGE'
94384   , p_adr_type_code                => 'S'
94385   , p_component_type               => l_component_type
94386   , p_component_code               => l_component_code
94387   , p_component_type_code          => l_component_type_code
94388   , p_component_appl_id            => l_component_appl_id
94389   , p_amb_context_code             => l_amb_context_code
94390   , p_side                         => 'NA'
94391   );
94392 
94393 
94394    l_segment := AcctDerRule_12(
94395            p_application_id           => p_application_id
94396          , p_ae_header_id             => l_ae_header_id 
94397 , p_source_22 => p_source_22
94398          , x_transaction_coa_id       => l_adr_transaction_coa_id
94399          , x_accounting_coa_id        => l_adr_accounting_coa_id
94400          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94401          , x_flex_value_set_id        => l_adr_flex_value_set_id
94402          , x_value_type_code          => l_adr_value_type_code
94403          , x_value_combination_id     => l_adr_value_combination_id
94404          , x_value_segment_code       => l_adr_value_segment_code
94405          , p_side                     => 'NA'
94406          , p_override_seg_flag        => 'Y'
94407    );
94408 
94409    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94410 
94411       xla_ae_lines_pkg.set_segment(
94412           p_to_segment_code         => 'GL_ACCOUNT'
94413         , p_segment_value           => l_segment
94414         , p_from_segment_code       => l_adr_value_segment_code
94415         , p_from_combination_id     => l_adr_value_combination_id
94416         , p_value_type_code         => l_adr_value_type_code
94417         , p_transaction_coa_id      => l_adr_transaction_coa_id
94418         , p_accounting_coa_id       => l_adr_accounting_coa_id
94419         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94420         , p_flex_value_set_id       => l_adr_flex_value_set_id
94421         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
94422         , p_adr_type_code           => 'S'
94423         , p_component_type          => l_component_type
94424         , p_component_code          => l_component_code
94425         , p_component_type_code     => l_component_type_code
94426         , p_component_appl_id       => l_component_appl_id
94427         , p_amb_context_code        => l_amb_context_code
94428         , p_entity_code             => 'AP_INVOICES'
94429         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
94430         , p_side                    => 'NA'
94431         );
94432 
94433   END IF;
94434 
94435    l_segment := AcctDerRule_16(
94436            p_application_id           => p_application_id
94437          , p_ae_header_id             => l_ae_header_id 
94438 , p_source_4 => p_source_4
94442          , x_accounting_coa_id        => l_adr_accounting_coa_id
94439 , p_source_4_meaning => p_source_4_meaning
94440 , p_source_23 => p_source_23
94441          , x_transaction_coa_id       => l_adr_transaction_coa_id
94443          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94444          , x_flex_value_set_id        => l_adr_flex_value_set_id
94445          , x_value_type_code          => l_adr_value_type_code
94446          , x_value_combination_id     => l_adr_value_combination_id
94447          , x_value_segment_code       => l_adr_value_segment_code
94448          , p_side                     => 'NA'
94449          , p_override_seg_flag        => 'Y'
94450    );
94451 
94452    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94453 
94454       xla_ae_lines_pkg.set_segment(
94455           p_to_segment_code         => 'GL_BALANCING'
94456         , p_segment_value           => l_segment
94457         , p_from_segment_code       => l_adr_value_segment_code
94458         , p_from_combination_id     => l_adr_value_combination_id
94459         , p_value_type_code         => l_adr_value_type_code
94460         , p_transaction_coa_id      => l_adr_transaction_coa_id
94461         , p_accounting_coa_id       => l_adr_accounting_coa_id
94462         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94463         , p_flex_value_set_id       => l_adr_flex_value_set_id
94464         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
94465         , p_adr_type_code           => 'S'
94466         , p_component_type          => l_component_type
94467         , p_component_code          => l_component_code
94468         , p_component_type_code     => l_component_type_code
94469         , p_component_appl_id       => l_component_appl_id
94470         , p_amb_context_code        => l_amb_context_code
94471         , p_entity_code             => 'AP_INVOICES'
94472         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
94473         , p_side                    => 'NA'
94474         );
94475 
94476   END IF;
94477 
94478    --
94479    --
94480    END IF;
94481    --
94482    -- Bug 4922099
94483    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
94484           (NVL(l_enc_upg_option, 'N') = 'O')
94485         ) AND
94486         (l_bflow_method_code = 'PRIOR_ENTRY')
94487       )
94488    THEN
94489       IF
94490       --
94491       1 = 2
94492       --
94493       THEN
94494       xla_accounting_err_pkg.build_message
94495                                     (p_appli_s_name            => 'XLA'
94496                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94497                                     ,p_token_1                 => 'LINE_NUMBER'
94498                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
94499                                     ,p_token_2                 => 'LINE_TYPE_NAME'
94500                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
94501                                                                              l_component_type
94502                                                                             ,l_component_code
94503                                                                             ,l_component_type_code
94504                                                                             ,l_component_appl_id
94505                                                                             ,l_amb_context_code
94506                                                                             ,l_entity_code
94507                                                                             ,l_event_class_code
94508                                                                            )
94509                                     ,p_token_3                 => 'OWNER'
94510                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
94511                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
94512                                                                           ,p_lookup_code    => l_component_type_code
94513                                                                          )
94514                                     ,p_token_4                 => 'PRODUCT_NAME'
94515                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94516                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94517                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94518                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94519                                     ,p_ae_header_id            =>  NULL
94520                                        );
94521 
94522         IF (C_LEVEL_ERROR>= g_log_level) THEN
94523                  trace
94524                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94525                       ,p_level    => C_LEVEL_ERROR
94526                       ,p_module   => l_log_module);
94527         END IF;
94528       END IF;
94529    END IF;
94530    --
94531    --
94532    ------------------------------------------------------------------------------------------------
94533    -- 4219869 Business Flow
94534    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94538 
94535    -- Prior Entry.  Currently, the following code is always generated.
94536    ------------------------------------------------------------------------------------------------
94537    XLA_AE_LINES_PKG.ValidateCurrentLine;
94539    ------------------------------------------------------------------------------------
94540    -- 4219869 Business Flow
94541    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94542    ------------------------------------------------------------------------------------
94543    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94544 
94545    ----------------------------------------------------------------------------------
94546    -- 4219869 Business Flow
94547    -- Update journal entry status -- Need to generate this within IF <condition>
94548    ----------------------------------------------------------------------------------
94549    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94550          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94551          ,p_balance_type_code => l_balance_type_code
94552          );
94553 
94554    -------------------------------------------------------------------------------------------
94555    -- 4262811 - Generate the Accrual Reversal lines
94556    -------------------------------------------------------------------------------------------
94557    BEGIN
94558       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94559                               (g_array_event(p_event_id).array_value_num('header_index'));
94560       IF l_acc_rev_flag IS NULL THEN
94561          l_acc_rev_flag := 'N';
94562       END IF;
94563    EXCEPTION
94564       WHEN OTHERS THEN
94565          l_acc_rev_flag := 'N';
94566    END;
94567    --
94568    IF (l_acc_rev_flag = 'Y') THEN
94569 
94570        -- 4645092  ------------------------------------------------------------------------------
94571        -- To allow MPA report to determine if it should generate report process
94572        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94573        ------------------------------------------------------------------------------------------
94574 
94575        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94576        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94577    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
94578    -- call ADRs
94579    -- Bug 4922099
94580    --
94581    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94582         (NVL(l_actual_upg_option, 'N') = 'O') OR
94583         (NVL(l_enc_upg_option, 'N') = 'O')
94584       )
94585    THEN
94586    NULL;
94587    --
94588    --
94589    
94590   l_ccid := AcctDerRule_34(
94591            p_application_id           => p_application_id
94592          , p_ae_header_id             => l_ae_header_id 
94593 , p_source_4 => p_source_4
94594 , p_source_4_meaning => p_source_4_meaning
94595 , p_source_17 => p_source_17
94596 , p_source_23 => p_source_23
94597          , x_transaction_coa_id       => l_adr_transaction_coa_id
94598          , x_accounting_coa_id        => l_adr_accounting_coa_id
94599          , x_value_type_code          => l_adr_value_type_code
94600          , p_side                     => 'NA'
94601    );
94602 
94603    xla_ae_lines_pkg.set_ccid(
94604     p_code_combination_id          => l_ccid
94605   , p_value_type_code              => l_adr_value_type_code
94606   , p_transaction_coa_id           => l_adr_transaction_coa_id
94607   , p_accounting_coa_id            => l_adr_accounting_coa_id
94608   , p_adr_code                     => 'AP_RETAINAGE'
94609   , p_adr_type_code                => 'S'
94610   , p_component_type               => l_component_type
94611   , p_component_code               => l_component_code
94612   , p_component_type_code          => l_component_type_code
94613   , p_component_appl_id            => l_component_appl_id
94614   , p_amb_context_code             => l_amb_context_code
94615   , p_side                         => 'NA'
94616   );
94617 
94618 
94619    l_segment := AcctDerRule_12(
94620            p_application_id           => p_application_id
94621          , p_ae_header_id             => l_ae_header_id 
94622 , p_source_22 => p_source_22
94623          , x_transaction_coa_id       => l_adr_transaction_coa_id
94624          , x_accounting_coa_id        => l_adr_accounting_coa_id
94625          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94626          , x_flex_value_set_id        => l_adr_flex_value_set_id
94627          , x_value_type_code          => l_adr_value_type_code
94628          , x_value_combination_id     => l_adr_value_combination_id
94629          , x_value_segment_code       => l_adr_value_segment_code
94630          , p_side                     => 'NA'
94631          , p_override_seg_flag        => 'Y'
94632    );
94633 
94634    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94635 
94636       xla_ae_lines_pkg.set_segment(
94637           p_to_segment_code         => 'GL_ACCOUNT'
94638         , p_segment_value           => l_segment
94639         , p_from_segment_code       => l_adr_value_segment_code
94640         , p_from_combination_id     => l_adr_value_combination_id
94641         , p_value_type_code         => l_adr_value_type_code
94642         , p_transaction_coa_id      => l_adr_transaction_coa_id
94643         , p_accounting_coa_id       => l_adr_accounting_coa_id
94644         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94645         , p_flex_value_set_id       => l_adr_flex_value_set_id
94646         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
94650         , p_component_type_code     => l_component_type_code
94647         , p_adr_type_code           => 'S'
94648         , p_component_type          => l_component_type
94649         , p_component_code          => l_component_code
94651         , p_component_appl_id       => l_component_appl_id
94652         , p_amb_context_code        => l_amb_context_code
94653         , p_entity_code             => 'AP_INVOICES'
94654         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
94655         , p_side                    => 'NA'
94656         );
94657 
94658   END IF;
94659 
94660    l_segment := AcctDerRule_16(
94661            p_application_id           => p_application_id
94662          , p_ae_header_id             => l_ae_header_id 
94663 , p_source_4 => p_source_4
94664 , p_source_4_meaning => p_source_4_meaning
94665 , p_source_23 => p_source_23
94666          , x_transaction_coa_id       => l_adr_transaction_coa_id
94667          , x_accounting_coa_id        => l_adr_accounting_coa_id
94668          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94669          , x_flex_value_set_id        => l_adr_flex_value_set_id
94670          , x_value_type_code          => l_adr_value_type_code
94671          , x_value_combination_id     => l_adr_value_combination_id
94672          , x_value_segment_code       => l_adr_value_segment_code
94673          , p_side                     => 'NA'
94674          , p_override_seg_flag        => 'Y'
94675    );
94676 
94677    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94678 
94679       xla_ae_lines_pkg.set_segment(
94680           p_to_segment_code         => 'GL_BALANCING'
94681         , p_segment_value           => l_segment
94682         , p_from_segment_code       => l_adr_value_segment_code
94683         , p_from_combination_id     => l_adr_value_combination_id
94684         , p_value_type_code         => l_adr_value_type_code
94685         , p_transaction_coa_id      => l_adr_transaction_coa_id
94686         , p_accounting_coa_id       => l_adr_accounting_coa_id
94687         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94688         , p_flex_value_set_id       => l_adr_flex_value_set_id
94689         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
94690         , p_adr_type_code           => 'S'
94691         , p_component_type          => l_component_type
94692         , p_component_code          => l_component_code
94693         , p_component_type_code     => l_component_type_code
94694         , p_component_appl_id       => l_component_appl_id
94695         , p_amb_context_code        => l_amb_context_code
94696         , p_entity_code             => 'AP_INVOICES'
94697         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
94698         , p_side                    => 'NA'
94699         );
94700 
94701   END IF;
94702 
94703    --
94704    --
94705    END IF;
94706 
94707        --
94708        -- Update the line information that should be overwritten
94709        --
94710        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94711                                          p_header_num   => 1);
94712        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
94713 
94714        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94715 
94716        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
94717           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94718        END IF;
94719 
94720       --
94721       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94722       --
94723       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94724           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
94725       ELSE
94726           ---------------------------------------------------------------------------------------------------
94727           -- 4262811a Switch Sign
94728           ---------------------------------------------------------------------------------------------------
94729           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
94730           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94731                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94732           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94733                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94734           -- 5132302
94735           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94736                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94737 
94738       END IF;
94739 
94740       -- 4955764
94741       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94742       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94743 
94744 
94745       XLA_AE_LINES_PKG.ValidateCurrentLine;
94746       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94747 
94748       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94749                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94750                ,p_balance_type_code => l_balance_type_code);
94751 
94755    -- 4262811 Multiperiod Accounting
94752    END IF;
94753 
94754    -----------------------------------------------------------------------------------------
94756    -----------------------------------------------------------------------------------------
94757      -- No MPA option is assigned.
94758 
94759 
94760 END IF;
94761 END IF;
94762 --
94763 
94764 --
94765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94766    trace
94767       (p_msg      => 'END of AcctLineType_167'
94768       ,p_level    => C_LEVEL_PROCEDURE
94769       ,p_module   => l_log_module);
94770 END IF;
94771 --
94772 EXCEPTION
94773   WHEN xla_exceptions_pkg.application_exception THEN
94774       RAISE;
94775   WHEN OTHERS THEN
94776        xla_exceptions_pkg.raise_message
94777            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_167');
94778 END AcctLineType_167;
94779 --
94780 
94781 ---------------------------------------
94782 --
94783 -- PRIVATE FUNCTION
94784 --         AcctLineType_168
94785 --
94786 ---------------------------------------
94787 PROCEDURE AcctLineType_168 (
94788   p_application_id        IN NUMBER
94789  ,p_event_id              IN NUMBER
94790  ,p_calculate_acctd_flag  IN VARCHAR2
94791  ,p_calculate_g_l_flag    IN VARCHAR2
94792  ,p_actual_flag           IN OUT VARCHAR2
94793  ,p_balance_type_code     OUT VARCHAR2
94794  ,p_gain_or_loss_ref      OUT VARCHAR2
94795  
94796 --When to Account for Payment Option
94797  , p_source_38            IN VARCHAR2
94798 --Accounting Reversal Indicator
94799  , p_source_40            IN VARCHAR2
94800 --Business Flow Accounts Payable Application Identifier
94801  , p_source_42            IN NUMBER
94802 --Distribution Link Type
94803  , p_source_48            IN VARCHAR2
94804 --Override Accounted Amount Indicator
94805  , p_source_53            IN VARCHAR2
94806  , p_source_53_meaning    IN VARCHAR2
94807 --Third Party Type
94808  , p_source_56            IN VARCHAR2
94809 --Invoice Distribution Tax Line Identifier
94810  , p_source_58            IN NUMBER
94811 --Invoice Distribution Summary Tax Line Identifier
94812  , p_source_59            IN NUMBER
94813 --Business Flow Invoice Distribution Type
94814  , p_source_62            IN VARCHAR2
94815 --Business Flow Invoice Entity Code
94816  , p_source_63            IN VARCHAR2
94817 --Invoice Distribution Tax Distribution Identifier from Tax
94818  , p_source_66            IN NUMBER
94819 --Prepayment Distribution Type
94820  , p_source_67            IN VARCHAR2
94821 --Recipient Invoice Distribution Type
94822  , p_source_68            IN VARCHAR2
94823  , p_source_68_meaning    IN VARCHAR2
94824 --Prepayment Application Distribution Identifier
94825  , p_source_71            IN NUMBER
94826 --Invoice Identifier
94827  , p_source_72            IN NUMBER
94828 --Upgrade Encumbrance Credit Account Class
94829  , p_source_77            IN VARCHAR2
94830 --Payables Encumbrance Upgrade Credit Account
94831  , p_source_78            IN NUMBER
94832 --Payables Encumbrance Upgrade Credit Amount
94833  , p_source_79            IN NUMBER
94834 --Invoice Currency Code
94835  , p_source_80            IN VARCHAR2
94836 --Payables Encumbrance Upgrade Credit Base Amount
94837  , p_source_81            IN NUMBER
94838 --Upgrade Encumbrance Debit Account Class
94839  , p_source_82            IN VARCHAR2
94840 --Payables Encumbrance Upgrade Debit Account
94841  , p_source_83            IN NUMBER
94842 --Payables Encumbrance Upgrade Debit Amount
94843  , p_source_84            IN NUMBER
94844 --Payables Encumbrance Upgrade Debit Base Amount
94845  , p_source_85            IN NUMBER
94846 --Payables Encumbrance Upgrade Option
94847  , p_source_86            IN VARCHAR2
94848 --Prepayment Distribution Amount
94849  , p_source_87            IN NUMBER
94850 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
94851  , p_source_89            IN NUMBER
94852 --Deferred Accounting End Date
94853  , p_source_90            IN DATE
94854 --Deferred Accounting Option
94855  , p_source_91            IN VARCHAR2
94856 --Deferred Accounting Start Date
94857  , p_source_92            IN DATE
94858 --Identifier of the Prepayment Application Reversed
94859  , p_source_95            IN NUMBER
94860 --Payables Upgrade Credit Encumbrance Type Identifier
94861  , p_source_96            IN NUMBER
94862 --Payables Upgrade Debit Encumbrance Type Identifier
94863  , p_source_97            IN NUMBER
94864 --Prepayment Application Recipient Invoice Type
94865  , p_source_144            IN VARCHAR2
94866  , p_source_144_meaning    IN VARCHAR2
94867 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
94868  , p_source_145            IN NUMBER
94869 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
94870  , p_source_146            IN NUMBER
94871 )
94872 IS
94873 
94874 l_component_type              VARCHAR2(80);
94875 l_component_code              VARCHAR2(30);
94876 l_component_type_code         VARCHAR2(1);
94877 l_component_appl_id           INTEGER;
94878 l_amb_context_code            VARCHAR2(30);
94879 l_entity_code                 VARCHAR2(30);
94880 l_event_class_code            VARCHAR2(30);
94881 l_ae_header_id                NUMBER;
94882 l_event_type_code             VARCHAR2(30);
94883 l_line_definition_code        VARCHAR2(30);
94884 l_line_definition_owner_code  VARCHAR2(1);
94885 --
94886 -- adr variables
94887 l_segment                     VARCHAR2(30);
94891 l_adr_flexfield_segment_code  VARCHAR2(30);
94888 l_ccid                        NUMBER;
94889 l_adr_transaction_coa_id      NUMBER;
94890 l_adr_accounting_coa_id       NUMBER;
94892 l_adr_flex_value_set_id       NUMBER;
94893 l_adr_value_type_code         VARCHAR2(30);
94894 l_adr_value_combination_id    NUMBER;
94895 l_adr_value_segment_code      VARCHAR2(30);
94896 
94897 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
94898 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
94899 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
94900 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
94901 
94902 -- 4262811 Variables ------------------------------------------------------------------------------------------
94903 l_entered_amt_idx             NUMBER;
94904 l_accted_amt_idx              NUMBER;
94905 l_acc_rev_flag                VARCHAR2(1);
94906 l_accrual_line_num            NUMBER;
94907 l_tmp_amt                     NUMBER;
94908 l_acc_rev_natural_side_code   VARCHAR2(1);
94909 
94910 l_num_entries                 NUMBER;
94911 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
94912 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
94913 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
94914 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
94915 l_recog_line_1                NUMBER;
94916 l_recog_line_2                NUMBER;
94917 
94918 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
94919 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
94920 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
94921 
94922 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94923 
94924 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
94925 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
94926 
94927 ---------------------------------------------------------------------------------------------------------------
94928 
94929 
94930 --
94931 -- bulk performance
94932 --
94933 l_balance_type_code           VARCHAR2(1);
94934 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
94935 l_log_module                  VARCHAR2(240);
94936 
94937 --
94938 -- Upgrade strategy
94939 --
94940 l_actual_upg_option           VARCHAR2(1);
94941 l_enc_upg_option           VARCHAR2(1);
94942 
94943 --
94944 BEGIN
94945 --
94946 IF g_log_enabled THEN
94947       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_168';
94948 END IF;
94949 --
94950 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94951 
94952       trace
94953          (p_msg      => 'BEGIN of AcctLineType_168'
94954          ,p_level    => C_LEVEL_PROCEDURE
94955          ,p_module   => l_log_module);
94956 
94957 END IF;
94958 --
94959 l_component_type             := 'AMB_JLT';
94960 l_component_code             := 'AP_RET_REL_CASH_CLR_XRATE';
94961 l_component_type_code        := 'S';
94962 l_component_appl_id          :=  200;
94963 l_amb_context_code           := 'DEFAULT';
94964 l_entity_code                := 'AP_INVOICES';
94965 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
94966 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
94967 l_line_definition_owner_code := 'S';
94968 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
94969 --
94970 l_balance_type_code          := 'A';
94971 l_segment                     := NULL;
94972 l_ccid                        := NULL;
94973 l_adr_transaction_coa_id      := NULL;
94974 l_adr_accounting_coa_id       := NULL;
94975 l_adr_flexfield_segment_code  := NULL;
94976 l_adr_flex_value_set_id       := NULL;
94977 l_adr_value_type_code         := NULL;
94978 l_adr_value_combination_id    := NULL;
94979 l_adr_value_segment_code      := NULL;
94980 
94981 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
94982 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
94983 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
94984 l_budgetary_control_flag     := 'N';
94985 
94986 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
94987 l_bflow_applied_to_amt       := NULL; -- 5132302
94988 l_entered_amt_idx            := NULL;          -- 4262811
94989 l_accted_amt_idx             := NULL;          -- 4262811
94990 l_acc_rev_flag               := NULL;          -- 4262811
94991 l_accrual_line_num           := NULL;          -- 4262811
94992 l_tmp_amt                    := NULL;          -- 4262811
94993 --
94994  
94995 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94996     l_balance_type_code <> 'B' THEN
94997 IF NVL(p_source_38,'
94998 ') =  'CLEAR_CLEAR' AND 
94999 NVL(p_source_68,'
95000 ') =  'RETAINAGE' AND 
95001 NVL(p_source_144,'
95002 ') =  'RETAINAGE RELEASE' AND 
95003 (NVL(p_source_67,'
95004 ') =  'PREPAY APPL' OR 
95005 NVL(p_source_67,'
95006 ') =  'PREPAY APPL NONREC TAX' OR 
95007 NVL(p_source_67,'
95008 ') =  'PREPAY APPL REC TAX')
95009  THEN 
95010 
95011    --
95012    XLA_AE_LINES_PKG.SetNewLine;
95013 
95014    p_balance_type_code          := l_balance_type_code;
95018      p_actual_flag :='A';
95015    -- set the flag so later we will know whether the gain loss line needs to be created
95016    
95017    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
95019    END IF;
95020 
95021    --
95022    -- bulk performance
95023    --
95024    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95025                                       p_header_num   => 0); -- 4262811
95026    --
95027    -- set accounting line options
95028    --
95029    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95030            p_natural_side_code          => 'C'
95031          , p_gain_or_loss_flag          => 'N'
95032          , p_gl_transfer_mode_code      => 'S'
95033          , p_acct_entry_type_code       => 'A'
95034          , p_switch_side_flag           => 'Y'
95035          , p_merge_duplicate_code       => 'A'
95036          );
95037    --
95038    l_acc_rev_natural_side_code := 'D';  -- 4262811
95039    -- 
95040    --
95041    -- set accounting line type info
95042    --
95043    xla_ae_lines_pkg.SetAcctLineType
95044       (p_component_type             => l_component_type
95045       ,p_event_type_code            => l_event_type_code
95046       ,p_line_definition_owner_code => l_line_definition_owner_code
95047       ,p_line_definition_code       => l_line_definition_code
95048       ,p_accounting_line_code       => l_component_code
95049       ,p_accounting_line_type_code  => l_component_type_code
95050       ,p_accounting_line_appl_id    => l_component_appl_id
95051       ,p_amb_context_code           => l_amb_context_code
95052       ,p_entity_code                => l_entity_code
95053       ,p_event_class_code           => l_event_class_code);
95054    --
95055    -- set accounting class
95056    --
95057    xla_ae_lines_pkg.SetAcctClass(
95058            p_accounting_class_code  => 'RETAINAGE'
95059          , p_ae_header_id           => l_ae_header_id
95060          );
95061 
95062    --
95063    -- set rounding class
95064    --
95065    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95066                       'RETAINAGE';
95067 
95068    --
95069    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95070    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95071    --
95072    -- bulk performance
95073    --
95074    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95075 
95076    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95077       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95078 
95079    -- 4955764
95080    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95081       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95082 
95083    -- 4458381 Public Sector Enh
95084    
95085    --
95086    -- set accounting attributes for the line type
95087    --
95088    l_entered_amt_idx := 25;
95089    l_accted_amt_idx  := 27;
95090    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
95091    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95092    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
95093    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
95094    l_rec_acct_attrs.array_num_value(2)  := 
95095 xla_ae_sources_pkg.GetSystemSourceNum(
95096    p_source_code           => 'XLA_EVENT_APPL_ID'
95097  , p_source_type_code      => 'Y'
95098  , p_source_application_id =>  602
95099 );
95100    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
95101    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
95102    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
95103    l_rec_acct_attrs.array_char_value(4)  := 
95104 xla_ae_sources_pkg.GetSystemSourceChar(
95105    p_source_code           => 'XLA_ENTITY_CODE'
95106  , p_source_type_code      => 'Y'
95107  , p_source_application_id =>  602
95108 );
95109    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
95110    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
95111    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
95112    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
95113    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
95114    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
95115    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95116    l_rec_acct_attrs.array_char_value(8)  := p_source_62;
95117    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
95118    l_rec_acct_attrs.array_char_value(9)  := p_source_63;
95119    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
95120    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_145);
95121    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95122    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_146);
95123    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
95124    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
95125    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
95126    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
95127    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
95131    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
95128    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
95129    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
95130    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
95132    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
95133    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
95134    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
95135    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
95136    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
95137    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
95138    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
95139    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
95140    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
95141    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
95142    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
95143    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
95144    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
95145    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
95146    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
95147    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
95148    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
95149    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
95150    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
95151    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
95152    l_rec_acct_attrs.array_char_value(26)  := p_source_80;
95153    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
95154    l_rec_acct_attrs.array_num_value(27)  := p_source_89;
95155    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
95156    l_rec_acct_attrs.array_date_value(28)  := p_source_90;
95157    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
95158    l_rec_acct_attrs.array_char_value(29)  := p_source_91;
95159    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
95160    l_rec_acct_attrs.array_date_value(30)  := p_source_92;
95161    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
95162    l_rec_acct_attrs.array_char_value(31)  := p_source_53;
95163    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
95164    l_rec_acct_attrs.array_char_value(32)  := p_source_56;
95165    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
95166    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_95);
95167    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
95168    l_rec_acct_attrs.array_char_value(34)  := p_source_48;
95169    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
95170    l_rec_acct_attrs.array_num_value(35)  := p_source_58;
95171    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
95172    l_rec_acct_attrs.array_num_value(36)  := p_source_66;
95173    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
95174    l_rec_acct_attrs.array_num_value(37)  := p_source_59;
95175    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
95176    l_rec_acct_attrs.array_num_value(38)  := p_source_96;
95177    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
95178    l_rec_acct_attrs.array_num_value(39)  := p_source_97;
95179 
95180    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95181    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95182 
95183    ---------------------------------------------------------------------------------------------------------------
95184    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95185    ---------------------------------------------------------------------------------------------------------------
95186    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95187 
95188    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95189    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95190 
95191    IF xla_accounting_cache_pkg.GetValueChar
95192          (p_source_code         => 'LEDGER_CATEGORY_CODE'
95193          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95194    AND l_bflow_method_code = 'PRIOR_ENTRY'
95195 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95196    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95197          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95198        )
95199    THEN
95200          xla_ae_lines_pkg.BflowUpgEntry
95201            (p_business_method_code    => l_bflow_method_code
95202            ,p_business_class_code     => l_bflow_class_code
95203            ,p_balance_type            => l_balance_type_code);
95204    ELSE
95205       NULL;
95206 XLA_AE_LINES_PKG.business_flow_validation(
95207                                 p_business_method_code     => l_bflow_method_code
95208                                ,p_business_class_code      => l_bflow_class_code
95209                                ,p_inherit_description_flag => l_inherit_desc_flag);
95210    END IF;
95211 
95212    --
95213    -- call analytical criteria
95214    --
95215    -- Inherited Analytical Criteria for business flow method of Prior Entry.
95216    --
95217    -- call description
95218    --
95222    -- Bug 4922099
95219    -- No description or it is inherited.
95220    --
95221    -- call ADRs
95223    --
95224    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95225         (NVL(l_actual_upg_option, 'N') = 'O') OR
95226         (NVL(l_enc_upg_option, 'N') = 'O')
95227       )
95228    THEN
95229    NULL;
95230    --
95231    --
95232    
95233    --
95234    --
95235    END IF;
95236    --
95237    -- Bug 4922099
95238    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95239           (NVL(l_enc_upg_option, 'N') = 'O')
95240         ) AND
95241         (l_bflow_method_code = 'PRIOR_ENTRY')
95242       )
95243    THEN
95244       IF
95245       --
95246       1 = 1
95247       --
95248       THEN
95249       xla_accounting_err_pkg.build_message
95250                                     (p_appli_s_name            => 'XLA'
95251                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95252                                     ,p_token_1                 => 'LINE_NUMBER'
95253                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
95254                                     ,p_token_2                 => 'LINE_TYPE_NAME'
95255                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
95256                                                                              l_component_type
95257                                                                             ,l_component_code
95258                                                                             ,l_component_type_code
95259                                                                             ,l_component_appl_id
95260                                                                             ,l_amb_context_code
95261                                                                             ,l_entity_code
95262                                                                             ,l_event_class_code
95263                                                                            )
95264                                     ,p_token_3                 => 'OWNER'
95265                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
95266                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
95267                                                                           ,p_lookup_code    => l_component_type_code
95268                                                                          )
95269                                     ,p_token_4                 => 'PRODUCT_NAME'
95270                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95271                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95272                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95273                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95274                                     ,p_ae_header_id            =>  NULL
95275                                        );
95276 
95277         IF (C_LEVEL_ERROR>= g_log_level) THEN
95278                  trace
95279                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95280                       ,p_level    => C_LEVEL_ERROR
95281                       ,p_module   => l_log_module);
95282         END IF;
95283       END IF;
95284    END IF;
95285    --
95286    --
95287    ------------------------------------------------------------------------------------------------
95288    -- 4219869 Business Flow
95289    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95290    -- Prior Entry.  Currently, the following code is always generated.
95291    ------------------------------------------------------------------------------------------------
95292    -- No ValidateCurrentLine for business flow method of Prior Entry
95293 
95294    ------------------------------------------------------------------------------------
95295    -- 4219869 Business Flow
95296    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95297    ------------------------------------------------------------------------------------
95298    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95299 
95300    ----------------------------------------------------------------------------------
95301    -- 4219869 Business Flow
95302    -- Update journal entry status -- Need to generate this within IF <condition>
95303    ----------------------------------------------------------------------------------
95304    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95305          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95306          ,p_balance_type_code => l_balance_type_code
95307          );
95308 
95309    -------------------------------------------------------------------------------------------
95310    -- 4262811 - Generate the Accrual Reversal lines
95311    -------------------------------------------------------------------------------------------
95312    BEGIN
95313       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95314                               (g_array_event(p_event_id).array_value_num('header_index'));
95315       IF l_acc_rev_flag IS NULL THEN
95316          l_acc_rev_flag := 'N';
95317       END IF;
95318    EXCEPTION
95319       WHEN OTHERS THEN
95320          l_acc_rev_flag := 'N';
95321    END;
95322    --
95326        -- To allow MPA report to determine if it should generate report process
95323    IF (l_acc_rev_flag = 'Y') THEN
95324 
95325        -- 4645092  ------------------------------------------------------------------------------
95327        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95328        ------------------------------------------------------------------------------------------
95329 
95330        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95331        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95332    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
95333    -- call ADRs
95334    -- Bug 4922099
95335    --
95336    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95337         (NVL(l_actual_upg_option, 'N') = 'O') OR
95338         (NVL(l_enc_upg_option, 'N') = 'O')
95339       )
95340    THEN
95341    NULL;
95342    --
95343    --
95344    
95345    --
95346    --
95347    END IF;
95348 
95349        --
95350        -- Update the line information that should be overwritten
95351        --
95352        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95353                                          p_header_num   => 1);
95354        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
95355 
95356        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95357 
95358        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
95359           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
95360        END IF;
95361 
95362       --
95363       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
95364       --
95365       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
95366           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
95367       ELSE
95368           ---------------------------------------------------------------------------------------------------
95369           -- 4262811a Switch Sign
95370           ---------------------------------------------------------------------------------------------------
95371           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
95372           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95373                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95374           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95375                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95376           -- 5132302
95377           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
95378                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95379 
95380       END IF;
95381 
95382       -- 4955764
95383       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95384       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
95385 
95386 
95387       XLA_AE_LINES_PKG.ValidateCurrentLine;
95388       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95389 
95390       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95391                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
95392                ,p_balance_type_code => l_balance_type_code);
95393 
95394    END IF;
95395 
95396    -----------------------------------------------------------------------------------------
95397    -- 4262811 Multiperiod Accounting
95398    -----------------------------------------------------------------------------------------
95399      -- No MPA option is assigned.
95400 
95401 
95402 END IF;
95403 END IF;
95404 --
95405 
95406 --
95407 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95408    trace
95409       (p_msg      => 'END of AcctLineType_168'
95410       ,p_level    => C_LEVEL_PROCEDURE
95411       ,p_module   => l_log_module);
95412 END IF;
95413 --
95414 EXCEPTION
95415   WHEN xla_exceptions_pkg.application_exception THEN
95416       RAISE;
95417   WHEN OTHERS THEN
95418        xla_exceptions_pkg.raise_message
95419            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_168');
95420 END AcctLineType_168;
95421 --
95422 
95423 ---------------------------------------
95424 --
95425 -- PRIVATE FUNCTION
95426 --         AcctLineType_169
95427 --
95428 ---------------------------------------
95429 PROCEDURE AcctLineType_169 (
95430   p_application_id        IN NUMBER
95431  ,p_event_id              IN NUMBER
95432  ,p_calculate_acctd_flag  IN VARCHAR2
95433  ,p_calculate_g_l_flag    IN VARCHAR2
95434  ,p_actual_flag           IN OUT VARCHAR2
95435  ,p_balance_type_code     OUT VARCHAR2
95436  ,p_gain_or_loss_ref      OUT VARCHAR2
95437  
95438 --When to Account for Payment Option
95439  , p_source_38            IN VARCHAR2
95440 --Accounting Reversal Indicator
95441  , p_source_40            IN VARCHAR2
95442 --Business Flow Accounts Payable Application Identifier
95443  , p_source_42            IN NUMBER
95444 --Distribution Link Type
95445  , p_source_48            IN VARCHAR2
95446 --Override Accounted Amount Indicator
95447  , p_source_53            IN VARCHAR2
95451 --Invoice Distribution Tax Line Identifier
95448  , p_source_53_meaning    IN VARCHAR2
95449 --Third Party Type
95450  , p_source_56            IN VARCHAR2
95452  , p_source_58            IN NUMBER
95453 --Invoice Distribution Summary Tax Line Identifier
95454  , p_source_59            IN NUMBER
95455 --Business Flow Invoice Distribution Type
95456  , p_source_62            IN VARCHAR2
95457 --Business Flow Invoice Entity Code
95458  , p_source_63            IN VARCHAR2
95459 --Invoice Distribution Tax Distribution Identifier from Tax
95460  , p_source_66            IN NUMBER
95461 --Prepayment Distribution Type
95462  , p_source_67            IN VARCHAR2
95463 --Recipient Invoice Distribution Type
95464  , p_source_68            IN VARCHAR2
95465  , p_source_68_meaning    IN VARCHAR2
95466 --Prepayment Application Distribution Identifier
95467  , p_source_71            IN NUMBER
95468 --Invoice Identifier
95469  , p_source_72            IN NUMBER
95470 --Upgrade Encumbrance Credit Account Class
95471  , p_source_77            IN VARCHAR2
95472 --Payables Encumbrance Upgrade Credit Account
95473  , p_source_78            IN NUMBER
95474 --Payables Encumbrance Upgrade Credit Amount
95475  , p_source_79            IN NUMBER
95476 --Invoice Currency Code
95477  , p_source_80            IN VARCHAR2
95478 --Payables Encumbrance Upgrade Credit Base Amount
95479  , p_source_81            IN NUMBER
95480 --Upgrade Encumbrance Debit Account Class
95481  , p_source_82            IN VARCHAR2
95482 --Payables Encumbrance Upgrade Debit Account
95483  , p_source_83            IN NUMBER
95484 --Payables Encumbrance Upgrade Debit Amount
95485  , p_source_84            IN NUMBER
95486 --Payables Encumbrance Upgrade Debit Base Amount
95487  , p_source_85            IN NUMBER
95488 --Payables Encumbrance Upgrade Option
95489  , p_source_86            IN VARCHAR2
95490 --Prepayment Distribution Amount
95491  , p_source_87            IN NUMBER
95492 --Deferred Accounting End Date
95493  , p_source_90            IN DATE
95494 --Deferred Accounting Option
95495  , p_source_91            IN VARCHAR2
95496 --Deferred Accounting Start Date
95497  , p_source_92            IN DATE
95498 --Identifier of the Prepayment Application Reversed
95499  , p_source_95            IN NUMBER
95500 --Payables Upgrade Credit Encumbrance Type Identifier
95501  , p_source_96            IN NUMBER
95502 --Payables Upgrade Debit Encumbrance Type Identifier
95503  , p_source_97            IN NUMBER
95504 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
95505  , p_source_99            IN NUMBER
95506 --Prepayment Application Recipient Invoice Type
95507  , p_source_144            IN VARCHAR2
95508  , p_source_144_meaning    IN VARCHAR2
95509 --Business Flow Retained Invoice Distribution Associated with Prepay Recipient Inv
95510  , p_source_145            IN NUMBER
95511 --Business Flow Retained Invoice Associated with Prepayment Recipient Invoice
95512  , p_source_146            IN NUMBER
95513 )
95514 IS
95515 
95516 l_component_type              VARCHAR2(80);
95517 l_component_code              VARCHAR2(30);
95518 l_component_type_code         VARCHAR2(1);
95519 l_component_appl_id           INTEGER;
95520 l_amb_context_code            VARCHAR2(30);
95521 l_entity_code                 VARCHAR2(30);
95522 l_event_class_code            VARCHAR2(30);
95523 l_ae_header_id                NUMBER;
95524 l_event_type_code             VARCHAR2(30);
95525 l_line_definition_code        VARCHAR2(30);
95526 l_line_definition_owner_code  VARCHAR2(1);
95527 --
95528 -- adr variables
95529 l_segment                     VARCHAR2(30);
95530 l_ccid                        NUMBER;
95531 l_adr_transaction_coa_id      NUMBER;
95532 l_adr_accounting_coa_id       NUMBER;
95533 l_adr_flexfield_segment_code  VARCHAR2(30);
95534 l_adr_flex_value_set_id       NUMBER;
95535 l_adr_value_type_code         VARCHAR2(30);
95536 l_adr_value_combination_id    NUMBER;
95537 l_adr_value_segment_code      VARCHAR2(30);
95538 
95539 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
95540 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
95541 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
95542 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
95543 
95544 -- 4262811 Variables ------------------------------------------------------------------------------------------
95545 l_entered_amt_idx             NUMBER;
95546 l_accted_amt_idx              NUMBER;
95547 l_acc_rev_flag                VARCHAR2(1);
95548 l_accrual_line_num            NUMBER;
95549 l_tmp_amt                     NUMBER;
95550 l_acc_rev_natural_side_code   VARCHAR2(1);
95551 
95552 l_num_entries                 NUMBER;
95553 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
95554 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
95555 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
95556 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
95557 l_recog_line_1                NUMBER;
95558 l_recog_line_2                NUMBER;
95559 
95560 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
95561 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
95562 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
95563 
95567 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
95564 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95565 
95566 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
95568 
95569 ---------------------------------------------------------------------------------------------------------------
95570 
95571 
95572 --
95573 -- bulk performance
95574 --
95575 l_balance_type_code           VARCHAR2(1);
95576 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
95577 l_log_module                  VARCHAR2(240);
95578 
95579 --
95580 -- Upgrade strategy
95581 --
95582 l_actual_upg_option           VARCHAR2(1);
95583 l_enc_upg_option           VARCHAR2(1);
95584 
95585 --
95586 BEGIN
95587 --
95588 IF g_log_enabled THEN
95589       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_169';
95590 END IF;
95591 --
95592 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95593 
95594       trace
95595          (p_msg      => 'BEGIN of AcctLineType_169'
95596          ,p_level    => C_LEVEL_PROCEDURE
95597          ,p_module   => l_log_module);
95598 
95599 END IF;
95600 --
95601 l_component_type             := 'AMB_JLT';
95602 l_component_code             := 'AP_RET_REL_CASH_PAY_XRATE';
95603 l_component_type_code        := 'S';
95604 l_component_appl_id          :=  200;
95605 l_amb_context_code           := 'DEFAULT';
95606 l_entity_code                := 'AP_INVOICES';
95607 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
95608 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
95609 l_line_definition_owner_code := 'S';
95610 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
95611 --
95612 l_balance_type_code          := 'A';
95613 l_segment                     := NULL;
95614 l_ccid                        := NULL;
95615 l_adr_transaction_coa_id      := NULL;
95616 l_adr_accounting_coa_id       := NULL;
95617 l_adr_flexfield_segment_code  := NULL;
95618 l_adr_flex_value_set_id       := NULL;
95619 l_adr_value_type_code         := NULL;
95620 l_adr_value_combination_id    := NULL;
95621 l_adr_value_segment_code      := NULL;
95622 
95623 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
95624 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
95625 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
95626 l_budgetary_control_flag     := 'N';
95627 
95628 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
95629 l_bflow_applied_to_amt       := NULL; -- 5132302
95630 l_entered_amt_idx            := NULL;          -- 4262811
95631 l_accted_amt_idx             := NULL;          -- 4262811
95632 l_acc_rev_flag               := NULL;          -- 4262811
95633 l_accrual_line_num           := NULL;          -- 4262811
95634 l_tmp_amt                    := NULL;          -- 4262811
95635 --
95636  
95637 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95638     l_balance_type_code <> 'B' THEN
95639 IF NVL(p_source_38,'
95640 ') <>  'CLEAR_CLEAR' AND 
95641 NVL(p_source_68,'
95642 ') =  'RETAINAGE' AND 
95643 NVL(p_source_144,'
95644 ') =  'RETAINAGE RELEASE' AND 
95645 (NVL(p_source_67,'
95646 ') =  'PREPAY APPL' OR 
95647 NVL(p_source_67,'
95648 ') =  'PREPAY APPL NONREC TAX' OR 
95649 NVL(p_source_67,'
95650 ') =  'PREPAY APPL REC TAX')
95651  THEN 
95652 
95653    --
95654    XLA_AE_LINES_PKG.SetNewLine;
95655 
95656    p_balance_type_code          := l_balance_type_code;
95657    -- set the flag so later we will know whether the gain loss line needs to be created
95658    
95659    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
95660      p_actual_flag :='A';
95661    END IF;
95662 
95663    --
95664    -- bulk performance
95665    --
95666    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95667                                       p_header_num   => 0); -- 4262811
95668    --
95669    -- set accounting line options
95670    --
95671    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95672            p_natural_side_code          => 'C'
95673          , p_gain_or_loss_flag          => 'N'
95674          , p_gl_transfer_mode_code      => 'S'
95675          , p_acct_entry_type_code       => 'A'
95676          , p_switch_side_flag           => 'Y'
95677          , p_merge_duplicate_code       => 'A'
95678          );
95679    --
95680    l_acc_rev_natural_side_code := 'D';  -- 4262811
95681    -- 
95682    --
95683    -- set accounting line type info
95684    --
95685    xla_ae_lines_pkg.SetAcctLineType
95686       (p_component_type             => l_component_type
95687       ,p_event_type_code            => l_event_type_code
95688       ,p_line_definition_owner_code => l_line_definition_owner_code
95689       ,p_line_definition_code       => l_line_definition_code
95690       ,p_accounting_line_code       => l_component_code
95691       ,p_accounting_line_type_code  => l_component_type_code
95692       ,p_accounting_line_appl_id    => l_component_appl_id
95693       ,p_amb_context_code           => l_amb_context_code
95694       ,p_entity_code                => l_entity_code
95695       ,p_event_class_code           => l_event_class_code);
95696    --
95697    -- set accounting class
95698    --
95702          );
95699    xla_ae_lines_pkg.SetAcctClass(
95700            p_accounting_class_code  => 'RETAINAGE'
95701          , p_ae_header_id           => l_ae_header_id
95703 
95704    --
95705    -- set rounding class
95706    --
95707    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95708                       'RETAINAGE';
95709 
95710    --
95711    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95712    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95713    --
95714    -- bulk performance
95715    --
95716    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95717 
95718    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95719       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95720 
95721    -- 4955764
95722    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95723       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95724 
95725    -- 4458381 Public Sector Enh
95726    
95727    --
95728    -- set accounting attributes for the line type
95729    --
95730    l_entered_amt_idx := 25;
95731    l_accted_amt_idx  := 27;
95732    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
95733    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95734    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
95735    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
95736    l_rec_acct_attrs.array_num_value(2)  := 
95737 xla_ae_sources_pkg.GetSystemSourceNum(
95738    p_source_code           => 'XLA_EVENT_APPL_ID'
95739  , p_source_type_code      => 'Y'
95740  , p_source_application_id =>  602
95741 );
95742    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
95743    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
95744    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
95745    l_rec_acct_attrs.array_char_value(4)  := 
95746 xla_ae_sources_pkg.GetSystemSourceChar(
95747    p_source_code           => 'XLA_ENTITY_CODE'
95748  , p_source_type_code      => 'Y'
95749  , p_source_application_id =>  602
95750 );
95751    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
95752    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
95753    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
95754    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
95755    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
95756    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
95757    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95758    l_rec_acct_attrs.array_char_value(8)  := p_source_62;
95759    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
95760    l_rec_acct_attrs.array_char_value(9)  := p_source_63;
95761    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
95762    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_145);
95763    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95764    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_146);
95765    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
95766    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
95767    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
95768    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
95769    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
95770    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
95771    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
95772    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
95773    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
95774    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
95775    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
95776    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
95777    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
95778    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
95779    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
95780    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
95781    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
95782    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
95783    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
95784    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
95785    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
95786    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
95787    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
95788    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
95789    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
95790    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
95791    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
95792    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
95793    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
95794    l_rec_acct_attrs.array_char_value(26)  := p_source_80;
95795    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
95796    l_rec_acct_attrs.array_num_value(27)  := p_source_99;
95797    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
95801    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
95798    l_rec_acct_attrs.array_date_value(28)  := p_source_90;
95799    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
95800    l_rec_acct_attrs.array_char_value(29)  := p_source_91;
95802    l_rec_acct_attrs.array_date_value(30)  := p_source_92;
95803    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
95804    l_rec_acct_attrs.array_char_value(31)  := p_source_53;
95805    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
95806    l_rec_acct_attrs.array_char_value(32)  := p_source_56;
95807    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
95808    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_95);
95809    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
95810    l_rec_acct_attrs.array_char_value(34)  := p_source_48;
95811    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
95812    l_rec_acct_attrs.array_num_value(35)  := p_source_58;
95813    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
95814    l_rec_acct_attrs.array_num_value(36)  := p_source_66;
95815    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
95816    l_rec_acct_attrs.array_num_value(37)  := p_source_59;
95817    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
95818    l_rec_acct_attrs.array_num_value(38)  := p_source_96;
95819    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
95820    l_rec_acct_attrs.array_num_value(39)  := p_source_97;
95821 
95822    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95823    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95824 
95825    ---------------------------------------------------------------------------------------------------------------
95826    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95827    ---------------------------------------------------------------------------------------------------------------
95828    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95829 
95830    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95831    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95832 
95833    IF xla_accounting_cache_pkg.GetValueChar
95834          (p_source_code         => 'LEDGER_CATEGORY_CODE'
95835          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95836    AND l_bflow_method_code = 'PRIOR_ENTRY'
95837 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95838    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95839          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95840        )
95841    THEN
95842          xla_ae_lines_pkg.BflowUpgEntry
95843            (p_business_method_code    => l_bflow_method_code
95844            ,p_business_class_code     => l_bflow_class_code
95845            ,p_balance_type            => l_balance_type_code);
95846    ELSE
95847       NULL;
95848 XLA_AE_LINES_PKG.business_flow_validation(
95849                                 p_business_method_code     => l_bflow_method_code
95850                                ,p_business_class_code      => l_bflow_class_code
95851                                ,p_inherit_description_flag => l_inherit_desc_flag);
95852    END IF;
95853 
95854    --
95855    -- call analytical criteria
95856    --
95857    -- Inherited Analytical Criteria for business flow method of Prior Entry.
95858    --
95859    -- call description
95860    --
95861    -- No description or it is inherited.
95862    --
95863    -- call ADRs
95864    -- Bug 4922099
95865    --
95866    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95867         (NVL(l_actual_upg_option, 'N') = 'O') OR
95868         (NVL(l_enc_upg_option, 'N') = 'O')
95869       )
95870    THEN
95871    NULL;
95872    --
95873    --
95874    
95875    --
95876    --
95877    END IF;
95878    --
95879    -- Bug 4922099
95880    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95881           (NVL(l_enc_upg_option, 'N') = 'O')
95882         ) AND
95883         (l_bflow_method_code = 'PRIOR_ENTRY')
95884       )
95885    THEN
95886       IF
95887       --
95888       1 = 1
95889       --
95890       THEN
95891       xla_accounting_err_pkg.build_message
95892                                     (p_appli_s_name            => 'XLA'
95893                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95894                                     ,p_token_1                 => 'LINE_NUMBER'
95895                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
95896                                     ,p_token_2                 => 'LINE_TYPE_NAME'
95897                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
95898                                                                              l_component_type
95899                                                                             ,l_component_code
95900                                                                             ,l_component_type_code
95901                                                                             ,l_component_appl_id
95902                                                                             ,l_amb_context_code
95906                                     ,p_token_3                 => 'OWNER'
95903                                                                             ,l_entity_code
95904                                                                             ,l_event_class_code
95905                                                                            )
95907                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
95908                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
95909                                                                           ,p_lookup_code    => l_component_type_code
95910                                                                          )
95911                                     ,p_token_4                 => 'PRODUCT_NAME'
95912                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95913                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95914                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95915                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95916                                     ,p_ae_header_id            =>  NULL
95917                                        );
95918 
95919         IF (C_LEVEL_ERROR>= g_log_level) THEN
95920                  trace
95921                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95922                       ,p_level    => C_LEVEL_ERROR
95923                       ,p_module   => l_log_module);
95924         END IF;
95925       END IF;
95926    END IF;
95927    --
95928    --
95929    ------------------------------------------------------------------------------------------------
95930    -- 4219869 Business Flow
95931    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95932    -- Prior Entry.  Currently, the following code is always generated.
95933    ------------------------------------------------------------------------------------------------
95934    -- No ValidateCurrentLine for business flow method of Prior Entry
95935 
95936    ------------------------------------------------------------------------------------
95937    -- 4219869 Business Flow
95938    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95939    ------------------------------------------------------------------------------------
95940    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95941 
95942    ----------------------------------------------------------------------------------
95943    -- 4219869 Business Flow
95944    -- Update journal entry status -- Need to generate this within IF <condition>
95945    ----------------------------------------------------------------------------------
95946    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95947          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95948          ,p_balance_type_code => l_balance_type_code
95949          );
95950 
95951    -------------------------------------------------------------------------------------------
95952    -- 4262811 - Generate the Accrual Reversal lines
95953    -------------------------------------------------------------------------------------------
95954    BEGIN
95955       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95956                               (g_array_event(p_event_id).array_value_num('header_index'));
95957       IF l_acc_rev_flag IS NULL THEN
95958          l_acc_rev_flag := 'N';
95959       END IF;
95960    EXCEPTION
95961       WHEN OTHERS THEN
95962          l_acc_rev_flag := 'N';
95963    END;
95964    --
95965    IF (l_acc_rev_flag = 'Y') THEN
95966 
95967        -- 4645092  ------------------------------------------------------------------------------
95968        -- To allow MPA report to determine if it should generate report process
95969        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95970        ------------------------------------------------------------------------------------------
95971 
95972        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95973        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95974    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
95975    -- call ADRs
95976    -- Bug 4922099
95977    --
95978    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95979         (NVL(l_actual_upg_option, 'N') = 'O') OR
95980         (NVL(l_enc_upg_option, 'N') = 'O')
95981       )
95982    THEN
95983    NULL;
95984    --
95985    --
95986    
95987    --
95988    --
95989    END IF;
95990 
95991        --
95992        -- Update the line information that should be overwritten
95993        --
95994        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95995                                          p_header_num   => 1);
95996        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
95997 
95998        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95999 
96000        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
96001           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96002        END IF;
96003 
96004       --
96008           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
96005       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96006       --
96007       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96009       ELSE
96010           ---------------------------------------------------------------------------------------------------
96011           -- 4262811a Switch Sign
96012           ---------------------------------------------------------------------------------------------------
96013           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
96014           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96015                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96016           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96017                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96018           -- 5132302
96019           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96020                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96021 
96022       END IF;
96023 
96024       -- 4955764
96025       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96026       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96027 
96028 
96029       XLA_AE_LINES_PKG.ValidateCurrentLine;
96030       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96031 
96032       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96033                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96034                ,p_balance_type_code => l_balance_type_code);
96035 
96036    END IF;
96037 
96038    -----------------------------------------------------------------------------------------
96039    -- 4262811 Multiperiod Accounting
96040    -----------------------------------------------------------------------------------------
96041      -- No MPA option is assigned.
96042 
96043 
96044 END IF;
96045 END IF;
96046 --
96047 
96048 --
96049 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96050    trace
96051       (p_msg      => 'END of AcctLineType_169'
96052       ,p_level    => C_LEVEL_PROCEDURE
96053       ,p_module   => l_log_module);
96054 END IF;
96055 --
96056 EXCEPTION
96057   WHEN xla_exceptions_pkg.application_exception THEN
96058       RAISE;
96059   WHEN OTHERS THEN
96060        xla_exceptions_pkg.raise_message
96061            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_169');
96062 END AcctLineType_169;
96063 --
96064 
96065 ---------------------------------------
96066 --
96067 -- PRIVATE FUNCTION
96068 --         AcctLineType_170
96069 --
96070 ---------------------------------------
96071 PROCEDURE AcctLineType_170 (
96072   p_application_id        IN NUMBER
96073  ,p_event_id              IN NUMBER
96074  ,p_calculate_acctd_flag  IN VARCHAR2
96075  ,p_calculate_g_l_flag    IN VARCHAR2
96076  ,p_actual_flag           IN OUT VARCHAR2
96077  ,p_balance_type_code     OUT VARCHAR2
96078  ,p_gain_or_loss_ref      OUT VARCHAR2
96079  
96080 --Payment Distribution (Cleared Rate) Ledger Amount
96081  , p_source_10            IN NUMBER
96082 --Invoice Distribution Type
96083  , p_source_20            IN VARCHAR2
96084  , p_source_20_meaning    IN VARCHAR2
96085 --When to Account for Payment Option
96086  , p_source_38            IN VARCHAR2
96087 --Accounting Reversal Indicator
96088  , p_source_40            IN VARCHAR2
96089 --Payment Distribution Amount
96090  , p_source_41            IN NUMBER
96091 --Business Flow Accounts Payable Application Identifier
96092  , p_source_42            IN NUMBER
96093 --Business Flow Payment Distribution Type
96094  , p_source_43            IN VARCHAR2
96095 --Business Flow Payment Entity Code
96096  , p_source_44            IN VARCHAR2
96097 --Payment Distribution Identifier
96098  , p_source_47            IN NUMBER
96099 --Distribution Link Type
96100  , p_source_48            IN VARCHAR2
96101 --Payment Currency Code
96102  , p_source_49            IN VARCHAR2
96103 --Override Accounted Amount Indicator
96104  , p_source_53            IN VARCHAR2
96105  , p_source_53_meaning    IN VARCHAR2
96106 --Third Party Type
96107  , p_source_56            IN VARCHAR2
96108 --Payment Distribution Reversed Identifier
96109  , p_source_57            IN NUMBER
96110 --Invoice Distribution Tax Line Identifier
96111  , p_source_58            IN NUMBER
96112 --Invoice Distribution Summary Tax Line Identifier
96113  , p_source_59            IN NUMBER
96114 --Invoice Type Paid
96115  , p_source_101            IN VARCHAR2
96116  , p_source_101_meaning    IN VARCHAR2
96117 --Business Flow Retained Invoice Distribution Associated with Payment Clearing
96118  , p_source_147            IN NUMBER
96119 --Business Flow Retained Invoice Associated with Payment Clearing
96120  , p_source_148            IN NUMBER
96121 )
96122 IS
96123 
96124 l_component_type              VARCHAR2(80);
96125 l_component_code              VARCHAR2(30);
96126 l_component_type_code         VARCHAR2(1);
96127 l_component_appl_id           INTEGER;
96128 l_amb_context_code            VARCHAR2(30);
96129 l_entity_code                 VARCHAR2(30);
96133 l_line_definition_code        VARCHAR2(30);
96130 l_event_class_code            VARCHAR2(30);
96131 l_ae_header_id                NUMBER;
96132 l_event_type_code             VARCHAR2(30);
96134 l_line_definition_owner_code  VARCHAR2(1);
96135 --
96136 -- adr variables
96137 l_segment                     VARCHAR2(30);
96138 l_ccid                        NUMBER;
96139 l_adr_transaction_coa_id      NUMBER;
96140 l_adr_accounting_coa_id       NUMBER;
96141 l_adr_flexfield_segment_code  VARCHAR2(30);
96142 l_adr_flex_value_set_id       NUMBER;
96143 l_adr_value_type_code         VARCHAR2(30);
96144 l_adr_value_combination_id    NUMBER;
96145 l_adr_value_segment_code      VARCHAR2(30);
96146 
96147 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
96148 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
96149 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
96150 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
96151 
96152 -- 4262811 Variables ------------------------------------------------------------------------------------------
96153 l_entered_amt_idx             NUMBER;
96154 l_accted_amt_idx              NUMBER;
96155 l_acc_rev_flag                VARCHAR2(1);
96156 l_accrual_line_num            NUMBER;
96157 l_tmp_amt                     NUMBER;
96158 l_acc_rev_natural_side_code   VARCHAR2(1);
96159 
96160 l_num_entries                 NUMBER;
96161 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
96162 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
96163 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
96164 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
96165 l_recog_line_1                NUMBER;
96166 l_recog_line_2                NUMBER;
96167 
96168 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
96169 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
96170 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
96171 
96172 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
96173 
96174 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
96175 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
96176 
96177 ---------------------------------------------------------------------------------------------------------------
96178 
96179 
96180 --
96181 -- bulk performance
96182 --
96183 l_balance_type_code           VARCHAR2(1);
96184 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
96185 l_log_module                  VARCHAR2(240);
96186 
96187 --
96188 -- Upgrade strategy
96189 --
96190 l_actual_upg_option           VARCHAR2(1);
96191 l_enc_upg_option           VARCHAR2(1);
96192 
96193 --
96194 BEGIN
96195 --
96196 IF g_log_enabled THEN
96197       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_170';
96198 END IF;
96199 --
96200 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96201 
96202       trace
96203          (p_msg      => 'BEGIN of AcctLineType_170'
96204          ,p_level    => C_LEVEL_PROCEDURE
96205          ,p_module   => l_log_module);
96206 
96207 END IF;
96208 --
96209 l_component_type             := 'AMB_JLT';
96210 l_component_code             := 'AP_RET_REL_CLR_CASH';
96211 l_component_type_code        := 'S';
96212 l_component_appl_id          :=  200;
96213 l_amb_context_code           := 'DEFAULT';
96214 l_entity_code                := 'AP_PAYMENTS';
96215 l_event_class_code           := 'RECONCILED PAYMENTS';
96216 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
96217 l_line_definition_owner_code := 'S';
96218 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
96219 --
96220 l_balance_type_code          := 'A';
96221 l_segment                     := NULL;
96222 l_ccid                        := NULL;
96223 l_adr_transaction_coa_id      := NULL;
96224 l_adr_accounting_coa_id       := NULL;
96225 l_adr_flexfield_segment_code  := NULL;
96226 l_adr_flex_value_set_id       := NULL;
96227 l_adr_value_type_code         := NULL;
96228 l_adr_value_combination_id    := NULL;
96229 l_adr_value_segment_code      := NULL;
96230 
96231 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
96232 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
96233 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
96234 l_budgetary_control_flag     := 'N';
96235 
96236 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
96237 l_bflow_applied_to_amt       := NULL; -- 5132302
96238 l_entered_amt_idx            := NULL;          -- 4262811
96239 l_accted_amt_idx             := NULL;          -- 4262811
96240 l_acc_rev_flag               := NULL;          -- 4262811
96241 l_accrual_line_num           := NULL;          -- 4262811
96242 l_tmp_amt                    := NULL;          -- 4262811
96243 --
96244  
96245 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96246     l_balance_type_code <> 'B' THEN
96247 IF NVL(p_source_38,'
96248 ') =  'CLEAR_CLEAR' AND 
96249 NVL(p_source_101,'
96250 ') =  'RETAINAGE RELEASE' AND 
96251 NVL(p_source_20,'
96252 ') =  'RETAINAGE'
96253  THEN 
96254 
96255    --
96256    XLA_AE_LINES_PKG.SetNewLine;
96257 
96261    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
96258    p_balance_type_code          := l_balance_type_code;
96259    -- set the flag so later we will know whether the gain loss line needs to be created
96260    
96262      p_actual_flag :='A';
96263    END IF;
96264 
96265    --
96266    -- bulk performance
96267    --
96268    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96269                                       p_header_num   => 0); -- 4262811
96270    --
96271    -- set accounting line options
96272    --
96273    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96274            p_natural_side_code          => 'D'
96275          , p_gain_or_loss_flag          => 'N'
96276          , p_gl_transfer_mode_code      => 'S'
96277          , p_acct_entry_type_code       => 'A'
96278          , p_switch_side_flag           => 'Y'
96279          , p_merge_duplicate_code       => 'A'
96280          );
96281    --
96282    l_acc_rev_natural_side_code := 'C';  -- 4262811
96283    -- 
96284    --
96285    -- set accounting line type info
96286    --
96287    xla_ae_lines_pkg.SetAcctLineType
96288       (p_component_type             => l_component_type
96289       ,p_event_type_code            => l_event_type_code
96290       ,p_line_definition_owner_code => l_line_definition_owner_code
96291       ,p_line_definition_code       => l_line_definition_code
96292       ,p_accounting_line_code       => l_component_code
96293       ,p_accounting_line_type_code  => l_component_type_code
96294       ,p_accounting_line_appl_id    => l_component_appl_id
96295       ,p_amb_context_code           => l_amb_context_code
96296       ,p_entity_code                => l_entity_code
96297       ,p_event_class_code           => l_event_class_code);
96298    --
96299    -- set accounting class
96300    --
96301    xla_ae_lines_pkg.SetAcctClass(
96302            p_accounting_class_code  => 'RETAINAGE'
96303          , p_ae_header_id           => l_ae_header_id
96304          );
96305 
96306    --
96307    -- set rounding class
96308    --
96309    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96310                       'RETAINAGE';
96311 
96312    --
96313    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96314    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96315    --
96316    -- bulk performance
96317    --
96318    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96319 
96320    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96321       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96322 
96323    -- 4955764
96324    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96325       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96326 
96327    -- 4458381 Public Sector Enh
96328    
96329    --
96330    -- set accounting attributes for the line type
96331    --
96332    l_entered_amt_idx := 10;
96333    l_accted_amt_idx  := 12;
96334    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
96335    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96336    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
96337    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
96338    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
96339    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
96340    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
96341    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96342    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
96343    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
96344    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
96345    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
96346    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_147);
96347    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96348    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_148);
96349    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
96350    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
96351    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
96352    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
96353    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
96354    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
96355    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
96356    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
96357    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
96358    l_rec_acct_attrs.array_num_value(12)  := p_source_10;
96359    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
96360    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
96361    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
96362    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
96363    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
96364    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
96365    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
96366    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
96370    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
96367    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
96368    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
96369    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
96371    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
96372    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
96373 
96374    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96375    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96376 
96377    ---------------------------------------------------------------------------------------------------------------
96378    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96379    ---------------------------------------------------------------------------------------------------------------
96380    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96381 
96382    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96383    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96384 
96385    IF xla_accounting_cache_pkg.GetValueChar
96386          (p_source_code         => 'LEDGER_CATEGORY_CODE'
96387          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96388    AND l_bflow_method_code = 'PRIOR_ENTRY'
96389 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96390    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96391          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96392        )
96393    THEN
96394          xla_ae_lines_pkg.BflowUpgEntry
96395            (p_business_method_code    => l_bflow_method_code
96396            ,p_business_class_code     => l_bflow_class_code
96397            ,p_balance_type            => l_balance_type_code);
96398    ELSE
96399       NULL;
96400 XLA_AE_LINES_PKG.business_flow_validation(
96401                                 p_business_method_code     => l_bflow_method_code
96402                                ,p_business_class_code      => l_bflow_class_code
96403                                ,p_inherit_description_flag => l_inherit_desc_flag);
96404    END IF;
96405 
96406    --
96407    -- call analytical criteria
96408    --
96409    -- Inherited Analytical Criteria for business flow method of Prior Entry.
96410    --
96411    -- call description
96412    --
96413    -- No description or it is inherited.
96414    --
96415    -- call ADRs
96416    -- Bug 4922099
96417    --
96418    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96419         (NVL(l_actual_upg_option, 'N') = 'O') OR
96420         (NVL(l_enc_upg_option, 'N') = 'O')
96421       )
96422    THEN
96423    NULL;
96424    --
96425    --
96426    
96427    --
96428    --
96429    END IF;
96430    --
96431    -- Bug 4922099
96432    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96433           (NVL(l_enc_upg_option, 'N') = 'O')
96434         ) AND
96435         (l_bflow_method_code = 'PRIOR_ENTRY')
96436       )
96437    THEN
96438       IF
96439       --
96440       1 = 1
96441       --
96442       THEN
96443       xla_accounting_err_pkg.build_message
96444                                     (p_appli_s_name            => 'XLA'
96445                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96446                                     ,p_token_1                 => 'LINE_NUMBER'
96447                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
96448                                     ,p_token_2                 => 'LINE_TYPE_NAME'
96449                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
96450                                                                              l_component_type
96451                                                                             ,l_component_code
96452                                                                             ,l_component_type_code
96453                                                                             ,l_component_appl_id
96454                                                                             ,l_amb_context_code
96455                                                                             ,l_entity_code
96456                                                                             ,l_event_class_code
96457                                                                            )
96458                                     ,p_token_3                 => 'OWNER'
96459                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
96460                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
96461                                                                           ,p_lookup_code    => l_component_type_code
96462                                                                          )
96463                                     ,p_token_4                 => 'PRODUCT_NAME'
96464                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
96465                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
96466                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
96470 
96467                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
96468                                     ,p_ae_header_id            =>  NULL
96469                                        );
96471         IF (C_LEVEL_ERROR>= g_log_level) THEN
96472                  trace
96473                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96474                       ,p_level    => C_LEVEL_ERROR
96475                       ,p_module   => l_log_module);
96476         END IF;
96477       END IF;
96478    END IF;
96479    --
96480    --
96481    ------------------------------------------------------------------------------------------------
96482    -- 4219869 Business Flow
96483    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
96484    -- Prior Entry.  Currently, the following code is always generated.
96485    ------------------------------------------------------------------------------------------------
96486    -- No ValidateCurrentLine for business flow method of Prior Entry
96487 
96488    ------------------------------------------------------------------------------------
96489    -- 4219869 Business Flow
96490    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
96491    ------------------------------------------------------------------------------------
96492    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96493 
96494    ----------------------------------------------------------------------------------
96495    -- 4219869 Business Flow
96496    -- Update journal entry status -- Need to generate this within IF <condition>
96497    ----------------------------------------------------------------------------------
96498    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96499          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
96500          ,p_balance_type_code => l_balance_type_code
96501          );
96502 
96503    -------------------------------------------------------------------------------------------
96504    -- 4262811 - Generate the Accrual Reversal lines
96505    -------------------------------------------------------------------------------------------
96506    BEGIN
96507       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
96508                               (g_array_event(p_event_id).array_value_num('header_index'));
96509       IF l_acc_rev_flag IS NULL THEN
96510          l_acc_rev_flag := 'N';
96511       END IF;
96512    EXCEPTION
96513       WHEN OTHERS THEN
96514          l_acc_rev_flag := 'N';
96515    END;
96516    --
96517    IF (l_acc_rev_flag = 'Y') THEN
96518 
96519        -- 4645092  ------------------------------------------------------------------------------
96520        -- To allow MPA report to determine if it should generate report process
96521        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
96522        ------------------------------------------------------------------------------------------
96523 
96524        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
96525        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
96526    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
96527    -- call ADRs
96528    -- Bug 4922099
96529    --
96530    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96531         (NVL(l_actual_upg_option, 'N') = 'O') OR
96532         (NVL(l_enc_upg_option, 'N') = 'O')
96533       )
96534    THEN
96535    NULL;
96536    --
96537    --
96538    
96539    --
96540    --
96541    END IF;
96542 
96543        --
96544        -- Update the line information that should be overwritten
96545        --
96546        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
96547                                          p_header_num   => 1);
96548        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
96549 
96550        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
96551 
96552        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
96553           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96554        END IF;
96555 
96556       --
96557       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96558       --
96559       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96560           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
96561       ELSE
96562           ---------------------------------------------------------------------------------------------------
96563           -- 4262811a Switch Sign
96564           ---------------------------------------------------------------------------------------------------
96565           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
96566           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96567                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96568           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96569                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96570           -- 5132302
96571           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96575 
96572                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96573 
96574       END IF;
96576       -- 4955764
96577       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96578       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96579 
96580 
96581       XLA_AE_LINES_PKG.ValidateCurrentLine;
96582       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96583 
96584       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96585                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96586                ,p_balance_type_code => l_balance_type_code);
96587 
96588    END IF;
96589 
96590    -----------------------------------------------------------------------------------------
96591    -- 4262811 Multiperiod Accounting
96592    -----------------------------------------------------------------------------------------
96593      -- No MPA option is assigned.
96594 
96595 
96596 END IF;
96597 END IF;
96598 --
96599 
96600 --
96601 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96602    trace
96603       (p_msg      => 'END of AcctLineType_170'
96604       ,p_level    => C_LEVEL_PROCEDURE
96605       ,p_module   => l_log_module);
96606 END IF;
96607 --
96608 EXCEPTION
96609   WHEN xla_exceptions_pkg.application_exception THEN
96610       RAISE;
96611   WHEN OTHERS THEN
96612        xla_exceptions_pkg.raise_message
96613            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_170');
96614 END AcctLineType_170;
96615 --
96616 
96617 ---------------------------------------
96618 --
96619 -- PRIVATE FUNCTION
96620 --         AcctLineType_171
96621 --
96622 ---------------------------------------
96623 PROCEDURE AcctLineType_171 (
96624   p_application_id        IN NUMBER
96625  ,p_event_id              IN NUMBER
96626  ,p_calculate_acctd_flag  IN VARCHAR2
96627  ,p_calculate_g_l_flag    IN VARCHAR2
96628  ,p_actual_flag           IN OUT VARCHAR2
96629  ,p_balance_type_code     OUT VARCHAR2
96630  ,p_gain_or_loss_ref      OUT VARCHAR2
96631  
96632 --Payment Distribution (Payment Rate) Ledger Amount
96633  , p_source_9            IN NUMBER
96634 --Invoice Distribution Type
96635  , p_source_20            IN VARCHAR2
96636  , p_source_20_meaning    IN VARCHAR2
96637 --When to Account for Payment Option
96638  , p_source_38            IN VARCHAR2
96639 --Accounting Reversal Indicator
96640  , p_source_40            IN VARCHAR2
96641 --Payment Distribution Amount
96642  , p_source_41            IN NUMBER
96643 --Business Flow Accounts Payable Application Identifier
96644  , p_source_42            IN NUMBER
96645 --Payment Distribution Identifier
96646  , p_source_47            IN NUMBER
96647 --Distribution Link Type
96648  , p_source_48            IN VARCHAR2
96649 --Payment Currency Code
96650  , p_source_49            IN VARCHAR2
96651 --Override Accounted Amount Indicator
96652  , p_source_53            IN VARCHAR2
96653  , p_source_53_meaning    IN VARCHAR2
96654 --Third Party Type
96655  , p_source_56            IN VARCHAR2
96656 --Payment Distribution Reversed Identifier
96657  , p_source_57            IN NUMBER
96658 --Invoice Distribution Tax Line Identifier
96659  , p_source_58            IN NUMBER
96660 --Invoice Distribution Summary Tax Line Identifier
96661  , p_source_59            IN NUMBER
96662 --Invoice Distribution Amount of the Payment Distribution
96663  , p_source_61            IN NUMBER
96664 --Business Flow Invoice Distribution Type
96665  , p_source_62            IN VARCHAR2
96666 --Business Flow Invoice Entity Code
96667  , p_source_63            IN VARCHAR2
96668 --Invoice Distribution Tax Distribution Identifier from Tax
96669  , p_source_66            IN NUMBER
96670 --Invoice Type Paid
96671  , p_source_101            IN VARCHAR2
96672  , p_source_101_meaning    IN VARCHAR2
96673 --Business Flow Retained Invoice Distribution Associated with Payment
96674  , p_source_149            IN NUMBER
96675 --Business Flow Retained Invoice Associated with Payment
96676  , p_source_150            IN NUMBER
96677 )
96678 IS
96679 
96680 l_component_type              VARCHAR2(80);
96681 l_component_code              VARCHAR2(30);
96682 l_component_type_code         VARCHAR2(1);
96683 l_component_appl_id           INTEGER;
96684 l_amb_context_code            VARCHAR2(30);
96685 l_entity_code                 VARCHAR2(30);
96686 l_event_class_code            VARCHAR2(30);
96687 l_ae_header_id                NUMBER;
96688 l_event_type_code             VARCHAR2(30);
96689 l_line_definition_code        VARCHAR2(30);
96690 l_line_definition_owner_code  VARCHAR2(1);
96691 --
96692 -- adr variables
96693 l_segment                     VARCHAR2(30);
96694 l_ccid                        NUMBER;
96695 l_adr_transaction_coa_id      NUMBER;
96696 l_adr_accounting_coa_id       NUMBER;
96697 l_adr_flexfield_segment_code  VARCHAR2(30);
96698 l_adr_flex_value_set_id       NUMBER;
96699 l_adr_value_type_code         VARCHAR2(30);
96700 l_adr_value_combination_id    NUMBER;
96701 l_adr_value_segment_code      VARCHAR2(30);
96702 
96703 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
96704 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
96705 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
96709 l_entered_amt_idx             NUMBER;
96706 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
96707 
96708 -- 4262811 Variables ------------------------------------------------------------------------------------------
96710 l_accted_amt_idx              NUMBER;
96711 l_acc_rev_flag                VARCHAR2(1);
96712 l_accrual_line_num            NUMBER;
96713 l_tmp_amt                     NUMBER;
96714 l_acc_rev_natural_side_code   VARCHAR2(1);
96715 
96716 l_num_entries                 NUMBER;
96717 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
96718 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
96719 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
96720 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
96721 l_recog_line_1                NUMBER;
96722 l_recog_line_2                NUMBER;
96723 
96724 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
96725 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
96726 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
96727 
96728 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
96729 
96730 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
96731 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
96732 
96733 ---------------------------------------------------------------------------------------------------------------
96734 
96735 
96736 --
96737 -- bulk performance
96738 --
96739 l_balance_type_code           VARCHAR2(1);
96740 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
96741 l_log_module                  VARCHAR2(240);
96742 
96743 --
96744 -- Upgrade strategy
96745 --
96746 l_actual_upg_option           VARCHAR2(1);
96747 l_enc_upg_option           VARCHAR2(1);
96748 
96749 --
96750 BEGIN
96751 --
96752 IF g_log_enabled THEN
96753       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_171';
96754 END IF;
96755 --
96756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96757 
96758       trace
96759          (p_msg      => 'BEGIN of AcctLineType_171'
96760          ,p_level    => C_LEVEL_PROCEDURE
96761          ,p_module   => l_log_module);
96762 
96763 END IF;
96764 --
96765 l_component_type             := 'AMB_JLT';
96766 l_component_code             := 'AP_RET_REL_PMT_CASH';
96767 l_component_type_code        := 'S';
96768 l_component_appl_id          :=  200;
96769 l_amb_context_code           := 'DEFAULT';
96770 l_entity_code                := 'AP_PAYMENTS';
96771 l_event_class_code           := 'PAYMENTS';
96772 l_event_type_code            := 'PAYMENTS_ALL';
96773 l_line_definition_owner_code := 'S';
96774 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
96775 --
96776 l_balance_type_code          := 'A';
96777 l_segment                     := NULL;
96778 l_ccid                        := NULL;
96779 l_adr_transaction_coa_id      := NULL;
96780 l_adr_accounting_coa_id       := NULL;
96781 l_adr_flexfield_segment_code  := NULL;
96782 l_adr_flex_value_set_id       := NULL;
96783 l_adr_value_type_code         := NULL;
96784 l_adr_value_combination_id    := NULL;
96785 l_adr_value_segment_code      := NULL;
96786 
96787 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
96788 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
96789 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
96790 l_budgetary_control_flag     := 'N';
96791 
96792 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
96793 l_bflow_applied_to_amt       := NULL; -- 5132302
96794 l_entered_amt_idx            := NULL;          -- 4262811
96795 l_accted_amt_idx             := NULL;          -- 4262811
96796 l_acc_rev_flag               := NULL;          -- 4262811
96797 l_accrual_line_num           := NULL;          -- 4262811
96798 l_tmp_amt                    := NULL;          -- 4262811
96799 --
96800  
96801 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96802     l_balance_type_code <> 'B' THEN
96803 IF NVL(p_source_38,'
96804 ') <>  'CLEAR_CLEAR' AND 
96805 NVL(p_source_101,'
96806 ') =  'RETAINAGE RELEASE' AND 
96807 NVL(p_source_20,'
96808 ') =  'RETAINAGE'
96809  THEN 
96810 
96811    --
96812    XLA_AE_LINES_PKG.SetNewLine;
96813 
96814    p_balance_type_code          := l_balance_type_code;
96815    -- set the flag so later we will know whether the gain loss line needs to be created
96816    
96817    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
96818      p_actual_flag :='A';
96819    END IF;
96820 
96821    --
96822    -- bulk performance
96823    --
96824    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96825                                       p_header_num   => 0); -- 4262811
96826    --
96827    -- set accounting line options
96828    --
96829    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96830            p_natural_side_code          => 'D'
96831          , p_gain_or_loss_flag          => 'N'
96832          , p_gl_transfer_mode_code      => 'S'
96833          , p_acct_entry_type_code       => 'A'
96834          , p_switch_side_flag           => 'Y'
96835          , p_merge_duplicate_code       => 'A'
96836          );
96837    --
96838    l_acc_rev_natural_side_code := 'C';  -- 4262811
96839    -- 
96843    xla_ae_lines_pkg.SetAcctLineType
96840    --
96841    -- set accounting line type info
96842    --
96844       (p_component_type             => l_component_type
96845       ,p_event_type_code            => l_event_type_code
96846       ,p_line_definition_owner_code => l_line_definition_owner_code
96847       ,p_line_definition_code       => l_line_definition_code
96848       ,p_accounting_line_code       => l_component_code
96849       ,p_accounting_line_type_code  => l_component_type_code
96850       ,p_accounting_line_appl_id    => l_component_appl_id
96851       ,p_amb_context_code           => l_amb_context_code
96852       ,p_entity_code                => l_entity_code
96853       ,p_event_class_code           => l_event_class_code);
96854    --
96855    -- set accounting class
96856    --
96857    xla_ae_lines_pkg.SetAcctClass(
96858            p_accounting_class_code  => 'RETAINAGE'
96859          , p_ae_header_id           => l_ae_header_id
96860          );
96861 
96862    --
96863    -- set rounding class
96864    --
96865    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96866                       'RETAINAGE';
96867 
96868    --
96869    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96870    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96871    --
96872    -- bulk performance
96873    --
96874    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96875 
96876    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96877       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96878 
96879    -- 4955764
96880    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96881       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96882 
96883    -- 4458381 Public Sector Enh
96884    
96885    --
96886    -- set accounting attributes for the line type
96887    --
96888    l_entered_amt_idx := 10;
96889    l_accted_amt_idx  := 12;
96890    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
96891    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96892    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
96893    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
96894    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
96895    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
96896    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
96897    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96898    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
96899    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
96900    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
96901    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
96902    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_149);
96903    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96904    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_150);
96905    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
96906    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
96907    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
96908    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
96909    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
96910    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
96911    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
96912    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
96913    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
96914    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
96915    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
96916    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
96917    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
96918    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
96919    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
96920    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
96921    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
96922    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
96923    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
96924    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
96925    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
96926    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
96927    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
96928    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
96929 
96930    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96931    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96932 
96933    ---------------------------------------------------------------------------------------------------------------
96934    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96935    ---------------------------------------------------------------------------------------------------------------
96936    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96937 
96938    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96942          (p_source_code         => 'LEDGER_CATEGORY_CODE'
96939    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96940 
96941    IF xla_accounting_cache_pkg.GetValueChar
96943          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96944    AND l_bflow_method_code = 'PRIOR_ENTRY'
96945 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96946    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96947          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96948        )
96949    THEN
96950          xla_ae_lines_pkg.BflowUpgEntry
96951            (p_business_method_code    => l_bflow_method_code
96952            ,p_business_class_code     => l_bflow_class_code
96953            ,p_balance_type            => l_balance_type_code);
96954    ELSE
96955       NULL;
96956 XLA_AE_LINES_PKG.business_flow_validation(
96957                                 p_business_method_code     => l_bflow_method_code
96958                                ,p_business_class_code      => l_bflow_class_code
96959                                ,p_inherit_description_flag => l_inherit_desc_flag);
96960    END IF;
96961 
96962    --
96963    -- call analytical criteria
96964    --
96965    -- Inherited Analytical Criteria for business flow method of Prior Entry.
96966    --
96967    -- call description
96968    --
96969    -- No description or it is inherited.
96970    --
96971    -- call ADRs
96972    -- Bug 4922099
96973    --
96974    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96975         (NVL(l_actual_upg_option, 'N') = 'O') OR
96976         (NVL(l_enc_upg_option, 'N') = 'O')
96977       )
96978    THEN
96979    NULL;
96980    --
96981    --
96982    
96983    --
96984    --
96985    END IF;
96986    --
96987    -- Bug 4922099
96988    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96989           (NVL(l_enc_upg_option, 'N') = 'O')
96990         ) AND
96991         (l_bflow_method_code = 'PRIOR_ENTRY')
96992       )
96993    THEN
96994       IF
96995       --
96996       1 = 1
96997       --
96998       THEN
96999       xla_accounting_err_pkg.build_message
97000                                     (p_appli_s_name            => 'XLA'
97001                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97002                                     ,p_token_1                 => 'LINE_NUMBER'
97003                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
97004                                     ,p_token_2                 => 'LINE_TYPE_NAME'
97005                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
97006                                                                              l_component_type
97007                                                                             ,l_component_code
97008                                                                             ,l_component_type_code
97009                                                                             ,l_component_appl_id
97010                                                                             ,l_amb_context_code
97011                                                                             ,l_entity_code
97012                                                                             ,l_event_class_code
97013                                                                            )
97014                                     ,p_token_3                 => 'OWNER'
97015                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
97016                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
97017                                                                           ,p_lookup_code    => l_component_type_code
97018                                                                          )
97019                                     ,p_token_4                 => 'PRODUCT_NAME'
97020                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97021                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97022                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97023                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97024                                     ,p_ae_header_id            =>  NULL
97025                                        );
97026 
97027         IF (C_LEVEL_ERROR>= g_log_level) THEN
97028                  trace
97029                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97030                       ,p_level    => C_LEVEL_ERROR
97031                       ,p_module   => l_log_module);
97032         END IF;
97033       END IF;
97034    END IF;
97035    --
97036    --
97037    ------------------------------------------------------------------------------------------------
97038    -- 4219869 Business Flow
97039    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97040    -- Prior Entry.  Currently, the following code is always generated.
97041    ------------------------------------------------------------------------------------------------
97042    -- No ValidateCurrentLine for business flow method of Prior Entry
97043 
97047    ------------------------------------------------------------------------------------
97044    ------------------------------------------------------------------------------------
97045    -- 4219869 Business Flow
97046    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97048    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97049 
97050    ----------------------------------------------------------------------------------
97051    -- 4219869 Business Flow
97052    -- Update journal entry status -- Need to generate this within IF <condition>
97053    ----------------------------------------------------------------------------------
97054    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97055          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97056          ,p_balance_type_code => l_balance_type_code
97057          );
97058 
97059    -------------------------------------------------------------------------------------------
97060    -- 4262811 - Generate the Accrual Reversal lines
97061    -------------------------------------------------------------------------------------------
97062    BEGIN
97063       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
97064                               (g_array_event(p_event_id).array_value_num('header_index'));
97065       IF l_acc_rev_flag IS NULL THEN
97066          l_acc_rev_flag := 'N';
97067       END IF;
97068    EXCEPTION
97069       WHEN OTHERS THEN
97070          l_acc_rev_flag := 'N';
97071    END;
97072    --
97073    IF (l_acc_rev_flag = 'Y') THEN
97074 
97075        -- 4645092  ------------------------------------------------------------------------------
97076        -- To allow MPA report to determine if it should generate report process
97077        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
97078        ------------------------------------------------------------------------------------------
97079 
97080        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
97081        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
97082    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
97083    -- call ADRs
97084    -- Bug 4922099
97085    --
97086    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97087         (NVL(l_actual_upg_option, 'N') = 'O') OR
97088         (NVL(l_enc_upg_option, 'N') = 'O')
97089       )
97090    THEN
97091    NULL;
97092    --
97093    --
97094    
97095    --
97096    --
97097    END IF;
97098 
97099        --
97100        -- Update the line information that should be overwritten
97101        --
97102        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
97103                                          p_header_num   => 1);
97104        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
97105 
97106        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
97107 
97108        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
97109           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
97110        END IF;
97111 
97112       --
97113       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
97114       --
97115       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
97116           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
97117       ELSE
97118           ---------------------------------------------------------------------------------------------------
97119           -- 4262811a Switch Sign
97120           ---------------------------------------------------------------------------------------------------
97121           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
97122           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97123                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97124           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97125                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97126           -- 5132302
97127           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
97128                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97129 
97130       END IF;
97131 
97132       -- 4955764
97133       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97134       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
97135 
97136 
97137       XLA_AE_LINES_PKG.ValidateCurrentLine;
97138       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97139 
97140       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97141                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
97142                ,p_balance_type_code => l_balance_type_code);
97143 
97144    END IF;
97145 
97146    -----------------------------------------------------------------------------------------
97147    -- 4262811 Multiperiod Accounting
97148    -----------------------------------------------------------------------------------------
97149      -- No MPA option is assigned.
97150 
97151 
97155 
97152 END IF;
97153 END IF;
97154 --
97156 --
97157 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97158    trace
97159       (p_msg      => 'END of AcctLineType_171'
97160       ,p_level    => C_LEVEL_PROCEDURE
97161       ,p_module   => l_log_module);
97162 END IF;
97163 --
97164 EXCEPTION
97165   WHEN xla_exceptions_pkg.application_exception THEN
97166       RAISE;
97167   WHEN OTHERS THEN
97168        xla_exceptions_pkg.raise_message
97169            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_171');
97170 END AcctLineType_171;
97171 --
97172 
97173 ---------------------------------------
97174 --
97175 -- PRIVATE FUNCTION
97176 --         AcctLineType_172
97177 --
97178 ---------------------------------------
97179 PROCEDURE AcctLineType_172 (
97180   p_application_id        IN NUMBER
97181  ,p_event_id              IN NUMBER
97182  ,p_calculate_acctd_flag  IN VARCHAR2
97183  ,p_calculate_g_l_flag    IN VARCHAR2
97184  ,p_actual_flag           IN OUT VARCHAR2
97185  ,p_balance_type_code     OUT VARCHAR2
97186  ,p_gain_or_loss_ref      OUT VARCHAR2
97187  
97188 --Invoice Distribution Type
97189  , p_source_20            IN VARCHAR2
97190  , p_source_20_meaning    IN VARCHAR2
97191 --When to Account for Payment Option
97192  , p_source_38            IN VARCHAR2
97193 --Payment Distribution Type
97194  , p_source_39            IN VARCHAR2
97195  , p_source_39_meaning    IN VARCHAR2
97196 --Accounting Reversal Indicator
97197  , p_source_40            IN VARCHAR2
97198 --Payment Distribution Amount
97199  , p_source_41            IN NUMBER
97200 --Business Flow Accounts Payable Application Identifier
97201  , p_source_42            IN NUMBER
97202 --Payment Distribution Identifier
97203  , p_source_47            IN NUMBER
97204 --Distribution Link Type
97205  , p_source_48            IN VARCHAR2
97206 --Payment Currency Code
97207  , p_source_49            IN VARCHAR2
97208 --Override Accounted Amount Indicator
97209  , p_source_53            IN VARCHAR2
97210  , p_source_53_meaning    IN VARCHAR2
97211 --Third Party Type
97212  , p_source_56            IN VARCHAR2
97213 --Payment Distribution Reversed Identifier
97214  , p_source_57            IN NUMBER
97215 --Invoice Distribution Tax Line Identifier
97216  , p_source_58            IN NUMBER
97217 --Invoice Distribution Summary Tax Line Identifier
97218  , p_source_59            IN NUMBER
97219 --Business Flow Invoice Distribution Type
97220  , p_source_62            IN VARCHAR2
97221 --Business Flow Invoice Entity Code
97222  , p_source_63            IN VARCHAR2
97223 --Business Flow Invoice Distribution Identifier
97224  , p_source_64            IN NUMBER
97225 --Business Flow Invoice Identifier
97226  , p_source_65            IN NUMBER
97227 --Accrue on Receipt Option
97228  , p_source_100            IN VARCHAR2
97229  , p_source_100_meaning    IN VARCHAR2
97230 --Purchasing Encumbrance Option
97231  , p_source_102            IN VARCHAR2
97232  , p_source_102_meaning    IN VARCHAR2
97233 --Prorated Amount of Variance Amount in Ledger Currency for Cash Basis
97234  , p_source_103            IN NUMBER
97235 --Invoice Encumbered Option
97236  , p_source_104            IN VARCHAR2
97237  , p_source_104_meaning    IN VARCHAR2
97238 --Prorated Amount of Variance Amount for Cash Basis
97239  , p_source_105            IN NUMBER
97240 )
97241 IS
97242 
97243 l_component_type              VARCHAR2(80);
97244 l_component_code              VARCHAR2(30);
97245 l_component_type_code         VARCHAR2(1);
97246 l_component_appl_id           INTEGER;
97247 l_amb_context_code            VARCHAR2(30);
97248 l_entity_code                 VARCHAR2(30);
97249 l_event_class_code            VARCHAR2(30);
97250 l_ae_header_id                NUMBER;
97251 l_event_type_code             VARCHAR2(30);
97252 l_line_definition_code        VARCHAR2(30);
97253 l_line_definition_owner_code  VARCHAR2(1);
97254 --
97255 -- adr variables
97256 l_segment                     VARCHAR2(30);
97257 l_ccid                        NUMBER;
97258 l_adr_transaction_coa_id      NUMBER;
97259 l_adr_accounting_coa_id       NUMBER;
97260 l_adr_flexfield_segment_code  VARCHAR2(30);
97261 l_adr_flex_value_set_id       NUMBER;
97262 l_adr_value_type_code         VARCHAR2(30);
97263 l_adr_value_combination_id    NUMBER;
97264 l_adr_value_segment_code      VARCHAR2(30);
97265 
97266 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
97267 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
97268 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
97269 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
97270 
97271 -- 4262811 Variables ------------------------------------------------------------------------------------------
97272 l_entered_amt_idx             NUMBER;
97273 l_accted_amt_idx              NUMBER;
97274 l_acc_rev_flag                VARCHAR2(1);
97275 l_accrual_line_num            NUMBER;
97276 l_tmp_amt                     NUMBER;
97277 l_acc_rev_natural_side_code   VARCHAR2(1);
97278 
97279 l_num_entries                 NUMBER;
97280 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
97281 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
97282 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
97283 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
97284 l_recog_line_1                NUMBER;
97288 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
97285 l_recog_line_2                NUMBER;
97286 
97287 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
97289 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
97290 
97291 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
97292 
97293 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
97294 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
97295 
97296 ---------------------------------------------------------------------------------------------------------------
97297 
97298 
97299 --
97300 -- bulk performance
97301 --
97302 l_balance_type_code           VARCHAR2(1);
97303 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
97304 l_log_module                  VARCHAR2(240);
97305 
97306 --
97307 -- Upgrade strategy
97308 --
97309 l_actual_upg_option           VARCHAR2(1);
97310 l_enc_upg_option           VARCHAR2(1);
97311 
97312 --
97313 BEGIN
97314 --
97315 IF g_log_enabled THEN
97316       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_172';
97317 END IF;
97318 --
97319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97320 
97321       trace
97322          (p_msg      => 'BEGIN of AcctLineType_172'
97323          ,p_level    => C_LEVEL_PROCEDURE
97324          ,p_module   => l_log_module);
97325 
97326 END IF;
97327 --
97328 l_component_type             := 'AMB_JLT';
97329 l_component_code             := 'AP_TAX_AMOUNT_VARIANCE_CLR_ENC';
97330 l_component_type_code        := 'S';
97331 l_component_appl_id          :=  200;
97332 l_amb_context_code           := 'DEFAULT';
97333 l_entity_code                := 'AP_PAYMENTS';
97334 l_event_class_code           := 'RECONCILED PAYMENTS';
97335 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
97336 l_line_definition_owner_code := 'S';
97337 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
97338 --
97339 l_balance_type_code          := 'E';
97340 l_segment                     := NULL;
97341 l_ccid                        := NULL;
97342 l_adr_transaction_coa_id      := NULL;
97343 l_adr_accounting_coa_id       := NULL;
97344 l_adr_flexfield_segment_code  := NULL;
97345 l_adr_flex_value_set_id       := NULL;
97346 l_adr_value_type_code         := NULL;
97347 l_adr_value_combination_id    := NULL;
97348 l_adr_value_segment_code      := NULL;
97349 
97350 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
97351 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
97352 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
97353 l_budgetary_control_flag     := 'N';
97354 
97355 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
97356 l_bflow_applied_to_amt       := NULL; -- 5132302
97357 l_entered_amt_idx            := NULL;          -- 4262811
97358 l_accted_amt_idx             := NULL;          -- 4262811
97359 l_acc_rev_flag               := NULL;          -- 4262811
97360 l_accrual_line_num           := NULL;          -- 4262811
97361 l_tmp_amt                    := NULL;          -- 4262811
97362 --
97363  
97364 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
97365     l_balance_type_code <> 'B' THEN
97366 IF NVL(p_source_38,'
97367 ') =  'CLEAR_CLEAR' AND 
97368 NVL(p_source_20,'
97369 ') =  'NONREC_TAX' AND 
97370 (NVL(p_source_39,'
97371 ') =  'CASH' OR 
97372 NVL(p_source_39,'
97373 ') =  'DISCOUNT') AND 
97374 NVL(p_source_102,'
97375 ') =  'Y' AND 
97376 NVL(p_source_100,'
97377 ') <>  'Y' AND 
97378 p_source_103 IS NOT NULL AND 
97379 NVL(p_source_104,'
97380 ') =  'Y'
97381  THEN 
97382 
97383    --
97384    XLA_AE_LINES_PKG.SetNewLine;
97385 
97386    p_balance_type_code          := l_balance_type_code;
97387    -- set the flag so later we will know whether the gain loss line needs to be created
97388    
97389    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
97390      p_actual_flag :='A';
97391    END IF;
97392 
97393    --
97394    -- bulk performance
97395    --
97396    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
97397                                       p_header_num   => 0); -- 4262811
97398    --
97399    -- set accounting line options
97400    --
97401    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
97402            p_natural_side_code          => 'C'
97403          , p_gain_or_loss_flag          => 'N'
97404          , p_gl_transfer_mode_code      => 'S'
97405          , p_acct_entry_type_code       => 'E'
97406          , p_switch_side_flag           => 'Y'
97407          , p_merge_duplicate_code       => 'A'
97408          );
97409    --
97410    l_acc_rev_natural_side_code := 'D';  -- 4262811
97411    -- 
97412    --
97413    -- set accounting line type info
97414    --
97415    xla_ae_lines_pkg.SetAcctLineType
97416       (p_component_type             => l_component_type
97417       ,p_event_type_code            => l_event_type_code
97418       ,p_line_definition_owner_code => l_line_definition_owner_code
97419       ,p_line_definition_code       => l_line_definition_code
97420       ,p_accounting_line_code       => l_component_code
97421       ,p_accounting_line_type_code  => l_component_type_code
97422       ,p_accounting_line_appl_id    => l_component_appl_id
97426    --
97423       ,p_amb_context_code           => l_amb_context_code
97424       ,p_entity_code                => l_entity_code
97425       ,p_event_class_code           => l_event_class_code);
97427    -- set accounting class
97428    --
97429    xla_ae_lines_pkg.SetAcctClass(
97430            p_accounting_class_code  => 'TAV'
97431          , p_ae_header_id           => l_ae_header_id
97432          );
97433 
97434    --
97435    -- set rounding class
97436    --
97437    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
97438                       'TAV';
97439 
97440    --
97441    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
97442    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
97443    --
97444    -- bulk performance
97445    --
97446    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
97447 
97448    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
97449       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
97450 
97451    -- 4955764
97452    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97453       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
97454 
97455    -- 4458381 Public Sector Enh
97456    
97457    --
97458    -- set accounting attributes for the line type
97459    --
97460    l_entered_amt_idx := 10;
97461    l_accted_amt_idx  := 12;
97462    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
97463    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
97464    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
97465    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
97466    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
97467    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
97468    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
97469    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
97470    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
97471    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
97472    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
97473    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
97474    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
97475    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
97476    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
97477    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
97478    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
97479    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
97480    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
97481    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
97482    l_rec_acct_attrs.array_num_value(10)  := p_source_105;
97483    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
97484    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
97485    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
97486    l_rec_acct_attrs.array_num_value(12)  := p_source_103;
97487    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
97488    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
97489    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
97490    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
97491    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
97492    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
97493    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
97494    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
97495    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
97496    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
97497    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
97498    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
97499    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
97500    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
97501 
97502    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
97503    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
97504 
97505    ---------------------------------------------------------------------------------------------------------------
97506    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
97507    ---------------------------------------------------------------------------------------------------------------
97508    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
97509 
97510    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97511    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97512 
97513    IF xla_accounting_cache_pkg.GetValueChar
97514          (p_source_code         => 'LEDGER_CATEGORY_CODE'
97515          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
97516    AND l_bflow_method_code = 'PRIOR_ENTRY'
97517 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
97518    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
97519          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
97520        )
97521    THEN
97525            ,p_balance_type            => l_balance_type_code);
97522          xla_ae_lines_pkg.BflowUpgEntry
97523            (p_business_method_code    => l_bflow_method_code
97524            ,p_business_class_code     => l_bflow_class_code
97526    ELSE
97527       NULL;
97528 XLA_AE_LINES_PKG.business_flow_validation(
97529                                 p_business_method_code     => l_bflow_method_code
97530                                ,p_business_class_code      => l_bflow_class_code
97531                                ,p_inherit_description_flag => l_inherit_desc_flag);
97532    END IF;
97533 
97534    --
97535    -- call analytical criteria
97536    --
97537    -- Inherited Analytical Criteria for business flow method of Prior Entry.
97538    --
97539    -- call description
97540    --
97541    -- No description or it is inherited.
97542    --
97543    -- call ADRs
97544    -- Bug 4922099
97545    --
97546    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97547         (NVL(l_actual_upg_option, 'N') = 'O') OR
97548         (NVL(l_enc_upg_option, 'N') = 'O')
97549       )
97550    THEN
97551    NULL;
97552    --
97553    --
97554    
97555    --
97556    --
97557    END IF;
97558    --
97559    -- Bug 4922099
97560    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
97561           (NVL(l_enc_upg_option, 'N') = 'O')
97562         ) AND
97563         (l_bflow_method_code = 'PRIOR_ENTRY')
97564       )
97565    THEN
97566       IF
97567       --
97568       1 = 1
97569       --
97570       THEN
97571       xla_accounting_err_pkg.build_message
97572                                     (p_appli_s_name            => 'XLA'
97573                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97574                                     ,p_token_1                 => 'LINE_NUMBER'
97575                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
97576                                     ,p_token_2                 => 'LINE_TYPE_NAME'
97577                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
97578                                                                              l_component_type
97579                                                                             ,l_component_code
97580                                                                             ,l_component_type_code
97581                                                                             ,l_component_appl_id
97582                                                                             ,l_amb_context_code
97583                                                                             ,l_entity_code
97584                                                                             ,l_event_class_code
97585                                                                            )
97586                                     ,p_token_3                 => 'OWNER'
97587                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
97588                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
97589                                                                           ,p_lookup_code    => l_component_type_code
97590                                                                          )
97591                                     ,p_token_4                 => 'PRODUCT_NAME'
97592                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97593                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97594                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97595                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97596                                     ,p_ae_header_id            =>  NULL
97597                                        );
97598 
97599         IF (C_LEVEL_ERROR>= g_log_level) THEN
97600                  trace
97601                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97602                       ,p_level    => C_LEVEL_ERROR
97603                       ,p_module   => l_log_module);
97604         END IF;
97605       END IF;
97606    END IF;
97607    --
97608    --
97609    ------------------------------------------------------------------------------------------------
97610    -- 4219869 Business Flow
97611    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97612    -- Prior Entry.  Currently, the following code is always generated.
97613    ------------------------------------------------------------------------------------------------
97614    -- No ValidateCurrentLine for business flow method of Prior Entry
97615 
97616    ------------------------------------------------------------------------------------
97617    -- 4219869 Business Flow
97618    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97619    ------------------------------------------------------------------------------------
97620    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97621 
97622    ----------------------------------------------------------------------------------
97623    -- 4219869 Business Flow
97624    -- Update journal entry status -- Need to generate this within IF <condition>
97628          ,p_balance_type_code => l_balance_type_code
97625    ----------------------------------------------------------------------------------
97626    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97627          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97629          );
97630 
97631    -------------------------------------------------------------------------------------------
97632    -- 4262811 - Generate the Accrual Reversal lines
97633    -------------------------------------------------------------------------------------------
97634    BEGIN
97635       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
97636                               (g_array_event(p_event_id).array_value_num('header_index'));
97637       IF l_acc_rev_flag IS NULL THEN
97638          l_acc_rev_flag := 'N';
97639       END IF;
97640    EXCEPTION
97641       WHEN OTHERS THEN
97642          l_acc_rev_flag := 'N';
97643    END;
97644    --
97645    IF (l_acc_rev_flag = 'Y') THEN
97646 
97647        -- 4645092  ------------------------------------------------------------------------------
97648        -- To allow MPA report to determine if it should generate report process
97649        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
97650        ------------------------------------------------------------------------------------------
97651 
97652        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
97653        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
97654    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
97655    -- call ADRs
97656    -- Bug 4922099
97657    --
97658    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97659         (NVL(l_actual_upg_option, 'N') = 'O') OR
97660         (NVL(l_enc_upg_option, 'N') = 'O')
97661       )
97662    THEN
97663    NULL;
97664    --
97665    --
97666    
97667    --
97668    --
97669    END IF;
97670 
97671        --
97672        -- Update the line information that should be overwritten
97673        --
97674        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
97675                                          p_header_num   => 1);
97676        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
97677 
97678        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
97679 
97680        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
97681           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
97682        END IF;
97683 
97684       --
97685       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
97686       --
97687       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
97688           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
97689       ELSE
97690           ---------------------------------------------------------------------------------------------------
97691           -- 4262811a Switch Sign
97692           ---------------------------------------------------------------------------------------------------
97693           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
97694           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97695                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97696           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97697                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97698           -- 5132302
97699           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
97700                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97701 
97702       END IF;
97703 
97704       -- 4955764
97705       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97706       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
97707 
97708 
97709       XLA_AE_LINES_PKG.ValidateCurrentLine;
97710       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97711 
97712       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97713                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
97714                ,p_balance_type_code => l_balance_type_code);
97715 
97716    END IF;
97717 
97718    -----------------------------------------------------------------------------------------
97719    -- 4262811 Multiperiod Accounting
97720    -----------------------------------------------------------------------------------------
97721      -- No MPA option is assigned.
97722 
97723 
97724 END IF;
97725 END IF;
97726 --
97727 
97728 --
97729 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97730    trace
97731       (p_msg      => 'END of AcctLineType_172'
97732       ,p_level    => C_LEVEL_PROCEDURE
97733       ,p_module   => l_log_module);
97734 END IF;
97735 --
97736 EXCEPTION
97737   WHEN xla_exceptions_pkg.application_exception THEN
97738       RAISE;
97739   WHEN OTHERS THEN
97740        xla_exceptions_pkg.raise_message
97744 
97741            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_172');
97742 END AcctLineType_172;
97743 --
97745 ---------------------------------------
97746 --
97747 -- PRIVATE FUNCTION
97748 --         AcctLineType_173
97749 --
97750 ---------------------------------------
97751 PROCEDURE AcctLineType_173 (
97752   p_application_id        IN NUMBER
97753  ,p_event_id              IN NUMBER
97754  ,p_calculate_acctd_flag  IN VARCHAR2
97755  ,p_calculate_g_l_flag    IN VARCHAR2
97756  ,p_actual_flag           IN OUT VARCHAR2
97757  ,p_balance_type_code     OUT VARCHAR2
97758  ,p_gain_or_loss_ref      OUT VARCHAR2
97759  
97760 --Invoice Distribution Type
97761  , p_source_20            IN VARCHAR2
97762  , p_source_20_meaning    IN VARCHAR2
97763 --When to Account for Payment Option
97764  , p_source_38            IN VARCHAR2
97765 --Payment Distribution Type
97766  , p_source_39            IN VARCHAR2
97767  , p_source_39_meaning    IN VARCHAR2
97768 --Accounting Reversal Indicator
97769  , p_source_40            IN VARCHAR2
97770 --Business Flow Accounts Payable Application Identifier
97771  , p_source_42            IN NUMBER
97772 --Payment Distribution Identifier
97773  , p_source_47            IN NUMBER
97774 --Distribution Link Type
97775  , p_source_48            IN VARCHAR2
97776 --Payment Currency Code
97777  , p_source_49            IN VARCHAR2
97778 --Override Accounted Amount Indicator
97779  , p_source_53            IN VARCHAR2
97780  , p_source_53_meaning    IN VARCHAR2
97781 --Third Party Type
97782  , p_source_56            IN VARCHAR2
97783 --Payment Distribution Reversed Identifier
97784  , p_source_57            IN NUMBER
97785 --Invoice Distribution Tax Line Identifier
97786  , p_source_58            IN NUMBER
97787 --Invoice Distribution Summary Tax Line Identifier
97788  , p_source_59            IN NUMBER
97789 --Payment Type
97790  , p_source_60            IN VARCHAR2
97791  , p_source_60_meaning    IN VARCHAR2
97792 --Invoice Distribution Amount of the Payment Distribution
97793  , p_source_61            IN NUMBER
97794 --Business Flow Invoice Distribution Type
97795  , p_source_62            IN VARCHAR2
97796 --Business Flow Invoice Entity Code
97797  , p_source_63            IN VARCHAR2
97798 --Business Flow Invoice Distribution Identifier
97799  , p_source_64            IN NUMBER
97800 --Business Flow Invoice Identifier
97801  , p_source_65            IN NUMBER
97802 --Invoice Distribution Tax Distribution Identifier from Tax
97803  , p_source_66            IN NUMBER
97804 --Accrue on Receipt Option
97805  , p_source_100            IN VARCHAR2
97806  , p_source_100_meaning    IN VARCHAR2
97807 --Purchasing Encumbrance Option
97808  , p_source_102            IN VARCHAR2
97809  , p_source_102_meaning    IN VARCHAR2
97810 --Prorated Amount of Variance Amount in Ledger Currency for Cash Basis
97811  , p_source_103            IN NUMBER
97812 --Invoice Encumbered Option
97813  , p_source_104            IN VARCHAR2
97814  , p_source_104_meaning    IN VARCHAR2
97815 --Prorated Amount of Variance Amount for Cash Basis
97816  , p_source_105            IN NUMBER
97817 )
97818 IS
97819 
97820 l_component_type              VARCHAR2(80);
97821 l_component_code              VARCHAR2(30);
97822 l_component_type_code         VARCHAR2(1);
97823 l_component_appl_id           INTEGER;
97824 l_amb_context_code            VARCHAR2(30);
97825 l_entity_code                 VARCHAR2(30);
97826 l_event_class_code            VARCHAR2(30);
97827 l_ae_header_id                NUMBER;
97828 l_event_type_code             VARCHAR2(30);
97829 l_line_definition_code        VARCHAR2(30);
97830 l_line_definition_owner_code  VARCHAR2(1);
97831 --
97832 -- adr variables
97833 l_segment                     VARCHAR2(30);
97834 l_ccid                        NUMBER;
97835 l_adr_transaction_coa_id      NUMBER;
97836 l_adr_accounting_coa_id       NUMBER;
97837 l_adr_flexfield_segment_code  VARCHAR2(30);
97838 l_adr_flex_value_set_id       NUMBER;
97839 l_adr_value_type_code         VARCHAR2(30);
97840 l_adr_value_combination_id    NUMBER;
97841 l_adr_value_segment_code      VARCHAR2(30);
97842 
97843 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
97844 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
97845 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
97846 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
97847 
97848 -- 4262811 Variables ------------------------------------------------------------------------------------------
97849 l_entered_amt_idx             NUMBER;
97850 l_accted_amt_idx              NUMBER;
97851 l_acc_rev_flag                VARCHAR2(1);
97852 l_accrual_line_num            NUMBER;
97853 l_tmp_amt                     NUMBER;
97854 l_acc_rev_natural_side_code   VARCHAR2(1);
97855 
97856 l_num_entries                 NUMBER;
97857 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
97858 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
97859 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
97860 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
97861 l_recog_line_1                NUMBER;
97862 l_recog_line_2                NUMBER;
97863 
97864 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
97865 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
97869 
97866 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
97867 
97868 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
97870 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
97871 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
97872 
97873 ---------------------------------------------------------------------------------------------------------------
97874 
97875 
97876 --
97877 -- bulk performance
97878 --
97879 l_balance_type_code           VARCHAR2(1);
97880 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
97881 l_log_module                  VARCHAR2(240);
97882 
97883 --
97884 -- Upgrade strategy
97885 --
97886 l_actual_upg_option           VARCHAR2(1);
97887 l_enc_upg_option           VARCHAR2(1);
97888 
97889 --
97890 BEGIN
97891 --
97892 IF g_log_enabled THEN
97893       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_173';
97894 END IF;
97895 --
97896 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97897 
97898       trace
97899          (p_msg      => 'BEGIN of AcctLineType_173'
97900          ,p_level    => C_LEVEL_PROCEDURE
97901          ,p_module   => l_log_module);
97902 
97903 END IF;
97904 --
97905 l_component_type             := 'AMB_JLT';
97906 l_component_code             := 'AP_TAX_AMOUNT_VARIANCE_PMT_ENC';
97907 l_component_type_code        := 'S';
97908 l_component_appl_id          :=  200;
97909 l_amb_context_code           := 'DEFAULT';
97910 l_entity_code                := 'AP_PAYMENTS';
97911 l_event_class_code           := 'PAYMENTS';
97912 l_event_type_code            := 'PAYMENTS_ALL';
97913 l_line_definition_owner_code := 'S';
97914 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
97915 --
97916 l_balance_type_code          := 'E';
97917 l_segment                     := NULL;
97918 l_ccid                        := NULL;
97919 l_adr_transaction_coa_id      := NULL;
97920 l_adr_accounting_coa_id       := NULL;
97921 l_adr_flexfield_segment_code  := NULL;
97922 l_adr_flex_value_set_id       := NULL;
97923 l_adr_value_type_code         := NULL;
97924 l_adr_value_combination_id    := NULL;
97925 l_adr_value_segment_code      := NULL;
97926 
97927 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
97928 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
97929 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
97930 l_budgetary_control_flag     := 'N';
97931 
97932 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
97933 l_bflow_applied_to_amt       := NULL; -- 5132302
97934 l_entered_amt_idx            := NULL;          -- 4262811
97935 l_accted_amt_idx             := NULL;          -- 4262811
97936 l_acc_rev_flag               := NULL;          -- 4262811
97937 l_accrual_line_num           := NULL;          -- 4262811
97938 l_tmp_amt                    := NULL;          -- 4262811
97939 --
97940  
97941 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
97942     l_balance_type_code <> 'B' THEN
97943 IF NVL(p_source_38,'
97944 ') <>  'CLEAR_CLEAR' AND 
97945 NVL(p_source_20,'
97946 ') =  'NONREC_TAX' AND 
97947 (NVL(p_source_39,'
97948 ') =  'CASH' OR 
97949 NVL(p_source_39,'
97950 ') =  'DISCOUNT') AND 
97951 NVL(p_source_60,'
97952 ') <>  'R' AND 
97953 NVL(p_source_102,'
97954 ') =  'Y' AND 
97955 p_source_103 IS NOT NULL AND 
97956 NVL(p_source_100,'
97957 ') <>  'Y' AND 
97958 NVL(p_source_104,'
97959 ') =  'Y'
97960  THEN 
97961 
97962    --
97963    XLA_AE_LINES_PKG.SetNewLine;
97964 
97965    p_balance_type_code          := l_balance_type_code;
97966    -- set the flag so later we will know whether the gain loss line needs to be created
97967    
97968    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
97969      p_actual_flag :='A';
97970    END IF;
97971 
97972    --
97973    -- bulk performance
97974    --
97975    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
97976                                       p_header_num   => 0); -- 4262811
97977    --
97978    -- set accounting line options
97979    --
97980    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
97981            p_natural_side_code          => 'C'
97982          , p_gain_or_loss_flag          => 'N'
97983          , p_gl_transfer_mode_code      => 'S'
97984          , p_acct_entry_type_code       => 'E'
97985          , p_switch_side_flag           => 'Y'
97986          , p_merge_duplicate_code       => 'A'
97987          );
97988    --
97989    l_acc_rev_natural_side_code := 'D';  -- 4262811
97990    -- 
97991    --
97992    -- set accounting line type info
97993    --
97994    xla_ae_lines_pkg.SetAcctLineType
97995       (p_component_type             => l_component_type
97996       ,p_event_type_code            => l_event_type_code
97997       ,p_line_definition_owner_code => l_line_definition_owner_code
97998       ,p_line_definition_code       => l_line_definition_code
97999       ,p_accounting_line_code       => l_component_code
98000       ,p_accounting_line_type_code  => l_component_type_code
98001       ,p_accounting_line_appl_id    => l_component_appl_id
98002       ,p_amb_context_code           => l_amb_context_code
98003       ,p_entity_code                => l_entity_code
98004       ,p_event_class_code           => l_event_class_code);
98005    --
98009            p_accounting_class_code  => 'TAV'
98006    -- set accounting class
98007    --
98008    xla_ae_lines_pkg.SetAcctClass(
98010          , p_ae_header_id           => l_ae_header_id
98011          );
98012 
98013    --
98014    -- set rounding class
98015    --
98016    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
98017                       'TAV';
98018 
98019    --
98020    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
98021    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
98022    --
98023    -- bulk performance
98024    --
98025    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
98026 
98027    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
98028       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
98029 
98030    -- 4955764
98031    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98032       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
98033 
98034    -- 4458381 Public Sector Enh
98035    
98036    --
98037    -- set accounting attributes for the line type
98038    --
98039    l_entered_amt_idx := 10;
98040    l_accted_amt_idx  := 12;
98041    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
98042    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
98043    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
98044    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
98045    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
98046    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
98047    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
98048    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
98049    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
98050    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
98051    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
98052    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
98053    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
98054    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
98055    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
98056    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
98057    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
98058    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
98059    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
98060    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
98061    l_rec_acct_attrs.array_num_value(10)  := p_source_105;
98062    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
98063    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
98064    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
98065    l_rec_acct_attrs.array_num_value(12)  := p_source_103;
98066    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
98067    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
98068    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
98069    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
98070    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
98071    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
98072    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
98073    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
98074    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
98075    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
98076    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
98077    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
98078    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
98079    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
98080 
98081    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
98082    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
98083 
98084    ---------------------------------------------------------------------------------------------------------------
98085    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
98086    ---------------------------------------------------------------------------------------------------------------
98087    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
98088 
98089    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98090    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98091 
98092    IF xla_accounting_cache_pkg.GetValueChar
98093          (p_source_code         => 'LEDGER_CATEGORY_CODE'
98094          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
98095    AND l_bflow_method_code = 'PRIOR_ENTRY'
98096 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
98097    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
98098          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
98099        )
98100    THEN
98101          xla_ae_lines_pkg.BflowUpgEntry
98105    ELSE
98102            (p_business_method_code    => l_bflow_method_code
98103            ,p_business_class_code     => l_bflow_class_code
98104            ,p_balance_type            => l_balance_type_code);
98106       NULL;
98107 XLA_AE_LINES_PKG.business_flow_validation(
98108                                 p_business_method_code     => l_bflow_method_code
98109                                ,p_business_class_code      => l_bflow_class_code
98110                                ,p_inherit_description_flag => l_inherit_desc_flag);
98111    END IF;
98112 
98113    --
98114    -- call analytical criteria
98115    --
98116    -- Inherited Analytical Criteria for business flow method of Prior Entry.
98117    --
98118    -- call description
98119    --
98120    -- No description or it is inherited.
98121    --
98122    -- call ADRs
98123    -- Bug 4922099
98124    --
98125    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98126         (NVL(l_actual_upg_option, 'N') = 'O') OR
98127         (NVL(l_enc_upg_option, 'N') = 'O')
98128       )
98129    THEN
98130    NULL;
98131    --
98132    --
98133    
98134    --
98135    --
98136    END IF;
98137    --
98138    -- Bug 4922099
98139    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
98140           (NVL(l_enc_upg_option, 'N') = 'O')
98141         ) AND
98142         (l_bflow_method_code = 'PRIOR_ENTRY')
98143       )
98144    THEN
98145       IF
98146       --
98147       1 = 1
98148       --
98149       THEN
98150       xla_accounting_err_pkg.build_message
98151                                     (p_appli_s_name            => 'XLA'
98152                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98153                                     ,p_token_1                 => 'LINE_NUMBER'
98154                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
98155                                     ,p_token_2                 => 'LINE_TYPE_NAME'
98156                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
98157                                                                              l_component_type
98158                                                                             ,l_component_code
98159                                                                             ,l_component_type_code
98160                                                                             ,l_component_appl_id
98161                                                                             ,l_amb_context_code
98162                                                                             ,l_entity_code
98163                                                                             ,l_event_class_code
98164                                                                            )
98165                                     ,p_token_3                 => 'OWNER'
98166                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
98167                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
98168                                                                           ,p_lookup_code    => l_component_type_code
98169                                                                          )
98170                                     ,p_token_4                 => 'PRODUCT_NAME'
98171                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
98172                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
98173                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
98174                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
98175                                     ,p_ae_header_id            =>  NULL
98176                                        );
98177 
98178         IF (C_LEVEL_ERROR>= g_log_level) THEN
98179                  trace
98180                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98181                       ,p_level    => C_LEVEL_ERROR
98182                       ,p_module   => l_log_module);
98183         END IF;
98184       END IF;
98185    END IF;
98186    --
98187    --
98188    ------------------------------------------------------------------------------------------------
98189    -- 4219869 Business Flow
98190    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
98191    -- Prior Entry.  Currently, the following code is always generated.
98192    ------------------------------------------------------------------------------------------------
98193    -- No ValidateCurrentLine for business flow method of Prior Entry
98194 
98195    ------------------------------------------------------------------------------------
98196    -- 4219869 Business Flow
98197    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
98198    ------------------------------------------------------------------------------------
98199    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98200 
98201    ----------------------------------------------------------------------------------
98202    -- 4219869 Business Flow
98203    -- Update journal entry status -- Need to generate this within IF <condition>
98204    ----------------------------------------------------------------------------------
98205    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98206          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
98210    -------------------------------------------------------------------------------------------
98207          ,p_balance_type_code => l_balance_type_code
98208          );
98209 
98211    -- 4262811 - Generate the Accrual Reversal lines
98212    -------------------------------------------------------------------------------------------
98213    BEGIN
98214       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98215                               (g_array_event(p_event_id).array_value_num('header_index'));
98216       IF l_acc_rev_flag IS NULL THEN
98217          l_acc_rev_flag := 'N';
98218       END IF;
98219    EXCEPTION
98220       WHEN OTHERS THEN
98221          l_acc_rev_flag := 'N';
98222    END;
98223    --
98224    IF (l_acc_rev_flag = 'Y') THEN
98225 
98226        -- 4645092  ------------------------------------------------------------------------------
98227        -- To allow MPA report to determine if it should generate report process
98228        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98229        ------------------------------------------------------------------------------------------
98230 
98231        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98232        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98233    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
98234    -- call ADRs
98235    -- Bug 4922099
98236    --
98237    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98238         (NVL(l_actual_upg_option, 'N') = 'O') OR
98239         (NVL(l_enc_upg_option, 'N') = 'O')
98240       )
98241    THEN
98242    NULL;
98243    --
98244    --
98245    
98246    --
98247    --
98248    END IF;
98249 
98250        --
98251        -- Update the line information that should be overwritten
98252        --
98253        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98254                                          p_header_num   => 1);
98255        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
98256 
98257        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98258 
98259        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
98260           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98261        END IF;
98262 
98263       --
98264       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98265       --
98266       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98267           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
98268       ELSE
98269           ---------------------------------------------------------------------------------------------------
98270           -- 4262811a Switch Sign
98271           ---------------------------------------------------------------------------------------------------
98272           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
98273           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98274                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98275           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98276                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98277           -- 5132302
98278           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98279                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98280 
98281       END IF;
98282 
98283       -- 4955764
98284       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98285       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98286 
98287 
98288       XLA_AE_LINES_PKG.ValidateCurrentLine;
98289       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98290 
98291       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98292                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98293                ,p_balance_type_code => l_balance_type_code);
98294 
98295    END IF;
98296 
98297    -----------------------------------------------------------------------------------------
98298    -- 4262811 Multiperiod Accounting
98299    -----------------------------------------------------------------------------------------
98300      -- No MPA option is assigned.
98301 
98302 
98303 END IF;
98304 END IF;
98305 --
98306 
98307 --
98308 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98309    trace
98310       (p_msg      => 'END of AcctLineType_173'
98311       ,p_level    => C_LEVEL_PROCEDURE
98312       ,p_module   => l_log_module);
98313 END IF;
98314 --
98315 EXCEPTION
98316   WHEN xla_exceptions_pkg.application_exception THEN
98317       RAISE;
98318   WHEN OTHERS THEN
98319        xla_exceptions_pkg.raise_message
98320            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_173');
98321 END AcctLineType_173;
98322 --
98323 
98324 ---------------------------------------
98325 --
98326 -- PRIVATE FUNCTION
98330 PROCEDURE AcctLineType_174 (
98327 --         AcctLineType_174
98328 --
98329 ---------------------------------------
98331   p_application_id        IN NUMBER
98332  ,p_event_id              IN NUMBER
98333  ,p_calculate_acctd_flag  IN VARCHAR2
98334  ,p_calculate_g_l_flag    IN VARCHAR2
98335  ,p_actual_flag           IN OUT VARCHAR2
98336  ,p_balance_type_code     OUT VARCHAR2
98337  ,p_gain_or_loss_ref      OUT VARCHAR2
98338  
98339 --Payment Distribution (Payment Rate) Ledger Amount
98340  , p_source_9            IN NUMBER
98341 --Invoice Distribution Type
98342  , p_source_20            IN VARCHAR2
98343  , p_source_20_meaning    IN VARCHAR2
98344 --When to Account for Payment Option
98345  , p_source_38            IN VARCHAR2
98346 --Payment Distribution Type
98347  , p_source_39            IN VARCHAR2
98348  , p_source_39_meaning    IN VARCHAR2
98349 --Accounting Reversal Indicator
98350  , p_source_40            IN VARCHAR2
98351 --Payment Distribution Amount
98352  , p_source_41            IN NUMBER
98353 --Business Flow Accounts Payable Application Identifier
98354  , p_source_42            IN NUMBER
98355 --Payment Distribution Identifier
98356  , p_source_47            IN NUMBER
98357 --Distribution Link Type
98358  , p_source_48            IN VARCHAR2
98359 --Payment Currency Code
98360  , p_source_49            IN VARCHAR2
98361 --Override Accounted Amount Indicator
98362  , p_source_53            IN VARCHAR2
98363  , p_source_53_meaning    IN VARCHAR2
98364 --Third Party Type
98365  , p_source_56            IN VARCHAR2
98366 --Payment Distribution Reversed Identifier
98367  , p_source_57            IN NUMBER
98368 --Invoice Distribution Tax Line Identifier
98369  , p_source_58            IN NUMBER
98370 --Invoice Distribution Summary Tax Line Identifier
98371  , p_source_59            IN NUMBER
98372 --Payment Type
98373  , p_source_60            IN VARCHAR2
98374  , p_source_60_meaning    IN VARCHAR2
98375 --Business Flow Invoice Distribution Type
98376  , p_source_62            IN VARCHAR2
98377 --Business Flow Invoice Entity Code
98378  , p_source_63            IN VARCHAR2
98379 --Business Flow Invoice Distribution Identifier
98380  , p_source_64            IN NUMBER
98381 --Business Flow Invoice Identifier
98382  , p_source_65            IN NUMBER
98383 --Invoice Distribution Tax Distribution Identifier from Tax
98384  , p_source_66            IN NUMBER
98385 --Purchasing Encumbrance Option
98386  , p_source_102            IN VARCHAR2
98387  , p_source_102_meaning    IN VARCHAR2
98388 --Invoice Encumbered Option
98389  , p_source_104            IN VARCHAR2
98390  , p_source_104_meaning    IN VARCHAR2
98391 )
98392 IS
98393 
98394 l_component_type              VARCHAR2(80);
98395 l_component_code              VARCHAR2(30);
98396 l_component_type_code         VARCHAR2(1);
98397 l_component_appl_id           INTEGER;
98398 l_amb_context_code            VARCHAR2(30);
98399 l_entity_code                 VARCHAR2(30);
98400 l_event_class_code            VARCHAR2(30);
98401 l_ae_header_id                NUMBER;
98402 l_event_type_code             VARCHAR2(30);
98403 l_line_definition_code        VARCHAR2(30);
98404 l_line_definition_owner_code  VARCHAR2(1);
98405 --
98406 -- adr variables
98407 l_segment                     VARCHAR2(30);
98408 l_ccid                        NUMBER;
98409 l_adr_transaction_coa_id      NUMBER;
98410 l_adr_accounting_coa_id       NUMBER;
98411 l_adr_flexfield_segment_code  VARCHAR2(30);
98412 l_adr_flex_value_set_id       NUMBER;
98413 l_adr_value_type_code         VARCHAR2(30);
98414 l_adr_value_combination_id    NUMBER;
98415 l_adr_value_segment_code      VARCHAR2(30);
98416 
98417 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
98418 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
98419 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
98420 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
98421 
98422 -- 4262811 Variables ------------------------------------------------------------------------------------------
98423 l_entered_amt_idx             NUMBER;
98424 l_accted_amt_idx              NUMBER;
98425 l_acc_rev_flag                VARCHAR2(1);
98426 l_accrual_line_num            NUMBER;
98427 l_tmp_amt                     NUMBER;
98428 l_acc_rev_natural_side_code   VARCHAR2(1);
98429 
98430 l_num_entries                 NUMBER;
98431 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
98432 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
98433 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
98434 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
98435 l_recog_line_1                NUMBER;
98436 l_recog_line_2                NUMBER;
98437 
98438 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
98439 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
98440 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
98441 
98442 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
98443 
98444 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
98445 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
98446 
98447 ---------------------------------------------------------------------------------------------------------------
98448 
98449 
98453 l_balance_type_code           VARCHAR2(1);
98450 --
98451 -- bulk performance
98452 --
98454 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
98455 l_log_module                  VARCHAR2(240);
98456 
98457 --
98458 -- Upgrade strategy
98459 --
98460 l_actual_upg_option           VARCHAR2(1);
98461 l_enc_upg_option           VARCHAR2(1);
98462 
98463 --
98464 BEGIN
98465 --
98466 IF g_log_enabled THEN
98467       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_174';
98468 END IF;
98469 --
98470 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98471 
98472       trace
98473          (p_msg      => 'BEGIN of AcctLineType_174'
98474          ,p_level    => C_LEVEL_PROCEDURE
98475          ,p_module   => l_log_module);
98476 
98477 END IF;
98478 --
98479 l_component_type             := 'AMB_JLT';
98480 l_component_code             := 'AP_TAX_AMOUNT_VARIANCE_REF_ENC';
98481 l_component_type_code        := 'S';
98482 l_component_appl_id          :=  200;
98483 l_amb_context_code           := 'DEFAULT';
98484 l_entity_code                := 'AP_PAYMENTS';
98485 l_event_class_code           := 'REFUNDS';
98486 l_event_type_code            := 'REFUNDS_ALL';
98487 l_line_definition_owner_code := 'S';
98488 l_line_definition_code       := 'ENC_REFUNDS_ALL';
98489 --
98490 l_balance_type_code          := 'E';
98491 l_segment                     := NULL;
98492 l_ccid                        := NULL;
98493 l_adr_transaction_coa_id      := NULL;
98494 l_adr_accounting_coa_id       := NULL;
98495 l_adr_flexfield_segment_code  := NULL;
98496 l_adr_flex_value_set_id       := NULL;
98497 l_adr_value_type_code         := NULL;
98498 l_adr_value_combination_id    := NULL;
98499 l_adr_value_segment_code      := NULL;
98500 
98501 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
98502 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
98503 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
98504 l_budgetary_control_flag     := 'N';
98505 
98506 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
98507 l_bflow_applied_to_amt       := NULL; -- 5132302
98508 l_entered_amt_idx            := NULL;          -- 4262811
98509 l_accted_amt_idx             := NULL;          -- 4262811
98510 l_acc_rev_flag               := NULL;          -- 4262811
98511 l_accrual_line_num           := NULL;          -- 4262811
98512 l_tmp_amt                    := NULL;          -- 4262811
98513 --
98514  
98515 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
98516     l_balance_type_code <> 'B' THEN
98517 IF NVL(p_source_38,'
98518 ') <>  'CLEAR_CLEAR' AND 
98519 NVL(p_source_20,'
98520 ') =  'NONREC_TAX' AND 
98521 (NVL(p_source_39,'
98522 ') =  'CASH' OR 
98523 NVL(p_source_39,'
98524 ') =  'DISCOUNT') AND 
98525 NVL(p_source_60,'
98526 ') =  'R' AND 
98527 NVL(p_source_102,'
98528 ') =  'Y' AND 
98529 NVL(p_source_104,'
98530 ') =  'Y'
98531  THEN 
98532 
98533    --
98534    XLA_AE_LINES_PKG.SetNewLine;
98535 
98536    p_balance_type_code          := l_balance_type_code;
98537    -- set the flag so later we will know whether the gain loss line needs to be created
98538    
98539    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
98540      p_actual_flag :='A';
98541    END IF;
98542 
98543    --
98544    -- bulk performance
98545    --
98546    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
98547                                       p_header_num   => 0); -- 4262811
98548    --
98549    -- set accounting line options
98550    --
98551    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
98552            p_natural_side_code          => 'D'
98553          , p_gain_or_loss_flag          => 'N'
98554          , p_gl_transfer_mode_code      => 'S'
98555          , p_acct_entry_type_code       => 'E'
98556          , p_switch_side_flag           => 'Y'
98557          , p_merge_duplicate_code       => 'A'
98558          );
98559    --
98560    l_acc_rev_natural_side_code := 'C';  -- 4262811
98561    -- 
98562    --
98563    -- set accounting line type info
98564    --
98565    xla_ae_lines_pkg.SetAcctLineType
98566       (p_component_type             => l_component_type
98567       ,p_event_type_code            => l_event_type_code
98568       ,p_line_definition_owner_code => l_line_definition_owner_code
98569       ,p_line_definition_code       => l_line_definition_code
98570       ,p_accounting_line_code       => l_component_code
98571       ,p_accounting_line_type_code  => l_component_type_code
98572       ,p_accounting_line_appl_id    => l_component_appl_id
98573       ,p_amb_context_code           => l_amb_context_code
98574       ,p_entity_code                => l_entity_code
98575       ,p_event_class_code           => l_event_class_code);
98576    --
98577    -- set accounting class
98578    --
98579    xla_ae_lines_pkg.SetAcctClass(
98580            p_accounting_class_code  => 'TAV'
98581          , p_ae_header_id           => l_ae_header_id
98582          );
98583 
98584    --
98585    -- set rounding class
98586    --
98587    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
98588                       'TAV';
98589 
98590    --
98594    -- bulk performance
98591    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
98592    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
98593    --
98595    --
98596    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
98597 
98598    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
98599       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
98600 
98601    -- 4955764
98602    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98603       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
98604 
98605    -- 4458381 Public Sector Enh
98606    
98607    --
98608    -- set accounting attributes for the line type
98609    --
98610    l_entered_amt_idx := 9;
98611    l_accted_amt_idx  := 11;
98612    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
98613    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
98614    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
98615    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
98616    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
98617    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
98618    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
98619    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
98620    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
98621    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
98622    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
98623    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
98624    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
98625    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
98626    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
98627    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
98628    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
98629    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
98630    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
98631    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
98632    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
98633    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
98634    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
98635    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
98636    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
98637    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
98638    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
98639    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
98640    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
98641    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
98642    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
98643    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
98644    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
98645    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
98646    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
98647    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
98648    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
98649 
98650    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
98651    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
98652 
98653    ---------------------------------------------------------------------------------------------------------------
98654    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
98655    ---------------------------------------------------------------------------------------------------------------
98656    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
98657 
98658    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98659    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98660 
98661    IF xla_accounting_cache_pkg.GetValueChar
98662          (p_source_code         => 'LEDGER_CATEGORY_CODE'
98663          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
98664    AND l_bflow_method_code = 'PRIOR_ENTRY'
98665 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
98666    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
98667          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
98668        )
98669    THEN
98670          xla_ae_lines_pkg.BflowUpgEntry
98671            (p_business_method_code    => l_bflow_method_code
98672            ,p_business_class_code     => l_bflow_class_code
98673            ,p_balance_type            => l_balance_type_code);
98674    ELSE
98675       NULL;
98676 XLA_AE_LINES_PKG.business_flow_validation(
98677                                 p_business_method_code     => l_bflow_method_code
98678                                ,p_business_class_code      => l_bflow_class_code
98679                                ,p_inherit_description_flag => l_inherit_desc_flag);
98680    END IF;
98681 
98682    --
98683    -- call analytical criteria
98684    --
98685    -- Inherited Analytical Criteria for business flow method of Prior Entry.
98689    -- No description or it is inherited.
98686    --
98687    -- call description
98688    --
98690    --
98691    -- call ADRs
98692    -- Bug 4922099
98693    --
98694    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98695         (NVL(l_actual_upg_option, 'N') = 'O') OR
98696         (NVL(l_enc_upg_option, 'N') = 'O')
98697       )
98698    THEN
98699    NULL;
98700    --
98701    --
98702    
98703    --
98704    --
98705    END IF;
98706    --
98707    -- Bug 4922099
98708    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
98709           (NVL(l_enc_upg_option, 'N') = 'O')
98710         ) AND
98711         (l_bflow_method_code = 'PRIOR_ENTRY')
98712       )
98713    THEN
98714       IF
98715       --
98716       1 = 1
98717       --
98718       THEN
98719       xla_accounting_err_pkg.build_message
98720                                     (p_appli_s_name            => 'XLA'
98721                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98722                                     ,p_token_1                 => 'LINE_NUMBER'
98723                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
98724                                     ,p_token_2                 => 'LINE_TYPE_NAME'
98725                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
98726                                                                              l_component_type
98727                                                                             ,l_component_code
98728                                                                             ,l_component_type_code
98729                                                                             ,l_component_appl_id
98730                                                                             ,l_amb_context_code
98731                                                                             ,l_entity_code
98732                                                                             ,l_event_class_code
98733                                                                            )
98734                                     ,p_token_3                 => 'OWNER'
98735                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
98736                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
98737                                                                           ,p_lookup_code    => l_component_type_code
98738                                                                          )
98739                                     ,p_token_4                 => 'PRODUCT_NAME'
98740                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
98741                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
98742                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
98743                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
98744                                     ,p_ae_header_id            =>  NULL
98745                                        );
98746 
98747         IF (C_LEVEL_ERROR>= g_log_level) THEN
98748                  trace
98749                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98750                       ,p_level    => C_LEVEL_ERROR
98751                       ,p_module   => l_log_module);
98752         END IF;
98753       END IF;
98754    END IF;
98755    --
98756    --
98757    ------------------------------------------------------------------------------------------------
98758    -- 4219869 Business Flow
98759    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
98760    -- Prior Entry.  Currently, the following code is always generated.
98761    ------------------------------------------------------------------------------------------------
98762    -- No ValidateCurrentLine for business flow method of Prior Entry
98763 
98764    ------------------------------------------------------------------------------------
98765    -- 4219869 Business Flow
98766    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
98767    ------------------------------------------------------------------------------------
98768    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98769 
98770    ----------------------------------------------------------------------------------
98771    -- 4219869 Business Flow
98772    -- Update journal entry status -- Need to generate this within IF <condition>
98773    ----------------------------------------------------------------------------------
98774    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98775          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
98776          ,p_balance_type_code => l_balance_type_code
98777          );
98778 
98779    -------------------------------------------------------------------------------------------
98780    -- 4262811 - Generate the Accrual Reversal lines
98781    -------------------------------------------------------------------------------------------
98782    BEGIN
98783       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98784                               (g_array_event(p_event_id).array_value_num('header_index'));
98785       IF l_acc_rev_flag IS NULL THEN
98786          l_acc_rev_flag := 'N';
98787       END IF;
98788    EXCEPTION
98789       WHEN OTHERS THEN
98793    IF (l_acc_rev_flag = 'Y') THEN
98790          l_acc_rev_flag := 'N';
98791    END;
98792    --
98794 
98795        -- 4645092  ------------------------------------------------------------------------------
98796        -- To allow MPA report to determine if it should generate report process
98797        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98798        ------------------------------------------------------------------------------------------
98799 
98800        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98801        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98802    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
98803    -- call ADRs
98804    -- Bug 4922099
98805    --
98806    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98807         (NVL(l_actual_upg_option, 'N') = 'O') OR
98808         (NVL(l_enc_upg_option, 'N') = 'O')
98809       )
98810    THEN
98811    NULL;
98812    --
98813    --
98814    
98815    --
98816    --
98817    END IF;
98818 
98819        --
98820        -- Update the line information that should be overwritten
98821        --
98822        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98823                                          p_header_num   => 1);
98824        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
98825 
98826        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98827 
98828        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
98829           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98830        END IF;
98831 
98832       --
98833       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98834       --
98835       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98836           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
98837       ELSE
98838           ---------------------------------------------------------------------------------------------------
98839           -- 4262811a Switch Sign
98840           ---------------------------------------------------------------------------------------------------
98841           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
98842           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98843                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98844           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98845                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98846           -- 5132302
98847           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98848                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98849 
98850       END IF;
98851 
98852       -- 4955764
98853       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98854       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98855 
98856 
98857       XLA_AE_LINES_PKG.ValidateCurrentLine;
98858       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98859 
98860       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98861                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98862                ,p_balance_type_code => l_balance_type_code);
98863 
98864    END IF;
98865 
98866    -----------------------------------------------------------------------------------------
98867    -- 4262811 Multiperiod Accounting
98868    -----------------------------------------------------------------------------------------
98869      -- No MPA option is assigned.
98870 
98871 
98872 END IF;
98873 END IF;
98874 --
98875 
98876 --
98877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98878    trace
98879       (p_msg      => 'END of AcctLineType_174'
98880       ,p_level    => C_LEVEL_PROCEDURE
98881       ,p_module   => l_log_module);
98882 END IF;
98883 --
98884 EXCEPTION
98885   WHEN xla_exceptions_pkg.application_exception THEN
98886       RAISE;
98887   WHEN OTHERS THEN
98888        xla_exceptions_pkg.raise_message
98889            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_174');
98890 END AcctLineType_174;
98891 --
98892 
98893 ---------------------------------------
98894 --
98895 -- PRIVATE FUNCTION
98896 --         AcctLineType_175
98897 --
98898 ---------------------------------------
98899 PROCEDURE AcctLineType_175 (
98900   p_application_id        IN NUMBER
98901  ,p_event_id              IN NUMBER
98902  ,p_calculate_acctd_flag  IN VARCHAR2
98903  ,p_calculate_g_l_flag    IN VARCHAR2
98904  ,p_actual_flag           IN OUT VARCHAR2
98905  ,p_balance_type_code     OUT VARCHAR2
98906  ,p_gain_or_loss_ref      OUT VARCHAR2
98907  
98908 --Payment Distribution (Payment Rate) Ledger Amount
98909  , p_source_9            IN NUMBER
98910 --When to Account for Payment Option
98911  , p_source_38            IN VARCHAR2
98912 --Payment Distribution Type
98913  , p_source_39            IN VARCHAR2
98914  , p_source_39_meaning    IN VARCHAR2
98915 --Accounting Reversal Indicator
98919 --Business Flow Accounts Payable Application Identifier
98916  , p_source_40            IN VARCHAR2
98917 --Payment Distribution Amount
98918  , p_source_41            IN NUMBER
98920  , p_source_42            IN NUMBER
98921 --Payment Distribution Identifier
98922  , p_source_47            IN NUMBER
98923 --Distribution Link Type
98924  , p_source_48            IN VARCHAR2
98925 --Payment Currency Code
98926  , p_source_49            IN VARCHAR2
98927 --Override Accounted Amount Indicator
98928  , p_source_53            IN VARCHAR2
98929  , p_source_53_meaning    IN VARCHAR2
98930 --Third Party Type
98931  , p_source_56            IN VARCHAR2
98932 --Payment Distribution Reversed Identifier
98933  , p_source_57            IN NUMBER
98934 --Invoice Distribution Tax Line Identifier
98935  , p_source_58            IN NUMBER
98936 --Invoice Distribution Summary Tax Line Identifier
98937  , p_source_59            IN NUMBER
98938 --Business Flow Invoice Distribution Type
98939  , p_source_62            IN VARCHAR2
98940 --Business Flow Invoice Entity Code
98941  , p_source_63            IN VARCHAR2
98942 --Business Flow Invoice Distribution Identifier
98943  , p_source_64            IN NUMBER
98944 --Business Flow Invoice Identifier
98945  , p_source_65            IN NUMBER
98946 --Purchasing Encumbrance Option
98947  , p_source_102            IN VARCHAR2
98948  , p_source_102_meaning    IN VARCHAR2
98949 --Invoice Encumbered Option
98950  , p_source_104            IN VARCHAR2
98951  , p_source_104_meaning    IN VARCHAR2
98952 )
98953 IS
98954 
98955 l_component_type              VARCHAR2(80);
98956 l_component_code              VARCHAR2(30);
98957 l_component_type_code         VARCHAR2(1);
98958 l_component_appl_id           INTEGER;
98959 l_amb_context_code            VARCHAR2(30);
98960 l_entity_code                 VARCHAR2(30);
98961 l_event_class_code            VARCHAR2(30);
98962 l_ae_header_id                NUMBER;
98963 l_event_type_code             VARCHAR2(30);
98964 l_line_definition_code        VARCHAR2(30);
98965 l_line_definition_owner_code  VARCHAR2(1);
98966 --
98967 -- adr variables
98968 l_segment                     VARCHAR2(30);
98969 l_ccid                        NUMBER;
98970 l_adr_transaction_coa_id      NUMBER;
98971 l_adr_accounting_coa_id       NUMBER;
98972 l_adr_flexfield_segment_code  VARCHAR2(30);
98973 l_adr_flex_value_set_id       NUMBER;
98974 l_adr_value_type_code         VARCHAR2(30);
98975 l_adr_value_combination_id    NUMBER;
98976 l_adr_value_segment_code      VARCHAR2(30);
98977 
98978 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
98979 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
98980 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
98981 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
98982 
98983 -- 4262811 Variables ------------------------------------------------------------------------------------------
98984 l_entered_amt_idx             NUMBER;
98985 l_accted_amt_idx              NUMBER;
98986 l_acc_rev_flag                VARCHAR2(1);
98987 l_accrual_line_num            NUMBER;
98988 l_tmp_amt                     NUMBER;
98989 l_acc_rev_natural_side_code   VARCHAR2(1);
98990 
98991 l_num_entries                 NUMBER;
98992 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
98993 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
98994 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
98995 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
98996 l_recog_line_1                NUMBER;
98997 l_recog_line_2                NUMBER;
98998 
98999 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
99000 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
99001 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
99002 
99003 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99004 
99005 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
99006 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
99007 
99008 ---------------------------------------------------------------------------------------------------------------
99009 
99010 
99011 --
99012 -- bulk performance
99013 --
99014 l_balance_type_code           VARCHAR2(1);
99015 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
99016 l_log_module                  VARCHAR2(240);
99017 
99018 --
99019 -- Upgrade strategy
99020 --
99021 l_actual_upg_option           VARCHAR2(1);
99022 l_enc_upg_option           VARCHAR2(1);
99023 
99024 --
99025 BEGIN
99026 --
99027 IF g_log_enabled THEN
99028       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_175';
99029 END IF;
99030 --
99031 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99032 
99033       trace
99034          (p_msg      => 'BEGIN of AcctLineType_175'
99035          ,p_level    => C_LEVEL_PROCEDURE
99036          ,p_module   => l_log_module);
99037 
99038 END IF;
99039 --
99040 l_component_type             := 'AMB_JLT';
99041 l_component_code             := 'AP_TAX_EXCHG_RATE_VAR_CLR_ENC';
99042 l_component_type_code        := 'S';
99043 l_component_appl_id          :=  200;
99044 l_amb_context_code           := 'DEFAULT';
99045 l_entity_code                := 'AP_PAYMENTS';
99049 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
99046 l_event_class_code           := 'RECONCILED PAYMENTS';
99047 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
99048 l_line_definition_owner_code := 'S';
99050 --
99051 l_balance_type_code          := 'E';
99052 l_segment                     := NULL;
99053 l_ccid                        := NULL;
99054 l_adr_transaction_coa_id      := NULL;
99055 l_adr_accounting_coa_id       := NULL;
99056 l_adr_flexfield_segment_code  := NULL;
99057 l_adr_flex_value_set_id       := NULL;
99058 l_adr_value_type_code         := NULL;
99059 l_adr_value_combination_id    := NULL;
99060 l_adr_value_segment_code      := NULL;
99061 
99062 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
99063 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
99064 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
99065 l_budgetary_control_flag     := 'N';
99066 
99067 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
99068 l_bflow_applied_to_amt       := NULL; -- 5132302
99069 l_entered_amt_idx            := NULL;          -- 4262811
99070 l_accted_amt_idx             := NULL;          -- 4262811
99071 l_acc_rev_flag               := NULL;          -- 4262811
99072 l_accrual_line_num           := NULL;          -- 4262811
99073 l_tmp_amt                    := NULL;          -- 4262811
99074 --
99075 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
99076             (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
99077                return;
99078   END IF;
99079   
99080 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99081     l_balance_type_code <> 'B' THEN
99082 IF NVL(p_source_38,'
99083 ') =  'CLEAR_CLEAR' AND 
99084 NVL(p_source_39,'
99085 ') =  'TAX EXCHANGE RATE VARIANCE' AND 
99086 NVL(p_source_102,'
99087 ') =  'Y' AND 
99088 NVL(p_source_104,'
99089 ') =  'Y'
99090  THEN 
99091 
99092    --
99093    XLA_AE_LINES_PKG.SetNewLine;
99094 
99095    p_balance_type_code          := l_balance_type_code;
99096    -- set the flag so later we will know whether the gain loss line needs to be created
99097    
99098    IF(l_balance_type_code = 'A' ) THEN
99099      p_actual_flag :='G';
99100    END IF;
99101 
99102    --
99103    -- bulk performance
99104    --
99105    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99106                                       p_header_num   => 0); -- 4262811
99107    --
99108    -- set accounting line options
99109    --
99110    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99111            p_natural_side_code          => 'C'
99112          , p_gain_or_loss_flag          => 'Y'
99113          , p_gl_transfer_mode_code      => 'S'
99114          , p_acct_entry_type_code       => 'E'
99115          , p_switch_side_flag           => 'Y'
99116          , p_merge_duplicate_code       => 'A'
99117          );
99118    --
99119    l_acc_rev_natural_side_code := 'D';  -- 4262811
99120    -- 
99121    --
99122    -- set accounting line type info
99123    --
99124    xla_ae_lines_pkg.SetAcctLineType
99125       (p_component_type             => l_component_type
99126       ,p_event_type_code            => l_event_type_code
99127       ,p_line_definition_owner_code => l_line_definition_owner_code
99128       ,p_line_definition_code       => l_line_definition_code
99129       ,p_accounting_line_code       => l_component_code
99130       ,p_accounting_line_type_code  => l_component_type_code
99131       ,p_accounting_line_appl_id    => l_component_appl_id
99132       ,p_amb_context_code           => l_amb_context_code
99133       ,p_entity_code                => l_entity_code
99134       ,p_event_class_code           => l_event_class_code);
99135    --
99136    -- set accounting class
99137    --
99138    xla_ae_lines_pkg.SetAcctClass(
99139            p_accounting_class_code  => 'TERV'
99140          , p_ae_header_id           => l_ae_header_id
99141          );
99142 
99143    --
99144    -- set rounding class
99145    --
99146    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99147                       'TERV';
99148 
99149    --
99150    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
99151    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
99152    --
99153    -- bulk performance
99154    --
99155    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
99156 
99157    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
99158       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
99159 
99160    -- 4955764
99161    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99162       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
99163 
99164    -- 4458381 Public Sector Enh
99165    
99166    --
99167    -- set accounting attributes for the line type
99168    --
99169    l_entered_amt_idx := 10;
99170    l_accted_amt_idx  := 12;
99174    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
99171    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
99172    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
99173    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
99175    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
99176    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
99177    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
99178    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
99179    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
99180    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
99181    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
99182    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
99183    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
99184    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
99185    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
99186    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
99187    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
99188    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
99189    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
99190    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
99191    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
99192    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
99193    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
99194    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
99195    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
99196    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
99197    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
99198    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
99199    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
99200    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
99201    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
99202    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
99203    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
99204    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
99205    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
99206    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
99207    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
99208    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
99209    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
99210 
99211    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
99212    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
99213 
99214    ---------------------------------------------------------------------------------------------------------------
99215    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
99216    ---------------------------------------------------------------------------------------------------------------
99217    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
99218 
99219    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99220    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99221 
99222    IF xla_accounting_cache_pkg.GetValueChar
99223          (p_source_code         => 'LEDGER_CATEGORY_CODE'
99224          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
99225    AND l_bflow_method_code = 'PRIOR_ENTRY'
99226 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
99227    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
99228          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
99229        )
99230    THEN
99231          xla_ae_lines_pkg.BflowUpgEntry
99232            (p_business_method_code    => l_bflow_method_code
99233            ,p_business_class_code     => l_bflow_class_code
99234            ,p_balance_type            => l_balance_type_code);
99235    ELSE
99236       NULL;
99237 XLA_AE_LINES_PKG.business_flow_validation(
99238                                 p_business_method_code     => l_bflow_method_code
99239                                ,p_business_class_code      => l_bflow_class_code
99240                                ,p_inherit_description_flag => l_inherit_desc_flag);
99241    END IF;
99242 
99243    --
99244    -- call analytical criteria
99245    --
99246    -- Inherited Analytical Criteria for business flow method of Prior Entry.
99247    --
99248    -- call description
99249    --
99250    -- No description or it is inherited.
99251    --
99252    -- call ADRs
99253    -- Bug 4922099
99254    --
99255    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99256         (NVL(l_actual_upg_option, 'N') = 'O') OR
99257         (NVL(l_enc_upg_option, 'N') = 'O')
99258       )
99259    THEN
99260    NULL;
99261    --
99262    --
99263    
99264    --
99265    --
99266    END IF;
99267    --
99268    -- Bug 4922099
99269    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
99270           (NVL(l_enc_upg_option, 'N') = 'O')
99271         ) AND
99272         (l_bflow_method_code = 'PRIOR_ENTRY')
99273       )
99274    THEN
99275       IF
99276       --
99277       1 = 1
99281                                     (p_appli_s_name            => 'XLA'
99278       --
99279       THEN
99280       xla_accounting_err_pkg.build_message
99282                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99283                                     ,p_token_1                 => 'LINE_NUMBER'
99284                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
99285                                     ,p_token_2                 => 'LINE_TYPE_NAME'
99286                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
99287                                                                              l_component_type
99288                                                                             ,l_component_code
99289                                                                             ,l_component_type_code
99290                                                                             ,l_component_appl_id
99291                                                                             ,l_amb_context_code
99292                                                                             ,l_entity_code
99293                                                                             ,l_event_class_code
99294                                                                            )
99295                                     ,p_token_3                 => 'OWNER'
99296                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
99297                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
99298                                                                           ,p_lookup_code    => l_component_type_code
99299                                                                          )
99300                                     ,p_token_4                 => 'PRODUCT_NAME'
99301                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
99302                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
99303                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
99304                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
99305                                     ,p_ae_header_id            =>  NULL
99306                                        );
99307 
99308         IF (C_LEVEL_ERROR>= g_log_level) THEN
99309                  trace
99310                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99311                       ,p_level    => C_LEVEL_ERROR
99312                       ,p_module   => l_log_module);
99313         END IF;
99314       END IF;
99315    END IF;
99316    --
99317    --
99318    ------------------------------------------------------------------------------------------------
99319    -- 4219869 Business Flow
99320    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
99321    -- Prior Entry.  Currently, the following code is always generated.
99322    ------------------------------------------------------------------------------------------------
99323    -- No ValidateCurrentLine for business flow method of Prior Entry
99324 
99325    ------------------------------------------------------------------------------------
99326    -- 4219869 Business Flow
99327    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
99328    ------------------------------------------------------------------------------------
99329    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99330 
99331    ----------------------------------------------------------------------------------
99332    -- 4219869 Business Flow
99333    -- Update journal entry status -- Need to generate this within IF <condition>
99334    ----------------------------------------------------------------------------------
99335    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99336          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
99337          ,p_balance_type_code => l_balance_type_code
99338          );
99339 
99340    -------------------------------------------------------------------------------------------
99341    -- 4262811 - Generate the Accrual Reversal lines
99342    -------------------------------------------------------------------------------------------
99343    BEGIN
99344       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
99345                               (g_array_event(p_event_id).array_value_num('header_index'));
99346       IF l_acc_rev_flag IS NULL THEN
99347          l_acc_rev_flag := 'N';
99348       END IF;
99349    EXCEPTION
99350       WHEN OTHERS THEN
99351          l_acc_rev_flag := 'N';
99352    END;
99353    --
99354    IF (l_acc_rev_flag = 'Y') THEN
99355 
99356        -- 4645092  ------------------------------------------------------------------------------
99357        -- To allow MPA report to determine if it should generate report process
99358        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
99359        ------------------------------------------------------------------------------------------
99360 
99361        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
99362        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
99363    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
99364    -- call ADRs
99365    -- Bug 4922099
99366    --
99370       )
99367    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99368         (NVL(l_actual_upg_option, 'N') = 'O') OR
99369         (NVL(l_enc_upg_option, 'N') = 'O')
99371    THEN
99372    NULL;
99373    --
99374    --
99375    
99376    --
99377    --
99378    END IF;
99379 
99380        --
99381        -- Update the line information that should be overwritten
99382        --
99383        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
99384                                          p_header_num   => 1);
99385        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
99386 
99387        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
99388 
99389        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
99390           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
99391        END IF;
99392 
99393       --
99394       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
99395       --
99396       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
99397           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
99398       ELSE
99399           ---------------------------------------------------------------------------------------------------
99400           -- 4262811a Switch Sign
99401           ---------------------------------------------------------------------------------------------------
99402           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
99403           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99404                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99405           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99406                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99407           -- 5132302
99408           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
99409                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99410 
99411       END IF;
99412 
99413       -- 4955764
99414       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99415       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
99416 
99417 
99418       XLA_AE_LINES_PKG.ValidateCurrentLine;
99419       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99420 
99421       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99422                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
99423                ,p_balance_type_code => l_balance_type_code);
99424 
99425    END IF;
99426 
99427    -----------------------------------------------------------------------------------------
99428    -- 4262811 Multiperiod Accounting
99429    -----------------------------------------------------------------------------------------
99430      -- No MPA option is assigned.
99431 
99432 
99433 END IF;
99434 END IF;
99435 --
99436 
99437 --
99438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99439    trace
99440       (p_msg      => 'END of AcctLineType_175'
99441       ,p_level    => C_LEVEL_PROCEDURE
99442       ,p_module   => l_log_module);
99443 END IF;
99444 --
99445 EXCEPTION
99446   WHEN xla_exceptions_pkg.application_exception THEN
99447       RAISE;
99448   WHEN OTHERS THEN
99449        xla_exceptions_pkg.raise_message
99450            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_175');
99451 END AcctLineType_175;
99452 --
99453 
99454 ---------------------------------------
99455 --
99456 -- PRIVATE FUNCTION
99457 --         AcctLineType_176
99458 --
99459 ---------------------------------------
99460 PROCEDURE AcctLineType_176 (
99461   p_application_id        IN NUMBER
99462  ,p_event_id              IN NUMBER
99463  ,p_calculate_acctd_flag  IN VARCHAR2
99464  ,p_calculate_g_l_flag    IN VARCHAR2
99465  ,p_actual_flag           IN OUT VARCHAR2
99466  ,p_balance_type_code     OUT VARCHAR2
99467  ,p_gain_or_loss_ref      OUT VARCHAR2
99468  
99469 --Payment Distribution (Payment Rate) Ledger Amount
99470  , p_source_9            IN NUMBER
99471 --When to Account for Payment Option
99472  , p_source_38            IN VARCHAR2
99473 --Payment Distribution Type
99474  , p_source_39            IN VARCHAR2
99475  , p_source_39_meaning    IN VARCHAR2
99476 --Accounting Reversal Indicator
99477  , p_source_40            IN VARCHAR2
99478 --Payment Distribution Amount
99479  , p_source_41            IN NUMBER
99480 --Business Flow Accounts Payable Application Identifier
99481  , p_source_42            IN NUMBER
99482 --Payment Distribution Identifier
99483  , p_source_47            IN NUMBER
99484 --Distribution Link Type
99485  , p_source_48            IN VARCHAR2
99486 --Payment Currency Code
99487  , p_source_49            IN VARCHAR2
99488 --Override Accounted Amount Indicator
99489  , p_source_53            IN VARCHAR2
99490  , p_source_53_meaning    IN VARCHAR2
99491 --Third Party Type
99492  , p_source_56            IN VARCHAR2
99493 --Payment Distribution Reversed Identifier
99494  , p_source_57            IN NUMBER
99498  , p_source_59            IN NUMBER
99495 --Invoice Distribution Tax Line Identifier
99496  , p_source_58            IN NUMBER
99497 --Invoice Distribution Summary Tax Line Identifier
99499 --Payment Type
99500  , p_source_60            IN VARCHAR2
99501  , p_source_60_meaning    IN VARCHAR2
99502 --Invoice Distribution Amount of the Payment Distribution
99503  , p_source_61            IN NUMBER
99504 --Business Flow Invoice Distribution Type
99505  , p_source_62            IN VARCHAR2
99506 --Business Flow Invoice Entity Code
99507  , p_source_63            IN VARCHAR2
99508 --Business Flow Invoice Distribution Identifier
99509  , p_source_64            IN NUMBER
99510 --Business Flow Invoice Identifier
99511  , p_source_65            IN NUMBER
99512 --Invoice Distribution Tax Distribution Identifier from Tax
99513  , p_source_66            IN NUMBER
99514 --Purchasing Encumbrance Option
99515  , p_source_102            IN VARCHAR2
99516  , p_source_102_meaning    IN VARCHAR2
99517 --Invoice Encumbered Option
99518  , p_source_104            IN VARCHAR2
99519  , p_source_104_meaning    IN VARCHAR2
99520 )
99521 IS
99522 
99523 l_component_type              VARCHAR2(80);
99524 l_component_code              VARCHAR2(30);
99525 l_component_type_code         VARCHAR2(1);
99526 l_component_appl_id           INTEGER;
99527 l_amb_context_code            VARCHAR2(30);
99528 l_entity_code                 VARCHAR2(30);
99529 l_event_class_code            VARCHAR2(30);
99530 l_ae_header_id                NUMBER;
99531 l_event_type_code             VARCHAR2(30);
99532 l_line_definition_code        VARCHAR2(30);
99533 l_line_definition_owner_code  VARCHAR2(1);
99534 --
99535 -- adr variables
99536 l_segment                     VARCHAR2(30);
99537 l_ccid                        NUMBER;
99538 l_adr_transaction_coa_id      NUMBER;
99539 l_adr_accounting_coa_id       NUMBER;
99540 l_adr_flexfield_segment_code  VARCHAR2(30);
99541 l_adr_flex_value_set_id       NUMBER;
99542 l_adr_value_type_code         VARCHAR2(30);
99543 l_adr_value_combination_id    NUMBER;
99544 l_adr_value_segment_code      VARCHAR2(30);
99545 
99546 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
99547 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
99548 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
99549 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
99550 
99551 -- 4262811 Variables ------------------------------------------------------------------------------------------
99552 l_entered_amt_idx             NUMBER;
99553 l_accted_amt_idx              NUMBER;
99554 l_acc_rev_flag                VARCHAR2(1);
99555 l_accrual_line_num            NUMBER;
99556 l_tmp_amt                     NUMBER;
99557 l_acc_rev_natural_side_code   VARCHAR2(1);
99558 
99559 l_num_entries                 NUMBER;
99560 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
99561 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
99562 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
99563 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
99564 l_recog_line_1                NUMBER;
99565 l_recog_line_2                NUMBER;
99566 
99567 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
99568 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
99569 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
99570 
99571 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99572 
99573 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
99574 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
99575 
99576 ---------------------------------------------------------------------------------------------------------------
99577 
99578 
99579 --
99580 -- bulk performance
99581 --
99582 l_balance_type_code           VARCHAR2(1);
99583 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
99584 l_log_module                  VARCHAR2(240);
99585 
99586 --
99587 -- Upgrade strategy
99588 --
99589 l_actual_upg_option           VARCHAR2(1);
99590 l_enc_upg_option           VARCHAR2(1);
99591 
99592 --
99593 BEGIN
99594 --
99595 IF g_log_enabled THEN
99596       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_176';
99597 END IF;
99598 --
99599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99600 
99601       trace
99602          (p_msg      => 'BEGIN of AcctLineType_176'
99603          ,p_level    => C_LEVEL_PROCEDURE
99604          ,p_module   => l_log_module);
99605 
99606 END IF;
99607 --
99608 l_component_type             := 'AMB_JLT';
99609 l_component_code             := 'AP_TAX_EXCHG_RATE_VAR_PMT_ENC';
99610 l_component_type_code        := 'S';
99611 l_component_appl_id          :=  200;
99612 l_amb_context_code           := 'DEFAULT';
99613 l_entity_code                := 'AP_PAYMENTS';
99614 l_event_class_code           := 'PAYMENTS';
99615 l_event_type_code            := 'PAYMENTS_ALL';
99616 l_line_definition_owner_code := 'S';
99617 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
99618 --
99619 l_balance_type_code          := 'E';
99620 l_segment                     := NULL;
99621 l_ccid                        := NULL;
99622 l_adr_transaction_coa_id      := NULL;
99623 l_adr_accounting_coa_id       := NULL;
99624 l_adr_flexfield_segment_code  := NULL;
99628 l_adr_value_segment_code      := NULL;
99625 l_adr_flex_value_set_id       := NULL;
99626 l_adr_value_type_code         := NULL;
99627 l_adr_value_combination_id    := NULL;
99629 
99630 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
99631 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
99632 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
99633 l_budgetary_control_flag     := 'N';
99634 
99635 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
99636 l_bflow_applied_to_amt       := NULL; -- 5132302
99637 l_entered_amt_idx            := NULL;          -- 4262811
99638 l_accted_amt_idx             := NULL;          -- 4262811
99639 l_acc_rev_flag               := NULL;          -- 4262811
99640 l_accrual_line_num           := NULL;          -- 4262811
99641 l_tmp_amt                    := NULL;          -- 4262811
99642 --
99643 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
99644             (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
99645                return;
99646   END IF;
99647   
99648 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99649     l_balance_type_code <> 'B' THEN
99650 IF NVL(p_source_38,'
99651 ') <>  'CLEAR_CLEAR' AND 
99652 NVL(p_source_39,'
99653 ') =  'TAX EXCHANGE RATE VARIANCE' AND 
99654 NVL(p_source_60,'
99655 ') <>  'R' AND 
99656 NVL(p_source_102,'
99657 ') =  'Y' AND 
99658 NVL(p_source_104,'
99659 ') =  'Y'
99660  THEN 
99661 
99662    --
99663    XLA_AE_LINES_PKG.SetNewLine;
99664 
99665    p_balance_type_code          := l_balance_type_code;
99666    -- set the flag so later we will know whether the gain loss line needs to be created
99667    
99668    IF(l_balance_type_code = 'A' ) THEN
99669      p_actual_flag :='G';
99670    END IF;
99671 
99672    --
99673    -- bulk performance
99674    --
99675    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99676                                       p_header_num   => 0); -- 4262811
99677    --
99678    -- set accounting line options
99679    --
99680    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99681            p_natural_side_code          => 'C'
99682          , p_gain_or_loss_flag          => 'Y'
99683          , p_gl_transfer_mode_code      => 'S'
99684          , p_acct_entry_type_code       => 'E'
99685          , p_switch_side_flag           => 'Y'
99686          , p_merge_duplicate_code       => 'A'
99687          );
99688    --
99689    l_acc_rev_natural_side_code := 'D';  -- 4262811
99690    -- 
99691    --
99692    -- set accounting line type info
99693    --
99694    xla_ae_lines_pkg.SetAcctLineType
99695       (p_component_type             => l_component_type
99696       ,p_event_type_code            => l_event_type_code
99697       ,p_line_definition_owner_code => l_line_definition_owner_code
99698       ,p_line_definition_code       => l_line_definition_code
99699       ,p_accounting_line_code       => l_component_code
99700       ,p_accounting_line_type_code  => l_component_type_code
99701       ,p_accounting_line_appl_id    => l_component_appl_id
99702       ,p_amb_context_code           => l_amb_context_code
99703       ,p_entity_code                => l_entity_code
99704       ,p_event_class_code           => l_event_class_code);
99705    --
99706    -- set accounting class
99707    --
99708    xla_ae_lines_pkg.SetAcctClass(
99709            p_accounting_class_code  => 'TERV'
99710          , p_ae_header_id           => l_ae_header_id
99711          );
99712 
99713    --
99714    -- set rounding class
99715    --
99716    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99717                       'TERV';
99718 
99719    --
99720    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
99721    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
99722    --
99723    -- bulk performance
99724    --
99725    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
99726 
99727    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
99728       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
99729 
99730    -- 4955764
99731    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99732       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
99733 
99734    -- 4458381 Public Sector Enh
99735    
99736    --
99737    -- set accounting attributes for the line type
99738    --
99739    l_entered_amt_idx := 10;
99740    l_accted_amt_idx  := 12;
99741    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
99742    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
99743    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
99744    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
99745    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
99746    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
99747    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
99751    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
99748    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
99749    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
99750    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
99752    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
99753    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
99754    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
99755    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
99756    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
99757    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
99758    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
99759    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
99760    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
99761    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
99762    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
99763    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
99764    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
99765    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
99766    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
99767    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
99768    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
99769    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
99770    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
99771    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
99772    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
99773    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
99774    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
99775    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
99776    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
99777    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
99778    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
99779    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
99780 
99781    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
99782    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
99783 
99784    ---------------------------------------------------------------------------------------------------------------
99785    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
99786    ---------------------------------------------------------------------------------------------------------------
99787    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
99788 
99789    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99790    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99791 
99792    IF xla_accounting_cache_pkg.GetValueChar
99793          (p_source_code         => 'LEDGER_CATEGORY_CODE'
99794          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
99795    AND l_bflow_method_code = 'PRIOR_ENTRY'
99796 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
99797    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
99798          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
99799        )
99800    THEN
99801          xla_ae_lines_pkg.BflowUpgEntry
99802            (p_business_method_code    => l_bflow_method_code
99803            ,p_business_class_code     => l_bflow_class_code
99804            ,p_balance_type            => l_balance_type_code);
99805    ELSE
99806       NULL;
99807 XLA_AE_LINES_PKG.business_flow_validation(
99808                                 p_business_method_code     => l_bflow_method_code
99809                                ,p_business_class_code      => l_bflow_class_code
99810                                ,p_inherit_description_flag => l_inherit_desc_flag);
99811    END IF;
99812 
99813    --
99814    -- call analytical criteria
99815    --
99816    -- Inherited Analytical Criteria for business flow method of Prior Entry.
99817    --
99818    -- call description
99819    --
99820    -- No description or it is inherited.
99821    --
99822    -- call ADRs
99823    -- Bug 4922099
99824    --
99825    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99826         (NVL(l_actual_upg_option, 'N') = 'O') OR
99827         (NVL(l_enc_upg_option, 'N') = 'O')
99828       )
99829    THEN
99830    NULL;
99831    --
99832    --
99833    
99834    --
99835    --
99836    END IF;
99837    --
99838    -- Bug 4922099
99839    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
99840           (NVL(l_enc_upg_option, 'N') = 'O')
99841         ) AND
99842         (l_bflow_method_code = 'PRIOR_ENTRY')
99843       )
99844    THEN
99845       IF
99846       --
99847       1 = 1
99848       --
99849       THEN
99850       xla_accounting_err_pkg.build_message
99851                                     (p_appli_s_name            => 'XLA'
99852                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99853                                     ,p_token_1                 => 'LINE_NUMBER'
99854                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
99858                                                                             ,l_component_code
99855                                     ,p_token_2                 => 'LINE_TYPE_NAME'
99856                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
99857                                                                              l_component_type
99859                                                                             ,l_component_type_code
99860                                                                             ,l_component_appl_id
99861                                                                             ,l_amb_context_code
99862                                                                             ,l_entity_code
99863                                                                             ,l_event_class_code
99864                                                                            )
99865                                     ,p_token_3                 => 'OWNER'
99866                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
99867                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
99868                                                                           ,p_lookup_code    => l_component_type_code
99869                                                                          )
99870                                     ,p_token_4                 => 'PRODUCT_NAME'
99871                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
99872                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
99873                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
99874                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
99875                                     ,p_ae_header_id            =>  NULL
99876                                        );
99877 
99878         IF (C_LEVEL_ERROR>= g_log_level) THEN
99879                  trace
99880                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99881                       ,p_level    => C_LEVEL_ERROR
99882                       ,p_module   => l_log_module);
99883         END IF;
99884       END IF;
99885    END IF;
99886    --
99887    --
99888    ------------------------------------------------------------------------------------------------
99889    -- 4219869 Business Flow
99890    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
99891    -- Prior Entry.  Currently, the following code is always generated.
99892    ------------------------------------------------------------------------------------------------
99893    -- No ValidateCurrentLine for business flow method of Prior Entry
99894 
99895    ------------------------------------------------------------------------------------
99896    -- 4219869 Business Flow
99897    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
99898    ------------------------------------------------------------------------------------
99899    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99900 
99901    ----------------------------------------------------------------------------------
99902    -- 4219869 Business Flow
99903    -- Update journal entry status -- Need to generate this within IF <condition>
99904    ----------------------------------------------------------------------------------
99905    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99906          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
99907          ,p_balance_type_code => l_balance_type_code
99908          );
99909 
99910    -------------------------------------------------------------------------------------------
99911    -- 4262811 - Generate the Accrual Reversal lines
99912    -------------------------------------------------------------------------------------------
99913    BEGIN
99914       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
99915                               (g_array_event(p_event_id).array_value_num('header_index'));
99916       IF l_acc_rev_flag IS NULL THEN
99917          l_acc_rev_flag := 'N';
99918       END IF;
99919    EXCEPTION
99920       WHEN OTHERS THEN
99921          l_acc_rev_flag := 'N';
99922    END;
99923    --
99924    IF (l_acc_rev_flag = 'Y') THEN
99925 
99926        -- 4645092  ------------------------------------------------------------------------------
99927        -- To allow MPA report to determine if it should generate report process
99928        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
99929        ------------------------------------------------------------------------------------------
99930 
99931        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
99932        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
99933    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
99934    -- call ADRs
99935    -- Bug 4922099
99936    --
99937    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99938         (NVL(l_actual_upg_option, 'N') = 'O') OR
99939         (NVL(l_enc_upg_option, 'N') = 'O')
99940       )
99941    THEN
99942    NULL;
99943    --
99944    --
99945    
99946    --
99947    --
99948    END IF;
99949 
99950        --
99951        -- Update the line information that should be overwritten
99952        --
99953        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
99957        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
99954                                          p_header_num   => 1);
99955        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
99956 
99958 
99959        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
99960           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
99961        END IF;
99962 
99963       --
99964       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
99965       --
99966       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
99967           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
99968       ELSE
99969           ---------------------------------------------------------------------------------------------------
99970           -- 4262811a Switch Sign
99971           ---------------------------------------------------------------------------------------------------
99972           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
99973           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99974                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99975           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99976                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99977           -- 5132302
99978           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
99979                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99980 
99981       END IF;
99982 
99983       -- 4955764
99984       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99985       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
99986 
99987 
99988       XLA_AE_LINES_PKG.ValidateCurrentLine;
99989       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99990 
99991       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99992                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
99993                ,p_balance_type_code => l_balance_type_code);
99994 
99995    END IF;
99996 
99997    -----------------------------------------------------------------------------------------
99998    -- 4262811 Multiperiod Accounting
99999    -----------------------------------------------------------------------------------------
100000      -- No MPA option is assigned.
100001 
100002 
100003 END IF;
100004 END IF;
100005 --
100006 
100007 --
100008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100009    trace
100010       (p_msg      => 'END of AcctLineType_176'
100011       ,p_level    => C_LEVEL_PROCEDURE
100012       ,p_module   => l_log_module);
100013 END IF;
100014 --
100015 EXCEPTION
100016   WHEN xla_exceptions_pkg.application_exception THEN
100017       RAISE;
100018   WHEN OTHERS THEN
100019        xla_exceptions_pkg.raise_message
100020            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_176');
100021 END AcctLineType_176;
100022 --
100023 
100024 ---------------------------------------
100025 --
100026 -- PRIVATE FUNCTION
100027 --         AcctLineType_177
100028 --
100029 ---------------------------------------
100030 PROCEDURE AcctLineType_177 (
100031   p_application_id        IN NUMBER
100032  ,p_event_id              IN NUMBER
100033  ,p_calculate_acctd_flag  IN VARCHAR2
100034  ,p_calculate_g_l_flag    IN VARCHAR2
100035  ,p_actual_flag           IN OUT VARCHAR2
100036  ,p_balance_type_code     OUT VARCHAR2
100037  ,p_gain_or_loss_ref      OUT VARCHAR2
100038  
100039 --Payment Distribution (Payment Rate) Ledger Amount
100040  , p_source_9            IN NUMBER
100041 --Invoice Distribution Type
100042  , p_source_20            IN VARCHAR2
100043  , p_source_20_meaning    IN VARCHAR2
100044 --When to Account for Payment Option
100045  , p_source_38            IN VARCHAR2
100046 --Payment Distribution Type
100047  , p_source_39            IN VARCHAR2
100048  , p_source_39_meaning    IN VARCHAR2
100049 --Accounting Reversal Indicator
100050  , p_source_40            IN VARCHAR2
100051 --Payment Distribution Amount
100052  , p_source_41            IN NUMBER
100053 --Business Flow Accounts Payable Application Identifier
100054  , p_source_42            IN NUMBER
100055 --Payment Distribution Identifier
100056  , p_source_47            IN NUMBER
100057 --Distribution Link Type
100058  , p_source_48            IN VARCHAR2
100059 --Payment Currency Code
100060  , p_source_49            IN VARCHAR2
100061 --Override Accounted Amount Indicator
100062  , p_source_53            IN VARCHAR2
100063  , p_source_53_meaning    IN VARCHAR2
100064 --Third Party Type
100065  , p_source_56            IN VARCHAR2
100066 --Payment Distribution Reversed Identifier
100067  , p_source_57            IN NUMBER
100068 --Invoice Distribution Tax Line Identifier
100069  , p_source_58            IN NUMBER
100070 --Invoice Distribution Summary Tax Line Identifier
100071  , p_source_59            IN NUMBER
100072 --Payment Type
100073  , p_source_60            IN VARCHAR2
100074  , p_source_60_meaning    IN VARCHAR2
100075 --Business Flow Invoice Distribution Type
100079 --Business Flow Invoice Distribution Identifier
100076  , p_source_62            IN VARCHAR2
100077 --Business Flow Invoice Entity Code
100078  , p_source_63            IN VARCHAR2
100080  , p_source_64            IN NUMBER
100081 --Business Flow Invoice Identifier
100082  , p_source_65            IN NUMBER
100083 --Invoice Distribution Tax Distribution Identifier from Tax
100084  , p_source_66            IN NUMBER
100085 --Purchasing Encumbrance Option
100086  , p_source_102            IN VARCHAR2
100087  , p_source_102_meaning    IN VARCHAR2
100088 --Invoice Encumbered Option
100089  , p_source_104            IN VARCHAR2
100090  , p_source_104_meaning    IN VARCHAR2
100091 )
100092 IS
100093 
100094 l_component_type              VARCHAR2(80);
100095 l_component_code              VARCHAR2(30);
100096 l_component_type_code         VARCHAR2(1);
100097 l_component_appl_id           INTEGER;
100098 l_amb_context_code            VARCHAR2(30);
100099 l_entity_code                 VARCHAR2(30);
100100 l_event_class_code            VARCHAR2(30);
100101 l_ae_header_id                NUMBER;
100102 l_event_type_code             VARCHAR2(30);
100103 l_line_definition_code        VARCHAR2(30);
100104 l_line_definition_owner_code  VARCHAR2(1);
100105 --
100106 -- adr variables
100107 l_segment                     VARCHAR2(30);
100108 l_ccid                        NUMBER;
100109 l_adr_transaction_coa_id      NUMBER;
100110 l_adr_accounting_coa_id       NUMBER;
100111 l_adr_flexfield_segment_code  VARCHAR2(30);
100112 l_adr_flex_value_set_id       NUMBER;
100113 l_adr_value_type_code         VARCHAR2(30);
100114 l_adr_value_combination_id    NUMBER;
100115 l_adr_value_segment_code      VARCHAR2(30);
100116 
100117 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
100118 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
100119 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
100120 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
100121 
100122 -- 4262811 Variables ------------------------------------------------------------------------------------------
100123 l_entered_amt_idx             NUMBER;
100124 l_accted_amt_idx              NUMBER;
100125 l_acc_rev_flag                VARCHAR2(1);
100126 l_accrual_line_num            NUMBER;
100127 l_tmp_amt                     NUMBER;
100128 l_acc_rev_natural_side_code   VARCHAR2(1);
100129 
100130 l_num_entries                 NUMBER;
100131 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
100132 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
100133 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
100134 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
100135 l_recog_line_1                NUMBER;
100136 l_recog_line_2                NUMBER;
100137 
100138 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
100139 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
100140 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
100141 
100142 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100143 
100144 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
100145 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
100146 
100147 ---------------------------------------------------------------------------------------------------------------
100148 
100149 
100150 --
100151 -- bulk performance
100152 --
100153 l_balance_type_code           VARCHAR2(1);
100154 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
100155 l_log_module                  VARCHAR2(240);
100156 
100157 --
100158 -- Upgrade strategy
100159 --
100160 l_actual_upg_option           VARCHAR2(1);
100161 l_enc_upg_option           VARCHAR2(1);
100162 
100163 --
100164 BEGIN
100165 --
100166 IF g_log_enabled THEN
100167       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_177';
100168 END IF;
100169 --
100170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100171 
100172       trace
100173          (p_msg      => 'BEGIN of AcctLineType_177'
100174          ,p_level    => C_LEVEL_PROCEDURE
100175          ,p_module   => l_log_module);
100176 
100177 END IF;
100178 --
100179 l_component_type             := 'AMB_JLT';
100180 l_component_code             := 'AP_TAX_EXCHG_RATE_VAR_REF_ENC';
100181 l_component_type_code        := 'S';
100182 l_component_appl_id          :=  200;
100183 l_amb_context_code           := 'DEFAULT';
100184 l_entity_code                := 'AP_PAYMENTS';
100185 l_event_class_code           := 'REFUNDS';
100186 l_event_type_code            := 'REFUNDS_ALL';
100187 l_line_definition_owner_code := 'S';
100188 l_line_definition_code       := 'ENC_REFUNDS_ALL';
100189 --
100190 l_balance_type_code          := 'E';
100191 l_segment                     := NULL;
100192 l_ccid                        := NULL;
100193 l_adr_transaction_coa_id      := NULL;
100194 l_adr_accounting_coa_id       := NULL;
100195 l_adr_flexfield_segment_code  := NULL;
100196 l_adr_flex_value_set_id       := NULL;
100197 l_adr_value_type_code         := NULL;
100198 l_adr_value_combination_id    := NULL;
100199 l_adr_value_segment_code      := NULL;
100200 
100201 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
100202 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
100206 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
100203 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
100204 l_budgetary_control_flag     := 'N';
100205 
100207 l_bflow_applied_to_amt       := NULL; -- 5132302
100208 l_entered_amt_idx            := NULL;          -- 4262811
100209 l_accted_amt_idx             := NULL;          -- 4262811
100210 l_acc_rev_flag               := NULL;          -- 4262811
100211 l_accrual_line_num           := NULL;          -- 4262811
100212 l_tmp_amt                    := NULL;          -- 4262811
100213 --
100214  
100215 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100216     l_balance_type_code <> 'B' THEN
100217 IF NVL(p_source_38,'
100218 ') <>  'CLEAR_CLEAR' AND 
100219 NVL(p_source_20,'
100220 ') =  'TERV' AND 
100221 (NVL(p_source_39,'
100222 ') =  'CASH' OR 
100223 NVL(p_source_39,'
100224 ') =  'DISCOUNT') AND 
100225 NVL(p_source_60,'
100226 ') =  'R' AND 
100227 NVL(p_source_102,'
100228 ') =  'Y' AND 
100229 NVL(p_source_104,'
100230 ') =  'Y'
100231  THEN 
100232 
100233    --
100234    XLA_AE_LINES_PKG.SetNewLine;
100235 
100236    p_balance_type_code          := l_balance_type_code;
100237    -- set the flag so later we will know whether the gain loss line needs to be created
100238    
100239    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
100240      p_actual_flag :='A';
100241    END IF;
100242 
100243    --
100244    -- bulk performance
100245    --
100246    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100247                                       p_header_num   => 0); -- 4262811
100248    --
100249    -- set accounting line options
100250    --
100251    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100252            p_natural_side_code          => 'D'
100253          , p_gain_or_loss_flag          => 'N'
100254          , p_gl_transfer_mode_code      => 'S'
100255          , p_acct_entry_type_code       => 'E'
100256          , p_switch_side_flag           => 'Y'
100257          , p_merge_duplicate_code       => 'A'
100258          );
100259    --
100260    l_acc_rev_natural_side_code := 'C';  -- 4262811
100261    -- 
100262    --
100263    -- set accounting line type info
100264    --
100265    xla_ae_lines_pkg.SetAcctLineType
100266       (p_component_type             => l_component_type
100267       ,p_event_type_code            => l_event_type_code
100268       ,p_line_definition_owner_code => l_line_definition_owner_code
100269       ,p_line_definition_code       => l_line_definition_code
100270       ,p_accounting_line_code       => l_component_code
100271       ,p_accounting_line_type_code  => l_component_type_code
100272       ,p_accounting_line_appl_id    => l_component_appl_id
100273       ,p_amb_context_code           => l_amb_context_code
100274       ,p_entity_code                => l_entity_code
100275       ,p_event_class_code           => l_event_class_code);
100276    --
100277    -- set accounting class
100278    --
100279    xla_ae_lines_pkg.SetAcctClass(
100280            p_accounting_class_code  => 'TERV'
100281          , p_ae_header_id           => l_ae_header_id
100282          );
100283 
100284    --
100285    -- set rounding class
100286    --
100287    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100288                       'TERV';
100289 
100290    --
100291    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100292    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100293    --
100294    -- bulk performance
100295    --
100296    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100297 
100298    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100299       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100300 
100301    -- 4955764
100302    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100303       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100304 
100305    -- 4458381 Public Sector Enh
100306    
100307    --
100308    -- set accounting attributes for the line type
100309    --
100310    l_entered_amt_idx := 9;
100311    l_accted_amt_idx  := 11;
100312    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
100313    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100314    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
100315    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
100316    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
100317    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100318    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
100319    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
100320    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
100321    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
100322    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
100323    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100324    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
100325    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
100326    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
100327    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
100328    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
100332    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
100329    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
100330    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
100331    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
100333    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
100334    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
100335    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
100336    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
100337    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
100338    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
100339    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
100340    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
100341    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
100342    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
100343    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
100344    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
100345    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
100346    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
100347    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
100348    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
100349 
100350    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100351    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
100352 
100353    ---------------------------------------------------------------------------------------------------------------
100354    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
100355    ---------------------------------------------------------------------------------------------------------------
100356    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
100357 
100358    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100359    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100360 
100361    IF xla_accounting_cache_pkg.GetValueChar
100362          (p_source_code         => 'LEDGER_CATEGORY_CODE'
100363          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
100364    AND l_bflow_method_code = 'PRIOR_ENTRY'
100365 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
100366    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
100367          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
100368        )
100369    THEN
100370          xla_ae_lines_pkg.BflowUpgEntry
100371            (p_business_method_code    => l_bflow_method_code
100372            ,p_business_class_code     => l_bflow_class_code
100373            ,p_balance_type            => l_balance_type_code);
100374    ELSE
100375       NULL;
100376 XLA_AE_LINES_PKG.business_flow_validation(
100377                                 p_business_method_code     => l_bflow_method_code
100378                                ,p_business_class_code      => l_bflow_class_code
100379                                ,p_inherit_description_flag => l_inherit_desc_flag);
100380    END IF;
100381 
100382    --
100383    -- call analytical criteria
100384    --
100385    -- Inherited Analytical Criteria for business flow method of Prior Entry.
100386    --
100387    -- call description
100388    --
100389    -- No description or it is inherited.
100390    --
100391    -- call ADRs
100392    -- Bug 4922099
100393    --
100394    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100395         (NVL(l_actual_upg_option, 'N') = 'O') OR
100396         (NVL(l_enc_upg_option, 'N') = 'O')
100397       )
100398    THEN
100399    NULL;
100400    --
100401    --
100402    
100403    --
100404    --
100405    END IF;
100406    --
100407    -- Bug 4922099
100408    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
100409           (NVL(l_enc_upg_option, 'N') = 'O')
100410         ) AND
100411         (l_bflow_method_code = 'PRIOR_ENTRY')
100412       )
100413    THEN
100414       IF
100415       --
100416       1 = 1
100417       --
100418       THEN
100419       xla_accounting_err_pkg.build_message
100420                                     (p_appli_s_name            => 'XLA'
100421                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100422                                     ,p_token_1                 => 'LINE_NUMBER'
100423                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
100424                                     ,p_token_2                 => 'LINE_TYPE_NAME'
100425                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
100426                                                                              l_component_type
100427                                                                             ,l_component_code
100428                                                                             ,l_component_type_code
100429                                                                             ,l_component_appl_id
100430                                                                             ,l_amb_context_code
100431                                                                             ,l_entity_code
100435                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
100432                                                                             ,l_event_class_code
100433                                                                            )
100434                                     ,p_token_3                 => 'OWNER'
100436                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
100437                                                                           ,p_lookup_code    => l_component_type_code
100438                                                                          )
100439                                     ,p_token_4                 => 'PRODUCT_NAME'
100440                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
100441                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
100442                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
100443                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
100444                                     ,p_ae_header_id            =>  NULL
100445                                        );
100446 
100447         IF (C_LEVEL_ERROR>= g_log_level) THEN
100448                  trace
100449                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100450                       ,p_level    => C_LEVEL_ERROR
100451                       ,p_module   => l_log_module);
100452         END IF;
100453       END IF;
100454    END IF;
100455    --
100456    --
100457    ------------------------------------------------------------------------------------------------
100458    -- 4219869 Business Flow
100459    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
100460    -- Prior Entry.  Currently, the following code is always generated.
100461    ------------------------------------------------------------------------------------------------
100462    -- No ValidateCurrentLine for business flow method of Prior Entry
100463 
100464    ------------------------------------------------------------------------------------
100465    -- 4219869 Business Flow
100466    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
100467    ------------------------------------------------------------------------------------
100468    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100469 
100470    ----------------------------------------------------------------------------------
100471    -- 4219869 Business Flow
100472    -- Update journal entry status -- Need to generate this within IF <condition>
100473    ----------------------------------------------------------------------------------
100474    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100475          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
100476          ,p_balance_type_code => l_balance_type_code
100477          );
100478 
100479    -------------------------------------------------------------------------------------------
100480    -- 4262811 - Generate the Accrual Reversal lines
100481    -------------------------------------------------------------------------------------------
100482    BEGIN
100483       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
100484                               (g_array_event(p_event_id).array_value_num('header_index'));
100485       IF l_acc_rev_flag IS NULL THEN
100486          l_acc_rev_flag := 'N';
100487       END IF;
100488    EXCEPTION
100489       WHEN OTHERS THEN
100490          l_acc_rev_flag := 'N';
100491    END;
100492    --
100493    IF (l_acc_rev_flag = 'Y') THEN
100494 
100495        -- 4645092  ------------------------------------------------------------------------------
100496        -- To allow MPA report to determine if it should generate report process
100497        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
100498        ------------------------------------------------------------------------------------------
100499 
100500        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
100501        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
100502    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
100503    -- call ADRs
100504    -- Bug 4922099
100505    --
100506    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100507         (NVL(l_actual_upg_option, 'N') = 'O') OR
100508         (NVL(l_enc_upg_option, 'N') = 'O')
100509       )
100510    THEN
100511    NULL;
100512    --
100513    --
100514    
100515    --
100516    --
100517    END IF;
100518 
100519        --
100520        -- Update the line information that should be overwritten
100521        --
100522        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
100523                                          p_header_num   => 1);
100524        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
100525 
100526        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
100527 
100528        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
100529           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
100530        END IF;
100531 
100532       --
100533       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
100534       --
100538           ---------------------------------------------------------------------------------------------------
100535       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
100536           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
100537       ELSE
100539           -- 4262811a Switch Sign
100540           ---------------------------------------------------------------------------------------------------
100541           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
100542           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100543                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100544           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100545                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100546           -- 5132302
100547           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
100548                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100549 
100550       END IF;
100551 
100552       -- 4955764
100553       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100554       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
100555 
100556 
100557       XLA_AE_LINES_PKG.ValidateCurrentLine;
100558       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100559 
100560       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100561                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
100562                ,p_balance_type_code => l_balance_type_code);
100563 
100564    END IF;
100565 
100566    -----------------------------------------------------------------------------------------
100567    -- 4262811 Multiperiod Accounting
100568    -----------------------------------------------------------------------------------------
100569      -- No MPA option is assigned.
100570 
100571 
100572 END IF;
100573 END IF;
100574 --
100575 
100576 --
100577 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100578    trace
100579       (p_msg      => 'END of AcctLineType_177'
100580       ,p_level    => C_LEVEL_PROCEDURE
100581       ,p_module   => l_log_module);
100582 END IF;
100583 --
100584 EXCEPTION
100585   WHEN xla_exceptions_pkg.application_exception THEN
100586       RAISE;
100587   WHEN OTHERS THEN
100588        xla_exceptions_pkg.raise_message
100589            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_177');
100590 END AcctLineType_177;
100591 --
100592 
100593 ---------------------------------------
100594 --
100595 -- PRIVATE FUNCTION
100596 --         AcctLineType_178
100597 --
100598 ---------------------------------------
100599 PROCEDURE AcctLineType_178 (
100600   p_application_id        IN NUMBER
100601  ,p_event_id              IN NUMBER
100602  ,p_calculate_acctd_flag  IN VARCHAR2
100603  ,p_calculate_g_l_flag    IN VARCHAR2
100604  ,p_actual_flag           IN OUT VARCHAR2
100605  ,p_balance_type_code     OUT VARCHAR2
100606  ,p_gain_or_loss_ref      OUT VARCHAR2
100607  
100608 --Automatic Offsets Value
100609  , p_source_4            IN VARCHAR2
100610  , p_source_4_meaning    IN VARCHAR2
100611 --Purchase Order Rate Variance Gain Account
100612  , p_source_5            IN NUMBER
100613 --Destination Type of the PO Distribution
100614  , p_source_7            IN VARCHAR2
100615  , p_source_7_meaning    IN VARCHAR2
100616 --Purchase Order Rate Variance Loss Account
100617  , p_source_8            IN NUMBER
100618 --Payment Distribution (Payment Rate) Ledger Amount
100619  , p_source_9            IN NUMBER
100620 --Payment Distribution (Cleared Rate) Ledger Amount
100621  , p_source_10            IN NUMBER
100622 --Invoice Distribution Account
100623  , p_source_17            IN NUMBER
100624 --Automatic Offsets Flag
100625  , p_source_30            IN VARCHAR2
100626  , p_source_30_meaning    IN VARCHAR2
100627 --When to Account for Payment Option
100628  , p_source_38            IN VARCHAR2
100629 --Payment Distribution Type
100630  , p_source_39            IN VARCHAR2
100631  , p_source_39_meaning    IN VARCHAR2
100632 --Accounting Reversal Indicator
100633  , p_source_40            IN VARCHAR2
100634 --Payment Distribution Amount
100635  , p_source_41            IN NUMBER
100636 --Business Flow Accounts Payable Application Identifier
100637  , p_source_42            IN NUMBER
100638 --Business Flow Payment Distribution Type
100639  , p_source_43            IN VARCHAR2
100640 --Business Flow Payment Entity Code
100641  , p_source_44            IN VARCHAR2
100642 --Business Flow Payment Distribution Identifier
100643  , p_source_45            IN NUMBER
100644 --Business Flow Payment Identifier
100645  , p_source_46            IN NUMBER
100646 --Payment Distribution Identifier
100647  , p_source_47            IN NUMBER
100648 --Distribution Link Type
100649  , p_source_48            IN VARCHAR2
100650 --Payment Currency Code
100651  , p_source_49            IN VARCHAR2
100652 --Override Accounted Amount Indicator
100653  , p_source_53            IN VARCHAR2
100654  , p_source_53_meaning    IN VARCHAR2
100655 --Payment Supplier Identifier
100656  , p_source_54            IN NUMBER
100657 --Payment Supplier Site Identifier
100661 --Payment Distribution Reversed Identifier
100658  , p_source_55            IN NUMBER
100659 --Third Party Type
100660  , p_source_56            IN VARCHAR2
100662  , p_source_57            IN NUMBER
100663 --Invoice Distribution Tax Line Identifier
100664  , p_source_58            IN NUMBER
100665 --Invoice Distribution Summary Tax Line Identifier
100666  , p_source_59            IN NUMBER
100667 --Accrue on Receipt Option
100668  , p_source_100            IN VARCHAR2
100669  , p_source_100_meaning    IN VARCHAR2
100670 --Cleared Exchange Date
100671  , p_source_107            IN DATE
100672 --Cleared Exchange Rate
100673  , p_source_108            IN NUMBER
100674 --Cleared Exchange Rate Type
100675  , p_source_109            IN VARCHAR2
100676 )
100677 IS
100678 
100679 l_component_type              VARCHAR2(80);
100680 l_component_code              VARCHAR2(30);
100681 l_component_type_code         VARCHAR2(1);
100682 l_component_appl_id           INTEGER;
100683 l_amb_context_code            VARCHAR2(30);
100684 l_entity_code                 VARCHAR2(30);
100685 l_event_class_code            VARCHAR2(30);
100686 l_ae_header_id                NUMBER;
100687 l_event_type_code             VARCHAR2(30);
100688 l_line_definition_code        VARCHAR2(30);
100689 l_line_definition_owner_code  VARCHAR2(1);
100690 --
100691 -- adr variables
100692 l_segment                     VARCHAR2(30);
100693 l_ccid                        NUMBER;
100694 l_adr_transaction_coa_id      NUMBER;
100695 l_adr_accounting_coa_id       NUMBER;
100696 l_adr_flexfield_segment_code  VARCHAR2(30);
100697 l_adr_flex_value_set_id       NUMBER;
100698 l_adr_value_type_code         VARCHAR2(30);
100699 l_adr_value_combination_id    NUMBER;
100700 l_adr_value_segment_code      VARCHAR2(30);
100701 
100702 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
100703 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
100704 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
100705 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
100706 
100707 -- 4262811 Variables ------------------------------------------------------------------------------------------
100708 l_entered_amt_idx             NUMBER;
100709 l_accted_amt_idx              NUMBER;
100710 l_acc_rev_flag                VARCHAR2(1);
100711 l_accrual_line_num            NUMBER;
100712 l_tmp_amt                     NUMBER;
100713 l_acc_rev_natural_side_code   VARCHAR2(1);
100714 
100715 l_num_entries                 NUMBER;
100716 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
100717 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
100718 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
100719 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
100720 l_recog_line_1                NUMBER;
100721 l_recog_line_2                NUMBER;
100722 
100723 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
100724 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
100725 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
100726 
100727 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100728 
100729 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
100730 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
100731 
100732 ---------------------------------------------------------------------------------------------------------------
100733 
100734 
100735 --
100736 -- bulk performance
100737 --
100738 l_balance_type_code           VARCHAR2(1);
100739 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
100740 l_log_module                  VARCHAR2(240);
100741 
100742 --
100743 -- Upgrade strategy
100744 --
100745 l_actual_upg_option           VARCHAR2(1);
100746 l_enc_upg_option           VARCHAR2(1);
100747 
100748 --
100749 BEGIN
100750 --
100751 IF g_log_enabled THEN
100752       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_178';
100753 END IF;
100754 --
100755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100756 
100757       trace
100758          (p_msg      => 'BEGIN of AcctLineType_178'
100759          ,p_level    => C_LEVEL_PROCEDURE
100760          ,p_module   => l_log_module);
100761 
100762 END IF;
100763 --
100764 l_component_type             := 'AMB_JLT';
100765 l_component_code             := 'AP_TAX_EX_RATE_VAR_CLEAR';
100766 l_component_type_code        := 'S';
100767 l_component_appl_id          :=  200;
100768 l_amb_context_code           := 'DEFAULT';
100769 l_entity_code                := 'AP_PAYMENTS';
100770 l_event_class_code           := 'RECONCILED PAYMENTS';
100771 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
100772 l_line_definition_owner_code := 'S';
100773 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
100774 --
100775 l_balance_type_code          := 'A';
100776 l_segment                     := NULL;
100777 l_ccid                        := NULL;
100778 l_adr_transaction_coa_id      := NULL;
100779 l_adr_accounting_coa_id       := NULL;
100780 l_adr_flexfield_segment_code  := NULL;
100781 l_adr_flex_value_set_id       := NULL;
100782 l_adr_value_type_code         := NULL;
100783 l_adr_value_combination_id    := NULL;
100784 l_adr_value_segment_code      := NULL;
100785 
100786 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
100787 l_bflow_class_code           := '';    -- 4219869 Business Flow
100791 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
100788 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
100789 l_budgetary_control_flag     := 'N';
100790 
100792 l_bflow_applied_to_amt       := NULL; -- 5132302
100793 l_entered_amt_idx            := NULL;          -- 4262811
100794 l_accted_amt_idx             := NULL;          -- 4262811
100795 l_acc_rev_flag               := NULL;          -- 4262811
100796 l_accrual_line_num           := NULL;          -- 4262811
100797 l_tmp_amt                    := NULL;          -- 4262811
100798 --
100799 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
100800             (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
100801                return;
100802   END IF;
100803   
100804 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100805     l_balance_type_code <> 'B' THEN
100806 IF NVL(p_source_38,'
100807 ') =  'CLEAR_CLEAR' AND 
100808 NVL(p_source_39,'
100809 ') =  'TAX EXCHANGE RATE VARIANCE' AND 
100810 NVL(p_source_100,'
100811 ') =  'Y'
100812  THEN 
100813 
100814    --
100815    XLA_AE_LINES_PKG.SetNewLine;
100816 
100817    p_balance_type_code          := l_balance_type_code;
100818    -- set the flag so later we will know whether the gain loss line needs to be created
100819    
100820    IF(l_balance_type_code = 'A' ) THEN
100821      p_actual_flag :='G';
100822    END IF;
100823 
100824    --
100825    -- bulk performance
100826    --
100827    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100828                                       p_header_num   => 0); -- 4262811
100829    --
100830    -- set accounting line options
100831    --
100832    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100833            p_natural_side_code          => 'D'
100834          , p_gain_or_loss_flag          => 'Y'
100835          , p_gl_transfer_mode_code      => 'S'
100836          , p_acct_entry_type_code       => 'A'
100837          , p_switch_side_flag           => 'Y'
100838          , p_merge_duplicate_code       => 'A'
100839          );
100840    --
100841    l_acc_rev_natural_side_code := 'C';  -- 4262811
100842    -- 
100843    --
100844    -- set accounting line type info
100845    --
100846    xla_ae_lines_pkg.SetAcctLineType
100847       (p_component_type             => l_component_type
100848       ,p_event_type_code            => l_event_type_code
100849       ,p_line_definition_owner_code => l_line_definition_owner_code
100850       ,p_line_definition_code       => l_line_definition_code
100851       ,p_accounting_line_code       => l_component_code
100852       ,p_accounting_line_type_code  => l_component_type_code
100853       ,p_accounting_line_appl_id    => l_component_appl_id
100854       ,p_amb_context_code           => l_amb_context_code
100855       ,p_entity_code                => l_entity_code
100856       ,p_event_class_code           => l_event_class_code);
100857    --
100858    -- set accounting class
100859    --
100860    xla_ae_lines_pkg.SetAcctClass(
100861            p_accounting_class_code  => 'TERV'
100862          , p_ae_header_id           => l_ae_header_id
100863          );
100864 
100865    --
100866    -- set rounding class
100867    --
100868    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100869                       'TERV';
100870 
100871    --
100872    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100873    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100874    --
100875    -- bulk performance
100876    --
100877    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100878 
100879    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100880       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100881 
100882    -- 4955764
100883    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100884       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100885 
100886    -- 4458381 Public Sector Enh
100887    
100888    --
100889    -- set accounting attributes for the line type
100890    --
100891    l_entered_amt_idx := 10;
100892    l_accted_amt_idx  := 15;
100893    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
100894    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100895    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
100896    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
100897    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
100898    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
100899    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
100900    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100901    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
100902    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
100903    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
100904    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
100905    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
100906    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100907    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
100911    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
100908    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
100909    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
100910    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
100912    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
100913    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
100914    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
100915    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
100916    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
100917    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
100918    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
100919    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
100920    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
100921    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
100922    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
100923    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
100924    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
100925    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
100926    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
100927    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
100928    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
100929    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
100930    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
100931    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
100932    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
100933    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
100934    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
100935    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
100936    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
100937    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
100938    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
100939    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
100940    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
100941    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
100942 
100943    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100944    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
100945 
100946    ---------------------------------------------------------------------------------------------------------------
100947    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
100948    ---------------------------------------------------------------------------------------------------------------
100949    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
100950 
100951    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100952    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100953 
100954    IF xla_accounting_cache_pkg.GetValueChar
100955          (p_source_code         => 'LEDGER_CATEGORY_CODE'
100956          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
100957    AND l_bflow_method_code = 'PRIOR_ENTRY'
100958 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
100959    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
100960          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
100961        )
100962    THEN
100963          xla_ae_lines_pkg.BflowUpgEntry
100964            (p_business_method_code    => l_bflow_method_code
100965            ,p_business_class_code     => l_bflow_class_code
100966            ,p_balance_type            => l_balance_type_code);
100967    ELSE
100968       NULL;
100969 -- No business flow processing for business flow method of NONE.
100970    END IF;
100971 
100972    --
100973    -- call analytical criteria
100974    --
100975    
100976    --
100977    -- call description
100978    --
100979    -- No description or it is inherited.
100980    --
100981    -- call ADRs
100982    -- Bug 4922099
100983    --
100984    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100985         (NVL(l_actual_upg_option, 'N') = 'O') OR
100986         (NVL(l_enc_upg_option, 'N') = 'O')
100987       )
100988    THEN
100989    NULL;
100990    --
100991    --
100992    
100993   l_ccid := AcctDerRule_22(
100994            p_application_id           => p_application_id
100995          , p_ae_header_id             => l_ae_header_id 
100996 , p_source_4 => p_source_4
100997 , p_source_4_meaning => p_source_4_meaning
100998 , p_source_5 => p_source_5
100999 , p_source_7 => p_source_7
101000 , p_source_7_meaning => p_source_7_meaning
101001 , p_source_8 => p_source_8
101002 , p_source_9 => p_source_9
101003 , p_source_10 => p_source_10
101004 , p_source_17 => p_source_17
101005 , p_source_30 => p_source_30
101006 , p_source_30_meaning => p_source_30_meaning
101007          , x_transaction_coa_id       => l_adr_transaction_coa_id
101008          , x_accounting_coa_id        => l_adr_accounting_coa_id
101009          , x_value_type_code          => l_adr_value_type_code
101010          , p_side                     => 'NA'
101011    );
101012 
101013    xla_ae_lines_pkg.set_ccid(
101014     p_code_combination_id          => l_ccid
101015   , p_value_type_code              => l_adr_value_type_code
101016   , p_transaction_coa_id           => l_adr_transaction_coa_id
101020   , p_component_type               => l_component_type
101017   , p_accounting_coa_id            => l_adr_accounting_coa_id
101018   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
101019   , p_adr_type_code                => 'S'
101021   , p_component_code               => l_component_code
101022   , p_component_type_code          => l_component_type_code
101023   , p_component_appl_id            => l_component_appl_id
101024   , p_amb_context_code             => l_amb_context_code
101025   , p_side                         => 'NA'
101026   );
101027 
101028 
101029    l_segment := AcctDerRule_4(
101030            p_application_id           => p_application_id
101031          , p_ae_header_id             => l_ae_header_id 
101032 , p_source_4 => p_source_4
101033 , p_source_4_meaning => p_source_4_meaning
101034 , p_source_5 => p_source_5
101035 , p_source_7 => p_source_7
101036 , p_source_7_meaning => p_source_7_meaning
101037 , p_source_8 => p_source_8
101038 , p_source_9 => p_source_9
101039 , p_source_10 => p_source_10
101040          , x_transaction_coa_id       => l_adr_transaction_coa_id
101041          , x_accounting_coa_id        => l_adr_accounting_coa_id
101042          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
101043          , x_flex_value_set_id        => l_adr_flex_value_set_id
101044          , x_value_type_code          => l_adr_value_type_code
101045          , x_value_combination_id     => l_adr_value_combination_id
101046          , x_value_segment_code       => l_adr_value_segment_code
101047          , p_side                     => 'NA'
101048          , p_override_seg_flag        => 'Y'
101049    );
101050 
101051    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
101052 
101053       xla_ae_lines_pkg.set_segment(
101054           p_to_segment_code         => 'GL_ACCOUNT'
101055         , p_segment_value           => l_segment
101056         , p_from_segment_code       => l_adr_value_segment_code
101057         , p_from_combination_id     => l_adr_value_combination_id
101058         , p_value_type_code         => l_adr_value_type_code
101059         , p_transaction_coa_id      => l_adr_transaction_coa_id
101060         , p_accounting_coa_id       => l_adr_accounting_coa_id
101061         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
101062         , p_flex_value_set_id       => l_adr_flex_value_set_id
101063         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
101064         , p_adr_type_code           => 'S'
101065         , p_component_type          => l_component_type
101066         , p_component_code          => l_component_code
101067         , p_component_type_code     => l_component_type_code
101068         , p_component_appl_id       => l_component_appl_id
101069         , p_amb_context_code        => l_amb_context_code
101070         , p_entity_code             => 'AP_PAYMENTS'
101071         , p_event_class_code        => 'RECONCILED PAYMENTS'
101072         , p_side                    => 'NA'
101073         );
101074 
101075   END IF;
101076 
101077    l_segment := AcctDerRule_15(
101078            p_application_id           => p_application_id
101079          , p_ae_header_id             => l_ae_header_id 
101080 , p_source_4 => p_source_4
101081 , p_source_4_meaning => p_source_4_meaning
101082 , p_source_7 => p_source_7
101083 , p_source_7_meaning => p_source_7_meaning
101084 , p_source_17 => p_source_17
101085          , x_transaction_coa_id       => l_adr_transaction_coa_id
101086          , x_accounting_coa_id        => l_adr_accounting_coa_id
101087          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
101088          , x_flex_value_set_id        => l_adr_flex_value_set_id
101089          , x_value_type_code          => l_adr_value_type_code
101090          , x_value_combination_id     => l_adr_value_combination_id
101091          , x_value_segment_code       => l_adr_value_segment_code
101092          , p_side                     => 'NA'
101093          , p_override_seg_flag        => 'Y'
101094    );
101095 
101096    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
101097 
101098       xla_ae_lines_pkg.set_segment(
101099           p_to_segment_code         => 'GL_BALANCING'
101100         , p_segment_value           => l_segment
101101         , p_from_segment_code       => l_adr_value_segment_code
101102         , p_from_combination_id     => l_adr_value_combination_id
101103         , p_value_type_code         => l_adr_value_type_code
101104         , p_transaction_coa_id      => l_adr_transaction_coa_id
101105         , p_accounting_coa_id       => l_adr_accounting_coa_id
101106         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
101107         , p_flex_value_set_id       => l_adr_flex_value_set_id
101108         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
101109         , p_adr_type_code           => 'S'
101110         , p_component_type          => l_component_type
101111         , p_component_code          => l_component_code
101112         , p_component_type_code     => l_component_type_code
101113         , p_component_appl_id       => l_component_appl_id
101114         , p_amb_context_code        => l_amb_context_code
101115         , p_entity_code             => 'AP_PAYMENTS'
101116         , p_event_class_code        => 'RECONCILED PAYMENTS'
101117         , p_side                    => 'NA'
101118         );
101119 
101120   END IF;
101121 
101122    --
101123    --
101124    END IF;
101125    --
101126    -- Bug 4922099
101127    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101131       )
101128           (NVL(l_enc_upg_option, 'N') = 'O')
101129         ) AND
101130         (l_bflow_method_code = 'PRIOR_ENTRY')
101132    THEN
101133       IF
101134       --
101135       1 = 2
101136       --
101137       THEN
101138       xla_accounting_err_pkg.build_message
101139                                     (p_appli_s_name            => 'XLA'
101140                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101141                                     ,p_token_1                 => 'LINE_NUMBER'
101142                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
101143                                     ,p_token_2                 => 'LINE_TYPE_NAME'
101144                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
101145                                                                              l_component_type
101146                                                                             ,l_component_code
101147                                                                             ,l_component_type_code
101148                                                                             ,l_component_appl_id
101149                                                                             ,l_amb_context_code
101150                                                                             ,l_entity_code
101151                                                                             ,l_event_class_code
101152                                                                            )
101153                                     ,p_token_3                 => 'OWNER'
101154                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
101155                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
101156                                                                           ,p_lookup_code    => l_component_type_code
101157                                                                          )
101158                                     ,p_token_4                 => 'PRODUCT_NAME'
101159                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
101160                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
101161                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
101162                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
101163                                     ,p_ae_header_id            =>  NULL
101164                                        );
101165 
101166         IF (C_LEVEL_ERROR>= g_log_level) THEN
101167                  trace
101168                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101169                       ,p_level    => C_LEVEL_ERROR
101170                       ,p_module   => l_log_module);
101171         END IF;
101172       END IF;
101173    END IF;
101174    --
101175    --
101176    ------------------------------------------------------------------------------------------------
101177    -- 4219869 Business Flow
101178    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
101179    -- Prior Entry.  Currently, the following code is always generated.
101180    ------------------------------------------------------------------------------------------------
101181    XLA_AE_LINES_PKG.ValidateCurrentLine;
101182 
101183    ------------------------------------------------------------------------------------
101184    -- 4219869 Business Flow
101185    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
101186    ------------------------------------------------------------------------------------
101187    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101188 
101189    ----------------------------------------------------------------------------------
101190    -- 4219869 Business Flow
101191    -- Update journal entry status -- Need to generate this within IF <condition>
101192    ----------------------------------------------------------------------------------
101193    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101194          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
101195          ,p_balance_type_code => l_balance_type_code
101196          );
101197 
101198    -------------------------------------------------------------------------------------------
101199    -- 4262811 - Generate the Accrual Reversal lines
101200    -------------------------------------------------------------------------------------------
101201    BEGIN
101202       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
101203                               (g_array_event(p_event_id).array_value_num('header_index'));
101204       IF l_acc_rev_flag IS NULL THEN
101205          l_acc_rev_flag := 'N';
101206       END IF;
101207    EXCEPTION
101208       WHEN OTHERS THEN
101209          l_acc_rev_flag := 'N';
101210    END;
101211    --
101212    IF (l_acc_rev_flag = 'Y') THEN
101213 
101214        -- 4645092  ------------------------------------------------------------------------------
101215        -- To allow MPA report to determine if it should generate report process
101216        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
101217        ------------------------------------------------------------------------------------------
101218 
101219        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
101223    -- Bug 4922099
101220        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
101221    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
101222    -- call ADRs
101224    --
101225    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101226         (NVL(l_actual_upg_option, 'N') = 'O') OR
101227         (NVL(l_enc_upg_option, 'N') = 'O')
101228       )
101229    THEN
101230    NULL;
101231    --
101232    --
101233    
101234   l_ccid := AcctDerRule_22(
101235            p_application_id           => p_application_id
101236          , p_ae_header_id             => l_ae_header_id 
101237 , p_source_4 => p_source_4
101238 , p_source_4_meaning => p_source_4_meaning
101239 , p_source_5 => p_source_5
101240 , p_source_7 => p_source_7
101241 , p_source_7_meaning => p_source_7_meaning
101242 , p_source_8 => p_source_8
101243 , p_source_9 => p_source_9
101244 , p_source_10 => p_source_10
101245 , p_source_17 => p_source_17
101246 , p_source_30 => p_source_30
101247 , p_source_30_meaning => p_source_30_meaning
101248          , x_transaction_coa_id       => l_adr_transaction_coa_id
101249          , x_accounting_coa_id        => l_adr_accounting_coa_id
101250          , x_value_type_code          => l_adr_value_type_code
101251          , p_side                     => 'NA'
101252    );
101253 
101254    xla_ae_lines_pkg.set_ccid(
101255     p_code_combination_id          => l_ccid
101256   , p_value_type_code              => l_adr_value_type_code
101257   , p_transaction_coa_id           => l_adr_transaction_coa_id
101258   , p_accounting_coa_id            => l_adr_accounting_coa_id
101259   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
101260   , p_adr_type_code                => 'S'
101261   , p_component_type               => l_component_type
101262   , p_component_code               => l_component_code
101263   , p_component_type_code          => l_component_type_code
101264   , p_component_appl_id            => l_component_appl_id
101265   , p_amb_context_code             => l_amb_context_code
101266   , p_side                         => 'NA'
101267   );
101268 
101269 
101270    l_segment := AcctDerRule_4(
101271            p_application_id           => p_application_id
101272          , p_ae_header_id             => l_ae_header_id 
101273 , p_source_4 => p_source_4
101274 , p_source_4_meaning => p_source_4_meaning
101275 , p_source_5 => p_source_5
101276 , p_source_7 => p_source_7
101277 , p_source_7_meaning => p_source_7_meaning
101278 , p_source_8 => p_source_8
101279 , p_source_9 => p_source_9
101280 , p_source_10 => p_source_10
101281          , x_transaction_coa_id       => l_adr_transaction_coa_id
101282          , x_accounting_coa_id        => l_adr_accounting_coa_id
101283          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
101284          , x_flex_value_set_id        => l_adr_flex_value_set_id
101285          , x_value_type_code          => l_adr_value_type_code
101286          , x_value_combination_id     => l_adr_value_combination_id
101287          , x_value_segment_code       => l_adr_value_segment_code
101288          , p_side                     => 'NA'
101289          , p_override_seg_flag        => 'Y'
101290    );
101291 
101292    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
101293 
101294       xla_ae_lines_pkg.set_segment(
101295           p_to_segment_code         => 'GL_ACCOUNT'
101296         , p_segment_value           => l_segment
101297         , p_from_segment_code       => l_adr_value_segment_code
101298         , p_from_combination_id     => l_adr_value_combination_id
101299         , p_value_type_code         => l_adr_value_type_code
101300         , p_transaction_coa_id      => l_adr_transaction_coa_id
101301         , p_accounting_coa_id       => l_adr_accounting_coa_id
101302         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
101303         , p_flex_value_set_id       => l_adr_flex_value_set_id
101304         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
101305         , p_adr_type_code           => 'S'
101306         , p_component_type          => l_component_type
101307         , p_component_code          => l_component_code
101308         , p_component_type_code     => l_component_type_code
101309         , p_component_appl_id       => l_component_appl_id
101310         , p_amb_context_code        => l_amb_context_code
101311         , p_entity_code             => 'AP_PAYMENTS'
101312         , p_event_class_code        => 'RECONCILED PAYMENTS'
101313         , p_side                    => 'NA'
101314         );
101315 
101316   END IF;
101317 
101318    l_segment := AcctDerRule_15(
101319            p_application_id           => p_application_id
101320          , p_ae_header_id             => l_ae_header_id 
101321 , p_source_4 => p_source_4
101322 , p_source_4_meaning => p_source_4_meaning
101323 , p_source_7 => p_source_7
101324 , p_source_7_meaning => p_source_7_meaning
101325 , p_source_17 => p_source_17
101326          , x_transaction_coa_id       => l_adr_transaction_coa_id
101327          , x_accounting_coa_id        => l_adr_accounting_coa_id
101328          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
101329          , x_flex_value_set_id        => l_adr_flex_value_set_id
101330          , x_value_type_code          => l_adr_value_type_code
101331          , x_value_combination_id     => l_adr_value_combination_id
101332          , x_value_segment_code       => l_adr_value_segment_code
101333          , p_side                     => 'NA'
101334          , p_override_seg_flag        => 'Y'
101335    );
101336 
101340           p_to_segment_code         => 'GL_BALANCING'
101337    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
101338 
101339       xla_ae_lines_pkg.set_segment(
101341         , p_segment_value           => l_segment
101342         , p_from_segment_code       => l_adr_value_segment_code
101343         , p_from_combination_id     => l_adr_value_combination_id
101344         , p_value_type_code         => l_adr_value_type_code
101345         , p_transaction_coa_id      => l_adr_transaction_coa_id
101346         , p_accounting_coa_id       => l_adr_accounting_coa_id
101347         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
101348         , p_flex_value_set_id       => l_adr_flex_value_set_id
101349         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
101350         , p_adr_type_code           => 'S'
101351         , p_component_type          => l_component_type
101352         , p_component_code          => l_component_code
101353         , p_component_type_code     => l_component_type_code
101354         , p_component_appl_id       => l_component_appl_id
101355         , p_amb_context_code        => l_amb_context_code
101356         , p_entity_code             => 'AP_PAYMENTS'
101357         , p_event_class_code        => 'RECONCILED PAYMENTS'
101358         , p_side                    => 'NA'
101359         );
101360 
101361   END IF;
101362 
101363    --
101364    --
101365    END IF;
101366 
101367        --
101368        -- Update the line information that should be overwritten
101369        --
101370        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
101371                                          p_header_num   => 1);
101372        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
101373 
101374        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
101375 
101376        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
101377           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
101378        END IF;
101379 
101380       --
101381       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
101382       --
101383       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
101384           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
101385       ELSE
101386           ---------------------------------------------------------------------------------------------------
101387           -- 4262811a Switch Sign
101388           ---------------------------------------------------------------------------------------------------
101389           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
101390           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101391                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101392           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101393                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101394           -- 5132302
101395           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
101396                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101397 
101398       END IF;
101399 
101400       -- 4955764
101401       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101402       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
101403 
101404 
101405       XLA_AE_LINES_PKG.ValidateCurrentLine;
101406       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101407 
101408       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101409                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
101410                ,p_balance_type_code => l_balance_type_code);
101411 
101412    END IF;
101413 
101414    -----------------------------------------------------------------------------------------
101415    -- 4262811 Multiperiod Accounting
101416    -----------------------------------------------------------------------------------------
101417      -- No MPA option is assigned.
101418 
101419 
101420 END IF;
101421 END IF;
101422 --
101423 
101424 --
101425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101426    trace
101427       (p_msg      => 'END of AcctLineType_178'
101428       ,p_level    => C_LEVEL_PROCEDURE
101429       ,p_module   => l_log_module);
101430 END IF;
101431 --
101432 EXCEPTION
101433   WHEN xla_exceptions_pkg.application_exception THEN
101434       RAISE;
101435   WHEN OTHERS THEN
101436        xla_exceptions_pkg.raise_message
101437            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_178');
101438 END AcctLineType_178;
101439 --
101440 
101441 ---------------------------------------
101442 --
101443 -- PRIVATE FUNCTION
101444 --         AcctLineType_179
101445 --
101446 ---------------------------------------
101447 PROCEDURE AcctLineType_179 (
101448   p_application_id        IN NUMBER
101449  ,p_event_id              IN NUMBER
101450  ,p_calculate_acctd_flag  IN VARCHAR2
101451  ,p_calculate_g_l_flag    IN VARCHAR2
101452  ,p_actual_flag           IN OUT VARCHAR2
101453  ,p_balance_type_code     OUT VARCHAR2
101454  ,p_gain_or_loss_ref      OUT VARCHAR2
101455  
101456 --Automatic Offsets Value
101460  , p_source_5            IN NUMBER
101457  , p_source_4            IN VARCHAR2
101458  , p_source_4_meaning    IN VARCHAR2
101459 --Purchase Order Rate Variance Gain Account
101461 --Destination Type of the PO Distribution
101462  , p_source_7            IN VARCHAR2
101463  , p_source_7_meaning    IN VARCHAR2
101464 --Purchase Order Rate Variance Loss Account
101465  , p_source_8            IN NUMBER
101466 --Payment Distribution (Payment Rate) Ledger Amount
101467  , p_source_9            IN NUMBER
101468 --Payment Distribution (Cleared Rate) Ledger Amount
101469  , p_source_10            IN NUMBER
101470 --Invoice Distribution Account
101471  , p_source_17            IN NUMBER
101472 --Automatic Offsets Flag
101473  , p_source_30            IN VARCHAR2
101474  , p_source_30_meaning    IN VARCHAR2
101475 --When to Account for Payment Option
101476  , p_source_38            IN VARCHAR2
101477 --Payment Distribution Type
101478  , p_source_39            IN VARCHAR2
101479  , p_source_39_meaning    IN VARCHAR2
101480 --Accounting Reversal Indicator
101481  , p_source_40            IN VARCHAR2
101482 --Payment Distribution Amount
101483  , p_source_41            IN NUMBER
101484 --Business Flow Accounts Payable Application Identifier
101485  , p_source_42            IN NUMBER
101486 --Payment Distribution Identifier
101487  , p_source_47            IN NUMBER
101488 --Distribution Link Type
101489  , p_source_48            IN VARCHAR2
101490 --Payment Currency Code
101491  , p_source_49            IN VARCHAR2
101492 --Override Accounted Amount Indicator
101493  , p_source_53            IN VARCHAR2
101494  , p_source_53_meaning    IN VARCHAR2
101495 --Payment Supplier Identifier
101496  , p_source_54            IN NUMBER
101497 --Payment Supplier Site Identifier
101498  , p_source_55            IN NUMBER
101499 --Third Party Type
101500  , p_source_56            IN VARCHAR2
101501 --Payment Distribution Reversed Identifier
101502  , p_source_57            IN NUMBER
101503 --Invoice Distribution Tax Line Identifier
101504  , p_source_58            IN NUMBER
101505 --Invoice Distribution Summary Tax Line Identifier
101506  , p_source_59            IN NUMBER
101507 --Payment Type
101508  , p_source_60            IN VARCHAR2
101509  , p_source_60_meaning    IN VARCHAR2
101510 --Invoice Distribution Amount of the Payment Distribution
101511  , p_source_61            IN NUMBER
101512 --Business Flow Invoice Distribution Type
101513  , p_source_62            IN VARCHAR2
101514 --Business Flow Invoice Entity Code
101515  , p_source_63            IN VARCHAR2
101516 --Business Flow Invoice Distribution Identifier
101517  , p_source_64            IN NUMBER
101518 --Business Flow Invoice Identifier
101519  , p_source_65            IN NUMBER
101520 --Invoice Distribution Tax Distribution Identifier from Tax
101521  , p_source_66            IN NUMBER
101522 --Accrue on Receipt Option
101523  , p_source_100            IN VARCHAR2
101524  , p_source_100_meaning    IN VARCHAR2
101525 --Invoice Type Paid
101526  , p_source_101            IN VARCHAR2
101527  , p_source_101_meaning    IN VARCHAR2
101528 --Payment Exchange Date
101529  , p_source_114            IN DATE
101530 --Payment Exchange Rate
101531  , p_source_115            IN NUMBER
101532 --Payment Exchange Rate Type
101533  , p_source_116            IN VARCHAR2
101534 )
101535 IS
101536 
101537 l_component_type              VARCHAR2(80);
101538 l_component_code              VARCHAR2(30);
101539 l_component_type_code         VARCHAR2(1);
101540 l_component_appl_id           INTEGER;
101541 l_amb_context_code            VARCHAR2(30);
101542 l_entity_code                 VARCHAR2(30);
101543 l_event_class_code            VARCHAR2(30);
101544 l_ae_header_id                NUMBER;
101545 l_event_type_code             VARCHAR2(30);
101546 l_line_definition_code        VARCHAR2(30);
101547 l_line_definition_owner_code  VARCHAR2(1);
101548 --
101549 -- adr variables
101550 l_segment                     VARCHAR2(30);
101551 l_ccid                        NUMBER;
101552 l_adr_transaction_coa_id      NUMBER;
101553 l_adr_accounting_coa_id       NUMBER;
101554 l_adr_flexfield_segment_code  VARCHAR2(30);
101555 l_adr_flex_value_set_id       NUMBER;
101556 l_adr_value_type_code         VARCHAR2(30);
101557 l_adr_value_combination_id    NUMBER;
101558 l_adr_value_segment_code      VARCHAR2(30);
101559 
101560 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
101561 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
101562 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
101563 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
101564 
101565 -- 4262811 Variables ------------------------------------------------------------------------------------------
101566 l_entered_amt_idx             NUMBER;
101567 l_accted_amt_idx              NUMBER;
101568 l_acc_rev_flag                VARCHAR2(1);
101569 l_accrual_line_num            NUMBER;
101570 l_tmp_amt                     NUMBER;
101571 l_acc_rev_natural_side_code   VARCHAR2(1);
101572 
101573 l_num_entries                 NUMBER;
101574 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
101575 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
101576 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
101577 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
101578 l_recog_line_1                NUMBER;
101579 l_recog_line_2                NUMBER;
101580 
101581 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
101585 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
101582 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
101583 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
101584 
101586 
101587 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
101588 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
101589 
101590 ---------------------------------------------------------------------------------------------------------------
101591 
101592 
101593 --
101594 -- bulk performance
101595 --
101596 l_balance_type_code           VARCHAR2(1);
101597 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
101598 l_log_module                  VARCHAR2(240);
101599 
101600 --
101601 -- Upgrade strategy
101602 --
101603 l_actual_upg_option           VARCHAR2(1);
101604 l_enc_upg_option           VARCHAR2(1);
101605 
101606 --
101607 BEGIN
101608 --
101609 IF g_log_enabled THEN
101610       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_179';
101611 END IF;
101612 --
101613 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101614 
101615       trace
101616          (p_msg      => 'BEGIN of AcctLineType_179'
101617          ,p_level    => C_LEVEL_PROCEDURE
101618          ,p_module   => l_log_module);
101619 
101620 END IF;
101621 --
101622 l_component_type             := 'AMB_JLT';
101623 l_component_code             := 'AP_TAX_EX_RATE_VAR_PMT';
101624 l_component_type_code        := 'S';
101625 l_component_appl_id          :=  200;
101626 l_amb_context_code           := 'DEFAULT';
101627 l_entity_code                := 'AP_PAYMENTS';
101628 l_event_class_code           := 'PAYMENTS';
101629 l_event_type_code            := 'PAYMENTS_ALL';
101630 l_line_definition_owner_code := 'S';
101631 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
101632 --
101633 l_balance_type_code          := 'A';
101634 l_segment                     := NULL;
101635 l_ccid                        := NULL;
101636 l_adr_transaction_coa_id      := NULL;
101637 l_adr_accounting_coa_id       := NULL;
101638 l_adr_flexfield_segment_code  := NULL;
101639 l_adr_flex_value_set_id       := NULL;
101640 l_adr_value_type_code         := NULL;
101641 l_adr_value_combination_id    := NULL;
101642 l_adr_value_segment_code      := NULL;
101643 
101644 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
101645 l_bflow_class_code           := '';    -- 4219869 Business Flow
101646 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
101647 l_budgetary_control_flag     := 'N';
101648 
101649 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
101650 l_bflow_applied_to_amt       := NULL; -- 5132302
101651 l_entered_amt_idx            := NULL;          -- 4262811
101652 l_accted_amt_idx             := NULL;          -- 4262811
101653 l_acc_rev_flag               := NULL;          -- 4262811
101654 l_accrual_line_num           := NULL;          -- 4262811
101655 l_tmp_amt                    := NULL;          -- 4262811
101656 --
101657 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
101658             (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
101659                return;
101660   END IF;
101661   
101662 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
101663     l_balance_type_code <> 'B' THEN
101664 IF NVL(p_source_38,'
101665 ') <>  'CLEAR_CLEAR' AND 
101666 NVL(p_source_39,'
101667 ') =  'TAX EXCHANGE RATE VARIANCE' AND 
101668 NVL(p_source_100,'
101669 ') =  'Y' AND 
101670 NVL(p_source_101,'
101671 ') <>  'INTEREST' AND 
101672 NVL(p_source_60,'
101673 ') <>  'R'
101674  THEN 
101675 
101676    --
101677    XLA_AE_LINES_PKG.SetNewLine;
101678 
101679    p_balance_type_code          := l_balance_type_code;
101680    -- set the flag so later we will know whether the gain loss line needs to be created
101681    
101682    IF(l_balance_type_code = 'A' ) THEN
101683      p_actual_flag :='G';
101684    END IF;
101685 
101686    --
101687    -- bulk performance
101688    --
101689    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
101690                                       p_header_num   => 0); -- 4262811
101691    --
101692    -- set accounting line options
101693    --
101694    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
101695            p_natural_side_code          => 'D'
101696          , p_gain_or_loss_flag          => 'Y'
101697          , p_gl_transfer_mode_code      => 'S'
101698          , p_acct_entry_type_code       => 'A'
101699          , p_switch_side_flag           => 'Y'
101700          , p_merge_duplicate_code       => 'A'
101701          );
101702    --
101703    l_acc_rev_natural_side_code := 'C';  -- 4262811
101704    -- 
101705    --
101706    -- set accounting line type info
101707    --
101708    xla_ae_lines_pkg.SetAcctLineType
101709       (p_component_type             => l_component_type
101710       ,p_event_type_code            => l_event_type_code
101711       ,p_line_definition_owner_code => l_line_definition_owner_code
101712       ,p_line_definition_code       => l_line_definition_code
101713       ,p_accounting_line_code       => l_component_code
101714       ,p_accounting_line_type_code  => l_component_type_code
101715       ,p_accounting_line_appl_id    => l_component_appl_id
101719    --
101716       ,p_amb_context_code           => l_amb_context_code
101717       ,p_entity_code                => l_entity_code
101718       ,p_event_class_code           => l_event_class_code);
101720    -- set accounting class
101721    --
101722    xla_ae_lines_pkg.SetAcctClass(
101723            p_accounting_class_code  => 'TERV'
101724          , p_ae_header_id           => l_ae_header_id
101725          );
101726 
101727    --
101728    -- set rounding class
101729    --
101730    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
101731                       'TERV';
101732 
101733    --
101734    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
101735    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
101736    --
101737    -- bulk performance
101738    --
101739    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
101740 
101741    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
101742       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
101743 
101744    -- 4955764
101745    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101746       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
101747 
101748    -- 4458381 Public Sector Enh
101749    
101750    --
101751    -- set accounting attributes for the line type
101752    --
101753    l_entered_amt_idx := 10;
101754    l_accted_amt_idx  := 15;
101755    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
101756    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
101757    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
101758    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
101759    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
101760    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
101761    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
101762    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
101763    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
101764    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
101765    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
101766    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
101767    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
101768    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
101769    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
101770    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
101771    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
101772    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
101773    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
101774    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
101775    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
101776    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
101777    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
101778    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
101779    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
101780    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
101781    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
101782    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
101783    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
101784    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
101785    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
101786    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
101787    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
101788    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
101789    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
101790    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
101791    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
101792    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
101793    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
101794    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
101795    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
101796    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
101797    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
101798    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
101799    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
101800    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
101801    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
101802    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
101803    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
101804 
101805    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
101806    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
101807 
101808    ---------------------------------------------------------------------------------------------------------------
101809    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
101810    ---------------------------------------------------------------------------------------------------------------
101814    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101811    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
101812 
101813    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101815 
101816    IF xla_accounting_cache_pkg.GetValueChar
101817          (p_source_code         => 'LEDGER_CATEGORY_CODE'
101818          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
101819    AND l_bflow_method_code = 'PRIOR_ENTRY'
101820 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
101821    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
101822          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
101823        )
101824    THEN
101825          xla_ae_lines_pkg.BflowUpgEntry
101826            (p_business_method_code    => l_bflow_method_code
101827            ,p_business_class_code     => l_bflow_class_code
101828            ,p_balance_type            => l_balance_type_code);
101829    ELSE
101830       NULL;
101831 -- No business flow processing for business flow method of NONE.
101832    END IF;
101833 
101834    --
101835    -- call analytical criteria
101836    --
101837    
101838    --
101839    -- call description
101840    --
101841    -- No description or it is inherited.
101842    --
101843    -- call ADRs
101844    -- Bug 4922099
101845    --
101846    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101847         (NVL(l_actual_upg_option, 'N') = 'O') OR
101848         (NVL(l_enc_upg_option, 'N') = 'O')
101849       )
101850    THEN
101851    NULL;
101852    --
101853    --
101854    
101855   l_ccid := AcctDerRule_22(
101856            p_application_id           => p_application_id
101857          , p_ae_header_id             => l_ae_header_id 
101858 , p_source_4 => p_source_4
101859 , p_source_4_meaning => p_source_4_meaning
101860 , p_source_5 => p_source_5
101861 , p_source_7 => p_source_7
101862 , p_source_7_meaning => p_source_7_meaning
101863 , p_source_8 => p_source_8
101864 , p_source_9 => p_source_9
101865 , p_source_10 => p_source_10
101866 , p_source_17 => p_source_17
101867 , p_source_30 => p_source_30
101868 , p_source_30_meaning => p_source_30_meaning
101869          , x_transaction_coa_id       => l_adr_transaction_coa_id
101870          , x_accounting_coa_id        => l_adr_accounting_coa_id
101871          , x_value_type_code          => l_adr_value_type_code
101872          , p_side                     => 'NA'
101873    );
101874 
101875    xla_ae_lines_pkg.set_ccid(
101876     p_code_combination_id          => l_ccid
101877   , p_value_type_code              => l_adr_value_type_code
101878   , p_transaction_coa_id           => l_adr_transaction_coa_id
101879   , p_accounting_coa_id            => l_adr_accounting_coa_id
101880   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
101881   , p_adr_type_code                => 'S'
101882   , p_component_type               => l_component_type
101883   , p_component_code               => l_component_code
101884   , p_component_type_code          => l_component_type_code
101885   , p_component_appl_id            => l_component_appl_id
101886   , p_amb_context_code             => l_amb_context_code
101887   , p_side                         => 'NA'
101888   );
101889 
101890 
101891    l_segment := AcctDerRule_4(
101892            p_application_id           => p_application_id
101893          , p_ae_header_id             => l_ae_header_id 
101894 , p_source_4 => p_source_4
101895 , p_source_4_meaning => p_source_4_meaning
101896 , p_source_5 => p_source_5
101897 , p_source_7 => p_source_7
101898 , p_source_7_meaning => p_source_7_meaning
101899 , p_source_8 => p_source_8
101900 , p_source_9 => p_source_9
101901 , p_source_10 => p_source_10
101902          , x_transaction_coa_id       => l_adr_transaction_coa_id
101903          , x_accounting_coa_id        => l_adr_accounting_coa_id
101904          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
101905          , x_flex_value_set_id        => l_adr_flex_value_set_id
101906          , x_value_type_code          => l_adr_value_type_code
101907          , x_value_combination_id     => l_adr_value_combination_id
101908          , x_value_segment_code       => l_adr_value_segment_code
101909          , p_side                     => 'NA'
101910          , p_override_seg_flag        => 'Y'
101911    );
101912 
101913    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
101914 
101915       xla_ae_lines_pkg.set_segment(
101916           p_to_segment_code         => 'GL_ACCOUNT'
101917         , p_segment_value           => l_segment
101918         , p_from_segment_code       => l_adr_value_segment_code
101919         , p_from_combination_id     => l_adr_value_combination_id
101920         , p_value_type_code         => l_adr_value_type_code
101921         , p_transaction_coa_id      => l_adr_transaction_coa_id
101922         , p_accounting_coa_id       => l_adr_accounting_coa_id
101923         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
101924         , p_flex_value_set_id       => l_adr_flex_value_set_id
101925         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
101926         , p_adr_type_code           => 'S'
101927         , p_component_type          => l_component_type
101928         , p_component_code          => l_component_code
101929         , p_component_type_code     => l_component_type_code
101933         , p_event_class_code        => 'PAYMENTS'
101930         , p_component_appl_id       => l_component_appl_id
101931         , p_amb_context_code        => l_amb_context_code
101932         , p_entity_code             => 'AP_PAYMENTS'
101934         , p_side                    => 'NA'
101935         );
101936 
101937   END IF;
101938 
101939    l_segment := AcctDerRule_15(
101940            p_application_id           => p_application_id
101941          , p_ae_header_id             => l_ae_header_id 
101942 , p_source_4 => p_source_4
101943 , p_source_4_meaning => p_source_4_meaning
101944 , p_source_7 => p_source_7
101945 , p_source_7_meaning => p_source_7_meaning
101946 , p_source_17 => p_source_17
101947          , x_transaction_coa_id       => l_adr_transaction_coa_id
101948          , x_accounting_coa_id        => l_adr_accounting_coa_id
101949          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
101950          , x_flex_value_set_id        => l_adr_flex_value_set_id
101951          , x_value_type_code          => l_adr_value_type_code
101952          , x_value_combination_id     => l_adr_value_combination_id
101953          , x_value_segment_code       => l_adr_value_segment_code
101954          , p_side                     => 'NA'
101955          , p_override_seg_flag        => 'Y'
101956    );
101957 
101958    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
101959 
101960       xla_ae_lines_pkg.set_segment(
101961           p_to_segment_code         => 'GL_BALANCING'
101962         , p_segment_value           => l_segment
101963         , p_from_segment_code       => l_adr_value_segment_code
101964         , p_from_combination_id     => l_adr_value_combination_id
101965         , p_value_type_code         => l_adr_value_type_code
101966         , p_transaction_coa_id      => l_adr_transaction_coa_id
101967         , p_accounting_coa_id       => l_adr_accounting_coa_id
101968         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
101969         , p_flex_value_set_id       => l_adr_flex_value_set_id
101970         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
101971         , p_adr_type_code           => 'S'
101972         , p_component_type          => l_component_type
101973         , p_component_code          => l_component_code
101974         , p_component_type_code     => l_component_type_code
101975         , p_component_appl_id       => l_component_appl_id
101976         , p_amb_context_code        => l_amb_context_code
101977         , p_entity_code             => 'AP_PAYMENTS'
101978         , p_event_class_code        => 'PAYMENTS'
101979         , p_side                    => 'NA'
101980         );
101981 
101982   END IF;
101983 
101984    --
101985    --
101986    END IF;
101987    --
101988    -- Bug 4922099
101989    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101990           (NVL(l_enc_upg_option, 'N') = 'O')
101991         ) AND
101992         (l_bflow_method_code = 'PRIOR_ENTRY')
101993       )
101994    THEN
101995       IF
101996       --
101997       1 = 2
101998       --
101999       THEN
102000       xla_accounting_err_pkg.build_message
102001                                     (p_appli_s_name            => 'XLA'
102002                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102003                                     ,p_token_1                 => 'LINE_NUMBER'
102004                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
102005                                     ,p_token_2                 => 'LINE_TYPE_NAME'
102006                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
102007                                                                              l_component_type
102008                                                                             ,l_component_code
102009                                                                             ,l_component_type_code
102010                                                                             ,l_component_appl_id
102011                                                                             ,l_amb_context_code
102012                                                                             ,l_entity_code
102013                                                                             ,l_event_class_code
102014                                                                            )
102015                                     ,p_token_3                 => 'OWNER'
102016                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
102017                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
102018                                                                           ,p_lookup_code    => l_component_type_code
102019                                                                          )
102020                                     ,p_token_4                 => 'PRODUCT_NAME'
102021                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
102022                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
102023                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
102024                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
102025                                     ,p_ae_header_id            =>  NULL
102026                                        );
102027 
102028         IF (C_LEVEL_ERROR>= g_log_level) THEN
102029                  trace
102033         END IF;
102030                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102031                       ,p_level    => C_LEVEL_ERROR
102032                       ,p_module   => l_log_module);
102034       END IF;
102035    END IF;
102036    --
102037    --
102038    ------------------------------------------------------------------------------------------------
102039    -- 4219869 Business Flow
102040    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
102041    -- Prior Entry.  Currently, the following code is always generated.
102042    ------------------------------------------------------------------------------------------------
102043    XLA_AE_LINES_PKG.ValidateCurrentLine;
102044 
102045    ------------------------------------------------------------------------------------
102046    -- 4219869 Business Flow
102047    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
102048    ------------------------------------------------------------------------------------
102049    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102050 
102051    ----------------------------------------------------------------------------------
102052    -- 4219869 Business Flow
102053    -- Update journal entry status -- Need to generate this within IF <condition>
102054    ----------------------------------------------------------------------------------
102055    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102056          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
102057          ,p_balance_type_code => l_balance_type_code
102058          );
102059 
102060    -------------------------------------------------------------------------------------------
102061    -- 4262811 - Generate the Accrual Reversal lines
102062    -------------------------------------------------------------------------------------------
102063    BEGIN
102064       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
102065                               (g_array_event(p_event_id).array_value_num('header_index'));
102066       IF l_acc_rev_flag IS NULL THEN
102067          l_acc_rev_flag := 'N';
102068       END IF;
102069    EXCEPTION
102070       WHEN OTHERS THEN
102071          l_acc_rev_flag := 'N';
102072    END;
102073    --
102074    IF (l_acc_rev_flag = 'Y') THEN
102075 
102076        -- 4645092  ------------------------------------------------------------------------------
102077        -- To allow MPA report to determine if it should generate report process
102078        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
102079        ------------------------------------------------------------------------------------------
102080 
102081        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
102082        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
102083    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
102084    -- call ADRs
102085    -- Bug 4922099
102086    --
102087    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102088         (NVL(l_actual_upg_option, 'N') = 'O') OR
102089         (NVL(l_enc_upg_option, 'N') = 'O')
102090       )
102091    THEN
102092    NULL;
102093    --
102094    --
102095    
102096   l_ccid := AcctDerRule_22(
102097            p_application_id           => p_application_id
102098          , p_ae_header_id             => l_ae_header_id 
102099 , p_source_4 => p_source_4
102100 , p_source_4_meaning => p_source_4_meaning
102101 , p_source_5 => p_source_5
102102 , p_source_7 => p_source_7
102103 , p_source_7_meaning => p_source_7_meaning
102104 , p_source_8 => p_source_8
102105 , p_source_9 => p_source_9
102106 , p_source_10 => p_source_10
102107 , p_source_17 => p_source_17
102108 , p_source_30 => p_source_30
102109 , p_source_30_meaning => p_source_30_meaning
102110          , x_transaction_coa_id       => l_adr_transaction_coa_id
102111          , x_accounting_coa_id        => l_adr_accounting_coa_id
102112          , x_value_type_code          => l_adr_value_type_code
102113          , p_side                     => 'NA'
102114    );
102115 
102116    xla_ae_lines_pkg.set_ccid(
102117     p_code_combination_id          => l_ccid
102118   , p_value_type_code              => l_adr_value_type_code
102119   , p_transaction_coa_id           => l_adr_transaction_coa_id
102120   , p_accounting_coa_id            => l_adr_accounting_coa_id
102121   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
102122   , p_adr_type_code                => 'S'
102123   , p_component_type               => l_component_type
102124   , p_component_code               => l_component_code
102125   , p_component_type_code          => l_component_type_code
102126   , p_component_appl_id            => l_component_appl_id
102127   , p_amb_context_code             => l_amb_context_code
102128   , p_side                         => 'NA'
102129   );
102130 
102131 
102132    l_segment := AcctDerRule_4(
102133            p_application_id           => p_application_id
102134          , p_ae_header_id             => l_ae_header_id 
102135 , p_source_4 => p_source_4
102136 , p_source_4_meaning => p_source_4_meaning
102137 , p_source_5 => p_source_5
102138 , p_source_7 => p_source_7
102139 , p_source_7_meaning => p_source_7_meaning
102140 , p_source_8 => p_source_8
102141 , p_source_9 => p_source_9
102142 , p_source_10 => p_source_10
102143          , x_transaction_coa_id       => l_adr_transaction_coa_id
102144          , x_accounting_coa_id        => l_adr_accounting_coa_id
102145          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
102146          , x_flex_value_set_id        => l_adr_flex_value_set_id
102150          , p_side                     => 'NA'
102147          , x_value_type_code          => l_adr_value_type_code
102148          , x_value_combination_id     => l_adr_value_combination_id
102149          , x_value_segment_code       => l_adr_value_segment_code
102151          , p_override_seg_flag        => 'Y'
102152    );
102153 
102154    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
102155 
102156       xla_ae_lines_pkg.set_segment(
102157           p_to_segment_code         => 'GL_ACCOUNT'
102158         , p_segment_value           => l_segment
102159         , p_from_segment_code       => l_adr_value_segment_code
102160         , p_from_combination_id     => l_adr_value_combination_id
102161         , p_value_type_code         => l_adr_value_type_code
102162         , p_transaction_coa_id      => l_adr_transaction_coa_id
102163         , p_accounting_coa_id       => l_adr_accounting_coa_id
102164         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
102165         , p_flex_value_set_id       => l_adr_flex_value_set_id
102166         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
102167         , p_adr_type_code           => 'S'
102168         , p_component_type          => l_component_type
102169         , p_component_code          => l_component_code
102170         , p_component_type_code     => l_component_type_code
102171         , p_component_appl_id       => l_component_appl_id
102172         , p_amb_context_code        => l_amb_context_code
102173         , p_entity_code             => 'AP_PAYMENTS'
102174         , p_event_class_code        => 'PAYMENTS'
102175         , p_side                    => 'NA'
102176         );
102177 
102178   END IF;
102179 
102180    l_segment := AcctDerRule_15(
102181            p_application_id           => p_application_id
102182          , p_ae_header_id             => l_ae_header_id 
102183 , p_source_4 => p_source_4
102184 , p_source_4_meaning => p_source_4_meaning
102185 , p_source_7 => p_source_7
102186 , p_source_7_meaning => p_source_7_meaning
102187 , p_source_17 => p_source_17
102188          , x_transaction_coa_id       => l_adr_transaction_coa_id
102189          , x_accounting_coa_id        => l_adr_accounting_coa_id
102190          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
102191          , x_flex_value_set_id        => l_adr_flex_value_set_id
102192          , x_value_type_code          => l_adr_value_type_code
102193          , x_value_combination_id     => l_adr_value_combination_id
102194          , x_value_segment_code       => l_adr_value_segment_code
102195          , p_side                     => 'NA'
102196          , p_override_seg_flag        => 'Y'
102197    );
102198 
102199    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
102200 
102201       xla_ae_lines_pkg.set_segment(
102202           p_to_segment_code         => 'GL_BALANCING'
102203         , p_segment_value           => l_segment
102204         , p_from_segment_code       => l_adr_value_segment_code
102205         , p_from_combination_id     => l_adr_value_combination_id
102206         , p_value_type_code         => l_adr_value_type_code
102207         , p_transaction_coa_id      => l_adr_transaction_coa_id
102208         , p_accounting_coa_id       => l_adr_accounting_coa_id
102209         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
102210         , p_flex_value_set_id       => l_adr_flex_value_set_id
102211         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
102212         , p_adr_type_code           => 'S'
102213         , p_component_type          => l_component_type
102214         , p_component_code          => l_component_code
102215         , p_component_type_code     => l_component_type_code
102216         , p_component_appl_id       => l_component_appl_id
102217         , p_amb_context_code        => l_amb_context_code
102218         , p_entity_code             => 'AP_PAYMENTS'
102219         , p_event_class_code        => 'PAYMENTS'
102220         , p_side                    => 'NA'
102221         );
102222 
102223   END IF;
102224 
102225    --
102226    --
102227    END IF;
102228 
102229        --
102230        -- Update the line information that should be overwritten
102231        --
102232        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
102233                                          p_header_num   => 1);
102234        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
102235 
102236        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
102237 
102238        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
102239           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
102240        END IF;
102241 
102242       --
102243       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
102244       --
102245       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
102246           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
102247       ELSE
102248           ---------------------------------------------------------------------------------------------------
102249           -- 4262811a Switch Sign
102250           ---------------------------------------------------------------------------------------------------
102251           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
102255                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102252           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102253                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102254           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102256           -- 5132302
102257           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
102258                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102259 
102260       END IF;
102261 
102262       -- 4955764
102263       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102264       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
102265 
102266 
102267       XLA_AE_LINES_PKG.ValidateCurrentLine;
102268       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102269 
102270       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102271                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
102272                ,p_balance_type_code => l_balance_type_code);
102273 
102274    END IF;
102275 
102276    -----------------------------------------------------------------------------------------
102277    -- 4262811 Multiperiod Accounting
102278    -----------------------------------------------------------------------------------------
102279      -- No MPA option is assigned.
102280 
102281 
102282 END IF;
102283 END IF;
102284 --
102285 
102286 --
102287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102288    trace
102289       (p_msg      => 'END of AcctLineType_179'
102290       ,p_level    => C_LEVEL_PROCEDURE
102291       ,p_module   => l_log_module);
102292 END IF;
102293 --
102294 EXCEPTION
102295   WHEN xla_exceptions_pkg.application_exception THEN
102296       RAISE;
102297   WHEN OTHERS THEN
102298        xla_exceptions_pkg.raise_message
102299            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_179');
102300 END AcctLineType_179;
102301 --
102302 
102303 ---------------------------------------
102304 --
102305 -- PRIVATE FUNCTION
102306 --         AcctLineType_180
102307 --
102308 ---------------------------------------
102309 PROCEDURE AcctLineType_180 (
102310   p_application_id        IN NUMBER
102311  ,p_event_id              IN NUMBER
102312  ,p_calculate_acctd_flag  IN VARCHAR2
102313  ,p_calculate_g_l_flag    IN VARCHAR2
102314  ,p_actual_flag           IN OUT VARCHAR2
102315  ,p_balance_type_code     OUT VARCHAR2
102316  ,p_gain_or_loss_ref      OUT VARCHAR2
102317  
102318 --Automatic Offsets Value
102319  , p_source_4            IN VARCHAR2
102320  , p_source_4_meaning    IN VARCHAR2
102321 --Purchase Order Rate Variance Gain Account
102322  , p_source_5            IN NUMBER
102323 --Destination Type of the PO Distribution
102324  , p_source_7            IN VARCHAR2
102325  , p_source_7_meaning    IN VARCHAR2
102326 --Purchase Order Rate Variance Loss Account
102327  , p_source_8            IN NUMBER
102328 --Payment Distribution (Payment Rate) Ledger Amount
102329  , p_source_9            IN NUMBER
102330 --Payment Distribution (Cleared Rate) Ledger Amount
102331  , p_source_10            IN NUMBER
102332 --Invoice Distribution Account
102333  , p_source_17            IN NUMBER
102334 --Automatic Offsets Flag
102335  , p_source_30            IN VARCHAR2
102336  , p_source_30_meaning    IN VARCHAR2
102337 --When to Account for Payment Option
102338  , p_source_38            IN VARCHAR2
102339 --Payment Distribution Type
102340  , p_source_39            IN VARCHAR2
102341  , p_source_39_meaning    IN VARCHAR2
102342 --Accounting Reversal Indicator
102343  , p_source_40            IN VARCHAR2
102344 --Payment Distribution Amount
102345  , p_source_41            IN NUMBER
102346 --Business Flow Accounts Payable Application Identifier
102347  , p_source_42            IN NUMBER
102348 --Payment Distribution Identifier
102349  , p_source_47            IN NUMBER
102350 --Distribution Link Type
102351  , p_source_48            IN VARCHAR2
102352 --Payment Currency Code
102353  , p_source_49            IN VARCHAR2
102354 --Override Accounted Amount Indicator
102355  , p_source_53            IN VARCHAR2
102356  , p_source_53_meaning    IN VARCHAR2
102357 --Payment Supplier Identifier
102358  , p_source_54            IN NUMBER
102359 --Payment Supplier Site Identifier
102360  , p_source_55            IN NUMBER
102361 --Third Party Type
102362  , p_source_56            IN VARCHAR2
102363 --Payment Distribution Reversed Identifier
102364  , p_source_57            IN NUMBER
102365 --Invoice Distribution Tax Line Identifier
102366  , p_source_58            IN NUMBER
102367 --Invoice Distribution Summary Tax Line Identifier
102368  , p_source_59            IN NUMBER
102369 --Payment Type
102370  , p_source_60            IN VARCHAR2
102371  , p_source_60_meaning    IN VARCHAR2
102372 --Business Flow Invoice Distribution Type
102373  , p_source_62            IN VARCHAR2
102374 --Business Flow Invoice Entity Code
102375  , p_source_63            IN VARCHAR2
102376 --Business Flow Invoice Distribution Identifier
102377  , p_source_64            IN NUMBER
102378 --Business Flow Invoice Identifier
102379  , p_source_65            IN NUMBER
102380 --Invoice Distribution Tax Distribution Identifier from Tax
102381  , p_source_66            IN NUMBER
102382 --Accrue on Receipt Option
102386  , p_source_114            IN DATE
102383  , p_source_100            IN VARCHAR2
102384  , p_source_100_meaning    IN VARCHAR2
102385 --Payment Exchange Date
102387 --Payment Exchange Rate
102388  , p_source_115            IN NUMBER
102389 --Payment Exchange Rate Type
102390  , p_source_116            IN VARCHAR2
102391 )
102392 IS
102393 
102394 l_component_type              VARCHAR2(80);
102395 l_component_code              VARCHAR2(30);
102396 l_component_type_code         VARCHAR2(1);
102397 l_component_appl_id           INTEGER;
102398 l_amb_context_code            VARCHAR2(30);
102399 l_entity_code                 VARCHAR2(30);
102400 l_event_class_code            VARCHAR2(30);
102401 l_ae_header_id                NUMBER;
102402 l_event_type_code             VARCHAR2(30);
102403 l_line_definition_code        VARCHAR2(30);
102404 l_line_definition_owner_code  VARCHAR2(1);
102405 --
102406 -- adr variables
102407 l_segment                     VARCHAR2(30);
102408 l_ccid                        NUMBER;
102409 l_adr_transaction_coa_id      NUMBER;
102410 l_adr_accounting_coa_id       NUMBER;
102411 l_adr_flexfield_segment_code  VARCHAR2(30);
102412 l_adr_flex_value_set_id       NUMBER;
102413 l_adr_value_type_code         VARCHAR2(30);
102414 l_adr_value_combination_id    NUMBER;
102415 l_adr_value_segment_code      VARCHAR2(30);
102416 
102417 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
102418 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
102419 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
102420 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
102421 
102422 -- 4262811 Variables ------------------------------------------------------------------------------------------
102423 l_entered_amt_idx             NUMBER;
102424 l_accted_amt_idx              NUMBER;
102425 l_acc_rev_flag                VARCHAR2(1);
102426 l_accrual_line_num            NUMBER;
102427 l_tmp_amt                     NUMBER;
102428 l_acc_rev_natural_side_code   VARCHAR2(1);
102429 
102430 l_num_entries                 NUMBER;
102431 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
102432 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
102433 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
102434 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
102435 l_recog_line_1                NUMBER;
102436 l_recog_line_2                NUMBER;
102437 
102438 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
102439 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
102440 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
102441 
102442 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
102443 
102444 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
102445 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
102446 
102447 ---------------------------------------------------------------------------------------------------------------
102448 
102449 
102450 --
102451 -- bulk performance
102452 --
102453 l_balance_type_code           VARCHAR2(1);
102454 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
102455 l_log_module                  VARCHAR2(240);
102456 
102457 --
102458 -- Upgrade strategy
102459 --
102460 l_actual_upg_option           VARCHAR2(1);
102461 l_enc_upg_option           VARCHAR2(1);
102462 
102463 --
102464 BEGIN
102465 --
102466 IF g_log_enabled THEN
102467       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_180';
102468 END IF;
102469 --
102470 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102471 
102472       trace
102473          (p_msg      => 'BEGIN of AcctLineType_180'
102474          ,p_level    => C_LEVEL_PROCEDURE
102475          ,p_module   => l_log_module);
102476 
102477 END IF;
102478 --
102479 l_component_type             := 'AMB_JLT';
102480 l_component_code             := 'AP_TAX_EX_RATE_VAR_REF';
102481 l_component_type_code        := 'S';
102482 l_component_appl_id          :=  200;
102483 l_amb_context_code           := 'DEFAULT';
102484 l_entity_code                := 'AP_PAYMENTS';
102485 l_event_class_code           := 'REFUNDS';
102486 l_event_type_code            := 'REFUNDS_ALL';
102487 l_line_definition_owner_code := 'S';
102488 l_line_definition_code       := 'CASH_REFUNDS_ALL';
102489 --
102490 l_balance_type_code          := 'A';
102491 l_segment                     := NULL;
102492 l_ccid                        := NULL;
102493 l_adr_transaction_coa_id      := NULL;
102494 l_adr_accounting_coa_id       := NULL;
102495 l_adr_flexfield_segment_code  := NULL;
102496 l_adr_flex_value_set_id       := NULL;
102497 l_adr_value_type_code         := NULL;
102498 l_adr_value_combination_id    := NULL;
102499 l_adr_value_segment_code      := NULL;
102500 
102501 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
102502 l_bflow_class_code           := '';    -- 4219869 Business Flow
102503 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
102504 l_budgetary_control_flag     := 'N';
102505 
102506 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
102507 l_bflow_applied_to_amt       := NULL; -- 5132302
102508 l_entered_amt_idx            := NULL;          -- 4262811
102509 l_accted_amt_idx             := NULL;          -- 4262811
102513 --
102510 l_acc_rev_flag               := NULL;          -- 4262811
102511 l_accrual_line_num           := NULL;          -- 4262811
102512 l_tmp_amt                    := NULL;          -- 4262811
102514 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
102515             (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
102516                return;
102517   END IF;
102518   
102519 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
102520     l_balance_type_code <> 'B' THEN
102521 IF NVL(p_source_38,'
102522 ') <>  'CLEAR_CLEAR' AND 
102523 NVL(p_source_39,'
102524 ') =  'TAX EXCHANGE RATE VARIANCE' AND 
102525 NVL(p_source_100,'
102526 ') =  'Y' AND 
102527 NVL(p_source_60,'
102528 ') =  'R'
102529  THEN 
102530 
102531    --
102532    XLA_AE_LINES_PKG.SetNewLine;
102533 
102534    p_balance_type_code          := l_balance_type_code;
102535    -- set the flag so later we will know whether the gain loss line needs to be created
102536    
102537    IF(l_balance_type_code = 'A' ) THEN
102538      p_actual_flag :='G';
102539    END IF;
102540 
102541    --
102542    -- bulk performance
102543    --
102544    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
102545                                       p_header_num   => 0); -- 4262811
102546    --
102547    -- set accounting line options
102548    --
102549    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
102550            p_natural_side_code          => 'D'
102551          , p_gain_or_loss_flag          => 'Y'
102552          , p_gl_transfer_mode_code      => 'S'
102553          , p_acct_entry_type_code       => 'A'
102554          , p_switch_side_flag           => 'Y'
102555          , p_merge_duplicate_code       => 'A'
102556          );
102557    --
102558    l_acc_rev_natural_side_code := 'C';  -- 4262811
102559    -- 
102560    --
102561    -- set accounting line type info
102562    --
102563    xla_ae_lines_pkg.SetAcctLineType
102564       (p_component_type             => l_component_type
102565       ,p_event_type_code            => l_event_type_code
102566       ,p_line_definition_owner_code => l_line_definition_owner_code
102567       ,p_line_definition_code       => l_line_definition_code
102568       ,p_accounting_line_code       => l_component_code
102569       ,p_accounting_line_type_code  => l_component_type_code
102570       ,p_accounting_line_appl_id    => l_component_appl_id
102571       ,p_amb_context_code           => l_amb_context_code
102572       ,p_entity_code                => l_entity_code
102573       ,p_event_class_code           => l_event_class_code);
102574    --
102575    -- set accounting class
102576    --
102577    xla_ae_lines_pkg.SetAcctClass(
102578            p_accounting_class_code  => 'TERV'
102579          , p_ae_header_id           => l_ae_header_id
102580          );
102581 
102582    --
102583    -- set rounding class
102584    --
102585    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
102586                       'TERV';
102587 
102588    --
102589    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
102590    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
102591    --
102592    -- bulk performance
102593    --
102594    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
102595 
102596    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
102597       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
102598 
102599    -- 4955764
102600    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102601       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
102602 
102603    -- 4458381 Public Sector Enh
102604    
102605    --
102606    -- set accounting attributes for the line type
102607    --
102608    l_entered_amt_idx := 9;
102609    l_accted_amt_idx  := 14;
102610    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
102611    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
102612    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
102613    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
102614    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
102615    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
102616    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
102617    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
102618    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
102619    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
102620    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
102621    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
102622    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
102623    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
102624    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
102625    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
102626    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
102627    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
102631    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
102628    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
102629    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
102630    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
102632    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
102633    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
102634    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
102635    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
102636    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
102637    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
102638    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
102639    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
102640    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
102641    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
102642    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
102643    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
102644    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
102645    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
102646    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
102647    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
102648    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
102649    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
102650    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
102651    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
102652    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
102653    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
102654    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
102655    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
102656    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
102657 
102658    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
102659    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
102660 
102661    ---------------------------------------------------------------------------------------------------------------
102662    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
102663    ---------------------------------------------------------------------------------------------------------------
102664    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
102665 
102666    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102667    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102668 
102669    IF xla_accounting_cache_pkg.GetValueChar
102670          (p_source_code         => 'LEDGER_CATEGORY_CODE'
102671          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
102672    AND l_bflow_method_code = 'PRIOR_ENTRY'
102673 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
102674    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
102675          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
102676        )
102677    THEN
102678          xla_ae_lines_pkg.BflowUpgEntry
102679            (p_business_method_code    => l_bflow_method_code
102680            ,p_business_class_code     => l_bflow_class_code
102681            ,p_balance_type            => l_balance_type_code);
102682    ELSE
102683       NULL;
102684 -- No business flow processing for business flow method of NONE.
102685    END IF;
102686 
102687    --
102688    -- call analytical criteria
102689    --
102690    
102691    --
102692    -- call description
102693    --
102694    -- No description or it is inherited.
102695    --
102696    -- call ADRs
102697    -- Bug 4922099
102698    --
102699    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102700         (NVL(l_actual_upg_option, 'N') = 'O') OR
102701         (NVL(l_enc_upg_option, 'N') = 'O')
102702       )
102703    THEN
102704    NULL;
102705    --
102706    --
102707    
102708   l_ccid := AcctDerRule_22(
102709            p_application_id           => p_application_id
102710          , p_ae_header_id             => l_ae_header_id 
102711 , p_source_4 => p_source_4
102712 , p_source_4_meaning => p_source_4_meaning
102713 , p_source_5 => p_source_5
102714 , p_source_7 => p_source_7
102715 , p_source_7_meaning => p_source_7_meaning
102716 , p_source_8 => p_source_8
102717 , p_source_9 => p_source_9
102718 , p_source_10 => p_source_10
102719 , p_source_17 => p_source_17
102720 , p_source_30 => p_source_30
102721 , p_source_30_meaning => p_source_30_meaning
102722          , x_transaction_coa_id       => l_adr_transaction_coa_id
102723          , x_accounting_coa_id        => l_adr_accounting_coa_id
102724          , x_value_type_code          => l_adr_value_type_code
102725          , p_side                     => 'NA'
102726    );
102727 
102728    xla_ae_lines_pkg.set_ccid(
102729     p_code_combination_id          => l_ccid
102730   , p_value_type_code              => l_adr_value_type_code
102731   , p_transaction_coa_id           => l_adr_transaction_coa_id
102732   , p_accounting_coa_id            => l_adr_accounting_coa_id
102733   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
102734   , p_adr_type_code                => 'S'
102735   , p_component_type               => l_component_type
102739   , p_amb_context_code             => l_amb_context_code
102736   , p_component_code               => l_component_code
102737   , p_component_type_code          => l_component_type_code
102738   , p_component_appl_id            => l_component_appl_id
102740   , p_side                         => 'NA'
102741   );
102742 
102743 
102744    l_segment := AcctDerRule_4(
102745            p_application_id           => p_application_id
102746          , p_ae_header_id             => l_ae_header_id 
102747 , p_source_4 => p_source_4
102748 , p_source_4_meaning => p_source_4_meaning
102749 , p_source_5 => p_source_5
102750 , p_source_7 => p_source_7
102751 , p_source_7_meaning => p_source_7_meaning
102752 , p_source_8 => p_source_8
102753 , p_source_9 => p_source_9
102754 , p_source_10 => p_source_10
102755          , x_transaction_coa_id       => l_adr_transaction_coa_id
102756          , x_accounting_coa_id        => l_adr_accounting_coa_id
102757          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
102758          , x_flex_value_set_id        => l_adr_flex_value_set_id
102759          , x_value_type_code          => l_adr_value_type_code
102760          , x_value_combination_id     => l_adr_value_combination_id
102761          , x_value_segment_code       => l_adr_value_segment_code
102762          , p_side                     => 'NA'
102763          , p_override_seg_flag        => 'Y'
102764    );
102765 
102766    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
102767 
102768       xla_ae_lines_pkg.set_segment(
102769           p_to_segment_code         => 'GL_ACCOUNT'
102770         , p_segment_value           => l_segment
102771         , p_from_segment_code       => l_adr_value_segment_code
102772         , p_from_combination_id     => l_adr_value_combination_id
102773         , p_value_type_code         => l_adr_value_type_code
102774         , p_transaction_coa_id      => l_adr_transaction_coa_id
102775         , p_accounting_coa_id       => l_adr_accounting_coa_id
102776         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
102777         , p_flex_value_set_id       => l_adr_flex_value_set_id
102778         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
102779         , p_adr_type_code           => 'S'
102780         , p_component_type          => l_component_type
102781         , p_component_code          => l_component_code
102782         , p_component_type_code     => l_component_type_code
102783         , p_component_appl_id       => l_component_appl_id
102784         , p_amb_context_code        => l_amb_context_code
102785         , p_entity_code             => 'AP_PAYMENTS'
102786         , p_event_class_code        => 'REFUNDS'
102787         , p_side                    => 'NA'
102788         );
102789 
102790   END IF;
102791 
102792    l_segment := AcctDerRule_15(
102793            p_application_id           => p_application_id
102794          , p_ae_header_id             => l_ae_header_id 
102795 , p_source_4 => p_source_4
102796 , p_source_4_meaning => p_source_4_meaning
102797 , p_source_7 => p_source_7
102798 , p_source_7_meaning => p_source_7_meaning
102799 , p_source_17 => p_source_17
102800          , x_transaction_coa_id       => l_adr_transaction_coa_id
102801          , x_accounting_coa_id        => l_adr_accounting_coa_id
102802          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
102803          , x_flex_value_set_id        => l_adr_flex_value_set_id
102804          , x_value_type_code          => l_adr_value_type_code
102805          , x_value_combination_id     => l_adr_value_combination_id
102806          , x_value_segment_code       => l_adr_value_segment_code
102807          , p_side                     => 'NA'
102808          , p_override_seg_flag        => 'Y'
102809    );
102810 
102811    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
102812 
102813       xla_ae_lines_pkg.set_segment(
102814           p_to_segment_code         => 'GL_BALANCING'
102815         , p_segment_value           => l_segment
102816         , p_from_segment_code       => l_adr_value_segment_code
102817         , p_from_combination_id     => l_adr_value_combination_id
102818         , p_value_type_code         => l_adr_value_type_code
102819         , p_transaction_coa_id      => l_adr_transaction_coa_id
102820         , p_accounting_coa_id       => l_adr_accounting_coa_id
102821         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
102822         , p_flex_value_set_id       => l_adr_flex_value_set_id
102823         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
102824         , p_adr_type_code           => 'S'
102825         , p_component_type          => l_component_type
102826         , p_component_code          => l_component_code
102827         , p_component_type_code     => l_component_type_code
102828         , p_component_appl_id       => l_component_appl_id
102829         , p_amb_context_code        => l_amb_context_code
102830         , p_entity_code             => 'AP_PAYMENTS'
102831         , p_event_class_code        => 'REFUNDS'
102832         , p_side                    => 'NA'
102833         );
102834 
102835   END IF;
102836 
102837    --
102838    --
102839    END IF;
102840    --
102841    -- Bug 4922099
102842    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
102843           (NVL(l_enc_upg_option, 'N') = 'O')
102844         ) AND
102845         (l_bflow_method_code = 'PRIOR_ENTRY')
102846       )
102847    THEN
102848       IF
102849       --
102850       1 = 2
102851       --
102852       THEN
102853       xla_accounting_err_pkg.build_message
102854                                     (p_appli_s_name            => 'XLA'
102858                                     ,p_token_2                 => 'LINE_TYPE_NAME'
102855                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102856                                     ,p_token_1                 => 'LINE_NUMBER'
102857                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
102859                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
102860                                                                              l_component_type
102861                                                                             ,l_component_code
102862                                                                             ,l_component_type_code
102863                                                                             ,l_component_appl_id
102864                                                                             ,l_amb_context_code
102865                                                                             ,l_entity_code
102866                                                                             ,l_event_class_code
102867                                                                            )
102868                                     ,p_token_3                 => 'OWNER'
102869                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
102870                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
102871                                                                           ,p_lookup_code    => l_component_type_code
102872                                                                          )
102873                                     ,p_token_4                 => 'PRODUCT_NAME'
102874                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
102875                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
102876                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
102877                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
102878                                     ,p_ae_header_id            =>  NULL
102879                                        );
102880 
102881         IF (C_LEVEL_ERROR>= g_log_level) THEN
102882                  trace
102883                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102884                       ,p_level    => C_LEVEL_ERROR
102885                       ,p_module   => l_log_module);
102886         END IF;
102887       END IF;
102888    END IF;
102889    --
102890    --
102891    ------------------------------------------------------------------------------------------------
102892    -- 4219869 Business Flow
102893    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
102894    -- Prior Entry.  Currently, the following code is always generated.
102895    ------------------------------------------------------------------------------------------------
102896    XLA_AE_LINES_PKG.ValidateCurrentLine;
102897 
102898    ------------------------------------------------------------------------------------
102899    -- 4219869 Business Flow
102900    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
102901    ------------------------------------------------------------------------------------
102902    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102903 
102904    ----------------------------------------------------------------------------------
102905    -- 4219869 Business Flow
102906    -- Update journal entry status -- Need to generate this within IF <condition>
102907    ----------------------------------------------------------------------------------
102908    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102909          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
102910          ,p_balance_type_code => l_balance_type_code
102911          );
102912 
102913    -------------------------------------------------------------------------------------------
102914    -- 4262811 - Generate the Accrual Reversal lines
102915    -------------------------------------------------------------------------------------------
102916    BEGIN
102917       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
102918                               (g_array_event(p_event_id).array_value_num('header_index'));
102919       IF l_acc_rev_flag IS NULL THEN
102920          l_acc_rev_flag := 'N';
102921       END IF;
102922    EXCEPTION
102923       WHEN OTHERS THEN
102924          l_acc_rev_flag := 'N';
102925    END;
102926    --
102927    IF (l_acc_rev_flag = 'Y') THEN
102928 
102929        -- 4645092  ------------------------------------------------------------------------------
102930        -- To allow MPA report to determine if it should generate report process
102931        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
102932        ------------------------------------------------------------------------------------------
102933 
102934        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
102935        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
102936    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
102937    -- call ADRs
102938    -- Bug 4922099
102939    --
102940    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102941         (NVL(l_actual_upg_option, 'N') = 'O') OR
102942         (NVL(l_enc_upg_option, 'N') = 'O')
102943       )
102944    THEN
102945    NULL;
102949   l_ccid := AcctDerRule_22(
102946    --
102947    --
102948    
102950            p_application_id           => p_application_id
102951          , p_ae_header_id             => l_ae_header_id 
102952 , p_source_4 => p_source_4
102953 , p_source_4_meaning => p_source_4_meaning
102954 , p_source_5 => p_source_5
102955 , p_source_7 => p_source_7
102956 , p_source_7_meaning => p_source_7_meaning
102957 , p_source_8 => p_source_8
102958 , p_source_9 => p_source_9
102959 , p_source_10 => p_source_10
102960 , p_source_17 => p_source_17
102961 , p_source_30 => p_source_30
102962 , p_source_30_meaning => p_source_30_meaning
102963          , x_transaction_coa_id       => l_adr_transaction_coa_id
102964          , x_accounting_coa_id        => l_adr_accounting_coa_id
102965          , x_value_type_code          => l_adr_value_type_code
102966          , p_side                     => 'NA'
102967    );
102968 
102969    xla_ae_lines_pkg.set_ccid(
102970     p_code_combination_id          => l_ccid
102971   , p_value_type_code              => l_adr_value_type_code
102972   , p_transaction_coa_id           => l_adr_transaction_coa_id
102973   , p_accounting_coa_id            => l_adr_accounting_coa_id
102974   , p_adr_code                     => 'AP_ERV_TAXERV_CASH'
102975   , p_adr_type_code                => 'S'
102976   , p_component_type               => l_component_type
102977   , p_component_code               => l_component_code
102978   , p_component_type_code          => l_component_type_code
102979   , p_component_appl_id            => l_component_appl_id
102980   , p_amb_context_code             => l_amb_context_code
102981   , p_side                         => 'NA'
102982   );
102983 
102984 
102985    l_segment := AcctDerRule_4(
102986            p_application_id           => p_application_id
102987          , p_ae_header_id             => l_ae_header_id 
102988 , p_source_4 => p_source_4
102989 , p_source_4_meaning => p_source_4_meaning
102990 , p_source_5 => p_source_5
102991 , p_source_7 => p_source_7
102992 , p_source_7_meaning => p_source_7_meaning
102993 , p_source_8 => p_source_8
102994 , p_source_9 => p_source_9
102995 , p_source_10 => p_source_10
102996          , x_transaction_coa_id       => l_adr_transaction_coa_id
102997          , x_accounting_coa_id        => l_adr_accounting_coa_id
102998          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
102999          , x_flex_value_set_id        => l_adr_flex_value_set_id
103000          , x_value_type_code          => l_adr_value_type_code
103001          , x_value_combination_id     => l_adr_value_combination_id
103002          , x_value_segment_code       => l_adr_value_segment_code
103003          , p_side                     => 'NA'
103004          , p_override_seg_flag        => 'Y'
103005    );
103006 
103007    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
103008 
103009       xla_ae_lines_pkg.set_segment(
103010           p_to_segment_code         => 'GL_ACCOUNT'
103011         , p_segment_value           => l_segment
103012         , p_from_segment_code       => l_adr_value_segment_code
103013         , p_from_combination_id     => l_adr_value_combination_id
103014         , p_value_type_code         => l_adr_value_type_code
103015         , p_transaction_coa_id      => l_adr_transaction_coa_id
103016         , p_accounting_coa_id       => l_adr_accounting_coa_id
103017         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
103018         , p_flex_value_set_id       => l_adr_flex_value_set_id
103019         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_SEG_CASH'
103020         , p_adr_type_code           => 'S'
103021         , p_component_type          => l_component_type
103022         , p_component_code          => l_component_code
103023         , p_component_type_code     => l_component_type_code
103024         , p_component_appl_id       => l_component_appl_id
103025         , p_amb_context_code        => l_amb_context_code
103026         , p_entity_code             => 'AP_PAYMENTS'
103027         , p_event_class_code        => 'REFUNDS'
103028         , p_side                    => 'NA'
103029         );
103030 
103031   END IF;
103032 
103033    l_segment := AcctDerRule_15(
103034            p_application_id           => p_application_id
103035          , p_ae_header_id             => l_ae_header_id 
103036 , p_source_4 => p_source_4
103037 , p_source_4_meaning => p_source_4_meaning
103038 , p_source_7 => p_source_7
103039 , p_source_7_meaning => p_source_7_meaning
103040 , p_source_17 => p_source_17
103041          , x_transaction_coa_id       => l_adr_transaction_coa_id
103042          , x_accounting_coa_id        => l_adr_accounting_coa_id
103043          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
103044          , x_flex_value_set_id        => l_adr_flex_value_set_id
103045          , x_value_type_code          => l_adr_value_type_code
103046          , x_value_combination_id     => l_adr_value_combination_id
103047          , x_value_segment_code       => l_adr_value_segment_code
103048          , p_side                     => 'NA'
103049          , p_override_seg_flag        => 'Y'
103050    );
103051 
103052    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
103053 
103054       xla_ae_lines_pkg.set_segment(
103055           p_to_segment_code         => 'GL_BALANCING'
103056         , p_segment_value           => l_segment
103057         , p_from_segment_code       => l_adr_value_segment_code
103058         , p_from_combination_id     => l_adr_value_combination_id
103059         , p_value_type_code         => l_adr_value_type_code
103060         , p_transaction_coa_id      => l_adr_transaction_coa_id
103061         , p_accounting_coa_id       => l_adr_accounting_coa_id
103065         , p_adr_type_code           => 'S'
103062         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
103063         , p_flex_value_set_id       => l_adr_flex_value_set_id
103064         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
103066         , p_component_type          => l_component_type
103067         , p_component_code          => l_component_code
103068         , p_component_type_code     => l_component_type_code
103069         , p_component_appl_id       => l_component_appl_id
103070         , p_amb_context_code        => l_amb_context_code
103071         , p_entity_code             => 'AP_PAYMENTS'
103072         , p_event_class_code        => 'REFUNDS'
103073         , p_side                    => 'NA'
103074         );
103075 
103076   END IF;
103077 
103078    --
103079    --
103080    END IF;
103081 
103082        --
103083        -- Update the line information that should be overwritten
103084        --
103085        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
103086                                          p_header_num   => 1);
103087        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
103088 
103089        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
103090 
103091        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
103092           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
103093        END IF;
103094 
103095       --
103096       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
103097       --
103098       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
103099           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
103100       ELSE
103101           ---------------------------------------------------------------------------------------------------
103102           -- 4262811a Switch Sign
103103           ---------------------------------------------------------------------------------------------------
103104           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
103105           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103106                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103107           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103108                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103109           -- 5132302
103110           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
103111                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103112 
103113       END IF;
103114 
103115       -- 4955764
103116       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103117       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
103118 
103119 
103120       XLA_AE_LINES_PKG.ValidateCurrentLine;
103121       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103122 
103123       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103124                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
103125                ,p_balance_type_code => l_balance_type_code);
103126 
103127    END IF;
103128 
103129    -----------------------------------------------------------------------------------------
103130    -- 4262811 Multiperiod Accounting
103131    -----------------------------------------------------------------------------------------
103132      -- No MPA option is assigned.
103133 
103134 
103135 END IF;
103136 END IF;
103137 --
103138 
103139 --
103140 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103141    trace
103142       (p_msg      => 'END of AcctLineType_180'
103143       ,p_level    => C_LEVEL_PROCEDURE
103144       ,p_module   => l_log_module);
103145 END IF;
103146 --
103147 EXCEPTION
103148   WHEN xla_exceptions_pkg.application_exception THEN
103149       RAISE;
103150   WHEN OTHERS THEN
103151        xla_exceptions_pkg.raise_message
103152            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_180');
103153 END AcctLineType_180;
103154 --
103155 
103156 ---------------------------------------
103157 --
103158 -- PRIVATE FUNCTION
103159 --         AcctLineType_181
103160 --
103161 ---------------------------------------
103162 PROCEDURE AcctLineType_181 (
103163   p_application_id        IN NUMBER
103164  ,p_event_id              IN NUMBER
103165  ,p_calculate_acctd_flag  IN VARCHAR2
103166  ,p_calculate_g_l_flag    IN VARCHAR2
103167  ,p_actual_flag           IN OUT VARCHAR2
103168  ,p_balance_type_code     OUT VARCHAR2
103169  ,p_gain_or_loss_ref      OUT VARCHAR2
103170  
103171 --Payment Distribution (Cleared Rate) Ledger Amount
103172  , p_source_10            IN NUMBER
103173 --Invoice Distribution Account
103174  , p_source_17            IN NUMBER
103175 --Invoice Distribution Type
103176  , p_source_20            IN VARCHAR2
103177  , p_source_20_meaning    IN VARCHAR2
103178 --When to Account for Payment Option
103179  , p_source_38            IN VARCHAR2
103180 --Payment Distribution Type
103184  , p_source_40            IN VARCHAR2
103181  , p_source_39            IN VARCHAR2
103182  , p_source_39_meaning    IN VARCHAR2
103183 --Accounting Reversal Indicator
103185 --Payment Distribution Amount
103186  , p_source_41            IN NUMBER
103187 --Business Flow Accounts Payable Application Identifier
103188  , p_source_42            IN NUMBER
103189 --Business Flow Payment Distribution Type
103190  , p_source_43            IN VARCHAR2
103191 --Business Flow Payment Entity Code
103192  , p_source_44            IN VARCHAR2
103193 --Business Flow Payment Distribution Identifier
103194  , p_source_45            IN NUMBER
103195 --Business Flow Payment Identifier
103196  , p_source_46            IN NUMBER
103197 --Payment Distribution Identifier
103198  , p_source_47            IN NUMBER
103199 --Distribution Link Type
103200  , p_source_48            IN VARCHAR2
103201 --Payment Currency Code
103202  , p_source_49            IN VARCHAR2
103203 --Override Accounted Amount Indicator
103204  , p_source_53            IN VARCHAR2
103205  , p_source_53_meaning    IN VARCHAR2
103206 --Payment Supplier Identifier
103207  , p_source_54            IN NUMBER
103208 --Payment Supplier Site Identifier
103209  , p_source_55            IN NUMBER
103210 --Third Party Type
103211  , p_source_56            IN VARCHAR2
103212 --Payment Distribution Reversed Identifier
103213  , p_source_57            IN NUMBER
103214 --Invoice Distribution Tax Line Identifier
103215  , p_source_58            IN NUMBER
103216 --Invoice Distribution Summary Tax Line Identifier
103217  , p_source_59            IN NUMBER
103218 --Accrue on Receipt Option
103219  , p_source_100            IN VARCHAR2
103220  , p_source_100_meaning    IN VARCHAR2
103221 --Cleared Exchange Date
103222  , p_source_107            IN DATE
103223 --Cleared Exchange Rate
103224  , p_source_108            IN NUMBER
103225 --Cleared Exchange Rate Type
103226  , p_source_109            IN VARCHAR2
103227 )
103228 IS
103229 
103230 l_component_type              VARCHAR2(80);
103231 l_component_code              VARCHAR2(30);
103232 l_component_type_code         VARCHAR2(1);
103233 l_component_appl_id           INTEGER;
103234 l_amb_context_code            VARCHAR2(30);
103235 l_entity_code                 VARCHAR2(30);
103236 l_event_class_code            VARCHAR2(30);
103237 l_ae_header_id                NUMBER;
103238 l_event_type_code             VARCHAR2(30);
103239 l_line_definition_code        VARCHAR2(30);
103240 l_line_definition_owner_code  VARCHAR2(1);
103241 --
103242 -- adr variables
103243 l_segment                     VARCHAR2(30);
103244 l_ccid                        NUMBER;
103245 l_adr_transaction_coa_id      NUMBER;
103246 l_adr_accounting_coa_id       NUMBER;
103247 l_adr_flexfield_segment_code  VARCHAR2(30);
103248 l_adr_flex_value_set_id       NUMBER;
103249 l_adr_value_type_code         VARCHAR2(30);
103250 l_adr_value_combination_id    NUMBER;
103251 l_adr_value_segment_code      VARCHAR2(30);
103252 
103253 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
103254 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
103255 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
103256 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
103257 
103258 -- 4262811 Variables ------------------------------------------------------------------------------------------
103259 l_entered_amt_idx             NUMBER;
103260 l_accted_amt_idx              NUMBER;
103261 l_acc_rev_flag                VARCHAR2(1);
103262 l_accrual_line_num            NUMBER;
103263 l_tmp_amt                     NUMBER;
103264 l_acc_rev_natural_side_code   VARCHAR2(1);
103265 
103266 l_num_entries                 NUMBER;
103267 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
103268 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
103269 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
103270 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
103271 l_recog_line_1                NUMBER;
103272 l_recog_line_2                NUMBER;
103273 
103274 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
103275 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
103276 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
103277 
103278 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
103279 
103280 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
103281 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
103282 
103283 ---------------------------------------------------------------------------------------------------------------
103284 
103285 
103286 --
103287 -- bulk performance
103288 --
103289 l_balance_type_code           VARCHAR2(1);
103290 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
103291 l_log_module                  VARCHAR2(240);
103292 
103293 --
103294 -- Upgrade strategy
103295 --
103296 l_actual_upg_option           VARCHAR2(1);
103297 l_enc_upg_option           VARCHAR2(1);
103298 
103299 --
103300 BEGIN
103301 --
103302 IF g_log_enabled THEN
103303       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_181';
103304 END IF;
103305 --
103306 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103307 
103308       trace
103309          (p_msg      => 'BEGIN of AcctLineType_181'
103313 END IF;
103310          ,p_level    => C_LEVEL_PROCEDURE
103311          ,p_module   => l_log_module);
103312 
103314 --
103315 l_component_type             := 'AMB_JLT';
103316 l_component_code             := 'AP_TAX_INV_PRICE_VAR_CLEAR';
103317 l_component_type_code        := 'S';
103318 l_component_appl_id          :=  200;
103319 l_amb_context_code           := 'DEFAULT';
103320 l_entity_code                := 'AP_PAYMENTS';
103321 l_event_class_code           := 'RECONCILED PAYMENTS';
103322 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
103323 l_line_definition_owner_code := 'S';
103324 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
103325 --
103326 l_balance_type_code          := 'A';
103327 l_segment                     := NULL;
103328 l_ccid                        := NULL;
103329 l_adr_transaction_coa_id      := NULL;
103330 l_adr_accounting_coa_id       := NULL;
103331 l_adr_flexfield_segment_code  := NULL;
103332 l_adr_flex_value_set_id       := NULL;
103333 l_adr_value_type_code         := NULL;
103334 l_adr_value_combination_id    := NULL;
103335 l_adr_value_segment_code      := NULL;
103336 
103337 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
103338 l_bflow_class_code           := '';    -- 4219869 Business Flow
103339 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
103340 l_budgetary_control_flag     := 'N';
103341 
103342 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
103343 l_bflow_applied_to_amt       := NULL; -- 5132302
103344 l_entered_amt_idx            := NULL;          -- 4262811
103345 l_accted_amt_idx             := NULL;          -- 4262811
103346 l_acc_rev_flag               := NULL;          -- 4262811
103347 l_accrual_line_num           := NULL;          -- 4262811
103348 l_tmp_amt                    := NULL;          -- 4262811
103349 --
103350  
103351 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
103352     l_balance_type_code <> 'B' THEN
103353 IF NVL(p_source_38,'
103354 ') =  'CLEAR_CLEAR' AND 
103355 NVL(p_source_20,'
103356 ') =  'TIPV' AND 
103357 (NVL(p_source_39,'
103358 ') =  'CASH' OR 
103359 NVL(p_source_39,'
103360 ') =  'AWT' OR 
103361 NVL(p_source_39,'
103362 ') =  'DISCOUNT') AND 
103363 NVL(p_source_100,'
103364 ') =  'Y'
103365  THEN 
103366 
103367    --
103368    XLA_AE_LINES_PKG.SetNewLine;
103369 
103370    p_balance_type_code          := l_balance_type_code;
103371    -- set the flag so later we will know whether the gain loss line needs to be created
103372    
103373    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103374      p_actual_flag :='A';
103375    END IF;
103376 
103377    --
103378    -- bulk performance
103379    --
103380    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
103381                                       p_header_num   => 0); -- 4262811
103382    --
103383    -- set accounting line options
103384    --
103385    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
103386            p_natural_side_code          => 'D'
103387          , p_gain_or_loss_flag          => 'N'
103388          , p_gl_transfer_mode_code      => 'S'
103389          , p_acct_entry_type_code       => 'A'
103390          , p_switch_side_flag           => 'Y'
103391          , p_merge_duplicate_code       => 'A'
103392          );
103393    --
103394    l_acc_rev_natural_side_code := 'C';  -- 4262811
103395    -- 
103396    --
103397    -- set accounting line type info
103398    --
103399    xla_ae_lines_pkg.SetAcctLineType
103400       (p_component_type             => l_component_type
103401       ,p_event_type_code            => l_event_type_code
103402       ,p_line_definition_owner_code => l_line_definition_owner_code
103403       ,p_line_definition_code       => l_line_definition_code
103404       ,p_accounting_line_code       => l_component_code
103405       ,p_accounting_line_type_code  => l_component_type_code
103406       ,p_accounting_line_appl_id    => l_component_appl_id
103407       ,p_amb_context_code           => l_amb_context_code
103408       ,p_entity_code                => l_entity_code
103409       ,p_event_class_code           => l_event_class_code);
103410    --
103411    -- set accounting class
103412    --
103413    xla_ae_lines_pkg.SetAcctClass(
103414            p_accounting_class_code  => 'TIPV'
103415          , p_ae_header_id           => l_ae_header_id
103416          );
103417 
103418    --
103419    -- set rounding class
103420    --
103421    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
103422                       'TIPV';
103423 
103424    --
103425    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
103426    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
103427    --
103428    -- bulk performance
103429    --
103430    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
103431 
103432    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
103433       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
103434 
103435    -- 4955764
103436    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103437       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
103438 
103439    -- 4458381 Public Sector Enh
103440    
103441    --
103445    l_accted_amt_idx  := 15;
103442    -- set accounting attributes for the line type
103443    --
103444    l_entered_amt_idx := 10;
103446    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
103447    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
103448    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
103449    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
103450    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
103451    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
103452    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
103453    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
103454    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
103455    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
103456    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
103457    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
103458    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
103459    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
103460    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
103461    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
103462    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
103463    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
103464    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
103465    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
103466    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
103467    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
103468    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
103469    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
103470    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
103471    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
103472    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
103473    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
103474    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
103475    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
103476    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
103477    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
103478    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
103479    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
103480    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
103481    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
103482    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
103483    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
103484    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
103485    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
103486    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
103487    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
103488    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
103489    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
103490    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
103491    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
103492    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
103493    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
103494    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
103495 
103496    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
103497    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
103498 
103499    ---------------------------------------------------------------------------------------------------------------
103500    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
103501    ---------------------------------------------------------------------------------------------------------------
103502    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
103503 
103504    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103505    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103506 
103507    IF xla_accounting_cache_pkg.GetValueChar
103508          (p_source_code         => 'LEDGER_CATEGORY_CODE'
103509          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
103510    AND l_bflow_method_code = 'PRIOR_ENTRY'
103511 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
103512    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
103513          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
103514        )
103515    THEN
103516          xla_ae_lines_pkg.BflowUpgEntry
103517            (p_business_method_code    => l_bflow_method_code
103518            ,p_business_class_code     => l_bflow_class_code
103519            ,p_balance_type            => l_balance_type_code);
103520    ELSE
103521       NULL;
103522 -- No business flow processing for business flow method of NONE.
103523    END IF;
103524 
103525    --
103526    -- call analytical criteria
103527    --
103528    
103529    --
103530    -- call description
103531    --
103532    -- No description or it is inherited.
103533    --
103534    -- call ADRs
103535    -- Bug 4922099
103536    --
103537    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103538         (NVL(l_actual_upg_option, 'N') = 'O') OR
103539         (NVL(l_enc_upg_option, 'N') = 'O')
103540       )
103541    THEN
103542    NULL;
103543    --
103547            p_application_id           => p_application_id
103544    --
103545    
103546   l_ccid := AcctDerRule_26(
103548          , p_ae_header_id             => l_ae_header_id 
103549 , p_source_17 => p_source_17
103550          , x_transaction_coa_id       => l_adr_transaction_coa_id
103551          , x_accounting_coa_id        => l_adr_accounting_coa_id
103552          , x_value_type_code          => l_adr_value_type_code
103553          , p_side                     => 'NA'
103554    );
103555 
103556    xla_ae_lines_pkg.set_ccid(
103557     p_code_combination_id          => l_ccid
103558   , p_value_type_code              => l_adr_value_type_code
103559   , p_transaction_coa_id           => l_adr_transaction_coa_id
103560   , p_accounting_coa_id            => l_adr_accounting_coa_id
103561   , p_adr_code                     => 'AP_INVOICE_DIST'
103562   , p_adr_type_code                => 'S'
103563   , p_component_type               => l_component_type
103564   , p_component_code               => l_component_code
103565   , p_component_type_code          => l_component_type_code
103566   , p_component_appl_id            => l_component_appl_id
103567   , p_amb_context_code             => l_amb_context_code
103568   , p_side                         => 'NA'
103569   );
103570 
103571 
103572    --
103573    --
103574    END IF;
103575    --
103576    -- Bug 4922099
103577    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
103578           (NVL(l_enc_upg_option, 'N') = 'O')
103579         ) AND
103580         (l_bflow_method_code = 'PRIOR_ENTRY')
103581       )
103582    THEN
103583       IF
103584       --
103585       1 = 2
103586       --
103587       THEN
103588       xla_accounting_err_pkg.build_message
103589                                     (p_appli_s_name            => 'XLA'
103590                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103591                                     ,p_token_1                 => 'LINE_NUMBER'
103592                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
103593                                     ,p_token_2                 => 'LINE_TYPE_NAME'
103594                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
103595                                                                              l_component_type
103596                                                                             ,l_component_code
103597                                                                             ,l_component_type_code
103598                                                                             ,l_component_appl_id
103599                                                                             ,l_amb_context_code
103600                                                                             ,l_entity_code
103601                                                                             ,l_event_class_code
103602                                                                            )
103603                                     ,p_token_3                 => 'OWNER'
103604                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
103605                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
103606                                                                           ,p_lookup_code    => l_component_type_code
103607                                                                          )
103608                                     ,p_token_4                 => 'PRODUCT_NAME'
103609                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
103610                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
103611                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
103612                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
103613                                     ,p_ae_header_id            =>  NULL
103614                                        );
103615 
103616         IF (C_LEVEL_ERROR>= g_log_level) THEN
103617                  trace
103618                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103619                       ,p_level    => C_LEVEL_ERROR
103620                       ,p_module   => l_log_module);
103621         END IF;
103622       END IF;
103623    END IF;
103624    --
103625    --
103626    ------------------------------------------------------------------------------------------------
103627    -- 4219869 Business Flow
103628    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
103629    -- Prior Entry.  Currently, the following code is always generated.
103630    ------------------------------------------------------------------------------------------------
103631    XLA_AE_LINES_PKG.ValidateCurrentLine;
103632 
103633    ------------------------------------------------------------------------------------
103634    -- 4219869 Business Flow
103635    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
103636    ------------------------------------------------------------------------------------
103637    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103638 
103639    ----------------------------------------------------------------------------------
103640    -- 4219869 Business Flow
103641    -- Update journal entry status -- Need to generate this within IF <condition>
103642    ----------------------------------------------------------------------------------
103646          );
103643    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103644          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
103645          ,p_balance_type_code => l_balance_type_code
103647 
103648    -------------------------------------------------------------------------------------------
103649    -- 4262811 - Generate the Accrual Reversal lines
103650    -------------------------------------------------------------------------------------------
103651    BEGIN
103652       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
103653                               (g_array_event(p_event_id).array_value_num('header_index'));
103654       IF l_acc_rev_flag IS NULL THEN
103655          l_acc_rev_flag := 'N';
103656       END IF;
103657    EXCEPTION
103658       WHEN OTHERS THEN
103659          l_acc_rev_flag := 'N';
103660    END;
103661    --
103662    IF (l_acc_rev_flag = 'Y') THEN
103663 
103664        -- 4645092  ------------------------------------------------------------------------------
103665        -- To allow MPA report to determine if it should generate report process
103666        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
103667        ------------------------------------------------------------------------------------------
103668 
103669        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
103670        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
103671    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
103672    -- call ADRs
103673    -- Bug 4922099
103674    --
103675    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103676         (NVL(l_actual_upg_option, 'N') = 'O') OR
103677         (NVL(l_enc_upg_option, 'N') = 'O')
103678       )
103679    THEN
103680    NULL;
103681    --
103682    --
103683    
103684   l_ccid := AcctDerRule_26(
103685            p_application_id           => p_application_id
103686          , p_ae_header_id             => l_ae_header_id 
103687 , p_source_17 => p_source_17
103688          , x_transaction_coa_id       => l_adr_transaction_coa_id
103689          , x_accounting_coa_id        => l_adr_accounting_coa_id
103690          , x_value_type_code          => l_adr_value_type_code
103691          , p_side                     => 'NA'
103692    );
103693 
103694    xla_ae_lines_pkg.set_ccid(
103695     p_code_combination_id          => l_ccid
103696   , p_value_type_code              => l_adr_value_type_code
103697   , p_transaction_coa_id           => l_adr_transaction_coa_id
103698   , p_accounting_coa_id            => l_adr_accounting_coa_id
103699   , p_adr_code                     => 'AP_INVOICE_DIST'
103700   , p_adr_type_code                => 'S'
103701   , p_component_type               => l_component_type
103702   , p_component_code               => l_component_code
103703   , p_component_type_code          => l_component_type_code
103704   , p_component_appl_id            => l_component_appl_id
103705   , p_amb_context_code             => l_amb_context_code
103706   , p_side                         => 'NA'
103707   );
103708 
103709 
103710    --
103711    --
103712    END IF;
103713 
103714        --
103715        -- Update the line information that should be overwritten
103716        --
103717        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
103718                                          p_header_num   => 1);
103719        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
103720 
103721        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
103722 
103723        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
103724           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
103725        END IF;
103726 
103727       --
103728       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
103729       --
103730       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
103731           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
103732       ELSE
103733           ---------------------------------------------------------------------------------------------------
103734           -- 4262811a Switch Sign
103735           ---------------------------------------------------------------------------------------------------
103736           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
103737           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103738                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103739           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103740                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103741           -- 5132302
103742           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
103743                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103744 
103745       END IF;
103746 
103747       -- 4955764
103748       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103749       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
103750 
103751 
103752       XLA_AE_LINES_PKG.ValidateCurrentLine;
103753       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103754 
103758 
103755       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103756                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
103757                ,p_balance_type_code => l_balance_type_code);
103759    END IF;
103760 
103761    -----------------------------------------------------------------------------------------
103762    -- 4262811 Multiperiod Accounting
103763    -----------------------------------------------------------------------------------------
103764      -- No MPA option is assigned.
103765 
103766 
103767 END IF;
103768 END IF;
103769 --
103770 
103771 --
103772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103773    trace
103774       (p_msg      => 'END of AcctLineType_181'
103775       ,p_level    => C_LEVEL_PROCEDURE
103776       ,p_module   => l_log_module);
103777 END IF;
103778 --
103779 EXCEPTION
103780   WHEN xla_exceptions_pkg.application_exception THEN
103781       RAISE;
103782   WHEN OTHERS THEN
103783        xla_exceptions_pkg.raise_message
103784            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_181');
103785 END AcctLineType_181;
103786 --
103787 
103788 ---------------------------------------
103789 --
103790 -- PRIVATE FUNCTION
103791 --         AcctLineType_182
103792 --
103793 ---------------------------------------
103794 PROCEDURE AcctLineType_182 (
103795   p_application_id        IN NUMBER
103796  ,p_event_id              IN NUMBER
103797  ,p_calculate_acctd_flag  IN VARCHAR2
103798  ,p_calculate_g_l_flag    IN VARCHAR2
103799  ,p_actual_flag           IN OUT VARCHAR2
103800  ,p_balance_type_code     OUT VARCHAR2
103801  ,p_gain_or_loss_ref      OUT VARCHAR2
103802  
103803 --Payment Distribution (Payment Rate) Ledger Amount
103804  , p_source_9            IN NUMBER
103805 --Invoice Distribution Type
103806  , p_source_20            IN VARCHAR2
103807  , p_source_20_meaning    IN VARCHAR2
103808 --When to Account for Payment Option
103809  , p_source_38            IN VARCHAR2
103810 --Payment Distribution Type
103811  , p_source_39            IN VARCHAR2
103812  , p_source_39_meaning    IN VARCHAR2
103813 --Accounting Reversal Indicator
103814  , p_source_40            IN VARCHAR2
103815 --Payment Distribution Amount
103816  , p_source_41            IN NUMBER
103817 --Business Flow Accounts Payable Application Identifier
103818  , p_source_42            IN NUMBER
103819 --Payment Distribution Identifier
103820  , p_source_47            IN NUMBER
103821 --Distribution Link Type
103822  , p_source_48            IN VARCHAR2
103823 --Payment Currency Code
103824  , p_source_49            IN VARCHAR2
103825 --Override Accounted Amount Indicator
103826  , p_source_53            IN VARCHAR2
103827  , p_source_53_meaning    IN VARCHAR2
103828 --Third Party Type
103829  , p_source_56            IN VARCHAR2
103830 --Payment Distribution Reversed Identifier
103831  , p_source_57            IN NUMBER
103832 --Invoice Distribution Tax Line Identifier
103833  , p_source_58            IN NUMBER
103834 --Invoice Distribution Summary Tax Line Identifier
103835  , p_source_59            IN NUMBER
103836 --Business Flow Invoice Distribution Type
103837  , p_source_62            IN VARCHAR2
103838 --Business Flow Invoice Entity Code
103839  , p_source_63            IN VARCHAR2
103840 --Business Flow Invoice Distribution Identifier
103841  , p_source_64            IN NUMBER
103842 --Business Flow Invoice Identifier
103843  , p_source_65            IN NUMBER
103844 --Purchasing Encumbrance Option
103845  , p_source_102            IN VARCHAR2
103846  , p_source_102_meaning    IN VARCHAR2
103847 --Invoice Encumbered Option
103848  , p_source_104            IN VARCHAR2
103849  , p_source_104_meaning    IN VARCHAR2
103850 )
103851 IS
103852 
103853 l_component_type              VARCHAR2(80);
103854 l_component_code              VARCHAR2(30);
103855 l_component_type_code         VARCHAR2(1);
103856 l_component_appl_id           INTEGER;
103857 l_amb_context_code            VARCHAR2(30);
103858 l_entity_code                 VARCHAR2(30);
103859 l_event_class_code            VARCHAR2(30);
103860 l_ae_header_id                NUMBER;
103861 l_event_type_code             VARCHAR2(30);
103862 l_line_definition_code        VARCHAR2(30);
103863 l_line_definition_owner_code  VARCHAR2(1);
103864 --
103865 -- adr variables
103866 l_segment                     VARCHAR2(30);
103867 l_ccid                        NUMBER;
103868 l_adr_transaction_coa_id      NUMBER;
103869 l_adr_accounting_coa_id       NUMBER;
103870 l_adr_flexfield_segment_code  VARCHAR2(30);
103871 l_adr_flex_value_set_id       NUMBER;
103872 l_adr_value_type_code         VARCHAR2(30);
103873 l_adr_value_combination_id    NUMBER;
103874 l_adr_value_segment_code      VARCHAR2(30);
103875 
103876 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
103877 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
103878 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
103879 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
103880 
103881 -- 4262811 Variables ------------------------------------------------------------------------------------------
103882 l_entered_amt_idx             NUMBER;
103883 l_accted_amt_idx              NUMBER;
103884 l_acc_rev_flag                VARCHAR2(1);
103885 l_accrual_line_num            NUMBER;
103886 l_tmp_amt                     NUMBER;
103887 l_acc_rev_natural_side_code   VARCHAR2(1);
103891 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
103888 
103889 l_num_entries                 NUMBER;
103890 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
103892 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
103893 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
103894 l_recog_line_1                NUMBER;
103895 l_recog_line_2                NUMBER;
103896 
103897 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
103898 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
103899 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
103900 
103901 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
103902 
103903 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
103904 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
103905 
103906 ---------------------------------------------------------------------------------------------------------------
103907 
103908 
103909 --
103910 -- bulk performance
103911 --
103912 l_balance_type_code           VARCHAR2(1);
103913 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
103914 l_log_module                  VARCHAR2(240);
103915 
103916 --
103917 -- Upgrade strategy
103918 --
103919 l_actual_upg_option           VARCHAR2(1);
103920 l_enc_upg_option           VARCHAR2(1);
103921 
103922 --
103923 BEGIN
103924 --
103925 IF g_log_enabled THEN
103926       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_182';
103927 END IF;
103928 --
103929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103930 
103931       trace
103932          (p_msg      => 'BEGIN of AcctLineType_182'
103933          ,p_level    => C_LEVEL_PROCEDURE
103934          ,p_module   => l_log_module);
103935 
103936 END IF;
103937 --
103938 l_component_type             := 'AMB_JLT';
103939 l_component_code             := 'AP_TAX_INV_PRICE_VAR_CLR_ENC';
103940 l_component_type_code        := 'S';
103941 l_component_appl_id          :=  200;
103942 l_amb_context_code           := 'DEFAULT';
103943 l_entity_code                := 'AP_PAYMENTS';
103944 l_event_class_code           := 'RECONCILED PAYMENTS';
103945 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
103946 l_line_definition_owner_code := 'S';
103947 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
103948 --
103949 l_balance_type_code          := 'E';
103950 l_segment                     := NULL;
103951 l_ccid                        := NULL;
103952 l_adr_transaction_coa_id      := NULL;
103953 l_adr_accounting_coa_id       := NULL;
103954 l_adr_flexfield_segment_code  := NULL;
103955 l_adr_flex_value_set_id       := NULL;
103956 l_adr_value_type_code         := NULL;
103957 l_adr_value_combination_id    := NULL;
103958 l_adr_value_segment_code      := NULL;
103959 
103960 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
103961 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
103962 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
103963 l_budgetary_control_flag     := 'N';
103964 
103965 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
103966 l_bflow_applied_to_amt       := NULL; -- 5132302
103967 l_entered_amt_idx            := NULL;          -- 4262811
103968 l_accted_amt_idx             := NULL;          -- 4262811
103969 l_acc_rev_flag               := NULL;          -- 4262811
103970 l_accrual_line_num           := NULL;          -- 4262811
103971 l_tmp_amt                    := NULL;          -- 4262811
103972 --
103973  
103974 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
103975     l_balance_type_code <> 'B' THEN
103976 IF NVL(p_source_38,'
103977 ') =  'CLEAR_CLEAR' AND 
103978 NVL(p_source_20,'
103979 ') =  'TIPV' AND 
103980 (NVL(p_source_39,'
103981 ') =  'CASH' OR 
103982 NVL(p_source_39,'
103983 ') =  'DISCOUNT') AND 
103984 NVL(p_source_102,'
103985 ') =  'Y' AND 
103986 NVL(p_source_104,'
103987 ') =  'Y'
103988  THEN 
103989 
103990    --
103991    XLA_AE_LINES_PKG.SetNewLine;
103992 
103993    p_balance_type_code          := l_balance_type_code;
103994    -- set the flag so later we will know whether the gain loss line needs to be created
103995    
103996    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103997      p_actual_flag :='A';
103998    END IF;
103999 
104000    --
104001    -- bulk performance
104002    --
104003    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
104004                                       p_header_num   => 0); -- 4262811
104005    --
104006    -- set accounting line options
104007    --
104008    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
104009            p_natural_side_code          => 'C'
104010          , p_gain_or_loss_flag          => 'N'
104011          , p_gl_transfer_mode_code      => 'S'
104012          , p_acct_entry_type_code       => 'E'
104013          , p_switch_side_flag           => 'Y'
104014          , p_merge_duplicate_code       => 'A'
104015          );
104016    --
104017    l_acc_rev_natural_side_code := 'D';  -- 4262811
104018    -- 
104019    --
104020    -- set accounting line type info
104021    --
104022    xla_ae_lines_pkg.SetAcctLineType
104023       (p_component_type             => l_component_type
104027       ,p_accounting_line_code       => l_component_code
104024       ,p_event_type_code            => l_event_type_code
104025       ,p_line_definition_owner_code => l_line_definition_owner_code
104026       ,p_line_definition_code       => l_line_definition_code
104028       ,p_accounting_line_type_code  => l_component_type_code
104029       ,p_accounting_line_appl_id    => l_component_appl_id
104030       ,p_amb_context_code           => l_amb_context_code
104031       ,p_entity_code                => l_entity_code
104032       ,p_event_class_code           => l_event_class_code);
104033    --
104034    -- set accounting class
104035    --
104036    xla_ae_lines_pkg.SetAcctClass(
104037            p_accounting_class_code  => 'TIPV'
104038          , p_ae_header_id           => l_ae_header_id
104039          );
104040 
104041    --
104042    -- set rounding class
104043    --
104044    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
104045                       'TIPV';
104046 
104047    --
104048    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
104049    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
104050    --
104051    -- bulk performance
104052    --
104053    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
104054 
104055    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
104056       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
104057 
104058    -- 4955764
104059    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104060       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
104061 
104062    -- 4458381 Public Sector Enh
104063    
104064    --
104065    -- set accounting attributes for the line type
104066    --
104067    l_entered_amt_idx := 10;
104068    l_accted_amt_idx  := 12;
104069    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
104070    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
104071    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
104072    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
104073    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
104074    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
104075    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
104076    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
104077    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
104078    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
104079    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
104080    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
104081    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
104082    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
104083    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
104084    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
104085    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
104086    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
104087    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
104088    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
104089    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
104090    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
104091    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
104092    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
104093    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
104094    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
104095    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
104096    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
104097    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
104098    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
104099    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
104100    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
104101    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
104102    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
104103    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
104104    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
104105    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
104106    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
104107    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
104108 
104109    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
104110    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
104111 
104112    ---------------------------------------------------------------------------------------------------------------
104113    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
104114    ---------------------------------------------------------------------------------------------------------------
104115    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
104116 
104117    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104118    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104119 
104120    IF xla_accounting_cache_pkg.GetValueChar
104121          (p_source_code         => 'LEDGER_CATEGORY_CODE'
104125    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
104122          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
104123    AND l_bflow_method_code = 'PRIOR_ENTRY'
104124 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
104126          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
104127        )
104128    THEN
104129          xla_ae_lines_pkg.BflowUpgEntry
104130            (p_business_method_code    => l_bflow_method_code
104131            ,p_business_class_code     => l_bflow_class_code
104132            ,p_balance_type            => l_balance_type_code);
104133    ELSE
104134       NULL;
104135 XLA_AE_LINES_PKG.business_flow_validation(
104136                                 p_business_method_code     => l_bflow_method_code
104137                                ,p_business_class_code      => l_bflow_class_code
104138                                ,p_inherit_description_flag => l_inherit_desc_flag);
104139    END IF;
104140 
104141    --
104142    -- call analytical criteria
104143    --
104144    -- Inherited Analytical Criteria for business flow method of Prior Entry.
104145    --
104146    -- call description
104147    --
104148    -- No description or it is inherited.
104149    --
104150    -- call ADRs
104151    -- Bug 4922099
104152    --
104153    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104154         (NVL(l_actual_upg_option, 'N') = 'O') OR
104155         (NVL(l_enc_upg_option, 'N') = 'O')
104156       )
104157    THEN
104158    NULL;
104159    --
104160    --
104161    
104162    --
104163    --
104164    END IF;
104165    --
104166    -- Bug 4922099
104167    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
104168           (NVL(l_enc_upg_option, 'N') = 'O')
104169         ) AND
104170         (l_bflow_method_code = 'PRIOR_ENTRY')
104171       )
104172    THEN
104173       IF
104174       --
104175       1 = 1
104176       --
104177       THEN
104178       xla_accounting_err_pkg.build_message
104179                                     (p_appli_s_name            => 'XLA'
104180                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104181                                     ,p_token_1                 => 'LINE_NUMBER'
104182                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
104183                                     ,p_token_2                 => 'LINE_TYPE_NAME'
104184                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
104185                                                                              l_component_type
104186                                                                             ,l_component_code
104187                                                                             ,l_component_type_code
104188                                                                             ,l_component_appl_id
104189                                                                             ,l_amb_context_code
104190                                                                             ,l_entity_code
104191                                                                             ,l_event_class_code
104192                                                                            )
104193                                     ,p_token_3                 => 'OWNER'
104194                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
104195                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
104196                                                                           ,p_lookup_code    => l_component_type_code
104197                                                                          )
104198                                     ,p_token_4                 => 'PRODUCT_NAME'
104199                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104200                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104201                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104202                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104203                                     ,p_ae_header_id            =>  NULL
104204                                        );
104205 
104206         IF (C_LEVEL_ERROR>= g_log_level) THEN
104207                  trace
104208                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104209                       ,p_level    => C_LEVEL_ERROR
104210                       ,p_module   => l_log_module);
104211         END IF;
104212       END IF;
104213    END IF;
104214    --
104215    --
104216    ------------------------------------------------------------------------------------------------
104217    -- 4219869 Business Flow
104218    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104219    -- Prior Entry.  Currently, the following code is always generated.
104220    ------------------------------------------------------------------------------------------------
104221    -- No ValidateCurrentLine for business flow method of Prior Entry
104222 
104223    ------------------------------------------------------------------------------------
104224    -- 4219869 Business Flow
104225    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104226    ------------------------------------------------------------------------------------
104230    -- 4219869 Business Flow
104227    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104228 
104229    ----------------------------------------------------------------------------------
104231    -- Update journal entry status -- Need to generate this within IF <condition>
104232    ----------------------------------------------------------------------------------
104233    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104234          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104235          ,p_balance_type_code => l_balance_type_code
104236          );
104237 
104238    -------------------------------------------------------------------------------------------
104239    -- 4262811 - Generate the Accrual Reversal lines
104240    -------------------------------------------------------------------------------------------
104241    BEGIN
104242       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104243                               (g_array_event(p_event_id).array_value_num('header_index'));
104244       IF l_acc_rev_flag IS NULL THEN
104245          l_acc_rev_flag := 'N';
104246       END IF;
104247    EXCEPTION
104248       WHEN OTHERS THEN
104249          l_acc_rev_flag := 'N';
104250    END;
104251    --
104252    IF (l_acc_rev_flag = 'Y') THEN
104253 
104254        -- 4645092  ------------------------------------------------------------------------------
104255        -- To allow MPA report to determine if it should generate report process
104256        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104257        ------------------------------------------------------------------------------------------
104258 
104259        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104260        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104261    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
104262    -- call ADRs
104263    -- Bug 4922099
104264    --
104265    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104266         (NVL(l_actual_upg_option, 'N') = 'O') OR
104267         (NVL(l_enc_upg_option, 'N') = 'O')
104268       )
104269    THEN
104270    NULL;
104271    --
104272    --
104273    
104274    --
104275    --
104276    END IF;
104277 
104278        --
104279        -- Update the line information that should be overwritten
104280        --
104281        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104282                                          p_header_num   => 1);
104283        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
104284 
104285        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104286 
104287        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
104288           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104289        END IF;
104290 
104291       --
104292       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104293       --
104294       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104295           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
104296       ELSE
104297           ---------------------------------------------------------------------------------------------------
104298           -- 4262811a Switch Sign
104299           ---------------------------------------------------------------------------------------------------
104300           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
104301           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104302                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104303           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104304                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104305           -- 5132302
104306           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104307                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104308 
104309       END IF;
104310 
104311       -- 4955764
104312       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104313       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104314 
104315 
104316       XLA_AE_LINES_PKG.ValidateCurrentLine;
104317       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104318 
104319       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104320                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104321                ,p_balance_type_code => l_balance_type_code);
104322 
104323    END IF;
104324 
104325    -----------------------------------------------------------------------------------------
104326    -- 4262811 Multiperiod Accounting
104327    -----------------------------------------------------------------------------------------
104328      -- No MPA option is assigned.
104329 
104330 
104331 END IF;
104332 END IF;
104333 --
104334 
104335 --
104336 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104337    trace
104338       (p_msg      => 'END of AcctLineType_182'
104339       ,p_level    => C_LEVEL_PROCEDURE
104340       ,p_module   => l_log_module);
104341 END IF;
104342 --
104343 EXCEPTION
104347        xla_exceptions_pkg.raise_message
104344   WHEN xla_exceptions_pkg.application_exception THEN
104345       RAISE;
104346   WHEN OTHERS THEN
104348            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_182');
104349 END AcctLineType_182;
104350 --
104351 
104352 ---------------------------------------
104353 --
104354 -- PRIVATE FUNCTION
104355 --         AcctLineType_183
104356 --
104357 ---------------------------------------
104358 PROCEDURE AcctLineType_183 (
104359   p_application_id        IN NUMBER
104360  ,p_event_id              IN NUMBER
104361  ,p_calculate_acctd_flag  IN VARCHAR2
104362  ,p_calculate_g_l_flag    IN VARCHAR2
104363  ,p_actual_flag           IN OUT VARCHAR2
104364  ,p_balance_type_code     OUT VARCHAR2
104365  ,p_gain_or_loss_ref      OUT VARCHAR2
104366  
104367 --Payment Distribution (Payment Rate) Ledger Amount
104368  , p_source_9            IN NUMBER
104369 --Invoice Distribution Account
104370  , p_source_17            IN NUMBER
104371 --Invoice Distribution Type
104372  , p_source_20            IN VARCHAR2
104373  , p_source_20_meaning    IN VARCHAR2
104374 --When to Account for Payment Option
104375  , p_source_38            IN VARCHAR2
104376 --Payment Distribution Type
104377  , p_source_39            IN VARCHAR2
104378  , p_source_39_meaning    IN VARCHAR2
104379 --Accounting Reversal Indicator
104380  , p_source_40            IN VARCHAR2
104381 --Payment Distribution Amount
104382  , p_source_41            IN NUMBER
104383 --Business Flow Accounts Payable Application Identifier
104384  , p_source_42            IN NUMBER
104385 --Payment Distribution Identifier
104386  , p_source_47            IN NUMBER
104387 --Distribution Link Type
104388  , p_source_48            IN VARCHAR2
104389 --Payment Currency Code
104390  , p_source_49            IN VARCHAR2
104391 --Override Accounted Amount Indicator
104392  , p_source_53            IN VARCHAR2
104393  , p_source_53_meaning    IN VARCHAR2
104394 --Payment Supplier Identifier
104395  , p_source_54            IN NUMBER
104396 --Payment Supplier Site Identifier
104397  , p_source_55            IN NUMBER
104398 --Third Party Type
104399  , p_source_56            IN VARCHAR2
104400 --Payment Distribution Reversed Identifier
104401  , p_source_57            IN NUMBER
104402 --Invoice Distribution Tax Line Identifier
104403  , p_source_58            IN NUMBER
104404 --Invoice Distribution Summary Tax Line Identifier
104405  , p_source_59            IN NUMBER
104406 --Payment Type
104407  , p_source_60            IN VARCHAR2
104408  , p_source_60_meaning    IN VARCHAR2
104409 --Invoice Distribution Amount of the Payment Distribution
104410  , p_source_61            IN NUMBER
104411 --Business Flow Invoice Distribution Type
104412  , p_source_62            IN VARCHAR2
104413 --Business Flow Invoice Entity Code
104414  , p_source_63            IN VARCHAR2
104415 --Business Flow Invoice Distribution Identifier
104416  , p_source_64            IN NUMBER
104417 --Business Flow Invoice Identifier
104418  , p_source_65            IN NUMBER
104419 --Invoice Distribution Tax Distribution Identifier from Tax
104420  , p_source_66            IN NUMBER
104421 --Accrue on Receipt Option
104422  , p_source_100            IN VARCHAR2
104423  , p_source_100_meaning    IN VARCHAR2
104424 --Invoice Type Paid
104425  , p_source_101            IN VARCHAR2
104426  , p_source_101_meaning    IN VARCHAR2
104427 --Payment Exchange Date
104428  , p_source_114            IN DATE
104429 --Payment Exchange Rate
104430  , p_source_115            IN NUMBER
104431 --Payment Exchange Rate Type
104432  , p_source_116            IN VARCHAR2
104433 )
104434 IS
104435 
104436 l_component_type              VARCHAR2(80);
104437 l_component_code              VARCHAR2(30);
104438 l_component_type_code         VARCHAR2(1);
104439 l_component_appl_id           INTEGER;
104440 l_amb_context_code            VARCHAR2(30);
104441 l_entity_code                 VARCHAR2(30);
104442 l_event_class_code            VARCHAR2(30);
104443 l_ae_header_id                NUMBER;
104444 l_event_type_code             VARCHAR2(30);
104445 l_line_definition_code        VARCHAR2(30);
104446 l_line_definition_owner_code  VARCHAR2(1);
104447 --
104448 -- adr variables
104449 l_segment                     VARCHAR2(30);
104450 l_ccid                        NUMBER;
104451 l_adr_transaction_coa_id      NUMBER;
104452 l_adr_accounting_coa_id       NUMBER;
104453 l_adr_flexfield_segment_code  VARCHAR2(30);
104454 l_adr_flex_value_set_id       NUMBER;
104455 l_adr_value_type_code         VARCHAR2(30);
104456 l_adr_value_combination_id    NUMBER;
104457 l_adr_value_segment_code      VARCHAR2(30);
104458 
104459 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
104460 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
104461 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
104462 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
104463 
104464 -- 4262811 Variables ------------------------------------------------------------------------------------------
104465 l_entered_amt_idx             NUMBER;
104466 l_accted_amt_idx              NUMBER;
104467 l_acc_rev_flag                VARCHAR2(1);
104468 l_accrual_line_num            NUMBER;
104469 l_tmp_amt                     NUMBER;
104470 l_acc_rev_natural_side_code   VARCHAR2(1);
104471 
104472 l_num_entries                 NUMBER;
104476 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
104473 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
104474 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
104475 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
104477 l_recog_line_1                NUMBER;
104478 l_recog_line_2                NUMBER;
104479 
104480 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
104481 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
104482 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
104483 
104484 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
104485 
104486 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
104487 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
104488 
104489 ---------------------------------------------------------------------------------------------------------------
104490 
104491 
104492 --
104493 -- bulk performance
104494 --
104495 l_balance_type_code           VARCHAR2(1);
104496 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
104497 l_log_module                  VARCHAR2(240);
104498 
104499 --
104500 -- Upgrade strategy
104501 --
104502 l_actual_upg_option           VARCHAR2(1);
104503 l_enc_upg_option           VARCHAR2(1);
104504 
104505 --
104506 BEGIN
104507 --
104508 IF g_log_enabled THEN
104509       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_183';
104510 END IF;
104511 --
104512 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104513 
104514       trace
104515          (p_msg      => 'BEGIN of AcctLineType_183'
104516          ,p_level    => C_LEVEL_PROCEDURE
104517          ,p_module   => l_log_module);
104518 
104519 END IF;
104520 --
104521 l_component_type             := 'AMB_JLT';
104522 l_component_code             := 'AP_TAX_INV_PRICE_VAR_PMT';
104523 l_component_type_code        := 'S';
104524 l_component_appl_id          :=  200;
104525 l_amb_context_code           := 'DEFAULT';
104526 l_entity_code                := 'AP_PAYMENTS';
104527 l_event_class_code           := 'PAYMENTS';
104528 l_event_type_code            := 'PAYMENTS_ALL';
104529 l_line_definition_owner_code := 'S';
104530 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
104531 --
104532 l_balance_type_code          := 'A';
104533 l_segment                     := NULL;
104534 l_ccid                        := NULL;
104535 l_adr_transaction_coa_id      := NULL;
104536 l_adr_accounting_coa_id       := NULL;
104537 l_adr_flexfield_segment_code  := NULL;
104538 l_adr_flex_value_set_id       := NULL;
104539 l_adr_value_type_code         := NULL;
104540 l_adr_value_combination_id    := NULL;
104541 l_adr_value_segment_code      := NULL;
104542 
104543 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
104544 l_bflow_class_code           := '';    -- 4219869 Business Flow
104545 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
104546 l_budgetary_control_flag     := 'N';
104547 
104548 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
104549 l_bflow_applied_to_amt       := NULL; -- 5132302
104550 l_entered_amt_idx            := NULL;          -- 4262811
104551 l_accted_amt_idx             := NULL;          -- 4262811
104552 l_acc_rev_flag               := NULL;          -- 4262811
104553 l_accrual_line_num           := NULL;          -- 4262811
104554 l_tmp_amt                    := NULL;          -- 4262811
104555 --
104556  
104557 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
104558     l_balance_type_code <> 'B' THEN
104559 IF NVL(p_source_38,'
104560 ') <>  'CLEAR_CLEAR' AND 
104561 NVL(p_source_20,'
104562 ') =  'TIPV' AND 
104563 NVL(p_source_101,'
104564 ') <>  'INTEREST' AND 
104565 (NVL(p_source_39,'
104566 ') =  'CASH' OR 
104567 NVL(p_source_39,'
104568 ') =  'AWT' OR 
104569 NVL(p_source_39,'
104570 ') =  'DISCOUNT') AND 
104571 NVL(p_source_60,'
104572 ') <>  'R' AND 
104573 NVL(p_source_100,'
104574 ') =  'Y'
104575  THEN 
104576 
104577    --
104578    XLA_AE_LINES_PKG.SetNewLine;
104579 
104580    p_balance_type_code          := l_balance_type_code;
104581    -- set the flag so later we will know whether the gain loss line needs to be created
104582    
104583    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
104584      p_actual_flag :='A';
104585    END IF;
104586 
104587    --
104588    -- bulk performance
104589    --
104590    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
104591                                       p_header_num   => 0); -- 4262811
104592    --
104593    -- set accounting line options
104594    --
104595    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
104596            p_natural_side_code          => 'D'
104597          , p_gain_or_loss_flag          => 'N'
104598          , p_gl_transfer_mode_code      => 'S'
104599          , p_acct_entry_type_code       => 'A'
104600          , p_switch_side_flag           => 'Y'
104601          , p_merge_duplicate_code       => 'A'
104602          );
104603    --
104604    l_acc_rev_natural_side_code := 'C';  -- 4262811
104605    -- 
104606    --
104607    -- set accounting line type info
104608    --
104609    xla_ae_lines_pkg.SetAcctLineType
104610       (p_component_type             => l_component_type
104614       ,p_accounting_line_code       => l_component_code
104611       ,p_event_type_code            => l_event_type_code
104612       ,p_line_definition_owner_code => l_line_definition_owner_code
104613       ,p_line_definition_code       => l_line_definition_code
104615       ,p_accounting_line_type_code  => l_component_type_code
104616       ,p_accounting_line_appl_id    => l_component_appl_id
104617       ,p_amb_context_code           => l_amb_context_code
104618       ,p_entity_code                => l_entity_code
104619       ,p_event_class_code           => l_event_class_code);
104620    --
104621    -- set accounting class
104622    --
104623    xla_ae_lines_pkg.SetAcctClass(
104624            p_accounting_class_code  => 'TIPV'
104625          , p_ae_header_id           => l_ae_header_id
104626          );
104627 
104628    --
104629    -- set rounding class
104630    --
104631    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
104632                       'TIPV';
104633 
104634    --
104635    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
104636    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
104637    --
104638    -- bulk performance
104639    --
104640    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
104641 
104642    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
104643       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
104644 
104645    -- 4955764
104646    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104647       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
104648 
104649    -- 4458381 Public Sector Enh
104650    
104651    --
104652    -- set accounting attributes for the line type
104653    --
104654    l_entered_amt_idx := 10;
104655    l_accted_amt_idx  := 15;
104656    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
104657    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
104658    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
104659    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
104660    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
104661    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
104662    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
104663    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
104664    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
104665    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
104666    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
104667    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
104668    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
104669    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
104670    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
104671    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
104672    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
104673    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
104674    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
104675    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
104676    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
104677    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
104678    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
104679    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
104680    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
104681    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
104682    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
104683    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
104684    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
104685    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
104686    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
104687    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
104688    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
104689    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
104690    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
104691    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
104692    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
104693    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
104694    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
104695    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
104696    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
104697    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
104698    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
104699    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
104700    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
104701    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
104702    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
104703    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
104704    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
104705 
104706    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
104707    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
104708 
104709    ---------------------------------------------------------------------------------------------------------------
104713 
104710    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
104711    ---------------------------------------------------------------------------------------------------------------
104712    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
104714    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104715    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104716 
104717    IF xla_accounting_cache_pkg.GetValueChar
104718          (p_source_code         => 'LEDGER_CATEGORY_CODE'
104719          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
104720    AND l_bflow_method_code = 'PRIOR_ENTRY'
104721 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
104722    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
104723          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
104724        )
104725    THEN
104726          xla_ae_lines_pkg.BflowUpgEntry
104727            (p_business_method_code    => l_bflow_method_code
104728            ,p_business_class_code     => l_bflow_class_code
104729            ,p_balance_type            => l_balance_type_code);
104730    ELSE
104731       NULL;
104732 -- No business flow processing for business flow method of NONE.
104733    END IF;
104734 
104735    --
104736    -- call analytical criteria
104737    --
104738    
104739    --
104740    -- call description
104741    --
104742    -- No description or it is inherited.
104743    --
104744    -- call ADRs
104745    -- Bug 4922099
104746    --
104747    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104748         (NVL(l_actual_upg_option, 'N') = 'O') OR
104749         (NVL(l_enc_upg_option, 'N') = 'O')
104750       )
104751    THEN
104752    NULL;
104753    --
104754    --
104755    
104756   l_ccid := AcctDerRule_26(
104757            p_application_id           => p_application_id
104758          , p_ae_header_id             => l_ae_header_id 
104759 , p_source_17 => p_source_17
104760          , x_transaction_coa_id       => l_adr_transaction_coa_id
104761          , x_accounting_coa_id        => l_adr_accounting_coa_id
104762          , x_value_type_code          => l_adr_value_type_code
104763          , p_side                     => 'NA'
104764    );
104765 
104766    xla_ae_lines_pkg.set_ccid(
104767     p_code_combination_id          => l_ccid
104768   , p_value_type_code              => l_adr_value_type_code
104769   , p_transaction_coa_id           => l_adr_transaction_coa_id
104770   , p_accounting_coa_id            => l_adr_accounting_coa_id
104771   , p_adr_code                     => 'AP_INVOICE_DIST'
104772   , p_adr_type_code                => 'S'
104773   , p_component_type               => l_component_type
104774   , p_component_code               => l_component_code
104775   , p_component_type_code          => l_component_type_code
104776   , p_component_appl_id            => l_component_appl_id
104777   , p_amb_context_code             => l_amb_context_code
104778   , p_side                         => 'NA'
104779   );
104780 
104781 
104782    --
104783    --
104784    END IF;
104785    --
104786    -- Bug 4922099
104787    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
104788           (NVL(l_enc_upg_option, 'N') = 'O')
104789         ) AND
104790         (l_bflow_method_code = 'PRIOR_ENTRY')
104791       )
104792    THEN
104793       IF
104794       --
104795       1 = 2
104796       --
104797       THEN
104798       xla_accounting_err_pkg.build_message
104799                                     (p_appli_s_name            => 'XLA'
104800                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104801                                     ,p_token_1                 => 'LINE_NUMBER'
104802                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
104803                                     ,p_token_2                 => 'LINE_TYPE_NAME'
104804                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
104805                                                                              l_component_type
104806                                                                             ,l_component_code
104807                                                                             ,l_component_type_code
104808                                                                             ,l_component_appl_id
104809                                                                             ,l_amb_context_code
104810                                                                             ,l_entity_code
104811                                                                             ,l_event_class_code
104812                                                                            )
104813                                     ,p_token_3                 => 'OWNER'
104814                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
104815                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
104816                                                                           ,p_lookup_code    => l_component_type_code
104817                                                                          )
104818                                     ,p_token_4                 => 'PRODUCT_NAME'
104819                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104823                                     ,p_ae_header_id            =>  NULL
104820                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104821                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104822                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104824                                        );
104825 
104826         IF (C_LEVEL_ERROR>= g_log_level) THEN
104827                  trace
104828                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104829                       ,p_level    => C_LEVEL_ERROR
104830                       ,p_module   => l_log_module);
104831         END IF;
104832       END IF;
104833    END IF;
104834    --
104835    --
104836    ------------------------------------------------------------------------------------------------
104837    -- 4219869 Business Flow
104838    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104839    -- Prior Entry.  Currently, the following code is always generated.
104840    ------------------------------------------------------------------------------------------------
104841    XLA_AE_LINES_PKG.ValidateCurrentLine;
104842 
104843    ------------------------------------------------------------------------------------
104844    -- 4219869 Business Flow
104845    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104846    ------------------------------------------------------------------------------------
104847    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104848 
104849    ----------------------------------------------------------------------------------
104850    -- 4219869 Business Flow
104851    -- Update journal entry status -- Need to generate this within IF <condition>
104852    ----------------------------------------------------------------------------------
104853    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104854          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104855          ,p_balance_type_code => l_balance_type_code
104856          );
104857 
104858    -------------------------------------------------------------------------------------------
104859    -- 4262811 - Generate the Accrual Reversal lines
104860    -------------------------------------------------------------------------------------------
104861    BEGIN
104862       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104863                               (g_array_event(p_event_id).array_value_num('header_index'));
104864       IF l_acc_rev_flag IS NULL THEN
104865          l_acc_rev_flag := 'N';
104866       END IF;
104867    EXCEPTION
104868       WHEN OTHERS THEN
104869          l_acc_rev_flag := 'N';
104870    END;
104871    --
104872    IF (l_acc_rev_flag = 'Y') THEN
104873 
104874        -- 4645092  ------------------------------------------------------------------------------
104875        -- To allow MPA report to determine if it should generate report process
104876        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104877        ------------------------------------------------------------------------------------------
104878 
104879        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104880        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104881    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
104882    -- call ADRs
104883    -- Bug 4922099
104884    --
104885    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104886         (NVL(l_actual_upg_option, 'N') = 'O') OR
104887         (NVL(l_enc_upg_option, 'N') = 'O')
104888       )
104889    THEN
104890    NULL;
104891    --
104892    --
104893    
104894   l_ccid := AcctDerRule_26(
104895            p_application_id           => p_application_id
104896          , p_ae_header_id             => l_ae_header_id 
104897 , p_source_17 => p_source_17
104898          , x_transaction_coa_id       => l_adr_transaction_coa_id
104899          , x_accounting_coa_id        => l_adr_accounting_coa_id
104900          , x_value_type_code          => l_adr_value_type_code
104901          , p_side                     => 'NA'
104902    );
104903 
104904    xla_ae_lines_pkg.set_ccid(
104905     p_code_combination_id          => l_ccid
104906   , p_value_type_code              => l_adr_value_type_code
104907   , p_transaction_coa_id           => l_adr_transaction_coa_id
104908   , p_accounting_coa_id            => l_adr_accounting_coa_id
104909   , p_adr_code                     => 'AP_INVOICE_DIST'
104910   , p_adr_type_code                => 'S'
104911   , p_component_type               => l_component_type
104912   , p_component_code               => l_component_code
104913   , p_component_type_code          => l_component_type_code
104914   , p_component_appl_id            => l_component_appl_id
104915   , p_amb_context_code             => l_amb_context_code
104916   , p_side                         => 'NA'
104917   );
104918 
104919 
104920    --
104921    --
104922    END IF;
104923 
104924        --
104925        -- Update the line information that should be overwritten
104926        --
104927        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104928                                          p_header_num   => 1);
104929        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
104930 
104931        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104932 
104936 
104933        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
104934           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104935        END IF;
104937       --
104938       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104939       --
104940       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104941           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
104942       ELSE
104943           ---------------------------------------------------------------------------------------------------
104944           -- 4262811a Switch Sign
104945           ---------------------------------------------------------------------------------------------------
104946           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
104947           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104948                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104949           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104950                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104951           -- 5132302
104952           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104953                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104954 
104955       END IF;
104956 
104957       -- 4955764
104958       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104959       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104960 
104961 
104962       XLA_AE_LINES_PKG.ValidateCurrentLine;
104963       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104964 
104965       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104966                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104967                ,p_balance_type_code => l_balance_type_code);
104968 
104969    END IF;
104970 
104971    -----------------------------------------------------------------------------------------
104972    -- 4262811 Multiperiod Accounting
104973    -----------------------------------------------------------------------------------------
104974      -- No MPA option is assigned.
104975 
104976 
104977 END IF;
104978 END IF;
104979 --
104980 
104981 --
104982 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104983    trace
104984       (p_msg      => 'END of AcctLineType_183'
104985       ,p_level    => C_LEVEL_PROCEDURE
104986       ,p_module   => l_log_module);
104987 END IF;
104988 --
104989 EXCEPTION
104990   WHEN xla_exceptions_pkg.application_exception THEN
104991       RAISE;
104992   WHEN OTHERS THEN
104993        xla_exceptions_pkg.raise_message
104994            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_183');
104995 END AcctLineType_183;
104996 --
104997 
104998 ---------------------------------------
104999 --
105000 -- PRIVATE FUNCTION
105001 --         AcctLineType_184
105002 --
105003 ---------------------------------------
105004 PROCEDURE AcctLineType_184 (
105005   p_application_id        IN NUMBER
105006  ,p_event_id              IN NUMBER
105007  ,p_calculate_acctd_flag  IN VARCHAR2
105008  ,p_calculate_g_l_flag    IN VARCHAR2
105009  ,p_actual_flag           IN OUT VARCHAR2
105010  ,p_balance_type_code     OUT VARCHAR2
105011  ,p_gain_or_loss_ref      OUT VARCHAR2
105012  
105013 --Payment Distribution (Payment Rate) Ledger Amount
105014  , p_source_9            IN NUMBER
105015 --Invoice Distribution Type
105016  , p_source_20            IN VARCHAR2
105017  , p_source_20_meaning    IN VARCHAR2
105018 --When to Account for Payment Option
105019  , p_source_38            IN VARCHAR2
105020 --Payment Distribution Type
105021  , p_source_39            IN VARCHAR2
105022  , p_source_39_meaning    IN VARCHAR2
105023 --Accounting Reversal Indicator
105024  , p_source_40            IN VARCHAR2
105025 --Payment Distribution Amount
105026  , p_source_41            IN NUMBER
105027 --Business Flow Accounts Payable Application Identifier
105028  , p_source_42            IN NUMBER
105029 --Payment Distribution Identifier
105030  , p_source_47            IN NUMBER
105031 --Distribution Link Type
105032  , p_source_48            IN VARCHAR2
105033 --Payment Currency Code
105034  , p_source_49            IN VARCHAR2
105035 --Override Accounted Amount Indicator
105036  , p_source_53            IN VARCHAR2
105037  , p_source_53_meaning    IN VARCHAR2
105038 --Third Party Type
105039  , p_source_56            IN VARCHAR2
105040 --Payment Distribution Reversed Identifier
105041  , p_source_57            IN NUMBER
105042 --Invoice Distribution Tax Line Identifier
105043  , p_source_58            IN NUMBER
105044 --Invoice Distribution Summary Tax Line Identifier
105045  , p_source_59            IN NUMBER
105046 --Payment Type
105047  , p_source_60            IN VARCHAR2
105048  , p_source_60_meaning    IN VARCHAR2
105049 --Invoice Distribution Amount of the Payment Distribution
105050  , p_source_61            IN NUMBER
105051 --Business Flow Invoice Distribution Type
105052  , p_source_62            IN VARCHAR2
105053 --Business Flow Invoice Entity Code
105054  , p_source_63            IN VARCHAR2
105058  , p_source_65            IN NUMBER
105055 --Business Flow Invoice Distribution Identifier
105056  , p_source_64            IN NUMBER
105057 --Business Flow Invoice Identifier
105059 --Invoice Distribution Tax Distribution Identifier from Tax
105060  , p_source_66            IN NUMBER
105061 --Purchasing Encumbrance Option
105062  , p_source_102            IN VARCHAR2
105063  , p_source_102_meaning    IN VARCHAR2
105064 --Invoice Encumbered Option
105065  , p_source_104            IN VARCHAR2
105066  , p_source_104_meaning    IN VARCHAR2
105067 )
105068 IS
105069 
105070 l_component_type              VARCHAR2(80);
105071 l_component_code              VARCHAR2(30);
105072 l_component_type_code         VARCHAR2(1);
105073 l_component_appl_id           INTEGER;
105074 l_amb_context_code            VARCHAR2(30);
105075 l_entity_code                 VARCHAR2(30);
105076 l_event_class_code            VARCHAR2(30);
105077 l_ae_header_id                NUMBER;
105078 l_event_type_code             VARCHAR2(30);
105079 l_line_definition_code        VARCHAR2(30);
105080 l_line_definition_owner_code  VARCHAR2(1);
105081 --
105082 -- adr variables
105083 l_segment                     VARCHAR2(30);
105084 l_ccid                        NUMBER;
105085 l_adr_transaction_coa_id      NUMBER;
105086 l_adr_accounting_coa_id       NUMBER;
105087 l_adr_flexfield_segment_code  VARCHAR2(30);
105088 l_adr_flex_value_set_id       NUMBER;
105089 l_adr_value_type_code         VARCHAR2(30);
105090 l_adr_value_combination_id    NUMBER;
105091 l_adr_value_segment_code      VARCHAR2(30);
105092 
105093 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
105094 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
105095 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
105096 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
105097 
105098 -- 4262811 Variables ------------------------------------------------------------------------------------------
105099 l_entered_amt_idx             NUMBER;
105100 l_accted_amt_idx              NUMBER;
105101 l_acc_rev_flag                VARCHAR2(1);
105102 l_accrual_line_num            NUMBER;
105103 l_tmp_amt                     NUMBER;
105104 l_acc_rev_natural_side_code   VARCHAR2(1);
105105 
105106 l_num_entries                 NUMBER;
105107 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
105108 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
105109 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
105110 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
105111 l_recog_line_1                NUMBER;
105112 l_recog_line_2                NUMBER;
105113 
105114 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
105115 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
105116 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
105117 
105118 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105119 
105120 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
105121 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
105122 
105123 ---------------------------------------------------------------------------------------------------------------
105124 
105125 
105126 --
105127 -- bulk performance
105128 --
105129 l_balance_type_code           VARCHAR2(1);
105130 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
105131 l_log_module                  VARCHAR2(240);
105132 
105133 --
105134 -- Upgrade strategy
105135 --
105136 l_actual_upg_option           VARCHAR2(1);
105137 l_enc_upg_option           VARCHAR2(1);
105138 
105139 --
105140 BEGIN
105141 --
105142 IF g_log_enabled THEN
105143       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_184';
105144 END IF;
105145 --
105146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105147 
105148       trace
105149          (p_msg      => 'BEGIN of AcctLineType_184'
105150          ,p_level    => C_LEVEL_PROCEDURE
105151          ,p_module   => l_log_module);
105152 
105153 END IF;
105154 --
105155 l_component_type             := 'AMB_JLT';
105156 l_component_code             := 'AP_TAX_INV_PRICE_VAR_PMT_ENC';
105157 l_component_type_code        := 'S';
105158 l_component_appl_id          :=  200;
105159 l_amb_context_code           := 'DEFAULT';
105160 l_entity_code                := 'AP_PAYMENTS';
105161 l_event_class_code           := 'PAYMENTS';
105162 l_event_type_code            := 'PAYMENTS_ALL';
105163 l_line_definition_owner_code := 'S';
105164 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
105165 --
105166 l_balance_type_code          := 'E';
105167 l_segment                     := NULL;
105168 l_ccid                        := NULL;
105169 l_adr_transaction_coa_id      := NULL;
105170 l_adr_accounting_coa_id       := NULL;
105171 l_adr_flexfield_segment_code  := NULL;
105172 l_adr_flex_value_set_id       := NULL;
105173 l_adr_value_type_code         := NULL;
105174 l_adr_value_combination_id    := NULL;
105175 l_adr_value_segment_code      := NULL;
105176 
105177 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
105178 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
105179 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
105180 l_budgetary_control_flag     := 'N';
105181 
105185 l_accted_amt_idx             := NULL;          -- 4262811
105182 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
105183 l_bflow_applied_to_amt       := NULL; -- 5132302
105184 l_entered_amt_idx            := NULL;          -- 4262811
105186 l_acc_rev_flag               := NULL;          -- 4262811
105187 l_accrual_line_num           := NULL;          -- 4262811
105188 l_tmp_amt                    := NULL;          -- 4262811
105189 --
105190  
105191 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105192     l_balance_type_code <> 'B' THEN
105193 IF NVL(p_source_38,'
105194 ') <>  'CLEAR_CLEAR' AND 
105195 NVL(p_source_20,'
105196 ') =  'TIPV' AND 
105197 (NVL(p_source_39,'
105198 ') =  'CASH' OR 
105199 NVL(p_source_39,'
105200 ') =  'DISCOUNT') AND 
105201 NVL(p_source_60,'
105202 ') <>  'R' AND 
105203 NVL(p_source_102,'
105204 ') =  'Y' AND 
105205 NVL(p_source_104,'
105206 ') =  'Y'
105207  THEN 
105208 
105209    --
105210    XLA_AE_LINES_PKG.SetNewLine;
105211 
105212    p_balance_type_code          := l_balance_type_code;
105213    -- set the flag so later we will know whether the gain loss line needs to be created
105214    
105215    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105216      p_actual_flag :='A';
105217    END IF;
105218 
105219    --
105220    -- bulk performance
105221    --
105222    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105223                                       p_header_num   => 0); -- 4262811
105224    --
105225    -- set accounting line options
105226    --
105227    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105228            p_natural_side_code          => 'C'
105229          , p_gain_or_loss_flag          => 'N'
105230          , p_gl_transfer_mode_code      => 'S'
105231          , p_acct_entry_type_code       => 'E'
105232          , p_switch_side_flag           => 'Y'
105233          , p_merge_duplicate_code       => 'A'
105234          );
105235    --
105236    l_acc_rev_natural_side_code := 'D';  -- 4262811
105237    -- 
105238    --
105239    -- set accounting line type info
105240    --
105241    xla_ae_lines_pkg.SetAcctLineType
105242       (p_component_type             => l_component_type
105243       ,p_event_type_code            => l_event_type_code
105244       ,p_line_definition_owner_code => l_line_definition_owner_code
105245       ,p_line_definition_code       => l_line_definition_code
105246       ,p_accounting_line_code       => l_component_code
105247       ,p_accounting_line_type_code  => l_component_type_code
105248       ,p_accounting_line_appl_id    => l_component_appl_id
105249       ,p_amb_context_code           => l_amb_context_code
105250       ,p_entity_code                => l_entity_code
105251       ,p_event_class_code           => l_event_class_code);
105252    --
105253    -- set accounting class
105254    --
105255    xla_ae_lines_pkg.SetAcctClass(
105256            p_accounting_class_code  => 'TIPV'
105257          , p_ae_header_id           => l_ae_header_id
105258          );
105259 
105260    --
105261    -- set rounding class
105262    --
105263    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105264                       'TIPV';
105265 
105266    --
105267    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105268    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105269    --
105270    -- bulk performance
105271    --
105272    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105273 
105274    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105275       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105276 
105277    -- 4955764
105278    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105279       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105280 
105281    -- 4458381 Public Sector Enh
105282    
105283    --
105284    -- set accounting attributes for the line type
105285    --
105286    l_entered_amt_idx := 10;
105287    l_accted_amt_idx  := 12;
105288    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
105289    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105290    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
105291    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
105292    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
105293    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
105294    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
105295    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105296    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
105297    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
105298    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
105299    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
105300    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
105301    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105302    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
105303    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
105304    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
105308    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
105305    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
105306    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
105307    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
105309    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
105310    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
105311    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
105312    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
105313    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
105314    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
105315    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
105316    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
105317    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
105318    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
105319    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
105320    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
105321    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
105322    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
105323    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
105324    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
105325    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
105326    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
105327 
105328    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
105329    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
105330 
105331    ---------------------------------------------------------------------------------------------------------------
105332    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
105333    ---------------------------------------------------------------------------------------------------------------
105334    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
105335 
105336    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105337    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105338 
105339    IF xla_accounting_cache_pkg.GetValueChar
105340          (p_source_code         => 'LEDGER_CATEGORY_CODE'
105341          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
105342    AND l_bflow_method_code = 'PRIOR_ENTRY'
105343 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
105344    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
105345          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
105346        )
105347    THEN
105348          xla_ae_lines_pkg.BflowUpgEntry
105349            (p_business_method_code    => l_bflow_method_code
105350            ,p_business_class_code     => l_bflow_class_code
105351            ,p_balance_type            => l_balance_type_code);
105352    ELSE
105353       NULL;
105354 XLA_AE_LINES_PKG.business_flow_validation(
105355                                 p_business_method_code     => l_bflow_method_code
105356                                ,p_business_class_code      => l_bflow_class_code
105357                                ,p_inherit_description_flag => l_inherit_desc_flag);
105358    END IF;
105359 
105360    --
105361    -- call analytical criteria
105362    --
105363    -- Inherited Analytical Criteria for business flow method of Prior Entry.
105364    --
105365    -- call description
105366    --
105367    -- No description or it is inherited.
105368    --
105369    -- call ADRs
105370    -- Bug 4922099
105371    --
105372    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105373         (NVL(l_actual_upg_option, 'N') = 'O') OR
105374         (NVL(l_enc_upg_option, 'N') = 'O')
105375       )
105376    THEN
105377    NULL;
105378    --
105379    --
105380    
105381    --
105382    --
105383    END IF;
105384    --
105385    -- Bug 4922099
105386    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105387           (NVL(l_enc_upg_option, 'N') = 'O')
105388         ) AND
105389         (l_bflow_method_code = 'PRIOR_ENTRY')
105390       )
105391    THEN
105392       IF
105393       --
105394       1 = 1
105395       --
105396       THEN
105397       xla_accounting_err_pkg.build_message
105398                                     (p_appli_s_name            => 'XLA'
105399                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105400                                     ,p_token_1                 => 'LINE_NUMBER'
105401                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
105402                                     ,p_token_2                 => 'LINE_TYPE_NAME'
105403                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
105404                                                                              l_component_type
105405                                                                             ,l_component_code
105406                                                                             ,l_component_type_code
105407                                                                             ,l_component_appl_id
105408                                                                             ,l_amb_context_code
105409                                                                             ,l_entity_code
105413                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
105410                                                                             ,l_event_class_code
105411                                                                            )
105412                                     ,p_token_3                 => 'OWNER'
105414                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
105415                                                                           ,p_lookup_code    => l_component_type_code
105416                                                                          )
105417                                     ,p_token_4                 => 'PRODUCT_NAME'
105418                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
105419                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
105420                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
105421                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
105422                                     ,p_ae_header_id            =>  NULL
105423                                        );
105424 
105425         IF (C_LEVEL_ERROR>= g_log_level) THEN
105426                  trace
105427                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105428                       ,p_level    => C_LEVEL_ERROR
105429                       ,p_module   => l_log_module);
105430         END IF;
105431       END IF;
105432    END IF;
105433    --
105434    --
105435    ------------------------------------------------------------------------------------------------
105436    -- 4219869 Business Flow
105437    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
105438    -- Prior Entry.  Currently, the following code is always generated.
105439    ------------------------------------------------------------------------------------------------
105440    -- No ValidateCurrentLine for business flow method of Prior Entry
105441 
105442    ------------------------------------------------------------------------------------
105443    -- 4219869 Business Flow
105444    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
105445    ------------------------------------------------------------------------------------
105446    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105447 
105448    ----------------------------------------------------------------------------------
105449    -- 4219869 Business Flow
105450    -- Update journal entry status -- Need to generate this within IF <condition>
105451    ----------------------------------------------------------------------------------
105452    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105453          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
105454          ,p_balance_type_code => l_balance_type_code
105455          );
105456 
105457    -------------------------------------------------------------------------------------------
105458    -- 4262811 - Generate the Accrual Reversal lines
105459    -------------------------------------------------------------------------------------------
105460    BEGIN
105461       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
105462                               (g_array_event(p_event_id).array_value_num('header_index'));
105463       IF l_acc_rev_flag IS NULL THEN
105464          l_acc_rev_flag := 'N';
105465       END IF;
105466    EXCEPTION
105467       WHEN OTHERS THEN
105468          l_acc_rev_flag := 'N';
105469    END;
105470    --
105471    IF (l_acc_rev_flag = 'Y') THEN
105472 
105473        -- 4645092  ------------------------------------------------------------------------------
105474        -- To allow MPA report to determine if it should generate report process
105475        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
105476        ------------------------------------------------------------------------------------------
105477 
105478        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
105479        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
105480    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
105481    -- call ADRs
105482    -- Bug 4922099
105483    --
105484    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105485         (NVL(l_actual_upg_option, 'N') = 'O') OR
105486         (NVL(l_enc_upg_option, 'N') = 'O')
105487       )
105488    THEN
105489    NULL;
105490    --
105491    --
105492    
105493    --
105494    --
105495    END IF;
105496 
105497        --
105498        -- Update the line information that should be overwritten
105499        --
105500        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
105501                                          p_header_num   => 1);
105502        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
105503 
105504        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
105505 
105506        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
105507           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
105508        END IF;
105509 
105510       --
105511       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
105512       --
105513       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
105517           -- 4262811a Switch Sign
105514           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
105515       ELSE
105516           ---------------------------------------------------------------------------------------------------
105518           ---------------------------------------------------------------------------------------------------
105519           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
105520           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105521                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105522           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105523                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105524           -- 5132302
105525           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
105526                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105527 
105528       END IF;
105529 
105530       -- 4955764
105531       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105532       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
105533 
105534 
105535       XLA_AE_LINES_PKG.ValidateCurrentLine;
105536       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105537 
105538       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105539                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
105540                ,p_balance_type_code => l_balance_type_code);
105541 
105542    END IF;
105543 
105544    -----------------------------------------------------------------------------------------
105545    -- 4262811 Multiperiod Accounting
105546    -----------------------------------------------------------------------------------------
105547      -- No MPA option is assigned.
105548 
105549 
105550 END IF;
105551 END IF;
105552 --
105553 
105554 --
105555 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105556    trace
105557       (p_msg      => 'END of AcctLineType_184'
105558       ,p_level    => C_LEVEL_PROCEDURE
105559       ,p_module   => l_log_module);
105560 END IF;
105561 --
105562 EXCEPTION
105563   WHEN xla_exceptions_pkg.application_exception THEN
105564       RAISE;
105565   WHEN OTHERS THEN
105566        xla_exceptions_pkg.raise_message
105567            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_184');
105568 END AcctLineType_184;
105569 --
105570 
105571 ---------------------------------------
105572 --
105573 -- PRIVATE FUNCTION
105574 --         AcctLineType_185
105575 --
105576 ---------------------------------------
105577 PROCEDURE AcctLineType_185 (
105578   p_application_id        IN NUMBER
105579  ,p_event_id              IN NUMBER
105580  ,p_calculate_acctd_flag  IN VARCHAR2
105581  ,p_calculate_g_l_flag    IN VARCHAR2
105582  ,p_actual_flag           IN OUT VARCHAR2
105583  ,p_balance_type_code     OUT VARCHAR2
105584  ,p_gain_or_loss_ref      OUT VARCHAR2
105585  
105586 --Payment Distribution (Payment Rate) Ledger Amount
105587  , p_source_9            IN NUMBER
105588 --Invoice Distribution Account
105589  , p_source_17            IN NUMBER
105590 --Invoice Distribution Type
105591  , p_source_20            IN VARCHAR2
105592  , p_source_20_meaning    IN VARCHAR2
105593 --When to Account for Payment Option
105594  , p_source_38            IN VARCHAR2
105595 --Payment Distribution Type
105596  , p_source_39            IN VARCHAR2
105597  , p_source_39_meaning    IN VARCHAR2
105598 --Accounting Reversal Indicator
105599  , p_source_40            IN VARCHAR2
105600 --Payment Distribution Amount
105601  , p_source_41            IN NUMBER
105602 --Business Flow Accounts Payable Application Identifier
105603  , p_source_42            IN NUMBER
105604 --Payment Distribution Identifier
105605  , p_source_47            IN NUMBER
105606 --Distribution Link Type
105607  , p_source_48            IN VARCHAR2
105608 --Payment Currency Code
105609  , p_source_49            IN VARCHAR2
105610 --Override Accounted Amount Indicator
105611  , p_source_53            IN VARCHAR2
105612  , p_source_53_meaning    IN VARCHAR2
105613 --Payment Supplier Identifier
105614  , p_source_54            IN NUMBER
105615 --Payment Supplier Site Identifier
105616  , p_source_55            IN NUMBER
105617 --Third Party Type
105618  , p_source_56            IN VARCHAR2
105619 --Payment Distribution Reversed Identifier
105620  , p_source_57            IN NUMBER
105621 --Invoice Distribution Tax Line Identifier
105622  , p_source_58            IN NUMBER
105623 --Invoice Distribution Summary Tax Line Identifier
105624  , p_source_59            IN NUMBER
105625 --Payment Type
105626  , p_source_60            IN VARCHAR2
105627  , p_source_60_meaning    IN VARCHAR2
105628 --Business Flow Invoice Distribution Type
105629  , p_source_62            IN VARCHAR2
105630 --Business Flow Invoice Entity Code
105631  , p_source_63            IN VARCHAR2
105632 --Business Flow Invoice Distribution Identifier
105633  , p_source_64            IN NUMBER
105634 --Business Flow Invoice Identifier
105635  , p_source_65            IN NUMBER
105636 --Invoice Distribution Tax Distribution Identifier from Tax
105637  , p_source_66            IN NUMBER
105638 --Accrue on Receipt Option
105639  , p_source_100            IN VARCHAR2
105643 --Payment Exchange Rate
105640  , p_source_100_meaning    IN VARCHAR2
105641 --Payment Exchange Date
105642  , p_source_114            IN DATE
105644  , p_source_115            IN NUMBER
105645 --Payment Exchange Rate Type
105646  , p_source_116            IN VARCHAR2
105647 )
105648 IS
105649 
105650 l_component_type              VARCHAR2(80);
105651 l_component_code              VARCHAR2(30);
105652 l_component_type_code         VARCHAR2(1);
105653 l_component_appl_id           INTEGER;
105654 l_amb_context_code            VARCHAR2(30);
105655 l_entity_code                 VARCHAR2(30);
105656 l_event_class_code            VARCHAR2(30);
105657 l_ae_header_id                NUMBER;
105658 l_event_type_code             VARCHAR2(30);
105659 l_line_definition_code        VARCHAR2(30);
105660 l_line_definition_owner_code  VARCHAR2(1);
105661 --
105662 -- adr variables
105663 l_segment                     VARCHAR2(30);
105664 l_ccid                        NUMBER;
105665 l_adr_transaction_coa_id      NUMBER;
105666 l_adr_accounting_coa_id       NUMBER;
105667 l_adr_flexfield_segment_code  VARCHAR2(30);
105668 l_adr_flex_value_set_id       NUMBER;
105669 l_adr_value_type_code         VARCHAR2(30);
105670 l_adr_value_combination_id    NUMBER;
105671 l_adr_value_segment_code      VARCHAR2(30);
105672 
105673 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
105674 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
105675 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
105676 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
105677 
105678 -- 4262811 Variables ------------------------------------------------------------------------------------------
105679 l_entered_amt_idx             NUMBER;
105680 l_accted_amt_idx              NUMBER;
105681 l_acc_rev_flag                VARCHAR2(1);
105682 l_accrual_line_num            NUMBER;
105683 l_tmp_amt                     NUMBER;
105684 l_acc_rev_natural_side_code   VARCHAR2(1);
105685 
105686 l_num_entries                 NUMBER;
105687 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
105688 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
105689 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
105690 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
105691 l_recog_line_1                NUMBER;
105692 l_recog_line_2                NUMBER;
105693 
105694 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
105695 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
105696 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
105697 
105698 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105699 
105700 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
105701 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
105702 
105703 ---------------------------------------------------------------------------------------------------------------
105704 
105705 
105706 --
105707 -- bulk performance
105708 --
105709 l_balance_type_code           VARCHAR2(1);
105710 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
105711 l_log_module                  VARCHAR2(240);
105712 
105713 --
105714 -- Upgrade strategy
105715 --
105716 l_actual_upg_option           VARCHAR2(1);
105717 l_enc_upg_option           VARCHAR2(1);
105718 
105719 --
105720 BEGIN
105721 --
105722 IF g_log_enabled THEN
105723       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_185';
105724 END IF;
105725 --
105726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105727 
105728       trace
105729          (p_msg      => 'BEGIN of AcctLineType_185'
105730          ,p_level    => C_LEVEL_PROCEDURE
105731          ,p_module   => l_log_module);
105732 
105733 END IF;
105734 --
105735 l_component_type             := 'AMB_JLT';
105736 l_component_code             := 'AP_TAX_INV_PRICE_VAR_REF';
105737 l_component_type_code        := 'S';
105738 l_component_appl_id          :=  200;
105739 l_amb_context_code           := 'DEFAULT';
105740 l_entity_code                := 'AP_PAYMENTS';
105741 l_event_class_code           := 'REFUNDS';
105742 l_event_type_code            := 'REFUNDS_ALL';
105743 l_line_definition_owner_code := 'S';
105744 l_line_definition_code       := 'CASH_REFUNDS_ALL';
105745 --
105746 l_balance_type_code          := 'A';
105747 l_segment                     := NULL;
105748 l_ccid                        := NULL;
105749 l_adr_transaction_coa_id      := NULL;
105750 l_adr_accounting_coa_id       := NULL;
105751 l_adr_flexfield_segment_code  := NULL;
105752 l_adr_flex_value_set_id       := NULL;
105753 l_adr_value_type_code         := NULL;
105754 l_adr_value_combination_id    := NULL;
105755 l_adr_value_segment_code      := NULL;
105756 
105757 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
105758 l_bflow_class_code           := '';    -- 4219869 Business Flow
105759 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
105760 l_budgetary_control_flag     := 'N';
105761 
105762 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
105763 l_bflow_applied_to_amt       := NULL; -- 5132302
105764 l_entered_amt_idx            := NULL;          -- 4262811
105765 l_accted_amt_idx             := NULL;          -- 4262811
105766 l_acc_rev_flag               := NULL;          -- 4262811
105770  
105767 l_accrual_line_num           := NULL;          -- 4262811
105768 l_tmp_amt                    := NULL;          -- 4262811
105769 --
105771 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105772     l_balance_type_code <> 'B' THEN
105773 IF NVL(p_source_38,'
105774 ') <>  'CLEAR_CLEAR' AND 
105775 NVL(p_source_20,'
105776 ') =  'TIPV' AND 
105777 (NVL(p_source_39,'
105778 ') =  'CASH' OR 
105779 NVL(p_source_39,'
105780 ') =  'DISCOUNT') AND 
105781 NVL(p_source_60,'
105782 ') =  'R' AND 
105783 NVL(p_source_100,'
105784 ') =  'Y'
105785  THEN 
105786 
105787    --
105788    XLA_AE_LINES_PKG.SetNewLine;
105789 
105790    p_balance_type_code          := l_balance_type_code;
105791    -- set the flag so later we will know whether the gain loss line needs to be created
105792    
105793    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105794      p_actual_flag :='A';
105795    END IF;
105796 
105797    --
105798    -- bulk performance
105799    --
105800    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105801                                       p_header_num   => 0); -- 4262811
105802    --
105803    -- set accounting line options
105804    --
105805    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105806            p_natural_side_code          => 'D'
105807          , p_gain_or_loss_flag          => 'N'
105808          , p_gl_transfer_mode_code      => 'S'
105809          , p_acct_entry_type_code       => 'A'
105810          , p_switch_side_flag           => 'Y'
105811          , p_merge_duplicate_code       => 'A'
105812          );
105813    --
105814    l_acc_rev_natural_side_code := 'C';  -- 4262811
105815    -- 
105816    --
105817    -- set accounting line type info
105818    --
105819    xla_ae_lines_pkg.SetAcctLineType
105820       (p_component_type             => l_component_type
105821       ,p_event_type_code            => l_event_type_code
105822       ,p_line_definition_owner_code => l_line_definition_owner_code
105823       ,p_line_definition_code       => l_line_definition_code
105824       ,p_accounting_line_code       => l_component_code
105825       ,p_accounting_line_type_code  => l_component_type_code
105826       ,p_accounting_line_appl_id    => l_component_appl_id
105827       ,p_amb_context_code           => l_amb_context_code
105828       ,p_entity_code                => l_entity_code
105829       ,p_event_class_code           => l_event_class_code);
105830    --
105831    -- set accounting class
105832    --
105833    xla_ae_lines_pkg.SetAcctClass(
105834            p_accounting_class_code  => 'TIPV'
105835          , p_ae_header_id           => l_ae_header_id
105836          );
105837 
105838    --
105839    -- set rounding class
105840    --
105841    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105842                       'TIPV';
105843 
105844    --
105845    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105846    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105847    --
105848    -- bulk performance
105849    --
105850    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105851 
105852    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105853       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105854 
105855    -- 4955764
105856    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105857       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105858 
105859    -- 4458381 Public Sector Enh
105860    
105861    --
105862    -- set accounting attributes for the line type
105863    --
105864    l_entered_amt_idx := 9;
105865    l_accted_amt_idx  := 14;
105866    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
105867    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105868    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
105869    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
105870    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
105871    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105872    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
105873    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
105874    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
105875    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
105876    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
105877    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105878    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
105879    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
105880    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
105881    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
105882    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
105883    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
105884    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
105885    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
105886    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
105887    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
105891    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
105888    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
105889    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
105890    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
105892    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
105893    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
105894    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
105895    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
105896    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
105897    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
105898    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
105899    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
105900    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
105901    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
105902    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
105903    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
105904    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
105905    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
105906    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
105907    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
105908    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
105909    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
105910    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
105911    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
105912    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
105913 
105914    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
105915    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
105916 
105917    ---------------------------------------------------------------------------------------------------------------
105918    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
105919    ---------------------------------------------------------------------------------------------------------------
105920    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
105921 
105922    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105923    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105924 
105925    IF xla_accounting_cache_pkg.GetValueChar
105926          (p_source_code         => 'LEDGER_CATEGORY_CODE'
105927          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
105928    AND l_bflow_method_code = 'PRIOR_ENTRY'
105929 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
105930    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
105931          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
105932        )
105933    THEN
105934          xla_ae_lines_pkg.BflowUpgEntry
105935            (p_business_method_code    => l_bflow_method_code
105936            ,p_business_class_code     => l_bflow_class_code
105937            ,p_balance_type            => l_balance_type_code);
105938    ELSE
105939       NULL;
105940 -- No business flow processing for business flow method of NONE.
105941    END IF;
105942 
105943    --
105944    -- call analytical criteria
105945    --
105946    
105947    --
105948    -- call description
105949    --
105950    -- No description or it is inherited.
105951    --
105952    -- call ADRs
105953    -- Bug 4922099
105954    --
105955    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105956         (NVL(l_actual_upg_option, 'N') = 'O') OR
105957         (NVL(l_enc_upg_option, 'N') = 'O')
105958       )
105959    THEN
105960    NULL;
105961    --
105962    --
105963    
105964   l_ccid := AcctDerRule_26(
105965            p_application_id           => p_application_id
105966          , p_ae_header_id             => l_ae_header_id 
105967 , p_source_17 => p_source_17
105968          , x_transaction_coa_id       => l_adr_transaction_coa_id
105969          , x_accounting_coa_id        => l_adr_accounting_coa_id
105970          , x_value_type_code          => l_adr_value_type_code
105971          , p_side                     => 'NA'
105972    );
105973 
105974    xla_ae_lines_pkg.set_ccid(
105975     p_code_combination_id          => l_ccid
105976   , p_value_type_code              => l_adr_value_type_code
105977   , p_transaction_coa_id           => l_adr_transaction_coa_id
105978   , p_accounting_coa_id            => l_adr_accounting_coa_id
105979   , p_adr_code                     => 'AP_INVOICE_DIST'
105980   , p_adr_type_code                => 'S'
105981   , p_component_type               => l_component_type
105982   , p_component_code               => l_component_code
105983   , p_component_type_code          => l_component_type_code
105984   , p_component_appl_id            => l_component_appl_id
105985   , p_amb_context_code             => l_amb_context_code
105986   , p_side                         => 'NA'
105987   );
105988 
105989 
105990    --
105991    --
105992    END IF;
105993    --
105994    -- Bug 4922099
105995    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105996           (NVL(l_enc_upg_option, 'N') = 'O')
105997         ) AND
105998         (l_bflow_method_code = 'PRIOR_ENTRY')
105999       )
106000    THEN
106001       IF
106002       --
106003       1 = 2
106007                                     (p_appli_s_name            => 'XLA'
106004       --
106005       THEN
106006       xla_accounting_err_pkg.build_message
106008                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106009                                     ,p_token_1                 => 'LINE_NUMBER'
106010                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
106011                                     ,p_token_2                 => 'LINE_TYPE_NAME'
106012                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
106013                                                                              l_component_type
106014                                                                             ,l_component_code
106015                                                                             ,l_component_type_code
106016                                                                             ,l_component_appl_id
106017                                                                             ,l_amb_context_code
106018                                                                             ,l_entity_code
106019                                                                             ,l_event_class_code
106020                                                                            )
106021                                     ,p_token_3                 => 'OWNER'
106022                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
106023                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
106024                                                                           ,p_lookup_code    => l_component_type_code
106025                                                                          )
106026                                     ,p_token_4                 => 'PRODUCT_NAME'
106027                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106028                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106029                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106030                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106031                                     ,p_ae_header_id            =>  NULL
106032                                        );
106033 
106034         IF (C_LEVEL_ERROR>= g_log_level) THEN
106035                  trace
106036                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106037                       ,p_level    => C_LEVEL_ERROR
106038                       ,p_module   => l_log_module);
106039         END IF;
106040       END IF;
106041    END IF;
106042    --
106043    --
106044    ------------------------------------------------------------------------------------------------
106045    -- 4219869 Business Flow
106046    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106047    -- Prior Entry.  Currently, the following code is always generated.
106048    ------------------------------------------------------------------------------------------------
106049    XLA_AE_LINES_PKG.ValidateCurrentLine;
106050 
106051    ------------------------------------------------------------------------------------
106052    -- 4219869 Business Flow
106053    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106054    ------------------------------------------------------------------------------------
106055    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106056 
106057    ----------------------------------------------------------------------------------
106058    -- 4219869 Business Flow
106059    -- Update journal entry status -- Need to generate this within IF <condition>
106060    ----------------------------------------------------------------------------------
106061    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106062          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106063          ,p_balance_type_code => l_balance_type_code
106064          );
106065 
106066    -------------------------------------------------------------------------------------------
106067    -- 4262811 - Generate the Accrual Reversal lines
106068    -------------------------------------------------------------------------------------------
106069    BEGIN
106070       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106071                               (g_array_event(p_event_id).array_value_num('header_index'));
106072       IF l_acc_rev_flag IS NULL THEN
106073          l_acc_rev_flag := 'N';
106074       END IF;
106075    EXCEPTION
106076       WHEN OTHERS THEN
106077          l_acc_rev_flag := 'N';
106078    END;
106079    --
106080    IF (l_acc_rev_flag = 'Y') THEN
106081 
106082        -- 4645092  ------------------------------------------------------------------------------
106083        -- To allow MPA report to determine if it should generate report process
106084        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106085        ------------------------------------------------------------------------------------------
106086 
106087        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106088        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106089    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
106090    -- call ADRs
106091    -- Bug 4922099
106092    --
106093    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106094         (NVL(l_actual_upg_option, 'N') = 'O') OR
106098    NULL;
106095         (NVL(l_enc_upg_option, 'N') = 'O')
106096       )
106097    THEN
106099    --
106100    --
106101    
106102   l_ccid := AcctDerRule_26(
106103            p_application_id           => p_application_id
106104          , p_ae_header_id             => l_ae_header_id 
106105 , p_source_17 => p_source_17
106106          , x_transaction_coa_id       => l_adr_transaction_coa_id
106107          , x_accounting_coa_id        => l_adr_accounting_coa_id
106108          , x_value_type_code          => l_adr_value_type_code
106109          , p_side                     => 'NA'
106110    );
106111 
106112    xla_ae_lines_pkg.set_ccid(
106113     p_code_combination_id          => l_ccid
106114   , p_value_type_code              => l_adr_value_type_code
106115   , p_transaction_coa_id           => l_adr_transaction_coa_id
106116   , p_accounting_coa_id            => l_adr_accounting_coa_id
106117   , p_adr_code                     => 'AP_INVOICE_DIST'
106118   , p_adr_type_code                => 'S'
106119   , p_component_type               => l_component_type
106120   , p_component_code               => l_component_code
106121   , p_component_type_code          => l_component_type_code
106122   , p_component_appl_id            => l_component_appl_id
106123   , p_amb_context_code             => l_amb_context_code
106124   , p_side                         => 'NA'
106125   );
106126 
106127 
106128    --
106129    --
106130    END IF;
106131 
106132        --
106133        -- Update the line information that should be overwritten
106134        --
106135        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106136                                          p_header_num   => 1);
106137        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
106138 
106139        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106140 
106141        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
106142           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
106143        END IF;
106144 
106145       --
106146       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
106147       --
106148       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
106149           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
106150       ELSE
106151           ---------------------------------------------------------------------------------------------------
106152           -- 4262811a Switch Sign
106153           ---------------------------------------------------------------------------------------------------
106154           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
106155           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106156                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106157           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106158                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106159           -- 5132302
106160           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
106161                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106162 
106163       END IF;
106164 
106165       -- 4955764
106166       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106167       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
106168 
106169 
106170       XLA_AE_LINES_PKG.ValidateCurrentLine;
106171       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106172 
106173       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106174                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
106175                ,p_balance_type_code => l_balance_type_code);
106176 
106177    END IF;
106178 
106179    -----------------------------------------------------------------------------------------
106180    -- 4262811 Multiperiod Accounting
106181    -----------------------------------------------------------------------------------------
106182      -- No MPA option is assigned.
106183 
106184 
106185 END IF;
106186 END IF;
106187 --
106188 
106189 --
106190 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106191    trace
106192       (p_msg      => 'END of AcctLineType_185'
106193       ,p_level    => C_LEVEL_PROCEDURE
106194       ,p_module   => l_log_module);
106195 END IF;
106196 --
106197 EXCEPTION
106198   WHEN xla_exceptions_pkg.application_exception THEN
106199       RAISE;
106200   WHEN OTHERS THEN
106201        xla_exceptions_pkg.raise_message
106202            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_185');
106203 END AcctLineType_185;
106204 --
106205 
106206 ---------------------------------------
106207 --
106208 -- PRIVATE FUNCTION
106209 --         AcctLineType_186
106210 --
106211 ---------------------------------------
106212 PROCEDURE AcctLineType_186 (
106213   p_application_id        IN NUMBER
106214  ,p_event_id              IN NUMBER
106215  ,p_calculate_acctd_flag  IN VARCHAR2
106216  ,p_calculate_g_l_flag    IN VARCHAR2
106217  ,p_actual_flag           IN OUT VARCHAR2
106218  ,p_balance_type_code     OUT VARCHAR2
106222  , p_source_9            IN NUMBER
106219  ,p_gain_or_loss_ref      OUT VARCHAR2
106220  
106221 --Payment Distribution (Payment Rate) Ledger Amount
106223 --Invoice Distribution Type
106224  , p_source_20            IN VARCHAR2
106225  , p_source_20_meaning    IN VARCHAR2
106226 --When to Account for Payment Option
106227  , p_source_38            IN VARCHAR2
106228 --Payment Distribution Type
106229  , p_source_39            IN VARCHAR2
106230  , p_source_39_meaning    IN VARCHAR2
106231 --Accounting Reversal Indicator
106232  , p_source_40            IN VARCHAR2
106233 --Payment Distribution Amount
106234  , p_source_41            IN NUMBER
106235 --Business Flow Accounts Payable Application Identifier
106236  , p_source_42            IN NUMBER
106237 --Payment Distribution Identifier
106238  , p_source_47            IN NUMBER
106239 --Distribution Link Type
106240  , p_source_48            IN VARCHAR2
106241 --Payment Currency Code
106242  , p_source_49            IN VARCHAR2
106243 --Override Accounted Amount Indicator
106244  , p_source_53            IN VARCHAR2
106245  , p_source_53_meaning    IN VARCHAR2
106246 --Third Party Type
106247  , p_source_56            IN VARCHAR2
106248 --Payment Distribution Reversed Identifier
106249  , p_source_57            IN NUMBER
106250 --Invoice Distribution Tax Line Identifier
106251  , p_source_58            IN NUMBER
106252 --Invoice Distribution Summary Tax Line Identifier
106253  , p_source_59            IN NUMBER
106254 --Payment Type
106255  , p_source_60            IN VARCHAR2
106256  , p_source_60_meaning    IN VARCHAR2
106257 --Business Flow Invoice Distribution Type
106258  , p_source_62            IN VARCHAR2
106259 --Business Flow Invoice Entity Code
106260  , p_source_63            IN VARCHAR2
106261 --Business Flow Invoice Distribution Identifier
106262  , p_source_64            IN NUMBER
106263 --Business Flow Invoice Identifier
106264  , p_source_65            IN NUMBER
106265 --Invoice Distribution Tax Distribution Identifier from Tax
106266  , p_source_66            IN NUMBER
106267 --Purchasing Encumbrance Option
106268  , p_source_102            IN VARCHAR2
106269  , p_source_102_meaning    IN VARCHAR2
106270 --Invoice Encumbered Option
106271  , p_source_104            IN VARCHAR2
106272  , p_source_104_meaning    IN VARCHAR2
106273 )
106274 IS
106275 
106276 l_component_type              VARCHAR2(80);
106277 l_component_code              VARCHAR2(30);
106278 l_component_type_code         VARCHAR2(1);
106279 l_component_appl_id           INTEGER;
106280 l_amb_context_code            VARCHAR2(30);
106281 l_entity_code                 VARCHAR2(30);
106282 l_event_class_code            VARCHAR2(30);
106283 l_ae_header_id                NUMBER;
106284 l_event_type_code             VARCHAR2(30);
106285 l_line_definition_code        VARCHAR2(30);
106286 l_line_definition_owner_code  VARCHAR2(1);
106287 --
106288 -- adr variables
106289 l_segment                     VARCHAR2(30);
106290 l_ccid                        NUMBER;
106291 l_adr_transaction_coa_id      NUMBER;
106292 l_adr_accounting_coa_id       NUMBER;
106293 l_adr_flexfield_segment_code  VARCHAR2(30);
106294 l_adr_flex_value_set_id       NUMBER;
106295 l_adr_value_type_code         VARCHAR2(30);
106296 l_adr_value_combination_id    NUMBER;
106297 l_adr_value_segment_code      VARCHAR2(30);
106298 
106299 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
106300 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
106301 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
106302 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
106303 
106304 -- 4262811 Variables ------------------------------------------------------------------------------------------
106305 l_entered_amt_idx             NUMBER;
106306 l_accted_amt_idx              NUMBER;
106307 l_acc_rev_flag                VARCHAR2(1);
106308 l_accrual_line_num            NUMBER;
106309 l_tmp_amt                     NUMBER;
106310 l_acc_rev_natural_side_code   VARCHAR2(1);
106311 
106312 l_num_entries                 NUMBER;
106313 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
106314 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
106315 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
106316 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
106317 l_recog_line_1                NUMBER;
106318 l_recog_line_2                NUMBER;
106319 
106320 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
106321 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
106322 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
106323 
106324 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
106325 
106326 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
106327 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
106328 
106329 ---------------------------------------------------------------------------------------------------------------
106330 
106331 
106332 --
106333 -- bulk performance
106334 --
106335 l_balance_type_code           VARCHAR2(1);
106336 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
106337 l_log_module                  VARCHAR2(240);
106338 
106339 --
106340 -- Upgrade strategy
106341 --
106342 l_actual_upg_option           VARCHAR2(1);
106346 BEGIN
106343 l_enc_upg_option           VARCHAR2(1);
106344 
106345 --
106347 --
106348 IF g_log_enabled THEN
106349       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_186';
106350 END IF;
106351 --
106352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106353 
106354       trace
106355          (p_msg      => 'BEGIN of AcctLineType_186'
106356          ,p_level    => C_LEVEL_PROCEDURE
106357          ,p_module   => l_log_module);
106358 
106359 END IF;
106360 --
106361 l_component_type             := 'AMB_JLT';
106362 l_component_code             := 'AP_TAX_INV_PRICE_VAR_REF_ENC';
106363 l_component_type_code        := 'S';
106364 l_component_appl_id          :=  200;
106365 l_amb_context_code           := 'DEFAULT';
106366 l_entity_code                := 'AP_PAYMENTS';
106367 l_event_class_code           := 'REFUNDS';
106368 l_event_type_code            := 'REFUNDS_ALL';
106369 l_line_definition_owner_code := 'S';
106370 l_line_definition_code       := 'ENC_REFUNDS_ALL';
106371 --
106372 l_balance_type_code          := 'E';
106373 l_segment                     := NULL;
106374 l_ccid                        := NULL;
106375 l_adr_transaction_coa_id      := NULL;
106376 l_adr_accounting_coa_id       := NULL;
106377 l_adr_flexfield_segment_code  := NULL;
106378 l_adr_flex_value_set_id       := NULL;
106379 l_adr_value_type_code         := NULL;
106380 l_adr_value_combination_id    := NULL;
106381 l_adr_value_segment_code      := NULL;
106382 
106383 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
106384 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
106385 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
106386 l_budgetary_control_flag     := 'N';
106387 
106388 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
106389 l_bflow_applied_to_amt       := NULL; -- 5132302
106390 l_entered_amt_idx            := NULL;          -- 4262811
106391 l_accted_amt_idx             := NULL;          -- 4262811
106392 l_acc_rev_flag               := NULL;          -- 4262811
106393 l_accrual_line_num           := NULL;          -- 4262811
106394 l_tmp_amt                    := NULL;          -- 4262811
106395 --
106396  
106397 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
106398     l_balance_type_code <> 'B' THEN
106399 IF NVL(p_source_38,'
106400 ') <>  'CLEAR_CLEAR' AND 
106401 NVL(p_source_20,'
106402 ') =  'TIPV' AND 
106403 (NVL(p_source_39,'
106404 ') =  'CASH' OR 
106405 NVL(p_source_39,'
106406 ') =  'DISCOUNT') AND 
106407 NVL(p_source_60,'
106408 ') =  'R' AND 
106409 NVL(p_source_102,'
106410 ') =  'Y' AND 
106411 NVL(p_source_104,'
106412 ') =  'Y'
106413  THEN 
106414 
106415    --
106416    XLA_AE_LINES_PKG.SetNewLine;
106417 
106418    p_balance_type_code          := l_balance_type_code;
106419    -- set the flag so later we will know whether the gain loss line needs to be created
106420    
106421    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
106422      p_actual_flag :='A';
106423    END IF;
106424 
106425    --
106426    -- bulk performance
106427    --
106428    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
106429                                       p_header_num   => 0); -- 4262811
106430    --
106431    -- set accounting line options
106432    --
106433    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
106434            p_natural_side_code          => 'D'
106435          , p_gain_or_loss_flag          => 'N'
106436          , p_gl_transfer_mode_code      => 'S'
106437          , p_acct_entry_type_code       => 'E'
106438          , p_switch_side_flag           => 'Y'
106439          , p_merge_duplicate_code       => 'A'
106440          );
106441    --
106442    l_acc_rev_natural_side_code := 'C';  -- 4262811
106443    -- 
106444    --
106445    -- set accounting line type info
106446    --
106447    xla_ae_lines_pkg.SetAcctLineType
106448       (p_component_type             => l_component_type
106449       ,p_event_type_code            => l_event_type_code
106450       ,p_line_definition_owner_code => l_line_definition_owner_code
106451       ,p_line_definition_code       => l_line_definition_code
106452       ,p_accounting_line_code       => l_component_code
106453       ,p_accounting_line_type_code  => l_component_type_code
106454       ,p_accounting_line_appl_id    => l_component_appl_id
106455       ,p_amb_context_code           => l_amb_context_code
106456       ,p_entity_code                => l_entity_code
106457       ,p_event_class_code           => l_event_class_code);
106458    --
106459    -- set accounting class
106460    --
106461    xla_ae_lines_pkg.SetAcctClass(
106462            p_accounting_class_code  => 'TIPV'
106463          , p_ae_header_id           => l_ae_header_id
106464          );
106465 
106466    --
106467    -- set rounding class
106468    --
106469    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
106470                       'TIPV';
106471 
106472    --
106473    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
106474    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
106475    --
106476    -- bulk performance
106477    --
106478    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
106479 
106483    -- 4955764
106480    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
106481       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
106482 
106484    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106485       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
106486 
106487    -- 4458381 Public Sector Enh
106488    
106489    --
106490    -- set accounting attributes for the line type
106491    --
106492    l_entered_amt_idx := 9;
106493    l_accted_amt_idx  := 11;
106494    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
106495    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
106496    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
106497    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
106498    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
106499    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
106500    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
106501    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
106502    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
106503    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
106504    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
106505    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
106506    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
106507    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
106508    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
106509    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
106510    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
106511    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
106512    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
106513    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
106514    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
106515    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
106516    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
106517    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
106518    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
106519    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
106520    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
106521    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
106522    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
106523    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
106524    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
106525    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
106526    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
106527    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
106528    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
106529    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
106530    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
106531 
106532    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
106533    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
106534 
106535    ---------------------------------------------------------------------------------------------------------------
106536    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
106537    ---------------------------------------------------------------------------------------------------------------
106538    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
106539 
106540    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106541    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106542 
106543    IF xla_accounting_cache_pkg.GetValueChar
106544          (p_source_code         => 'LEDGER_CATEGORY_CODE'
106545          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
106546    AND l_bflow_method_code = 'PRIOR_ENTRY'
106547 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
106548    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
106549          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
106550        )
106551    THEN
106552          xla_ae_lines_pkg.BflowUpgEntry
106553            (p_business_method_code    => l_bflow_method_code
106554            ,p_business_class_code     => l_bflow_class_code
106555            ,p_balance_type            => l_balance_type_code);
106556    ELSE
106557       NULL;
106558 XLA_AE_LINES_PKG.business_flow_validation(
106559                                 p_business_method_code     => l_bflow_method_code
106560                                ,p_business_class_code      => l_bflow_class_code
106561                                ,p_inherit_description_flag => l_inherit_desc_flag);
106562    END IF;
106563 
106564    --
106565    -- call analytical criteria
106566    --
106567    -- Inherited Analytical Criteria for business flow method of Prior Entry.
106568    --
106569    -- call description
106570    --
106571    -- No description or it is inherited.
106572    --
106573    -- call ADRs
106574    -- Bug 4922099
106575    --
106576    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106577         (NVL(l_actual_upg_option, 'N') = 'O') OR
106581    NULL;
106578         (NVL(l_enc_upg_option, 'N') = 'O')
106579       )
106580    THEN
106582    --
106583    --
106584    
106585    --
106586    --
106587    END IF;
106588    --
106589    -- Bug 4922099
106590    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
106591           (NVL(l_enc_upg_option, 'N') = 'O')
106592         ) AND
106593         (l_bflow_method_code = 'PRIOR_ENTRY')
106594       )
106595    THEN
106596       IF
106597       --
106598       1 = 1
106599       --
106600       THEN
106601       xla_accounting_err_pkg.build_message
106602                                     (p_appli_s_name            => 'XLA'
106603                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106604                                     ,p_token_1                 => 'LINE_NUMBER'
106605                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
106606                                     ,p_token_2                 => 'LINE_TYPE_NAME'
106607                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
106608                                                                              l_component_type
106609                                                                             ,l_component_code
106610                                                                             ,l_component_type_code
106611                                                                             ,l_component_appl_id
106612                                                                             ,l_amb_context_code
106613                                                                             ,l_entity_code
106614                                                                             ,l_event_class_code
106615                                                                            )
106616                                     ,p_token_3                 => 'OWNER'
106617                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
106618                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
106619                                                                           ,p_lookup_code    => l_component_type_code
106620                                                                          )
106621                                     ,p_token_4                 => 'PRODUCT_NAME'
106622                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106623                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106624                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106625                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106626                                     ,p_ae_header_id            =>  NULL
106627                                        );
106628 
106629         IF (C_LEVEL_ERROR>= g_log_level) THEN
106630                  trace
106631                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106632                       ,p_level    => C_LEVEL_ERROR
106633                       ,p_module   => l_log_module);
106634         END IF;
106635       END IF;
106636    END IF;
106637    --
106638    --
106639    ------------------------------------------------------------------------------------------------
106640    -- 4219869 Business Flow
106641    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106642    -- Prior Entry.  Currently, the following code is always generated.
106643    ------------------------------------------------------------------------------------------------
106644    -- No ValidateCurrentLine for business flow method of Prior Entry
106645 
106646    ------------------------------------------------------------------------------------
106647    -- 4219869 Business Flow
106648    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106649    ------------------------------------------------------------------------------------
106650    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106651 
106652    ----------------------------------------------------------------------------------
106653    -- 4219869 Business Flow
106654    -- Update journal entry status -- Need to generate this within IF <condition>
106655    ----------------------------------------------------------------------------------
106656    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106657          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106658          ,p_balance_type_code => l_balance_type_code
106659          );
106660 
106661    -------------------------------------------------------------------------------------------
106662    -- 4262811 - Generate the Accrual Reversal lines
106663    -------------------------------------------------------------------------------------------
106664    BEGIN
106665       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106666                               (g_array_event(p_event_id).array_value_num('header_index'));
106667       IF l_acc_rev_flag IS NULL THEN
106668          l_acc_rev_flag := 'N';
106669       END IF;
106670    EXCEPTION
106671       WHEN OTHERS THEN
106672          l_acc_rev_flag := 'N';
106673    END;
106674    --
106675    IF (l_acc_rev_flag = 'Y') THEN
106676 
106677        -- 4645092  ------------------------------------------------------------------------------
106678        -- To allow MPA report to determine if it should generate report process
106682        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106679        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106680        ------------------------------------------------------------------------------------------
106681 
106683        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106684    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
106685    -- call ADRs
106686    -- Bug 4922099
106687    --
106688    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106689         (NVL(l_actual_upg_option, 'N') = 'O') OR
106690         (NVL(l_enc_upg_option, 'N') = 'O')
106691       )
106692    THEN
106693    NULL;
106694    --
106695    --
106696    
106697    --
106698    --
106699    END IF;
106700 
106701        --
106702        -- Update the line information that should be overwritten
106703        --
106704        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106705                                          p_header_num   => 1);
106706        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
106707 
106708        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106709 
106710        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
106711           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
106712        END IF;
106713 
106714       --
106715       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
106716       --
106717       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
106718           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
106719       ELSE
106720           ---------------------------------------------------------------------------------------------------
106721           -- 4262811a Switch Sign
106722           ---------------------------------------------------------------------------------------------------
106723           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
106724           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106725                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106726           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106727                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106728           -- 5132302
106729           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
106730                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106731 
106732       END IF;
106733 
106734       -- 4955764
106735       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106736       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
106737 
106738 
106739       XLA_AE_LINES_PKG.ValidateCurrentLine;
106740       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106741 
106742       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106743                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
106744                ,p_balance_type_code => l_balance_type_code);
106745 
106746    END IF;
106747 
106748    -----------------------------------------------------------------------------------------
106749    -- 4262811 Multiperiod Accounting
106750    -----------------------------------------------------------------------------------------
106751      -- No MPA option is assigned.
106752 
106753 
106754 END IF;
106755 END IF;
106756 --
106757 
106758 --
106759 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106760    trace
106761       (p_msg      => 'END of AcctLineType_186'
106762       ,p_level    => C_LEVEL_PROCEDURE
106763       ,p_module   => l_log_module);
106764 END IF;
106765 --
106766 EXCEPTION
106767   WHEN xla_exceptions_pkg.application_exception THEN
106768       RAISE;
106769   WHEN OTHERS THEN
106770        xla_exceptions_pkg.raise_message
106771            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_186');
106772 END AcctLineType_186;
106773 --
106774 
106775 ---------------------------------------
106776 --
106777 -- PRIVATE FUNCTION
106778 --         AcctLineType_187
106779 --
106780 ---------------------------------------
106781 PROCEDURE AcctLineType_187 (
106782   p_application_id        IN NUMBER
106783  ,p_event_id              IN NUMBER
106784  ,p_calculate_acctd_flag  IN VARCHAR2
106785  ,p_calculate_g_l_flag    IN VARCHAR2
106786  ,p_actual_flag           IN OUT VARCHAR2
106787  ,p_balance_type_code     OUT VARCHAR2
106788  ,p_gain_or_loss_ref      OUT VARCHAR2
106789  
106790 --Invoice Distribution Type
106791  , p_source_20            IN VARCHAR2
106792  , p_source_20_meaning    IN VARCHAR2
106793 --When to Account for Payment Option
106794  , p_source_38            IN VARCHAR2
106795 --Payment Distribution Type
106796  , p_source_39            IN VARCHAR2
106797  , p_source_39_meaning    IN VARCHAR2
106798 --Accounting Reversal Indicator
106799  , p_source_40            IN VARCHAR2
106800 --Payment Distribution Amount
106801  , p_source_41            IN NUMBER
106802 --Business Flow Accounts Payable Application Identifier
106803  , p_source_42            IN NUMBER
106804 --Payment Distribution Identifier
106808 --Payment Currency Code
106805  , p_source_47            IN NUMBER
106806 --Distribution Link Type
106807  , p_source_48            IN VARCHAR2
106809  , p_source_49            IN VARCHAR2
106810 --Override Accounted Amount Indicator
106811  , p_source_53            IN VARCHAR2
106812  , p_source_53_meaning    IN VARCHAR2
106813 --Third Party Type
106814  , p_source_56            IN VARCHAR2
106815 --Payment Distribution Reversed Identifier
106816  , p_source_57            IN NUMBER
106817 --Invoice Distribution Tax Line Identifier
106818  , p_source_58            IN NUMBER
106819 --Invoice Distribution Summary Tax Line Identifier
106820  , p_source_59            IN NUMBER
106821 --Business Flow Invoice Distribution Type
106822  , p_source_62            IN VARCHAR2
106823 --Business Flow Invoice Entity Code
106824  , p_source_63            IN VARCHAR2
106825 --Business Flow Invoice Distribution Identifier
106826  , p_source_64            IN NUMBER
106827 --Business Flow Invoice Identifier
106828  , p_source_65            IN NUMBER
106829 --Accrue on Receipt Option
106830  , p_source_100            IN VARCHAR2
106831  , p_source_100_meaning    IN VARCHAR2
106832 --Purchasing Encumbrance Option
106833  , p_source_102            IN VARCHAR2
106834  , p_source_102_meaning    IN VARCHAR2
106835 --Invoice Encumbered Option
106836  , p_source_104            IN VARCHAR2
106837  , p_source_104_meaning    IN VARCHAR2
106838 --Prorated Amount of Quantity Variance in Ledger Currency for Cash Basis
106839  , p_source_142            IN NUMBER
106840 --Prorated Amount of Quantity Variance for Cash Basis
106841  , p_source_143            IN NUMBER
106842 )
106843 IS
106844 
106845 l_component_type              VARCHAR2(80);
106846 l_component_code              VARCHAR2(30);
106847 l_component_type_code         VARCHAR2(1);
106848 l_component_appl_id           INTEGER;
106849 l_amb_context_code            VARCHAR2(30);
106850 l_entity_code                 VARCHAR2(30);
106851 l_event_class_code            VARCHAR2(30);
106852 l_ae_header_id                NUMBER;
106853 l_event_type_code             VARCHAR2(30);
106854 l_line_definition_code        VARCHAR2(30);
106855 l_line_definition_owner_code  VARCHAR2(1);
106856 --
106857 -- adr variables
106858 l_segment                     VARCHAR2(30);
106859 l_ccid                        NUMBER;
106860 l_adr_transaction_coa_id      NUMBER;
106861 l_adr_accounting_coa_id       NUMBER;
106862 l_adr_flexfield_segment_code  VARCHAR2(30);
106863 l_adr_flex_value_set_id       NUMBER;
106864 l_adr_value_type_code         VARCHAR2(30);
106865 l_adr_value_combination_id    NUMBER;
106866 l_adr_value_segment_code      VARCHAR2(30);
106867 
106868 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
106869 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
106870 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
106871 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
106872 
106873 -- 4262811 Variables ------------------------------------------------------------------------------------------
106874 l_entered_amt_idx             NUMBER;
106875 l_accted_amt_idx              NUMBER;
106876 l_acc_rev_flag                VARCHAR2(1);
106877 l_accrual_line_num            NUMBER;
106878 l_tmp_amt                     NUMBER;
106879 l_acc_rev_natural_side_code   VARCHAR2(1);
106880 
106881 l_num_entries                 NUMBER;
106882 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
106883 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
106884 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
106885 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
106886 l_recog_line_1                NUMBER;
106887 l_recog_line_2                NUMBER;
106888 
106889 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
106890 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
106891 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
106892 
106893 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
106894 
106895 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
106896 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
106897 
106898 ---------------------------------------------------------------------------------------------------------------
106899 
106900 
106901 --
106902 -- bulk performance
106903 --
106904 l_balance_type_code           VARCHAR2(1);
106905 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
106906 l_log_module                  VARCHAR2(240);
106907 
106908 --
106909 -- Upgrade strategy
106910 --
106911 l_actual_upg_option           VARCHAR2(1);
106912 l_enc_upg_option           VARCHAR2(1);
106913 
106914 --
106915 BEGIN
106916 --
106917 IF g_log_enabled THEN
106918       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_187';
106919 END IF;
106920 --
106921 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106922 
106923       trace
106924          (p_msg      => 'BEGIN of AcctLineType_187'
106925          ,p_level    => C_LEVEL_PROCEDURE
106926          ,p_module   => l_log_module);
106927 
106928 END IF;
106929 --
106930 l_component_type             := 'AMB_JLT';
106931 l_component_code             := 'AP_TAX_QTY_VARIANCE_CLR_ENC';
106932 l_component_type_code        := 'S';
106933 l_component_appl_id          :=  200;
106937 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
106934 l_amb_context_code           := 'DEFAULT';
106935 l_entity_code                := 'AP_PAYMENTS';
106936 l_event_class_code           := 'RECONCILED PAYMENTS';
106938 l_line_definition_owner_code := 'S';
106939 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
106940 --
106941 l_balance_type_code          := 'E';
106942 l_segment                     := NULL;
106943 l_ccid                        := NULL;
106944 l_adr_transaction_coa_id      := NULL;
106945 l_adr_accounting_coa_id       := NULL;
106946 l_adr_flexfield_segment_code  := NULL;
106947 l_adr_flex_value_set_id       := NULL;
106948 l_adr_value_type_code         := NULL;
106949 l_adr_value_combination_id    := NULL;
106950 l_adr_value_segment_code      := NULL;
106951 
106952 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
106953 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
106954 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
106955 l_budgetary_control_flag     := 'N';
106956 
106957 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
106958 l_bflow_applied_to_amt       := NULL; -- 5132302
106959 l_entered_amt_idx            := NULL;          -- 4262811
106960 l_accted_amt_idx             := NULL;          -- 4262811
106961 l_acc_rev_flag               := NULL;          -- 4262811
106962 l_accrual_line_num           := NULL;          -- 4262811
106963 l_tmp_amt                    := NULL;          -- 4262811
106964 --
106965  
106966 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
106967     l_balance_type_code <> 'B' THEN
106968 IF NVL(p_source_38,'
106969 ') =  'CLEAR_CLEAR' AND 
106970 NVL(p_source_20,'
106971 ') =  'NONREC_TAX' AND 
106972 (NVL(p_source_39,'
106973 ') =  'CASH' OR 
106974 NVL(p_source_39,'
106975 ') =  'DISCOUNT') AND 
106976 NVL(p_source_102,'
106977 ') =  'Y' AND 
106978 NVL(p_source_100,'
106979 ') <>  'Y' AND 
106980 p_source_142 IS NOT NULL AND 
106981 NVL(p_source_104,'
106982 ') =  'Y'
106983  THEN 
106984 
106985    --
106986    XLA_AE_LINES_PKG.SetNewLine;
106987 
106988    p_balance_type_code          := l_balance_type_code;
106989    -- set the flag so later we will know whether the gain loss line needs to be created
106990    
106991    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
106992      p_actual_flag :='A';
106993    END IF;
106994 
106995    --
106996    -- bulk performance
106997    --
106998    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
106999                                       p_header_num   => 0); -- 4262811
107000    --
107001    -- set accounting line options
107002    --
107003    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
107004            p_natural_side_code          => 'C'
107005          , p_gain_or_loss_flag          => 'N'
107006          , p_gl_transfer_mode_code      => 'S'
107007          , p_acct_entry_type_code       => 'E'
107008          , p_switch_side_flag           => 'Y'
107009          , p_merge_duplicate_code       => 'A'
107010          );
107011    --
107012    l_acc_rev_natural_side_code := 'D';  -- 4262811
107013    -- 
107014    --
107015    -- set accounting line type info
107016    --
107017    xla_ae_lines_pkg.SetAcctLineType
107018       (p_component_type             => l_component_type
107019       ,p_event_type_code            => l_event_type_code
107020       ,p_line_definition_owner_code => l_line_definition_owner_code
107021       ,p_line_definition_code       => l_line_definition_code
107022       ,p_accounting_line_code       => l_component_code
107023       ,p_accounting_line_type_code  => l_component_type_code
107024       ,p_accounting_line_appl_id    => l_component_appl_id
107025       ,p_amb_context_code           => l_amb_context_code
107026       ,p_entity_code                => l_entity_code
107027       ,p_event_class_code           => l_event_class_code);
107028    --
107029    -- set accounting class
107030    --
107031    xla_ae_lines_pkg.SetAcctClass(
107032            p_accounting_class_code  => 'TQV'
107033          , p_ae_header_id           => l_ae_header_id
107034          );
107035 
107036    --
107037    -- set rounding class
107038    --
107039    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
107040                       'TQV';
107041 
107042    --
107043    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
107044    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
107045    --
107046    -- bulk performance
107047    --
107048    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
107049 
107050    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
107051       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
107052 
107053    -- 4955764
107054    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107055       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
107056 
107057    -- 4458381 Public Sector Enh
107058    
107059    --
107060    -- set accounting attributes for the line type
107061    --
107062    l_entered_amt_idx := 10;
107063    l_accted_amt_idx  := 12;
107064    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
107068    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
107065    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
107066    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
107067    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
107069    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
107070    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
107071    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
107072    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
107073    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
107074    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
107075    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
107076    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
107077    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
107078    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
107079    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
107080    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
107081    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
107082    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
107083    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
107084    l_rec_acct_attrs.array_num_value(10)  := p_source_143;
107085    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
107086    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
107087    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
107088    l_rec_acct_attrs.array_num_value(12)  := p_source_142;
107089    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
107090    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
107091    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
107092    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
107093    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
107094    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
107095    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
107096    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
107097    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
107098    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
107099    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
107100    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
107101    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
107102    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
107103 
107104    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
107105    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
107106 
107107    ---------------------------------------------------------------------------------------------------------------
107108    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
107109    ---------------------------------------------------------------------------------------------------------------
107110    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
107111 
107112    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107113    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107114 
107115    IF xla_accounting_cache_pkg.GetValueChar
107116          (p_source_code         => 'LEDGER_CATEGORY_CODE'
107117          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
107118    AND l_bflow_method_code = 'PRIOR_ENTRY'
107119 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
107120    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
107121          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
107122        )
107123    THEN
107124          xla_ae_lines_pkg.BflowUpgEntry
107125            (p_business_method_code    => l_bflow_method_code
107126            ,p_business_class_code     => l_bflow_class_code
107127            ,p_balance_type            => l_balance_type_code);
107128    ELSE
107129       NULL;
107130 XLA_AE_LINES_PKG.business_flow_validation(
107131                                 p_business_method_code     => l_bflow_method_code
107132                                ,p_business_class_code      => l_bflow_class_code
107133                                ,p_inherit_description_flag => l_inherit_desc_flag);
107134    END IF;
107135 
107136    --
107137    -- call analytical criteria
107138    --
107139    -- Inherited Analytical Criteria for business flow method of Prior Entry.
107140    --
107141    -- call description
107142    --
107143    -- No description or it is inherited.
107144    --
107145    -- call ADRs
107146    -- Bug 4922099
107147    --
107148    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107149         (NVL(l_actual_upg_option, 'N') = 'O') OR
107150         (NVL(l_enc_upg_option, 'N') = 'O')
107151       )
107152    THEN
107153    NULL;
107154    --
107155    --
107156    
107157    --
107158    --
107159    END IF;
107160    --
107161    -- Bug 4922099
107162    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
107163           (NVL(l_enc_upg_option, 'N') = 'O')
107164         ) AND
107165         (l_bflow_method_code = 'PRIOR_ENTRY')
107166       )
107167    THEN
107168       IF
107169       --
107170       1 = 1
107171       --
107172       THEN
107176                                     ,p_token_1                 => 'LINE_NUMBER'
107173       xla_accounting_err_pkg.build_message
107174                                     (p_appli_s_name            => 'XLA'
107175                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107177                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
107178                                     ,p_token_2                 => 'LINE_TYPE_NAME'
107179                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
107180                                                                              l_component_type
107181                                                                             ,l_component_code
107182                                                                             ,l_component_type_code
107183                                                                             ,l_component_appl_id
107184                                                                             ,l_amb_context_code
107185                                                                             ,l_entity_code
107186                                                                             ,l_event_class_code
107187                                                                            )
107188                                     ,p_token_3                 => 'OWNER'
107189                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
107190                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
107191                                                                           ,p_lookup_code    => l_component_type_code
107192                                                                          )
107193                                     ,p_token_4                 => 'PRODUCT_NAME'
107194                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
107195                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
107196                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
107197                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
107198                                     ,p_ae_header_id            =>  NULL
107199                                        );
107200 
107201         IF (C_LEVEL_ERROR>= g_log_level) THEN
107202                  trace
107203                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107204                       ,p_level    => C_LEVEL_ERROR
107205                       ,p_module   => l_log_module);
107206         END IF;
107207       END IF;
107208    END IF;
107209    --
107210    --
107211    ------------------------------------------------------------------------------------------------
107212    -- 4219869 Business Flow
107213    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
107214    -- Prior Entry.  Currently, the following code is always generated.
107215    ------------------------------------------------------------------------------------------------
107216    -- No ValidateCurrentLine for business flow method of Prior Entry
107217 
107218    ------------------------------------------------------------------------------------
107219    -- 4219869 Business Flow
107220    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
107221    ------------------------------------------------------------------------------------
107222    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107223 
107224    ----------------------------------------------------------------------------------
107225    -- 4219869 Business Flow
107226    -- Update journal entry status -- Need to generate this within IF <condition>
107227    ----------------------------------------------------------------------------------
107228    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107229          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
107230          ,p_balance_type_code => l_balance_type_code
107231          );
107232 
107233    -------------------------------------------------------------------------------------------
107234    -- 4262811 - Generate the Accrual Reversal lines
107235    -------------------------------------------------------------------------------------------
107236    BEGIN
107237       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
107238                               (g_array_event(p_event_id).array_value_num('header_index'));
107239       IF l_acc_rev_flag IS NULL THEN
107240          l_acc_rev_flag := 'N';
107241       END IF;
107242    EXCEPTION
107243       WHEN OTHERS THEN
107244          l_acc_rev_flag := 'N';
107245    END;
107246    --
107247    IF (l_acc_rev_flag = 'Y') THEN
107248 
107249        -- 4645092  ------------------------------------------------------------------------------
107250        -- To allow MPA report to determine if it should generate report process
107251        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
107252        ------------------------------------------------------------------------------------------
107253 
107254        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
107255        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
107256    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
107257    -- call ADRs
107258    -- Bug 4922099
107259    --
107260    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107261         (NVL(l_actual_upg_option, 'N') = 'O') OR
107265    NULL;
107262         (NVL(l_enc_upg_option, 'N') = 'O')
107263       )
107264    THEN
107266    --
107267    --
107268    
107269    --
107270    --
107271    END IF;
107272 
107273        --
107274        -- Update the line information that should be overwritten
107275        --
107276        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
107277                                          p_header_num   => 1);
107278        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
107279 
107280        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
107281 
107282        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
107283           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107284        END IF;
107285 
107286       --
107287       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107288       --
107289       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107290           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
107291       ELSE
107292           ---------------------------------------------------------------------------------------------------
107293           -- 4262811a Switch Sign
107294           ---------------------------------------------------------------------------------------------------
107295           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
107296           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107297                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107298           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107299                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107300           -- 5132302
107301           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107302                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107303 
107304       END IF;
107305 
107306       -- 4955764
107307       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107308       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107309 
107310 
107311       XLA_AE_LINES_PKG.ValidateCurrentLine;
107312       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107313 
107314       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107315                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107316                ,p_balance_type_code => l_balance_type_code);
107317 
107318    END IF;
107319 
107320    -----------------------------------------------------------------------------------------
107321    -- 4262811 Multiperiod Accounting
107322    -----------------------------------------------------------------------------------------
107323      -- No MPA option is assigned.
107324 
107325 
107326 END IF;
107327 END IF;
107328 --
107329 
107330 --
107331 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107332    trace
107333       (p_msg      => 'END of AcctLineType_187'
107334       ,p_level    => C_LEVEL_PROCEDURE
107335       ,p_module   => l_log_module);
107336 END IF;
107337 --
107338 EXCEPTION
107339   WHEN xla_exceptions_pkg.application_exception THEN
107340       RAISE;
107341   WHEN OTHERS THEN
107342        xla_exceptions_pkg.raise_message
107343            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_187');
107344 END AcctLineType_187;
107345 --
107346 
107347 ---------------------------------------
107348 --
107349 -- PRIVATE FUNCTION
107350 --         AcctLineType_188
107351 --
107352 ---------------------------------------
107353 PROCEDURE AcctLineType_188 (
107354   p_application_id        IN NUMBER
107355  ,p_event_id              IN NUMBER
107356  ,p_calculate_acctd_flag  IN VARCHAR2
107357  ,p_calculate_g_l_flag    IN VARCHAR2
107358  ,p_actual_flag           IN OUT VARCHAR2
107359  ,p_balance_type_code     OUT VARCHAR2
107360  ,p_gain_or_loss_ref      OUT VARCHAR2
107361  
107362 --Invoice Distribution Type
107363  , p_source_20            IN VARCHAR2
107364  , p_source_20_meaning    IN VARCHAR2
107365 --When to Account for Payment Option
107366  , p_source_38            IN VARCHAR2
107367 --Payment Distribution Type
107368  , p_source_39            IN VARCHAR2
107369  , p_source_39_meaning    IN VARCHAR2
107370 --Accounting Reversal Indicator
107371  , p_source_40            IN VARCHAR2
107372 --Business Flow Accounts Payable Application Identifier
107373  , p_source_42            IN NUMBER
107374 --Payment Distribution Identifier
107375  , p_source_47            IN NUMBER
107376 --Distribution Link Type
107377  , p_source_48            IN VARCHAR2
107378 --Payment Currency Code
107379  , p_source_49            IN VARCHAR2
107380 --Override Accounted Amount Indicator
107381  , p_source_53            IN VARCHAR2
107382  , p_source_53_meaning    IN VARCHAR2
107383 --Third Party Type
107384  , p_source_56            IN VARCHAR2
107385 --Payment Distribution Reversed Identifier
107386  , p_source_57            IN NUMBER
107387 --Invoice Distribution Tax Line Identifier
107388  , p_source_58            IN NUMBER
107389 --Invoice Distribution Summary Tax Line Identifier
107393  , p_source_60_meaning    IN VARCHAR2
107390  , p_source_59            IN NUMBER
107391 --Payment Type
107392  , p_source_60            IN VARCHAR2
107394 --Invoice Distribution Amount of the Payment Distribution
107395  , p_source_61            IN NUMBER
107396 --Business Flow Invoice Distribution Type
107397  , p_source_62            IN VARCHAR2
107398 --Business Flow Invoice Entity Code
107399  , p_source_63            IN VARCHAR2
107400 --Business Flow Invoice Distribution Identifier
107401  , p_source_64            IN NUMBER
107402 --Business Flow Invoice Identifier
107403  , p_source_65            IN NUMBER
107404 --Invoice Distribution Tax Distribution Identifier from Tax
107405  , p_source_66            IN NUMBER
107406 --Accrue on Receipt Option
107407  , p_source_100            IN VARCHAR2
107408  , p_source_100_meaning    IN VARCHAR2
107409 --Purchasing Encumbrance Option
107410  , p_source_102            IN VARCHAR2
107411  , p_source_102_meaning    IN VARCHAR2
107412 --Invoice Encumbered Option
107413  , p_source_104            IN VARCHAR2
107414  , p_source_104_meaning    IN VARCHAR2
107415 --Prorated Amount of Quantity Variance in Ledger Currency for Cash Basis
107416  , p_source_142            IN NUMBER
107417 --Prorated Amount of Quantity Variance for Cash Basis
107418  , p_source_143            IN NUMBER
107419 )
107420 IS
107421 
107422 l_component_type              VARCHAR2(80);
107423 l_component_code              VARCHAR2(30);
107424 l_component_type_code         VARCHAR2(1);
107425 l_component_appl_id           INTEGER;
107426 l_amb_context_code            VARCHAR2(30);
107427 l_entity_code                 VARCHAR2(30);
107428 l_event_class_code            VARCHAR2(30);
107429 l_ae_header_id                NUMBER;
107430 l_event_type_code             VARCHAR2(30);
107431 l_line_definition_code        VARCHAR2(30);
107432 l_line_definition_owner_code  VARCHAR2(1);
107433 --
107434 -- adr variables
107435 l_segment                     VARCHAR2(30);
107436 l_ccid                        NUMBER;
107437 l_adr_transaction_coa_id      NUMBER;
107438 l_adr_accounting_coa_id       NUMBER;
107439 l_adr_flexfield_segment_code  VARCHAR2(30);
107440 l_adr_flex_value_set_id       NUMBER;
107441 l_adr_value_type_code         VARCHAR2(30);
107442 l_adr_value_combination_id    NUMBER;
107443 l_adr_value_segment_code      VARCHAR2(30);
107444 
107445 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
107446 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
107447 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
107448 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
107449 
107450 -- 4262811 Variables ------------------------------------------------------------------------------------------
107451 l_entered_amt_idx             NUMBER;
107452 l_accted_amt_idx              NUMBER;
107453 l_acc_rev_flag                VARCHAR2(1);
107454 l_accrual_line_num            NUMBER;
107455 l_tmp_amt                     NUMBER;
107456 l_acc_rev_natural_side_code   VARCHAR2(1);
107457 
107458 l_num_entries                 NUMBER;
107459 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
107460 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
107461 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
107462 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
107463 l_recog_line_1                NUMBER;
107464 l_recog_line_2                NUMBER;
107465 
107466 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
107467 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
107468 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
107469 
107470 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
107471 
107472 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
107473 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
107474 
107475 ---------------------------------------------------------------------------------------------------------------
107476 
107477 
107478 --
107479 -- bulk performance
107480 --
107481 l_balance_type_code           VARCHAR2(1);
107482 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
107483 l_log_module                  VARCHAR2(240);
107484 
107485 --
107486 -- Upgrade strategy
107487 --
107488 l_actual_upg_option           VARCHAR2(1);
107489 l_enc_upg_option           VARCHAR2(1);
107490 
107491 --
107492 BEGIN
107493 --
107494 IF g_log_enabled THEN
107495       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_188';
107496 END IF;
107497 --
107498 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107499 
107500       trace
107501          (p_msg      => 'BEGIN of AcctLineType_188'
107502          ,p_level    => C_LEVEL_PROCEDURE
107503          ,p_module   => l_log_module);
107504 
107505 END IF;
107506 --
107507 l_component_type             := 'AMB_JLT';
107508 l_component_code             := 'AP_TAX_QTY_VARIANCE_PMT_ENC';
107509 l_component_type_code        := 'S';
107510 l_component_appl_id          :=  200;
107511 l_amb_context_code           := 'DEFAULT';
107512 l_entity_code                := 'AP_PAYMENTS';
107513 l_event_class_code           := 'PAYMENTS';
107514 l_event_type_code            := 'PAYMENTS_ALL';
107515 l_line_definition_owner_code := 'S';
107516 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
107517 --
107518 l_balance_type_code          := 'E';
107522 l_adr_accounting_coa_id       := NULL;
107519 l_segment                     := NULL;
107520 l_ccid                        := NULL;
107521 l_adr_transaction_coa_id      := NULL;
107523 l_adr_flexfield_segment_code  := NULL;
107524 l_adr_flex_value_set_id       := NULL;
107525 l_adr_value_type_code         := NULL;
107526 l_adr_value_combination_id    := NULL;
107527 l_adr_value_segment_code      := NULL;
107528 
107529 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
107530 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
107531 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
107532 l_budgetary_control_flag     := 'N';
107533 
107534 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
107535 l_bflow_applied_to_amt       := NULL; -- 5132302
107536 l_entered_amt_idx            := NULL;          -- 4262811
107537 l_accted_amt_idx             := NULL;          -- 4262811
107538 l_acc_rev_flag               := NULL;          -- 4262811
107539 l_accrual_line_num           := NULL;          -- 4262811
107540 l_tmp_amt                    := NULL;          -- 4262811
107541 --
107542  
107543 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
107544     l_balance_type_code <> 'B' THEN
107545 IF NVL(p_source_38,'
107546 ') <>  'CLEAR_CLEAR' AND 
107547 NVL(p_source_20,'
107548 ') =  'NONREC_TAX' AND 
107549 (NVL(p_source_39,'
107550 ') =  'CASH' OR 
107551 NVL(p_source_39,'
107552 ') =  'DISCOUNT') AND 
107553 NVL(p_source_60,'
107554 ') <>  'R' AND 
107555 NVL(p_source_102,'
107556 ') =  'Y' AND 
107557 p_source_142 IS NOT NULL AND 
107558 NVL(p_source_100,'
107559 ') <>  'Y' AND 
107560 NVL(p_source_104,'
107561 ') =  'Y'
107562  THEN 
107563 
107564    --
107565    XLA_AE_LINES_PKG.SetNewLine;
107566 
107567    p_balance_type_code          := l_balance_type_code;
107568    -- set the flag so later we will know whether the gain loss line needs to be created
107569    
107570    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
107571      p_actual_flag :='A';
107572    END IF;
107573 
107574    --
107575    -- bulk performance
107576    --
107577    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
107578                                       p_header_num   => 0); -- 4262811
107579    --
107580    -- set accounting line options
107581    --
107582    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
107583            p_natural_side_code          => 'C'
107584          , p_gain_or_loss_flag          => 'N'
107585          , p_gl_transfer_mode_code      => 'S'
107586          , p_acct_entry_type_code       => 'E'
107587          , p_switch_side_flag           => 'Y'
107588          , p_merge_duplicate_code       => 'A'
107589          );
107590    --
107591    l_acc_rev_natural_side_code := 'D';  -- 4262811
107592    -- 
107593    --
107594    -- set accounting line type info
107595    --
107596    xla_ae_lines_pkg.SetAcctLineType
107597       (p_component_type             => l_component_type
107598       ,p_event_type_code            => l_event_type_code
107599       ,p_line_definition_owner_code => l_line_definition_owner_code
107600       ,p_line_definition_code       => l_line_definition_code
107601       ,p_accounting_line_code       => l_component_code
107602       ,p_accounting_line_type_code  => l_component_type_code
107603       ,p_accounting_line_appl_id    => l_component_appl_id
107604       ,p_amb_context_code           => l_amb_context_code
107605       ,p_entity_code                => l_entity_code
107606       ,p_event_class_code           => l_event_class_code);
107607    --
107608    -- set accounting class
107609    --
107610    xla_ae_lines_pkg.SetAcctClass(
107611            p_accounting_class_code  => 'TQV'
107612          , p_ae_header_id           => l_ae_header_id
107613          );
107614 
107615    --
107616    -- set rounding class
107617    --
107618    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
107619                       'TQV';
107620 
107621    --
107622    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
107623    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
107624    --
107625    -- bulk performance
107626    --
107627    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
107628 
107629    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
107630       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
107631 
107632    -- 4955764
107633    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107634       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
107635 
107636    -- 4458381 Public Sector Enh
107637    
107638    --
107639    -- set accounting attributes for the line type
107640    --
107641    l_entered_amt_idx := 10;
107642    l_accted_amt_idx  := 12;
107643    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
107644    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
107645    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
107646    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
107647    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
107648    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
107652    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
107649    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
107650    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
107651    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
107653    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
107654    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
107655    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
107656    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
107657    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
107658    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
107659    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
107660    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
107661    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
107662    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
107663    l_rec_acct_attrs.array_num_value(10)  := p_source_143;
107664    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
107665    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
107666    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
107667    l_rec_acct_attrs.array_num_value(12)  := p_source_142;
107668    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
107669    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
107670    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
107671    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
107672    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
107673    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
107674    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
107675    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
107676    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
107677    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
107678    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
107679    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
107680    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
107681    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
107682 
107683    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
107684    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
107685 
107686    ---------------------------------------------------------------------------------------------------------------
107687    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
107688    ---------------------------------------------------------------------------------------------------------------
107689    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
107690 
107691    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107692    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107693 
107694    IF xla_accounting_cache_pkg.GetValueChar
107695          (p_source_code         => 'LEDGER_CATEGORY_CODE'
107696          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
107697    AND l_bflow_method_code = 'PRIOR_ENTRY'
107698 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
107699    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
107700          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
107701        )
107702    THEN
107703          xla_ae_lines_pkg.BflowUpgEntry
107704            (p_business_method_code    => l_bflow_method_code
107705            ,p_business_class_code     => l_bflow_class_code
107706            ,p_balance_type            => l_balance_type_code);
107707    ELSE
107708       NULL;
107709 XLA_AE_LINES_PKG.business_flow_validation(
107710                                 p_business_method_code     => l_bflow_method_code
107711                                ,p_business_class_code      => l_bflow_class_code
107712                                ,p_inherit_description_flag => l_inherit_desc_flag);
107713    END IF;
107714 
107715    --
107716    -- call analytical criteria
107717    --
107718    -- Inherited Analytical Criteria for business flow method of Prior Entry.
107719    --
107720    -- call description
107721    --
107722    -- No description or it is inherited.
107723    --
107724    -- call ADRs
107725    -- Bug 4922099
107726    --
107727    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107728         (NVL(l_actual_upg_option, 'N') = 'O') OR
107729         (NVL(l_enc_upg_option, 'N') = 'O')
107730       )
107731    THEN
107732    NULL;
107733    --
107734    --
107735    
107736    --
107737    --
107738    END IF;
107739    --
107740    -- Bug 4922099
107741    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
107742           (NVL(l_enc_upg_option, 'N') = 'O')
107743         ) AND
107744         (l_bflow_method_code = 'PRIOR_ENTRY')
107745       )
107746    THEN
107747       IF
107748       --
107749       1 = 1
107750       --
107751       THEN
107752       xla_accounting_err_pkg.build_message
107753                                     (p_appli_s_name            => 'XLA'
107754                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107755                                     ,p_token_1                 => 'LINE_NUMBER'
107759                                                                              l_component_type
107756                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
107757                                     ,p_token_2                 => 'LINE_TYPE_NAME'
107758                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
107760                                                                             ,l_component_code
107761                                                                             ,l_component_type_code
107762                                                                             ,l_component_appl_id
107763                                                                             ,l_amb_context_code
107764                                                                             ,l_entity_code
107765                                                                             ,l_event_class_code
107766                                                                            )
107767                                     ,p_token_3                 => 'OWNER'
107768                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
107769                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
107770                                                                           ,p_lookup_code    => l_component_type_code
107771                                                                          )
107772                                     ,p_token_4                 => 'PRODUCT_NAME'
107773                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
107774                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
107775                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
107776                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
107777                                     ,p_ae_header_id            =>  NULL
107778                                        );
107779 
107780         IF (C_LEVEL_ERROR>= g_log_level) THEN
107781                  trace
107782                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107783                       ,p_level    => C_LEVEL_ERROR
107784                       ,p_module   => l_log_module);
107785         END IF;
107786       END IF;
107787    END IF;
107788    --
107789    --
107790    ------------------------------------------------------------------------------------------------
107791    -- 4219869 Business Flow
107792    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
107793    -- Prior Entry.  Currently, the following code is always generated.
107794    ------------------------------------------------------------------------------------------------
107795    -- No ValidateCurrentLine for business flow method of Prior Entry
107796 
107797    ------------------------------------------------------------------------------------
107798    -- 4219869 Business Flow
107799    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
107800    ------------------------------------------------------------------------------------
107801    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107802 
107803    ----------------------------------------------------------------------------------
107804    -- 4219869 Business Flow
107805    -- Update journal entry status -- Need to generate this within IF <condition>
107806    ----------------------------------------------------------------------------------
107807    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107808          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
107809          ,p_balance_type_code => l_balance_type_code
107810          );
107811 
107812    -------------------------------------------------------------------------------------------
107813    -- 4262811 - Generate the Accrual Reversal lines
107814    -------------------------------------------------------------------------------------------
107815    BEGIN
107816       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
107817                               (g_array_event(p_event_id).array_value_num('header_index'));
107818       IF l_acc_rev_flag IS NULL THEN
107819          l_acc_rev_flag := 'N';
107820       END IF;
107821    EXCEPTION
107822       WHEN OTHERS THEN
107823          l_acc_rev_flag := 'N';
107824    END;
107825    --
107826    IF (l_acc_rev_flag = 'Y') THEN
107827 
107828        -- 4645092  ------------------------------------------------------------------------------
107829        -- To allow MPA report to determine if it should generate report process
107830        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
107831        ------------------------------------------------------------------------------------------
107832 
107833        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
107834        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
107835    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
107836    -- call ADRs
107837    -- Bug 4922099
107838    --
107839    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107840         (NVL(l_actual_upg_option, 'N') = 'O') OR
107841         (NVL(l_enc_upg_option, 'N') = 'O')
107842       )
107843    THEN
107844    NULL;
107845    --
107846    --
107847    
107848    --
107849    --
107850    END IF;
107854        --
107851 
107852        --
107853        -- Update the line information that should be overwritten
107855        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
107856                                          p_header_num   => 1);
107857        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
107858 
107859        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
107860 
107861        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
107862           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107863        END IF;
107864 
107865       --
107866       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107867       --
107868       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107869           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
107870       ELSE
107871           ---------------------------------------------------------------------------------------------------
107872           -- 4262811a Switch Sign
107873           ---------------------------------------------------------------------------------------------------
107874           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
107875           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107876                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107877           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107878                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107879           -- 5132302
107880           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107881                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107882 
107883       END IF;
107884 
107885       -- 4955764
107886       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107887       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107888 
107889 
107890       XLA_AE_LINES_PKG.ValidateCurrentLine;
107891       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107892 
107893       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107894                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107895                ,p_balance_type_code => l_balance_type_code);
107896 
107897    END IF;
107898 
107899    -----------------------------------------------------------------------------------------
107900    -- 4262811 Multiperiod Accounting
107901    -----------------------------------------------------------------------------------------
107902      -- No MPA option is assigned.
107903 
107904 
107905 END IF;
107906 END IF;
107907 --
107908 
107909 --
107910 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107911    trace
107912       (p_msg      => 'END of AcctLineType_188'
107913       ,p_level    => C_LEVEL_PROCEDURE
107914       ,p_module   => l_log_module);
107915 END IF;
107916 --
107917 EXCEPTION
107918   WHEN xla_exceptions_pkg.application_exception THEN
107919       RAISE;
107920   WHEN OTHERS THEN
107921        xla_exceptions_pkg.raise_message
107922            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_188');
107923 END AcctLineType_188;
107924 --
107925 
107926 ---------------------------------------
107927 --
107928 -- PRIVATE FUNCTION
107929 --         AcctLineType_189
107930 --
107931 ---------------------------------------
107932 PROCEDURE AcctLineType_189 (
107933   p_application_id        IN NUMBER
107934  ,p_event_id              IN NUMBER
107935  ,p_calculate_acctd_flag  IN VARCHAR2
107936  ,p_calculate_g_l_flag    IN VARCHAR2
107937  ,p_actual_flag           IN OUT VARCHAR2
107938  ,p_balance_type_code     OUT VARCHAR2
107939  ,p_gain_or_loss_ref      OUT VARCHAR2
107940  
107941 --Payment Distribution (Payment Rate) Ledger Amount
107942  , p_source_9            IN NUMBER
107943 --Invoice Distribution Type
107944  , p_source_20            IN VARCHAR2
107945  , p_source_20_meaning    IN VARCHAR2
107946 --When to Account for Payment Option
107947  , p_source_38            IN VARCHAR2
107948 --Payment Distribution Type
107949  , p_source_39            IN VARCHAR2
107950  , p_source_39_meaning    IN VARCHAR2
107951 --Accounting Reversal Indicator
107952  , p_source_40            IN VARCHAR2
107953 --Payment Distribution Amount
107954  , p_source_41            IN NUMBER
107955 --Business Flow Accounts Payable Application Identifier
107956  , p_source_42            IN NUMBER
107957 --Payment Distribution Identifier
107958  , p_source_47            IN NUMBER
107959 --Distribution Link Type
107960  , p_source_48            IN VARCHAR2
107961 --Payment Currency Code
107962  , p_source_49            IN VARCHAR2
107963 --Override Accounted Amount Indicator
107964  , p_source_53            IN VARCHAR2
107965  , p_source_53_meaning    IN VARCHAR2
107966 --Third Party Type
107967  , p_source_56            IN VARCHAR2
107968 --Payment Distribution Reversed Identifier
107969  , p_source_57            IN NUMBER
107970 --Invoice Distribution Tax Line Identifier
107971  , p_source_58            IN NUMBER
107972 --Invoice Distribution Summary Tax Line Identifier
107973  , p_source_59            IN NUMBER
107974 --Payment Type
107978  , p_source_62            IN VARCHAR2
107975  , p_source_60            IN VARCHAR2
107976  , p_source_60_meaning    IN VARCHAR2
107977 --Business Flow Invoice Distribution Type
107979 --Business Flow Invoice Entity Code
107980  , p_source_63            IN VARCHAR2
107981 --Business Flow Invoice Distribution Identifier
107982  , p_source_64            IN NUMBER
107983 --Business Flow Invoice Identifier
107984  , p_source_65            IN NUMBER
107985 --Invoice Distribution Tax Distribution Identifier from Tax
107986  , p_source_66            IN NUMBER
107987 --Purchasing Encumbrance Option
107988  , p_source_102            IN VARCHAR2
107989  , p_source_102_meaning    IN VARCHAR2
107990 --Invoice Encumbered Option
107991  , p_source_104            IN VARCHAR2
107992  , p_source_104_meaning    IN VARCHAR2
107993 )
107994 IS
107995 
107996 l_component_type              VARCHAR2(80);
107997 l_component_code              VARCHAR2(30);
107998 l_component_type_code         VARCHAR2(1);
107999 l_component_appl_id           INTEGER;
108000 l_amb_context_code            VARCHAR2(30);
108001 l_entity_code                 VARCHAR2(30);
108002 l_event_class_code            VARCHAR2(30);
108003 l_ae_header_id                NUMBER;
108004 l_event_type_code             VARCHAR2(30);
108005 l_line_definition_code        VARCHAR2(30);
108006 l_line_definition_owner_code  VARCHAR2(1);
108007 --
108008 -- adr variables
108009 l_segment                     VARCHAR2(30);
108010 l_ccid                        NUMBER;
108011 l_adr_transaction_coa_id      NUMBER;
108012 l_adr_accounting_coa_id       NUMBER;
108013 l_adr_flexfield_segment_code  VARCHAR2(30);
108014 l_adr_flex_value_set_id       NUMBER;
108015 l_adr_value_type_code         VARCHAR2(30);
108016 l_adr_value_combination_id    NUMBER;
108017 l_adr_value_segment_code      VARCHAR2(30);
108018 
108019 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
108020 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
108021 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
108022 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
108023 
108024 -- 4262811 Variables ------------------------------------------------------------------------------------------
108025 l_entered_amt_idx             NUMBER;
108026 l_accted_amt_idx              NUMBER;
108027 l_acc_rev_flag                VARCHAR2(1);
108028 l_accrual_line_num            NUMBER;
108029 l_tmp_amt                     NUMBER;
108030 l_acc_rev_natural_side_code   VARCHAR2(1);
108031 
108032 l_num_entries                 NUMBER;
108033 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
108034 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
108035 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
108036 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
108037 l_recog_line_1                NUMBER;
108038 l_recog_line_2                NUMBER;
108039 
108040 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
108041 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
108042 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
108043 
108044 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108045 
108046 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
108047 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
108048 
108049 ---------------------------------------------------------------------------------------------------------------
108050 
108051 
108052 --
108053 -- bulk performance
108054 --
108055 l_balance_type_code           VARCHAR2(1);
108056 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
108057 l_log_module                  VARCHAR2(240);
108058 
108059 --
108060 -- Upgrade strategy
108061 --
108062 l_actual_upg_option           VARCHAR2(1);
108063 l_enc_upg_option           VARCHAR2(1);
108064 
108065 --
108066 BEGIN
108067 --
108068 IF g_log_enabled THEN
108069       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_189';
108070 END IF;
108071 --
108072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108073 
108074       trace
108075          (p_msg      => 'BEGIN of AcctLineType_189'
108076          ,p_level    => C_LEVEL_PROCEDURE
108077          ,p_module   => l_log_module);
108078 
108079 END IF;
108080 --
108081 l_component_type             := 'AMB_JLT';
108082 l_component_code             := 'AP_TAX_QTY_VARIANCE_REF_ENC';
108083 l_component_type_code        := 'S';
108084 l_component_appl_id          :=  200;
108085 l_amb_context_code           := 'DEFAULT';
108086 l_entity_code                := 'AP_PAYMENTS';
108087 l_event_class_code           := 'REFUNDS';
108088 l_event_type_code            := 'REFUNDS_ALL';
108089 l_line_definition_owner_code := 'S';
108090 l_line_definition_code       := 'ENC_REFUNDS_ALL';
108091 --
108092 l_balance_type_code          := 'E';
108093 l_segment                     := NULL;
108094 l_ccid                        := NULL;
108095 l_adr_transaction_coa_id      := NULL;
108096 l_adr_accounting_coa_id       := NULL;
108097 l_adr_flexfield_segment_code  := NULL;
108098 l_adr_flex_value_set_id       := NULL;
108099 l_adr_value_type_code         := NULL;
108100 l_adr_value_combination_id    := NULL;
108101 l_adr_value_segment_code      := NULL;
108102 
108103 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
108107 
108104 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
108105 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108106 l_budgetary_control_flag     := 'N';
108108 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108109 l_bflow_applied_to_amt       := NULL; -- 5132302
108110 l_entered_amt_idx            := NULL;          -- 4262811
108111 l_accted_amt_idx             := NULL;          -- 4262811
108112 l_acc_rev_flag               := NULL;          -- 4262811
108113 l_accrual_line_num           := NULL;          -- 4262811
108114 l_tmp_amt                    := NULL;          -- 4262811
108115 --
108116  
108117 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108118     l_balance_type_code <> 'B' THEN
108119 IF NVL(p_source_38,'
108120 ') <>  'CLEAR_CLEAR' AND 
108121 NVL(p_source_20,'
108122 ') =  'NONREC_TAX' AND 
108123 (NVL(p_source_39,'
108124 ') =  'CASH' OR 
108125 NVL(p_source_39,'
108126 ') =  'DISCOUNT') AND 
108127 NVL(p_source_60,'
108128 ') =  'R' AND 
108129 NVL(p_source_102,'
108130 ') =  'Y' AND 
108131 NVL(p_source_104,'
108132 ') =  'Y'
108133  THEN 
108134 
108135    --
108136    XLA_AE_LINES_PKG.SetNewLine;
108137 
108138    p_balance_type_code          := l_balance_type_code;
108139    -- set the flag so later we will know whether the gain loss line needs to be created
108140    
108141    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108142      p_actual_flag :='A';
108143    END IF;
108144 
108145    --
108146    -- bulk performance
108147    --
108148    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108149                                       p_header_num   => 0); -- 4262811
108150    --
108151    -- set accounting line options
108152    --
108153    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108154            p_natural_side_code          => 'D'
108155          , p_gain_or_loss_flag          => 'N'
108156          , p_gl_transfer_mode_code      => 'S'
108157          , p_acct_entry_type_code       => 'E'
108158          , p_switch_side_flag           => 'Y'
108159          , p_merge_duplicate_code       => 'A'
108160          );
108161    --
108162    l_acc_rev_natural_side_code := 'C';  -- 4262811
108163    -- 
108164    --
108165    -- set accounting line type info
108166    --
108167    xla_ae_lines_pkg.SetAcctLineType
108168       (p_component_type             => l_component_type
108169       ,p_event_type_code            => l_event_type_code
108170       ,p_line_definition_owner_code => l_line_definition_owner_code
108171       ,p_line_definition_code       => l_line_definition_code
108172       ,p_accounting_line_code       => l_component_code
108173       ,p_accounting_line_type_code  => l_component_type_code
108174       ,p_accounting_line_appl_id    => l_component_appl_id
108175       ,p_amb_context_code           => l_amb_context_code
108176       ,p_entity_code                => l_entity_code
108177       ,p_event_class_code           => l_event_class_code);
108178    --
108179    -- set accounting class
108180    --
108181    xla_ae_lines_pkg.SetAcctClass(
108182            p_accounting_class_code  => 'TQV'
108183          , p_ae_header_id           => l_ae_header_id
108184          );
108185 
108186    --
108187    -- set rounding class
108188    --
108189    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108190                       'TQV';
108191 
108192    --
108193    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108194    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108195    --
108196    -- bulk performance
108197    --
108198    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108199 
108200    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108201       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108202 
108203    -- 4955764
108204    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108205       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108206 
108207    -- 4458381 Public Sector Enh
108208    
108209    --
108210    -- set accounting attributes for the line type
108211    --
108212    l_entered_amt_idx := 9;
108213    l_accted_amt_idx  := 11;
108214    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
108215    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108216    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
108217    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
108218    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
108219    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108220    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
108221    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
108222    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
108223    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
108224    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
108225    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108226    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
108227    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
108228    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
108232    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
108229    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
108230    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
108231    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
108233    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
108234    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
108235    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
108236    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
108237    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
108238    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
108239    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
108240    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
108241    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
108242    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
108243    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
108244    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
108245    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
108246    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
108247    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
108248    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
108249    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
108250    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
108251 
108252    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108253    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108254 
108255    ---------------------------------------------------------------------------------------------------------------
108256    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108257    ---------------------------------------------------------------------------------------------------------------
108258    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108259 
108260    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108261    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108262 
108263    IF xla_accounting_cache_pkg.GetValueChar
108264          (p_source_code         => 'LEDGER_CATEGORY_CODE'
108265          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108266    AND l_bflow_method_code = 'PRIOR_ENTRY'
108267 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108268    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108269          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108270        )
108271    THEN
108272          xla_ae_lines_pkg.BflowUpgEntry
108273            (p_business_method_code    => l_bflow_method_code
108274            ,p_business_class_code     => l_bflow_class_code
108275            ,p_balance_type            => l_balance_type_code);
108276    ELSE
108277       NULL;
108278 XLA_AE_LINES_PKG.business_flow_validation(
108279                                 p_business_method_code     => l_bflow_method_code
108280                                ,p_business_class_code      => l_bflow_class_code
108281                                ,p_inherit_description_flag => l_inherit_desc_flag);
108282    END IF;
108283 
108284    --
108285    -- call analytical criteria
108286    --
108287    -- Inherited Analytical Criteria for business flow method of Prior Entry.
108288    --
108289    -- call description
108290    --
108291    -- No description or it is inherited.
108292    --
108293    -- call ADRs
108294    -- Bug 4922099
108295    --
108296    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108297         (NVL(l_actual_upg_option, 'N') = 'O') OR
108298         (NVL(l_enc_upg_option, 'N') = 'O')
108299       )
108300    THEN
108301    NULL;
108302    --
108303    --
108304    
108305    --
108306    --
108307    END IF;
108308    --
108309    -- Bug 4922099
108310    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
108311           (NVL(l_enc_upg_option, 'N') = 'O')
108312         ) AND
108313         (l_bflow_method_code = 'PRIOR_ENTRY')
108314       )
108315    THEN
108316       IF
108317       --
108318       1 = 1
108319       --
108320       THEN
108321       xla_accounting_err_pkg.build_message
108322                                     (p_appli_s_name            => 'XLA'
108323                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108324                                     ,p_token_1                 => 'LINE_NUMBER'
108325                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
108326                                     ,p_token_2                 => 'LINE_TYPE_NAME'
108327                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
108328                                                                              l_component_type
108329                                                                             ,l_component_code
108330                                                                             ,l_component_type_code
108331                                                                             ,l_component_appl_id
108332                                                                             ,l_amb_context_code
108336                                     ,p_token_3                 => 'OWNER'
108333                                                                             ,l_entity_code
108334                                                                             ,l_event_class_code
108335                                                                            )
108337                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
108338                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
108339                                                                           ,p_lookup_code    => l_component_type_code
108340                                                                          )
108341                                     ,p_token_4                 => 'PRODUCT_NAME'
108342                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
108343                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
108344                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
108345                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
108346                                     ,p_ae_header_id            =>  NULL
108347                                        );
108348 
108349         IF (C_LEVEL_ERROR>= g_log_level) THEN
108350                  trace
108351                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108352                       ,p_level    => C_LEVEL_ERROR
108353                       ,p_module   => l_log_module);
108354         END IF;
108355       END IF;
108356    END IF;
108357    --
108358    --
108359    ------------------------------------------------------------------------------------------------
108360    -- 4219869 Business Flow
108361    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
108362    -- Prior Entry.  Currently, the following code is always generated.
108363    ------------------------------------------------------------------------------------------------
108364    -- No ValidateCurrentLine for business flow method of Prior Entry
108365 
108366    ------------------------------------------------------------------------------------
108367    -- 4219869 Business Flow
108368    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
108369    ------------------------------------------------------------------------------------
108370    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108371 
108372    ----------------------------------------------------------------------------------
108373    -- 4219869 Business Flow
108374    -- Update journal entry status -- Need to generate this within IF <condition>
108375    ----------------------------------------------------------------------------------
108376    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108377          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
108378          ,p_balance_type_code => l_balance_type_code
108379          );
108380 
108381    -------------------------------------------------------------------------------------------
108382    -- 4262811 - Generate the Accrual Reversal lines
108383    -------------------------------------------------------------------------------------------
108384    BEGIN
108385       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
108386                               (g_array_event(p_event_id).array_value_num('header_index'));
108387       IF l_acc_rev_flag IS NULL THEN
108388          l_acc_rev_flag := 'N';
108389       END IF;
108390    EXCEPTION
108391       WHEN OTHERS THEN
108392          l_acc_rev_flag := 'N';
108393    END;
108394    --
108395    IF (l_acc_rev_flag = 'Y') THEN
108396 
108397        -- 4645092  ------------------------------------------------------------------------------
108398        -- To allow MPA report to determine if it should generate report process
108399        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
108400        ------------------------------------------------------------------------------------------
108401 
108402        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
108403        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
108404    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
108405    -- call ADRs
108406    -- Bug 4922099
108407    --
108408    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108409         (NVL(l_actual_upg_option, 'N') = 'O') OR
108410         (NVL(l_enc_upg_option, 'N') = 'O')
108411       )
108412    THEN
108413    NULL;
108414    --
108415    --
108416    
108417    --
108418    --
108419    END IF;
108420 
108421        --
108422        -- Update the line information that should be overwritten
108423        --
108424        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
108425                                          p_header_num   => 1);
108426        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
108427 
108428        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
108429 
108430        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
108431           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
108432        END IF;
108433 
108437       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
108434       --
108435       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
108436       --
108438           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
108439       ELSE
108440           ---------------------------------------------------------------------------------------------------
108441           -- 4262811a Switch Sign
108442           ---------------------------------------------------------------------------------------------------
108443           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
108444           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108445                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108446           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108447                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108448           -- 5132302
108449           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
108450                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108451 
108452       END IF;
108453 
108454       -- 4955764
108455       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108456       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
108457 
108458 
108459       XLA_AE_LINES_PKG.ValidateCurrentLine;
108460       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108461 
108462       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108463                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
108464                ,p_balance_type_code => l_balance_type_code);
108465 
108466    END IF;
108467 
108468    -----------------------------------------------------------------------------------------
108469    -- 4262811 Multiperiod Accounting
108470    -----------------------------------------------------------------------------------------
108471      -- No MPA option is assigned.
108472 
108473 
108474 END IF;
108475 END IF;
108476 --
108477 
108478 --
108479 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108480    trace
108481       (p_msg      => 'END of AcctLineType_189'
108482       ,p_level    => C_LEVEL_PROCEDURE
108483       ,p_module   => l_log_module);
108484 END IF;
108485 --
108486 EXCEPTION
108487   WHEN xla_exceptions_pkg.application_exception THEN
108488       RAISE;
108489   WHEN OTHERS THEN
108490        xla_exceptions_pkg.raise_message
108491            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_189');
108492 END AcctLineType_189;
108493 --
108494 
108495 ---------------------------------------
108496 --
108497 -- PRIVATE FUNCTION
108498 --         AcctLineType_190
108499 --
108500 ---------------------------------------
108501 PROCEDURE AcctLineType_190 (
108502   p_application_id        IN NUMBER
108503  ,p_event_id              IN NUMBER
108504  ,p_calculate_acctd_flag  IN VARCHAR2
108505  ,p_calculate_g_l_flag    IN VARCHAR2
108506  ,p_actual_flag           IN OUT VARCHAR2
108507  ,p_balance_type_code     OUT VARCHAR2
108508  ,p_gain_or_loss_ref      OUT VARCHAR2
108509  
108510 --Payment Distribution (Cleared Rate) Ledger Amount
108511  , p_source_10            IN NUMBER
108512 --Invoice Distribution Account
108513  , p_source_17            IN NUMBER
108514 --Invoice Distribution Type
108515  , p_source_20            IN VARCHAR2
108516  , p_source_20_meaning    IN VARCHAR2
108517 --When to Account for Payment Option
108518  , p_source_38            IN VARCHAR2
108519 --Payment Distribution Type
108520  , p_source_39            IN VARCHAR2
108521  , p_source_39_meaning    IN VARCHAR2
108522 --Accounting Reversal Indicator
108523  , p_source_40            IN VARCHAR2
108524 --Payment Distribution Amount
108525  , p_source_41            IN NUMBER
108526 --Business Flow Accounts Payable Application Identifier
108527  , p_source_42            IN NUMBER
108528 --Business Flow Payment Distribution Type
108529  , p_source_43            IN VARCHAR2
108530 --Business Flow Payment Entity Code
108531  , p_source_44            IN VARCHAR2
108532 --Business Flow Payment Distribution Identifier
108533  , p_source_45            IN NUMBER
108534 --Business Flow Payment Identifier
108535  , p_source_46            IN NUMBER
108536 --Payment Distribution Identifier
108537  , p_source_47            IN NUMBER
108538 --Distribution Link Type
108539  , p_source_48            IN VARCHAR2
108540 --Payment Currency Code
108541  , p_source_49            IN VARCHAR2
108542 --Override Accounted Amount Indicator
108543  , p_source_53            IN VARCHAR2
108544  , p_source_53_meaning    IN VARCHAR2
108545 --Payment Supplier Identifier
108546  , p_source_54            IN NUMBER
108547 --Payment Supplier Site Identifier
108548  , p_source_55            IN NUMBER
108549 --Third Party Type
108550  , p_source_56            IN VARCHAR2
108551 --Payment Distribution Reversed Identifier
108552  , p_source_57            IN NUMBER
108553 --Invoice Distribution Tax Line Identifier
108554  , p_source_58            IN NUMBER
108555 --Invoice Distribution Summary Tax Line Identifier
108556  , p_source_59            IN NUMBER
108557 --Accrue on Receipt Option
108558  , p_source_100            IN VARCHAR2
108562 --Cleared Exchange Rate
108559  , p_source_100_meaning    IN VARCHAR2
108560 --Cleared Exchange Date
108561  , p_source_107            IN DATE
108563  , p_source_108            IN NUMBER
108564 --Cleared Exchange Rate Type
108565  , p_source_109            IN VARCHAR2
108566 )
108567 IS
108568 
108569 l_component_type              VARCHAR2(80);
108570 l_component_code              VARCHAR2(30);
108571 l_component_type_code         VARCHAR2(1);
108572 l_component_appl_id           INTEGER;
108573 l_amb_context_code            VARCHAR2(30);
108574 l_entity_code                 VARCHAR2(30);
108575 l_event_class_code            VARCHAR2(30);
108576 l_ae_header_id                NUMBER;
108577 l_event_type_code             VARCHAR2(30);
108578 l_line_definition_code        VARCHAR2(30);
108579 l_line_definition_owner_code  VARCHAR2(1);
108580 --
108581 -- adr variables
108582 l_segment                     VARCHAR2(30);
108583 l_ccid                        NUMBER;
108584 l_adr_transaction_coa_id      NUMBER;
108585 l_adr_accounting_coa_id       NUMBER;
108586 l_adr_flexfield_segment_code  VARCHAR2(30);
108587 l_adr_flex_value_set_id       NUMBER;
108588 l_adr_value_type_code         VARCHAR2(30);
108589 l_adr_value_combination_id    NUMBER;
108590 l_adr_value_segment_code      VARCHAR2(30);
108591 
108592 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
108593 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
108594 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
108595 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
108596 
108597 -- 4262811 Variables ------------------------------------------------------------------------------------------
108598 l_entered_amt_idx             NUMBER;
108599 l_accted_amt_idx              NUMBER;
108600 l_acc_rev_flag                VARCHAR2(1);
108601 l_accrual_line_num            NUMBER;
108602 l_tmp_amt                     NUMBER;
108603 l_acc_rev_natural_side_code   VARCHAR2(1);
108604 
108605 l_num_entries                 NUMBER;
108606 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
108607 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
108608 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
108609 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
108610 l_recog_line_1                NUMBER;
108611 l_recog_line_2                NUMBER;
108612 
108613 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
108614 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
108615 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
108616 
108617 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108618 
108619 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
108620 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
108621 
108622 ---------------------------------------------------------------------------------------------------------------
108623 
108624 
108625 --
108626 -- bulk performance
108627 --
108628 l_balance_type_code           VARCHAR2(1);
108629 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
108630 l_log_module                  VARCHAR2(240);
108631 
108632 --
108633 -- Upgrade strategy
108634 --
108635 l_actual_upg_option           VARCHAR2(1);
108636 l_enc_upg_option           VARCHAR2(1);
108637 
108638 --
108639 BEGIN
108640 --
108641 IF g_log_enabled THEN
108642       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_190';
108643 END IF;
108644 --
108645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108646 
108647       trace
108648          (p_msg      => 'BEGIN of AcctLineType_190'
108649          ,p_level    => C_LEVEL_PROCEDURE
108650          ,p_module   => l_log_module);
108651 
108652 END IF;
108653 --
108654 l_component_type             := 'AMB_JLT';
108655 l_component_code             := 'AP_TAX_RATE_VAR_CLEAR';
108656 l_component_type_code        := 'S';
108657 l_component_appl_id          :=  200;
108658 l_amb_context_code           := 'DEFAULT';
108659 l_entity_code                := 'AP_PAYMENTS';
108660 l_event_class_code           := 'RECONCILED PAYMENTS';
108661 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
108662 l_line_definition_owner_code := 'S';
108663 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
108664 --
108665 l_balance_type_code          := 'A';
108666 l_segment                     := NULL;
108667 l_ccid                        := NULL;
108668 l_adr_transaction_coa_id      := NULL;
108669 l_adr_accounting_coa_id       := NULL;
108670 l_adr_flexfield_segment_code  := NULL;
108671 l_adr_flex_value_set_id       := NULL;
108672 l_adr_value_type_code         := NULL;
108673 l_adr_value_combination_id    := NULL;
108674 l_adr_value_segment_code      := NULL;
108675 
108676 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
108677 l_bflow_class_code           := '';    -- 4219869 Business Flow
108678 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108679 l_budgetary_control_flag     := 'N';
108680 
108681 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108682 l_bflow_applied_to_amt       := NULL; -- 5132302
108683 l_entered_amt_idx            := NULL;          -- 4262811
108684 l_accted_amt_idx             := NULL;          -- 4262811
108685 l_acc_rev_flag               := NULL;          -- 4262811
108689  
108686 l_accrual_line_num           := NULL;          -- 4262811
108687 l_tmp_amt                    := NULL;          -- 4262811
108688 --
108690 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108691     l_balance_type_code <> 'B' THEN
108692 IF NVL(p_source_38,'
108693 ') =  'CLEAR_CLEAR' AND 
108694 NVL(p_source_20,'
108695 ') =  'TRV' AND 
108696 (NVL(p_source_39,'
108697 ') =  'CASH' OR 
108698 NVL(p_source_39,'
108699 ') =  'AWT' OR 
108700 NVL(p_source_39,'
108701 ') =  'DISCOUNT') AND 
108702 NVL(p_source_100,'
108703 ') =  'Y'
108704  THEN 
108705 
108706    --
108707    XLA_AE_LINES_PKG.SetNewLine;
108708 
108709    p_balance_type_code          := l_balance_type_code;
108710    -- set the flag so later we will know whether the gain loss line needs to be created
108711    
108712    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108713      p_actual_flag :='A';
108714    END IF;
108715 
108716    --
108717    -- bulk performance
108718    --
108719    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108720                                       p_header_num   => 0); -- 4262811
108721    --
108722    -- set accounting line options
108723    --
108724    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108725            p_natural_side_code          => 'D'
108726          , p_gain_or_loss_flag          => 'N'
108727          , p_gl_transfer_mode_code      => 'S'
108728          , p_acct_entry_type_code       => 'A'
108729          , p_switch_side_flag           => 'Y'
108730          , p_merge_duplicate_code       => 'A'
108731          );
108732    --
108733    l_acc_rev_natural_side_code := 'C';  -- 4262811
108734    -- 
108735    --
108736    -- set accounting line type info
108737    --
108738    xla_ae_lines_pkg.SetAcctLineType
108739       (p_component_type             => l_component_type
108740       ,p_event_type_code            => l_event_type_code
108741       ,p_line_definition_owner_code => l_line_definition_owner_code
108742       ,p_line_definition_code       => l_line_definition_code
108743       ,p_accounting_line_code       => l_component_code
108744       ,p_accounting_line_type_code  => l_component_type_code
108745       ,p_accounting_line_appl_id    => l_component_appl_id
108746       ,p_amb_context_code           => l_amb_context_code
108747       ,p_entity_code                => l_entity_code
108748       ,p_event_class_code           => l_event_class_code);
108749    --
108750    -- set accounting class
108751    --
108752    xla_ae_lines_pkg.SetAcctClass(
108753            p_accounting_class_code  => 'TRV'
108754          , p_ae_header_id           => l_ae_header_id
108755          );
108756 
108757    --
108758    -- set rounding class
108759    --
108760    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108761                       'TRV';
108762 
108763    --
108764    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108765    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108766    --
108767    -- bulk performance
108768    --
108769    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108770 
108771    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108772       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108773 
108774    -- 4955764
108775    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108776       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108777 
108778    -- 4458381 Public Sector Enh
108779    
108780    --
108781    -- set accounting attributes for the line type
108782    --
108783    l_entered_amt_idx := 10;
108784    l_accted_amt_idx  := 15;
108785    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
108786    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108787    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
108788    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
108789    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
108790    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
108791    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
108792    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108793    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
108794    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
108795    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
108796    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
108797    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
108798    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108799    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
108800    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
108801    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
108802    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
108803    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
108804    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
108805    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
108806    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
108807    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
108808    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
108812    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
108809    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
108810    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
108811    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
108813    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
108814    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
108815    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
108816    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
108817    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
108818    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
108819    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
108820    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
108821    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
108822    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
108823    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
108824    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
108825    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
108826    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
108827    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
108828    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
108829    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
108830    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
108831    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
108832    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
108833    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
108834 
108835    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108836    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108837 
108838    ---------------------------------------------------------------------------------------------------------------
108839    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108840    ---------------------------------------------------------------------------------------------------------------
108841    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108842 
108843    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108844    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108845 
108846    IF xla_accounting_cache_pkg.GetValueChar
108847          (p_source_code         => 'LEDGER_CATEGORY_CODE'
108848          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108849    AND l_bflow_method_code = 'PRIOR_ENTRY'
108850 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108851    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108852          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108853        )
108854    THEN
108855          xla_ae_lines_pkg.BflowUpgEntry
108856            (p_business_method_code    => l_bflow_method_code
108857            ,p_business_class_code     => l_bflow_class_code
108858            ,p_balance_type            => l_balance_type_code);
108859    ELSE
108860       NULL;
108861 -- No business flow processing for business flow method of NONE.
108862    END IF;
108863 
108864    --
108865    -- call analytical criteria
108866    --
108867    
108868    --
108869    -- call description
108870    --
108871    -- No description or it is inherited.
108872    --
108873    -- call ADRs
108874    -- Bug 4922099
108875    --
108876    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108877         (NVL(l_actual_upg_option, 'N') = 'O') OR
108878         (NVL(l_enc_upg_option, 'N') = 'O')
108879       )
108880    THEN
108881    NULL;
108882    --
108883    --
108884    
108885   l_ccid := AcctDerRule_26(
108886            p_application_id           => p_application_id
108887          , p_ae_header_id             => l_ae_header_id 
108888 , p_source_17 => p_source_17
108889          , x_transaction_coa_id       => l_adr_transaction_coa_id
108890          , x_accounting_coa_id        => l_adr_accounting_coa_id
108891          , x_value_type_code          => l_adr_value_type_code
108892          , p_side                     => 'NA'
108893    );
108894 
108895    xla_ae_lines_pkg.set_ccid(
108896     p_code_combination_id          => l_ccid
108897   , p_value_type_code              => l_adr_value_type_code
108898   , p_transaction_coa_id           => l_adr_transaction_coa_id
108899   , p_accounting_coa_id            => l_adr_accounting_coa_id
108900   , p_adr_code                     => 'AP_INVOICE_DIST'
108901   , p_adr_type_code                => 'S'
108902   , p_component_type               => l_component_type
108903   , p_component_code               => l_component_code
108904   , p_component_type_code          => l_component_type_code
108905   , p_component_appl_id            => l_component_appl_id
108906   , p_amb_context_code             => l_amb_context_code
108907   , p_side                         => 'NA'
108908   );
108909 
108910 
108911    --
108912    --
108913    END IF;
108914    --
108915    -- Bug 4922099
108916    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
108917           (NVL(l_enc_upg_option, 'N') = 'O')
108918         ) AND
108919         (l_bflow_method_code = 'PRIOR_ENTRY')
108920       )
108921    THEN
108922       IF
108926       THEN
108923       --
108924       1 = 2
108925       --
108927       xla_accounting_err_pkg.build_message
108928                                     (p_appli_s_name            => 'XLA'
108929                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108930                                     ,p_token_1                 => 'LINE_NUMBER'
108931                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
108932                                     ,p_token_2                 => 'LINE_TYPE_NAME'
108933                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
108934                                                                              l_component_type
108935                                                                             ,l_component_code
108936                                                                             ,l_component_type_code
108937                                                                             ,l_component_appl_id
108938                                                                             ,l_amb_context_code
108939                                                                             ,l_entity_code
108940                                                                             ,l_event_class_code
108941                                                                            )
108942                                     ,p_token_3                 => 'OWNER'
108943                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
108944                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
108945                                                                           ,p_lookup_code    => l_component_type_code
108946                                                                          )
108947                                     ,p_token_4                 => 'PRODUCT_NAME'
108948                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
108949                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
108950                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
108951                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
108952                                     ,p_ae_header_id            =>  NULL
108953                                        );
108954 
108955         IF (C_LEVEL_ERROR>= g_log_level) THEN
108956                  trace
108957                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108958                       ,p_level    => C_LEVEL_ERROR
108959                       ,p_module   => l_log_module);
108960         END IF;
108961       END IF;
108962    END IF;
108963    --
108964    --
108965    ------------------------------------------------------------------------------------------------
108966    -- 4219869 Business Flow
108967    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
108968    -- Prior Entry.  Currently, the following code is always generated.
108969    ------------------------------------------------------------------------------------------------
108970    XLA_AE_LINES_PKG.ValidateCurrentLine;
108971 
108972    ------------------------------------------------------------------------------------
108973    -- 4219869 Business Flow
108974    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
108975    ------------------------------------------------------------------------------------
108976    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108977 
108978    ----------------------------------------------------------------------------------
108979    -- 4219869 Business Flow
108980    -- Update journal entry status -- Need to generate this within IF <condition>
108981    ----------------------------------------------------------------------------------
108982    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108983          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
108984          ,p_balance_type_code => l_balance_type_code
108985          );
108986 
108987    -------------------------------------------------------------------------------------------
108988    -- 4262811 - Generate the Accrual Reversal lines
108989    -------------------------------------------------------------------------------------------
108990    BEGIN
108991       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
108992                               (g_array_event(p_event_id).array_value_num('header_index'));
108993       IF l_acc_rev_flag IS NULL THEN
108994          l_acc_rev_flag := 'N';
108995       END IF;
108996    EXCEPTION
108997       WHEN OTHERS THEN
108998          l_acc_rev_flag := 'N';
108999    END;
109000    --
109001    IF (l_acc_rev_flag = 'Y') THEN
109002 
109003        -- 4645092  ------------------------------------------------------------------------------
109004        -- To allow MPA report to determine if it should generate report process
109005        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109006        ------------------------------------------------------------------------------------------
109007 
109008        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109009        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109010    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
109011    -- call ADRs
109015         (NVL(l_actual_upg_option, 'N') = 'O') OR
109012    -- Bug 4922099
109013    --
109014    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109016         (NVL(l_enc_upg_option, 'N') = 'O')
109017       )
109018    THEN
109019    NULL;
109020    --
109021    --
109022    
109023   l_ccid := AcctDerRule_26(
109024            p_application_id           => p_application_id
109025          , p_ae_header_id             => l_ae_header_id 
109026 , p_source_17 => p_source_17
109027          , x_transaction_coa_id       => l_adr_transaction_coa_id
109028          , x_accounting_coa_id        => l_adr_accounting_coa_id
109029          , x_value_type_code          => l_adr_value_type_code
109030          , p_side                     => 'NA'
109031    );
109032 
109033    xla_ae_lines_pkg.set_ccid(
109034     p_code_combination_id          => l_ccid
109035   , p_value_type_code              => l_adr_value_type_code
109036   , p_transaction_coa_id           => l_adr_transaction_coa_id
109037   , p_accounting_coa_id            => l_adr_accounting_coa_id
109038   , p_adr_code                     => 'AP_INVOICE_DIST'
109039   , p_adr_type_code                => 'S'
109040   , p_component_type               => l_component_type
109041   , p_component_code               => l_component_code
109042   , p_component_type_code          => l_component_type_code
109043   , p_component_appl_id            => l_component_appl_id
109044   , p_amb_context_code             => l_amb_context_code
109045   , p_side                         => 'NA'
109046   );
109047 
109048 
109049    --
109050    --
109051    END IF;
109052 
109053        --
109054        -- Update the line information that should be overwritten
109055        --
109056        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109057                                          p_header_num   => 1);
109058        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
109059 
109060        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109061 
109062        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
109063           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109064        END IF;
109065 
109066       --
109067       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109068       --
109069       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109070           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
109071       ELSE
109072           ---------------------------------------------------------------------------------------------------
109073           -- 4262811a Switch Sign
109074           ---------------------------------------------------------------------------------------------------
109075           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
109076           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109077                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109078           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109079                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109080           -- 5132302
109081           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109082                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109083 
109084       END IF;
109085 
109086       -- 4955764
109087       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109088       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109089 
109090 
109091       XLA_AE_LINES_PKG.ValidateCurrentLine;
109092       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109093 
109094       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109095                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109096                ,p_balance_type_code => l_balance_type_code);
109097 
109098    END IF;
109099 
109100    -----------------------------------------------------------------------------------------
109101    -- 4262811 Multiperiod Accounting
109102    -----------------------------------------------------------------------------------------
109103      -- No MPA option is assigned.
109104 
109105 
109106 END IF;
109107 END IF;
109108 --
109109 
109110 --
109111 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109112    trace
109113       (p_msg      => 'END of AcctLineType_190'
109114       ,p_level    => C_LEVEL_PROCEDURE
109115       ,p_module   => l_log_module);
109116 END IF;
109117 --
109118 EXCEPTION
109119   WHEN xla_exceptions_pkg.application_exception THEN
109120       RAISE;
109121   WHEN OTHERS THEN
109122        xla_exceptions_pkg.raise_message
109123            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_190');
109124 END AcctLineType_190;
109125 --
109126 
109127 ---------------------------------------
109128 --
109129 -- PRIVATE FUNCTION
109130 --         AcctLineType_191
109131 --
109132 ---------------------------------------
109133 PROCEDURE AcctLineType_191 (
109134   p_application_id        IN NUMBER
109138  ,p_actual_flag           IN OUT VARCHAR2
109135  ,p_event_id              IN NUMBER
109136  ,p_calculate_acctd_flag  IN VARCHAR2
109137  ,p_calculate_g_l_flag    IN VARCHAR2
109139  ,p_balance_type_code     OUT VARCHAR2
109140  ,p_gain_or_loss_ref      OUT VARCHAR2
109141  
109142 --Payment Distribution (Payment Rate) Ledger Amount
109143  , p_source_9            IN NUMBER
109144 --Invoice Distribution Type
109145  , p_source_20            IN VARCHAR2
109146  , p_source_20_meaning    IN VARCHAR2
109147 --When to Account for Payment Option
109148  , p_source_38            IN VARCHAR2
109149 --Payment Distribution Type
109150  , p_source_39            IN VARCHAR2
109151  , p_source_39_meaning    IN VARCHAR2
109152 --Accounting Reversal Indicator
109153  , p_source_40            IN VARCHAR2
109154 --Payment Distribution Amount
109155  , p_source_41            IN NUMBER
109156 --Business Flow Accounts Payable Application Identifier
109157  , p_source_42            IN NUMBER
109158 --Payment Distribution Identifier
109159  , p_source_47            IN NUMBER
109160 --Distribution Link Type
109161  , p_source_48            IN VARCHAR2
109162 --Payment Currency Code
109163  , p_source_49            IN VARCHAR2
109164 --Override Accounted Amount Indicator
109165  , p_source_53            IN VARCHAR2
109166  , p_source_53_meaning    IN VARCHAR2
109167 --Third Party Type
109168  , p_source_56            IN VARCHAR2
109169 --Payment Distribution Reversed Identifier
109170  , p_source_57            IN NUMBER
109171 --Invoice Distribution Tax Line Identifier
109172  , p_source_58            IN NUMBER
109173 --Invoice Distribution Summary Tax Line Identifier
109174  , p_source_59            IN NUMBER
109175 --Business Flow Invoice Distribution Type
109176  , p_source_62            IN VARCHAR2
109177 --Business Flow Invoice Entity Code
109178  , p_source_63            IN VARCHAR2
109179 --Business Flow Invoice Distribution Identifier
109180  , p_source_64            IN NUMBER
109181 --Business Flow Invoice Identifier
109182  , p_source_65            IN NUMBER
109183 --Purchasing Encumbrance Option
109184  , p_source_102            IN VARCHAR2
109185  , p_source_102_meaning    IN VARCHAR2
109186 --Invoice Encumbered Option
109187  , p_source_104            IN VARCHAR2
109188  , p_source_104_meaning    IN VARCHAR2
109189 )
109190 IS
109191 
109192 l_component_type              VARCHAR2(80);
109193 l_component_code              VARCHAR2(30);
109194 l_component_type_code         VARCHAR2(1);
109195 l_component_appl_id           INTEGER;
109196 l_amb_context_code            VARCHAR2(30);
109197 l_entity_code                 VARCHAR2(30);
109198 l_event_class_code            VARCHAR2(30);
109199 l_ae_header_id                NUMBER;
109200 l_event_type_code             VARCHAR2(30);
109201 l_line_definition_code        VARCHAR2(30);
109202 l_line_definition_owner_code  VARCHAR2(1);
109203 --
109204 -- adr variables
109205 l_segment                     VARCHAR2(30);
109206 l_ccid                        NUMBER;
109207 l_adr_transaction_coa_id      NUMBER;
109208 l_adr_accounting_coa_id       NUMBER;
109209 l_adr_flexfield_segment_code  VARCHAR2(30);
109210 l_adr_flex_value_set_id       NUMBER;
109211 l_adr_value_type_code         VARCHAR2(30);
109212 l_adr_value_combination_id    NUMBER;
109213 l_adr_value_segment_code      VARCHAR2(30);
109214 
109215 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
109216 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
109217 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
109218 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
109219 
109220 -- 4262811 Variables ------------------------------------------------------------------------------------------
109221 l_entered_amt_idx             NUMBER;
109222 l_accted_amt_idx              NUMBER;
109223 l_acc_rev_flag                VARCHAR2(1);
109224 l_accrual_line_num            NUMBER;
109225 l_tmp_amt                     NUMBER;
109226 l_acc_rev_natural_side_code   VARCHAR2(1);
109227 
109228 l_num_entries                 NUMBER;
109229 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
109230 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
109231 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
109232 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
109233 l_recog_line_1                NUMBER;
109234 l_recog_line_2                NUMBER;
109235 
109236 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
109237 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
109238 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
109239 
109240 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
109241 
109242 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
109243 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
109244 
109245 ---------------------------------------------------------------------------------------------------------------
109246 
109247 
109248 --
109249 -- bulk performance
109250 --
109251 l_balance_type_code           VARCHAR2(1);
109252 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
109253 l_log_module                  VARCHAR2(240);
109254 
109255 --
109256 -- Upgrade strategy
109257 --
109258 l_actual_upg_option           VARCHAR2(1);
109259 l_enc_upg_option           VARCHAR2(1);
109260 
109261 --
109262 BEGIN
109263 --
109264 IF g_log_enabled THEN
109268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109265       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_191';
109266 END IF;
109267 --
109269 
109270       trace
109271          (p_msg      => 'BEGIN of AcctLineType_191'
109272          ,p_level    => C_LEVEL_PROCEDURE
109273          ,p_module   => l_log_module);
109274 
109275 END IF;
109276 --
109277 l_component_type             := 'AMB_JLT';
109278 l_component_code             := 'AP_TAX_RATE_VAR_CLR_ENC';
109279 l_component_type_code        := 'S';
109280 l_component_appl_id          :=  200;
109281 l_amb_context_code           := 'DEFAULT';
109282 l_entity_code                := 'AP_PAYMENTS';
109283 l_event_class_code           := 'RECONCILED PAYMENTS';
109284 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
109285 l_line_definition_owner_code := 'S';
109286 l_line_definition_code       := 'ENC_RECONCILED_PAYMENTS_ALL';
109287 --
109288 l_balance_type_code          := 'E';
109289 l_segment                     := NULL;
109290 l_ccid                        := NULL;
109291 l_adr_transaction_coa_id      := NULL;
109292 l_adr_accounting_coa_id       := NULL;
109293 l_adr_flexfield_segment_code  := NULL;
109294 l_adr_flex_value_set_id       := NULL;
109295 l_adr_value_type_code         := NULL;
109296 l_adr_value_combination_id    := NULL;
109297 l_adr_value_segment_code      := NULL;
109298 
109299 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
109300 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
109301 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
109302 l_budgetary_control_flag     := 'N';
109303 
109304 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
109305 l_bflow_applied_to_amt       := NULL; -- 5132302
109306 l_entered_amt_idx            := NULL;          -- 4262811
109307 l_accted_amt_idx             := NULL;          -- 4262811
109308 l_acc_rev_flag               := NULL;          -- 4262811
109309 l_accrual_line_num           := NULL;          -- 4262811
109310 l_tmp_amt                    := NULL;          -- 4262811
109311 --
109312  
109313 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
109314     l_balance_type_code <> 'B' THEN
109315 IF NVL(p_source_38,'
109316 ') =  'CLEAR_CLEAR' AND 
109317 NVL(p_source_20,'
109318 ') =  'TRV' AND 
109319 (NVL(p_source_39,'
109320 ') =  'CASH' OR 
109321 NVL(p_source_39,'
109322 ') =  'DISCOUNT') AND 
109323 NVL(p_source_102,'
109324 ') =  'Y' AND 
109325 NVL(p_source_104,'
109326 ') =  'Y'
109327  THEN 
109328 
109329    --
109330    XLA_AE_LINES_PKG.SetNewLine;
109331 
109332    p_balance_type_code          := l_balance_type_code;
109333    -- set the flag so later we will know whether the gain loss line needs to be created
109334    
109335    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
109336      p_actual_flag :='A';
109337    END IF;
109338 
109339    --
109340    -- bulk performance
109341    --
109342    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
109343                                       p_header_num   => 0); -- 4262811
109344    --
109345    -- set accounting line options
109346    --
109347    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
109348            p_natural_side_code          => 'C'
109349          , p_gain_or_loss_flag          => 'N'
109350          , p_gl_transfer_mode_code      => 'S'
109351          , p_acct_entry_type_code       => 'E'
109352          , p_switch_side_flag           => 'Y'
109353          , p_merge_duplicate_code       => 'A'
109354          );
109355    --
109356    l_acc_rev_natural_side_code := 'D';  -- 4262811
109357    -- 
109358    --
109359    -- set accounting line type info
109360    --
109361    xla_ae_lines_pkg.SetAcctLineType
109362       (p_component_type             => l_component_type
109363       ,p_event_type_code            => l_event_type_code
109364       ,p_line_definition_owner_code => l_line_definition_owner_code
109365       ,p_line_definition_code       => l_line_definition_code
109366       ,p_accounting_line_code       => l_component_code
109367       ,p_accounting_line_type_code  => l_component_type_code
109368       ,p_accounting_line_appl_id    => l_component_appl_id
109369       ,p_amb_context_code           => l_amb_context_code
109370       ,p_entity_code                => l_entity_code
109371       ,p_event_class_code           => l_event_class_code);
109372    --
109373    -- set accounting class
109374    --
109375    xla_ae_lines_pkg.SetAcctClass(
109376            p_accounting_class_code  => 'TRV'
109377          , p_ae_header_id           => l_ae_header_id
109378          );
109379 
109380    --
109381    -- set rounding class
109382    --
109383    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
109384                       'TRV';
109385 
109386    --
109387    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
109388    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
109389    --
109390    -- bulk performance
109391    --
109392    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
109393 
109394    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
109395       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
109396 
109397    -- 4955764
109398    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109402    
109399       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
109400 
109401    -- 4458381 Public Sector Enh
109403    --
109404    -- set accounting attributes for the line type
109405    --
109406    l_entered_amt_idx := 10;
109407    l_accted_amt_idx  := 12;
109408    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
109409    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109410    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
109411    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
109412    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
109413    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
109414    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
109415    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
109416    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
109417    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
109418    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
109419    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
109420    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
109421    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
109422    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
109423    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
109424    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
109425    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
109426    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
109427    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
109428    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
109429    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
109430    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
109431    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
109432    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
109433    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
109434    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
109435    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
109436    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
109437    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
109438    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
109439    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
109440    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
109441    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
109442    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
109443    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
109444    l_rec_acct_attrs.array_num_value(18)  := p_source_58;
109445    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
109446    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
109447 
109448    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
109449    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
109450 
109451    ---------------------------------------------------------------------------------------------------------------
109452    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
109453    ---------------------------------------------------------------------------------------------------------------
109454    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
109455 
109456    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109457    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109458 
109459    IF xla_accounting_cache_pkg.GetValueChar
109460          (p_source_code         => 'LEDGER_CATEGORY_CODE'
109461          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
109462    AND l_bflow_method_code = 'PRIOR_ENTRY'
109463 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
109464    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
109465          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
109466        )
109467    THEN
109468          xla_ae_lines_pkg.BflowUpgEntry
109469            (p_business_method_code    => l_bflow_method_code
109470            ,p_business_class_code     => l_bflow_class_code
109471            ,p_balance_type            => l_balance_type_code);
109472    ELSE
109473       NULL;
109474 XLA_AE_LINES_PKG.business_flow_validation(
109475                                 p_business_method_code     => l_bflow_method_code
109476                                ,p_business_class_code      => l_bflow_class_code
109477                                ,p_inherit_description_flag => l_inherit_desc_flag);
109478    END IF;
109479 
109480    --
109481    -- call analytical criteria
109482    --
109483    -- Inherited Analytical Criteria for business flow method of Prior Entry.
109484    --
109485    -- call description
109486    --
109487    -- No description or it is inherited.
109488    --
109489    -- call ADRs
109490    -- Bug 4922099
109491    --
109492    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109493         (NVL(l_actual_upg_option, 'N') = 'O') OR
109494         (NVL(l_enc_upg_option, 'N') = 'O')
109495       )
109496    THEN
109497    NULL;
109498    --
109499    --
109500    
109501    --
109502    --
109503    END IF;
109504    --
109505    -- Bug 4922099
109509         (l_bflow_method_code = 'PRIOR_ENTRY')
109506    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
109507           (NVL(l_enc_upg_option, 'N') = 'O')
109508         ) AND
109510       )
109511    THEN
109512       IF
109513       --
109514       1 = 1
109515       --
109516       THEN
109517       xla_accounting_err_pkg.build_message
109518                                     (p_appli_s_name            => 'XLA'
109519                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109520                                     ,p_token_1                 => 'LINE_NUMBER'
109521                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
109522                                     ,p_token_2                 => 'LINE_TYPE_NAME'
109523                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
109524                                                                              l_component_type
109525                                                                             ,l_component_code
109526                                                                             ,l_component_type_code
109527                                                                             ,l_component_appl_id
109528                                                                             ,l_amb_context_code
109529                                                                             ,l_entity_code
109530                                                                             ,l_event_class_code
109531                                                                            )
109532                                     ,p_token_3                 => 'OWNER'
109533                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
109534                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
109535                                                                           ,p_lookup_code    => l_component_type_code
109536                                                                          )
109537                                     ,p_token_4                 => 'PRODUCT_NAME'
109538                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
109539                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
109540                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
109541                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
109542                                     ,p_ae_header_id            =>  NULL
109543                                        );
109544 
109545         IF (C_LEVEL_ERROR>= g_log_level) THEN
109546                  trace
109547                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109548                       ,p_level    => C_LEVEL_ERROR
109549                       ,p_module   => l_log_module);
109550         END IF;
109551       END IF;
109552    END IF;
109553    --
109554    --
109555    ------------------------------------------------------------------------------------------------
109556    -- 4219869 Business Flow
109557    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
109558    -- Prior Entry.  Currently, the following code is always generated.
109559    ------------------------------------------------------------------------------------------------
109560    -- No ValidateCurrentLine for business flow method of Prior Entry
109561 
109562    ------------------------------------------------------------------------------------
109563    -- 4219869 Business Flow
109564    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
109565    ------------------------------------------------------------------------------------
109566    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109567 
109568    ----------------------------------------------------------------------------------
109569    -- 4219869 Business Flow
109570    -- Update journal entry status -- Need to generate this within IF <condition>
109571    ----------------------------------------------------------------------------------
109572    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109573          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
109574          ,p_balance_type_code => l_balance_type_code
109575          );
109576 
109577    -------------------------------------------------------------------------------------------
109578    -- 4262811 - Generate the Accrual Reversal lines
109579    -------------------------------------------------------------------------------------------
109580    BEGIN
109581       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
109582                               (g_array_event(p_event_id).array_value_num('header_index'));
109583       IF l_acc_rev_flag IS NULL THEN
109584          l_acc_rev_flag := 'N';
109585       END IF;
109586    EXCEPTION
109587       WHEN OTHERS THEN
109588          l_acc_rev_flag := 'N';
109589    END;
109590    --
109591    IF (l_acc_rev_flag = 'Y') THEN
109592 
109593        -- 4645092  ------------------------------------------------------------------------------
109594        -- To allow MPA report to determine if it should generate report process
109595        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109599        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109596        ------------------------------------------------------------------------------------------
109597 
109598        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109600    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
109601    -- call ADRs
109602    -- Bug 4922099
109603    --
109604    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109605         (NVL(l_actual_upg_option, 'N') = 'O') OR
109606         (NVL(l_enc_upg_option, 'N') = 'O')
109607       )
109608    THEN
109609    NULL;
109610    --
109611    --
109612    
109613    --
109614    --
109615    END IF;
109616 
109617        --
109618        -- Update the line information that should be overwritten
109619        --
109620        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109621                                          p_header_num   => 1);
109622        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
109623 
109624        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109625 
109626        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
109627           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109628        END IF;
109629 
109630       --
109631       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109632       --
109633       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109634           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
109635       ELSE
109636           ---------------------------------------------------------------------------------------------------
109637           -- 4262811a Switch Sign
109638           ---------------------------------------------------------------------------------------------------
109639           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
109640           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109641                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109642           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109643                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109644           -- 5132302
109645           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109646                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109647 
109648       END IF;
109649 
109650       -- 4955764
109651       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109652       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109653 
109654 
109655       XLA_AE_LINES_PKG.ValidateCurrentLine;
109656       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109657 
109658       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109659                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109660                ,p_balance_type_code => l_balance_type_code);
109661 
109662    END IF;
109663 
109664    -----------------------------------------------------------------------------------------
109665    -- 4262811 Multiperiod Accounting
109666    -----------------------------------------------------------------------------------------
109667      -- No MPA option is assigned.
109668 
109669 
109670 END IF;
109671 END IF;
109672 --
109673 
109674 --
109675 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109676    trace
109677       (p_msg      => 'END of AcctLineType_191'
109678       ,p_level    => C_LEVEL_PROCEDURE
109679       ,p_module   => l_log_module);
109680 END IF;
109681 --
109682 EXCEPTION
109683   WHEN xla_exceptions_pkg.application_exception THEN
109684       RAISE;
109685   WHEN OTHERS THEN
109686        xla_exceptions_pkg.raise_message
109687            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_191');
109688 END AcctLineType_191;
109689 --
109690 
109691 ---------------------------------------
109692 --
109693 -- PRIVATE FUNCTION
109694 --         AcctLineType_192
109695 --
109696 ---------------------------------------
109697 PROCEDURE AcctLineType_192 (
109698   p_application_id        IN NUMBER
109699  ,p_event_id              IN NUMBER
109700  ,p_calculate_acctd_flag  IN VARCHAR2
109701  ,p_calculate_g_l_flag    IN VARCHAR2
109702  ,p_actual_flag           IN OUT VARCHAR2
109703  ,p_balance_type_code     OUT VARCHAR2
109704  ,p_gain_or_loss_ref      OUT VARCHAR2
109705  
109706 --Payment Distribution (Payment Rate) Ledger Amount
109707  , p_source_9            IN NUMBER
109708 --Invoice Distribution Account
109709  , p_source_17            IN NUMBER
109710 --Invoice Distribution Type
109711  , p_source_20            IN VARCHAR2
109712  , p_source_20_meaning    IN VARCHAR2
109713 --When to Account for Payment Option
109714  , p_source_38            IN VARCHAR2
109715 --Payment Distribution Type
109716  , p_source_39            IN VARCHAR2
109717  , p_source_39_meaning    IN VARCHAR2
109718 --Accounting Reversal Indicator
109719  , p_source_40            IN VARCHAR2
109723  , p_source_42            IN NUMBER
109720 --Payment Distribution Amount
109721  , p_source_41            IN NUMBER
109722 --Business Flow Accounts Payable Application Identifier
109724 --Payment Distribution Identifier
109725  , p_source_47            IN NUMBER
109726 --Distribution Link Type
109727  , p_source_48            IN VARCHAR2
109728 --Payment Currency Code
109729  , p_source_49            IN VARCHAR2
109730 --Override Accounted Amount Indicator
109731  , p_source_53            IN VARCHAR2
109732  , p_source_53_meaning    IN VARCHAR2
109733 --Payment Supplier Identifier
109734  , p_source_54            IN NUMBER
109735 --Payment Supplier Site Identifier
109736  , p_source_55            IN NUMBER
109737 --Third Party Type
109738  , p_source_56            IN VARCHAR2
109739 --Payment Distribution Reversed Identifier
109740  , p_source_57            IN NUMBER
109741 --Invoice Distribution Tax Line Identifier
109742  , p_source_58            IN NUMBER
109743 --Invoice Distribution Summary Tax Line Identifier
109744  , p_source_59            IN NUMBER
109745 --Payment Type
109746  , p_source_60            IN VARCHAR2
109747  , p_source_60_meaning    IN VARCHAR2
109748 --Invoice Distribution Amount of the Payment Distribution
109749  , p_source_61            IN NUMBER
109750 --Business Flow Invoice Distribution Type
109751  , p_source_62            IN VARCHAR2
109752 --Business Flow Invoice Entity Code
109753  , p_source_63            IN VARCHAR2
109754 --Business Flow Invoice Distribution Identifier
109755  , p_source_64            IN NUMBER
109756 --Business Flow Invoice Identifier
109757  , p_source_65            IN NUMBER
109758 --Invoice Distribution Tax Distribution Identifier from Tax
109759  , p_source_66            IN NUMBER
109760 --Accrue on Receipt Option
109761  , p_source_100            IN VARCHAR2
109762  , p_source_100_meaning    IN VARCHAR2
109763 --Invoice Type Paid
109764  , p_source_101            IN VARCHAR2
109765  , p_source_101_meaning    IN VARCHAR2
109766 --Payment Exchange Date
109767  , p_source_114            IN DATE
109768 --Payment Exchange Rate
109769  , p_source_115            IN NUMBER
109770 --Payment Exchange Rate Type
109771  , p_source_116            IN VARCHAR2
109772 )
109773 IS
109774 
109775 l_component_type              VARCHAR2(80);
109776 l_component_code              VARCHAR2(30);
109777 l_component_type_code         VARCHAR2(1);
109778 l_component_appl_id           INTEGER;
109779 l_amb_context_code            VARCHAR2(30);
109780 l_entity_code                 VARCHAR2(30);
109781 l_event_class_code            VARCHAR2(30);
109782 l_ae_header_id                NUMBER;
109783 l_event_type_code             VARCHAR2(30);
109784 l_line_definition_code        VARCHAR2(30);
109785 l_line_definition_owner_code  VARCHAR2(1);
109786 --
109787 -- adr variables
109788 l_segment                     VARCHAR2(30);
109789 l_ccid                        NUMBER;
109790 l_adr_transaction_coa_id      NUMBER;
109791 l_adr_accounting_coa_id       NUMBER;
109792 l_adr_flexfield_segment_code  VARCHAR2(30);
109793 l_adr_flex_value_set_id       NUMBER;
109794 l_adr_value_type_code         VARCHAR2(30);
109795 l_adr_value_combination_id    NUMBER;
109796 l_adr_value_segment_code      VARCHAR2(30);
109797 
109798 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
109799 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
109800 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
109801 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
109802 
109803 -- 4262811 Variables ------------------------------------------------------------------------------------------
109804 l_entered_amt_idx             NUMBER;
109805 l_accted_amt_idx              NUMBER;
109806 l_acc_rev_flag                VARCHAR2(1);
109807 l_accrual_line_num            NUMBER;
109808 l_tmp_amt                     NUMBER;
109809 l_acc_rev_natural_side_code   VARCHAR2(1);
109810 
109811 l_num_entries                 NUMBER;
109812 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
109813 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
109814 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
109815 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
109816 l_recog_line_1                NUMBER;
109817 l_recog_line_2                NUMBER;
109818 
109819 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
109820 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
109821 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
109822 
109823 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
109824 
109825 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
109826 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
109827 
109828 ---------------------------------------------------------------------------------------------------------------
109829 
109830 
109831 --
109832 -- bulk performance
109833 --
109834 l_balance_type_code           VARCHAR2(1);
109835 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
109836 l_log_module                  VARCHAR2(240);
109837 
109838 --
109839 -- Upgrade strategy
109840 --
109841 l_actual_upg_option           VARCHAR2(1);
109842 l_enc_upg_option           VARCHAR2(1);
109843 
109844 --
109845 BEGIN
109846 --
109847 IF g_log_enabled THEN
109851 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109848       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_192';
109849 END IF;
109850 --
109852 
109853       trace
109854          (p_msg      => 'BEGIN of AcctLineType_192'
109855          ,p_level    => C_LEVEL_PROCEDURE
109856          ,p_module   => l_log_module);
109857 
109858 END IF;
109859 --
109860 l_component_type             := 'AMB_JLT';
109861 l_component_code             := 'AP_TAX_RATE_VAR_PMT';
109862 l_component_type_code        := 'S';
109863 l_component_appl_id          :=  200;
109864 l_amb_context_code           := 'DEFAULT';
109865 l_entity_code                := 'AP_PAYMENTS';
109866 l_event_class_code           := 'PAYMENTS';
109867 l_event_type_code            := 'PAYMENTS_ALL';
109868 l_line_definition_owner_code := 'S';
109869 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
109870 --
109871 l_balance_type_code          := 'A';
109872 l_segment                     := NULL;
109873 l_ccid                        := NULL;
109874 l_adr_transaction_coa_id      := NULL;
109875 l_adr_accounting_coa_id       := NULL;
109876 l_adr_flexfield_segment_code  := NULL;
109877 l_adr_flex_value_set_id       := NULL;
109878 l_adr_value_type_code         := NULL;
109879 l_adr_value_combination_id    := NULL;
109880 l_adr_value_segment_code      := NULL;
109881 
109882 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
109883 l_bflow_class_code           := '';    -- 4219869 Business Flow
109884 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
109885 l_budgetary_control_flag     := 'N';
109886 
109887 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
109888 l_bflow_applied_to_amt       := NULL; -- 5132302
109889 l_entered_amt_idx            := NULL;          -- 4262811
109890 l_accted_amt_idx             := NULL;          -- 4262811
109891 l_acc_rev_flag               := NULL;          -- 4262811
109892 l_accrual_line_num           := NULL;          -- 4262811
109893 l_tmp_amt                    := NULL;          -- 4262811
109894 --
109895  
109896 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
109897     l_balance_type_code <> 'B' THEN
109898 IF NVL(p_source_38,'
109899 ') <>  'CLEAR_CLEAR' AND 
109900 NVL(p_source_20,'
109901 ') =  'TRV' AND 
109902 NVL(p_source_101,'
109903 ') <>  'INTEREST' AND 
109904 (NVL(p_source_39,'
109905 ') =  'CASH' OR 
109906 NVL(p_source_39,'
109907 ') =  'AWT' OR 
109908 NVL(p_source_39,'
109909 ') =  'DISCOUNT') AND 
109910 NVL(p_source_60,'
109911 ') <>  'R' AND 
109912 NVL(p_source_100,'
109913 ') =  'Y'
109914  THEN 
109915 
109916    --
109917    XLA_AE_LINES_PKG.SetNewLine;
109918 
109919    p_balance_type_code          := l_balance_type_code;
109920    -- set the flag so later we will know whether the gain loss line needs to be created
109921    
109922    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
109923      p_actual_flag :='A';
109924    END IF;
109925 
109926    --
109927    -- bulk performance
109928    --
109929    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
109930                                       p_header_num   => 0); -- 4262811
109931    --
109932    -- set accounting line options
109933    --
109934    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
109935            p_natural_side_code          => 'D'
109936          , p_gain_or_loss_flag          => 'N'
109937          , p_gl_transfer_mode_code      => 'S'
109938          , p_acct_entry_type_code       => 'A'
109939          , p_switch_side_flag           => 'Y'
109940          , p_merge_duplicate_code       => 'A'
109941          );
109942    --
109943    l_acc_rev_natural_side_code := 'C';  -- 4262811
109944    -- 
109945    --
109946    -- set accounting line type info
109947    --
109948    xla_ae_lines_pkg.SetAcctLineType
109949       (p_component_type             => l_component_type
109950       ,p_event_type_code            => l_event_type_code
109951       ,p_line_definition_owner_code => l_line_definition_owner_code
109952       ,p_line_definition_code       => l_line_definition_code
109953       ,p_accounting_line_code       => l_component_code
109954       ,p_accounting_line_type_code  => l_component_type_code
109955       ,p_accounting_line_appl_id    => l_component_appl_id
109956       ,p_amb_context_code           => l_amb_context_code
109957       ,p_entity_code                => l_entity_code
109958       ,p_event_class_code           => l_event_class_code);
109959    --
109960    -- set accounting class
109961    --
109962    xla_ae_lines_pkg.SetAcctClass(
109963            p_accounting_class_code  => 'TRV'
109964          , p_ae_header_id           => l_ae_header_id
109965          );
109966 
109967    --
109968    -- set rounding class
109969    --
109970    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
109971                       'TRV';
109972 
109973    --
109974    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
109975    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
109976    --
109977    -- bulk performance
109978    --
109979    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
109980 
109981    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
109982       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
109983 
109984    -- 4955764
109988    -- 4458381 Public Sector Enh
109985    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109986       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
109987 
109989    
109990    --
109991    -- set accounting attributes for the line type
109992    --
109993    l_entered_amt_idx := 10;
109994    l_accted_amt_idx  := 15;
109995    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
109996    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109997    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
109998    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
109999    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
110000    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
110001    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
110002    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110003    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
110004    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
110005    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
110006    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
110007    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
110008    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110009    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
110010    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
110011    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
110012    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
110013    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
110014    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
110015    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
110016    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
110017    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
110018    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
110019    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
110020    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
110021    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
110022    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
110023    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
110024    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
110025    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
110026    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
110027    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
110028    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
110029    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
110030    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
110031    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
110032    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
110033    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
110034    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
110035    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
110036    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
110037    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
110038    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
110039    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
110040    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
110041    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
110042    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
110043    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
110044 
110045    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
110046    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
110047 
110048    ---------------------------------------------------------------------------------------------------------------
110049    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
110050    ---------------------------------------------------------------------------------------------------------------
110051    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
110052 
110053    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110054    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110055 
110056    IF xla_accounting_cache_pkg.GetValueChar
110057          (p_source_code         => 'LEDGER_CATEGORY_CODE'
110058          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
110059    AND l_bflow_method_code = 'PRIOR_ENTRY'
110060 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
110061    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
110062          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
110063        )
110064    THEN
110065          xla_ae_lines_pkg.BflowUpgEntry
110066            (p_business_method_code    => l_bflow_method_code
110067            ,p_business_class_code     => l_bflow_class_code
110068            ,p_balance_type            => l_balance_type_code);
110069    ELSE
110070       NULL;
110071 -- No business flow processing for business flow method of NONE.
110072    END IF;
110073 
110074    --
110075    -- call analytical criteria
110076    --
110077    
110078    --
110079    -- call description
110080    --
110081    -- No description or it is inherited.
110082    --
110083    -- call ADRs
110087         (NVL(l_actual_upg_option, 'N') = 'O') OR
110084    -- Bug 4922099
110085    --
110086    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110088         (NVL(l_enc_upg_option, 'N') = 'O')
110089       )
110090    THEN
110091    NULL;
110092    --
110093    --
110094    
110095   l_ccid := AcctDerRule_26(
110096            p_application_id           => p_application_id
110097          , p_ae_header_id             => l_ae_header_id 
110098 , p_source_17 => p_source_17
110099          , x_transaction_coa_id       => l_adr_transaction_coa_id
110100          , x_accounting_coa_id        => l_adr_accounting_coa_id
110101          , x_value_type_code          => l_adr_value_type_code
110102          , p_side                     => 'NA'
110103    );
110104 
110105    xla_ae_lines_pkg.set_ccid(
110106     p_code_combination_id          => l_ccid
110107   , p_value_type_code              => l_adr_value_type_code
110108   , p_transaction_coa_id           => l_adr_transaction_coa_id
110109   , p_accounting_coa_id            => l_adr_accounting_coa_id
110110   , p_adr_code                     => 'AP_INVOICE_DIST'
110111   , p_adr_type_code                => 'S'
110112   , p_component_type               => l_component_type
110113   , p_component_code               => l_component_code
110114   , p_component_type_code          => l_component_type_code
110115   , p_component_appl_id            => l_component_appl_id
110116   , p_amb_context_code             => l_amb_context_code
110117   , p_side                         => 'NA'
110118   );
110119 
110120 
110121    --
110122    --
110123    END IF;
110124    --
110125    -- Bug 4922099
110126    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
110127           (NVL(l_enc_upg_option, 'N') = 'O')
110128         ) AND
110129         (l_bflow_method_code = 'PRIOR_ENTRY')
110130       )
110131    THEN
110132       IF
110133       --
110134       1 = 2
110135       --
110136       THEN
110137       xla_accounting_err_pkg.build_message
110138                                     (p_appli_s_name            => 'XLA'
110139                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110140                                     ,p_token_1                 => 'LINE_NUMBER'
110141                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
110142                                     ,p_token_2                 => 'LINE_TYPE_NAME'
110143                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
110144                                                                              l_component_type
110145                                                                             ,l_component_code
110146                                                                             ,l_component_type_code
110147                                                                             ,l_component_appl_id
110148                                                                             ,l_amb_context_code
110149                                                                             ,l_entity_code
110150                                                                             ,l_event_class_code
110151                                                                            )
110152                                     ,p_token_3                 => 'OWNER'
110153                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
110154                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
110155                                                                           ,p_lookup_code    => l_component_type_code
110156                                                                          )
110157                                     ,p_token_4                 => 'PRODUCT_NAME'
110158                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
110159                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
110160                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
110161                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
110162                                     ,p_ae_header_id            =>  NULL
110163                                        );
110164 
110165         IF (C_LEVEL_ERROR>= g_log_level) THEN
110166                  trace
110167                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110168                       ,p_level    => C_LEVEL_ERROR
110169                       ,p_module   => l_log_module);
110170         END IF;
110171       END IF;
110172    END IF;
110173    --
110174    --
110175    ------------------------------------------------------------------------------------------------
110176    -- 4219869 Business Flow
110177    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
110178    -- Prior Entry.  Currently, the following code is always generated.
110179    ------------------------------------------------------------------------------------------------
110180    XLA_AE_LINES_PKG.ValidateCurrentLine;
110181 
110182    ------------------------------------------------------------------------------------
110183    -- 4219869 Business Flow
110184    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
110188    ----------------------------------------------------------------------------------
110185    ------------------------------------------------------------------------------------
110186    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110187 
110189    -- 4219869 Business Flow
110190    -- Update journal entry status -- Need to generate this within IF <condition>
110191    ----------------------------------------------------------------------------------
110192    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110193          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
110194          ,p_balance_type_code => l_balance_type_code
110195          );
110196 
110197    -------------------------------------------------------------------------------------------
110198    -- 4262811 - Generate the Accrual Reversal lines
110199    -------------------------------------------------------------------------------------------
110200    BEGIN
110201       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
110202                               (g_array_event(p_event_id).array_value_num('header_index'));
110203       IF l_acc_rev_flag IS NULL THEN
110204          l_acc_rev_flag := 'N';
110205       END IF;
110206    EXCEPTION
110207       WHEN OTHERS THEN
110208          l_acc_rev_flag := 'N';
110209    END;
110210    --
110211    IF (l_acc_rev_flag = 'Y') THEN
110212 
110213        -- 4645092  ------------------------------------------------------------------------------
110214        -- To allow MPA report to determine if it should generate report process
110215        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
110216        ------------------------------------------------------------------------------------------
110217 
110218        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
110219        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
110220    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
110221    -- call ADRs
110222    -- Bug 4922099
110223    --
110224    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110225         (NVL(l_actual_upg_option, 'N') = 'O') OR
110226         (NVL(l_enc_upg_option, 'N') = 'O')
110227       )
110228    THEN
110229    NULL;
110230    --
110231    --
110232    
110233   l_ccid := AcctDerRule_26(
110234            p_application_id           => p_application_id
110235          , p_ae_header_id             => l_ae_header_id 
110236 , p_source_17 => p_source_17
110237          , x_transaction_coa_id       => l_adr_transaction_coa_id
110238          , x_accounting_coa_id        => l_adr_accounting_coa_id
110239          , x_value_type_code          => l_adr_value_type_code
110240          , p_side                     => 'NA'
110241    );
110242 
110243    xla_ae_lines_pkg.set_ccid(
110244     p_code_combination_id          => l_ccid
110245   , p_value_type_code              => l_adr_value_type_code
110246   , p_transaction_coa_id           => l_adr_transaction_coa_id
110247   , p_accounting_coa_id            => l_adr_accounting_coa_id
110248   , p_adr_code                     => 'AP_INVOICE_DIST'
110249   , p_adr_type_code                => 'S'
110250   , p_component_type               => l_component_type
110251   , p_component_code               => l_component_code
110252   , p_component_type_code          => l_component_type_code
110253   , p_component_appl_id            => l_component_appl_id
110254   , p_amb_context_code             => l_amb_context_code
110255   , p_side                         => 'NA'
110256   );
110257 
110258 
110259    --
110260    --
110261    END IF;
110262 
110263        --
110264        -- Update the line information that should be overwritten
110265        --
110266        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
110267                                          p_header_num   => 1);
110268        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
110269 
110270        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
110271 
110272        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
110273           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
110274        END IF;
110275 
110276       --
110277       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
110278       --
110279       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
110280           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
110281       ELSE
110282           ---------------------------------------------------------------------------------------------------
110283           -- 4262811a Switch Sign
110284           ---------------------------------------------------------------------------------------------------
110285           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
110286           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110287                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110288           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110289                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110290           -- 5132302
110291           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
110295 
110292                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110293 
110294       END IF;
110296       -- 4955764
110297       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110298       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
110299 
110300 
110301       XLA_AE_LINES_PKG.ValidateCurrentLine;
110302       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110303 
110304       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110305                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
110306                ,p_balance_type_code => l_balance_type_code);
110307 
110308    END IF;
110309 
110310    -----------------------------------------------------------------------------------------
110311    -- 4262811 Multiperiod Accounting
110312    -----------------------------------------------------------------------------------------
110313      -- No MPA option is assigned.
110314 
110315 
110316 END IF;
110317 END IF;
110318 --
110319 
110320 --
110321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110322    trace
110323       (p_msg      => 'END of AcctLineType_192'
110324       ,p_level    => C_LEVEL_PROCEDURE
110325       ,p_module   => l_log_module);
110326 END IF;
110327 --
110328 EXCEPTION
110329   WHEN xla_exceptions_pkg.application_exception THEN
110330       RAISE;
110331   WHEN OTHERS THEN
110332        xla_exceptions_pkg.raise_message
110333            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_192');
110334 END AcctLineType_192;
110335 --
110336 
110337 ---------------------------------------
110338 --
110339 -- PRIVATE FUNCTION
110340 --         AcctLineType_193
110341 --
110342 ---------------------------------------
110343 PROCEDURE AcctLineType_193 (
110344   p_application_id        IN NUMBER
110345  ,p_event_id              IN NUMBER
110346  ,p_calculate_acctd_flag  IN VARCHAR2
110347  ,p_calculate_g_l_flag    IN VARCHAR2
110348  ,p_actual_flag           IN OUT VARCHAR2
110349  ,p_balance_type_code     OUT VARCHAR2
110350  ,p_gain_or_loss_ref      OUT VARCHAR2
110351  
110352 --Payment Distribution (Payment Rate) Ledger Amount
110353  , p_source_9            IN NUMBER
110354 --Invoice Distribution Type
110355  , p_source_20            IN VARCHAR2
110356  , p_source_20_meaning    IN VARCHAR2
110357 --When to Account for Payment Option
110358  , p_source_38            IN VARCHAR2
110359 --Payment Distribution Type
110360  , p_source_39            IN VARCHAR2
110361  , p_source_39_meaning    IN VARCHAR2
110362 --Accounting Reversal Indicator
110363  , p_source_40            IN VARCHAR2
110364 --Payment Distribution Amount
110365  , p_source_41            IN NUMBER
110366 --Business Flow Accounts Payable Application Identifier
110367  , p_source_42            IN NUMBER
110368 --Payment Distribution Identifier
110369  , p_source_47            IN NUMBER
110370 --Distribution Link Type
110371  , p_source_48            IN VARCHAR2
110372 --Payment Currency Code
110373  , p_source_49            IN VARCHAR2
110374 --Override Accounted Amount Indicator
110375  , p_source_53            IN VARCHAR2
110376  , p_source_53_meaning    IN VARCHAR2
110377 --Third Party Type
110378  , p_source_56            IN VARCHAR2
110379 --Payment Distribution Reversed Identifier
110380  , p_source_57            IN NUMBER
110381 --Invoice Distribution Tax Line Identifier
110382  , p_source_58            IN NUMBER
110383 --Invoice Distribution Summary Tax Line Identifier
110384  , p_source_59            IN NUMBER
110385 --Payment Type
110386  , p_source_60            IN VARCHAR2
110387  , p_source_60_meaning    IN VARCHAR2
110388 --Invoice Distribution Amount of the Payment Distribution
110389  , p_source_61            IN NUMBER
110390 --Business Flow Invoice Distribution Type
110391  , p_source_62            IN VARCHAR2
110392 --Business Flow Invoice Entity Code
110393  , p_source_63            IN VARCHAR2
110394 --Business Flow Invoice Distribution Identifier
110395  , p_source_64            IN NUMBER
110396 --Business Flow Invoice Identifier
110397  , p_source_65            IN NUMBER
110398 --Invoice Distribution Tax Distribution Identifier from Tax
110399  , p_source_66            IN NUMBER
110400 --Purchasing Encumbrance Option
110401  , p_source_102            IN VARCHAR2
110402  , p_source_102_meaning    IN VARCHAR2
110403 --Invoice Encumbered Option
110404  , p_source_104            IN VARCHAR2
110405  , p_source_104_meaning    IN VARCHAR2
110406 )
110407 IS
110408 
110409 l_component_type              VARCHAR2(80);
110410 l_component_code              VARCHAR2(30);
110411 l_component_type_code         VARCHAR2(1);
110412 l_component_appl_id           INTEGER;
110413 l_amb_context_code            VARCHAR2(30);
110414 l_entity_code                 VARCHAR2(30);
110415 l_event_class_code            VARCHAR2(30);
110416 l_ae_header_id                NUMBER;
110417 l_event_type_code             VARCHAR2(30);
110418 l_line_definition_code        VARCHAR2(30);
110419 l_line_definition_owner_code  VARCHAR2(1);
110420 --
110421 -- adr variables
110422 l_segment                     VARCHAR2(30);
110423 l_ccid                        NUMBER;
110424 l_adr_transaction_coa_id      NUMBER;
110425 l_adr_accounting_coa_id       NUMBER;
110426 l_adr_flexfield_segment_code  VARCHAR2(30);
110427 l_adr_flex_value_set_id       NUMBER;
110428 l_adr_value_type_code         VARCHAR2(30);
110432 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
110429 l_adr_value_combination_id    NUMBER;
110430 l_adr_value_segment_code      VARCHAR2(30);
110431 
110433 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
110434 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
110435 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
110436 
110437 -- 4262811 Variables ------------------------------------------------------------------------------------------
110438 l_entered_amt_idx             NUMBER;
110439 l_accted_amt_idx              NUMBER;
110440 l_acc_rev_flag                VARCHAR2(1);
110441 l_accrual_line_num            NUMBER;
110442 l_tmp_amt                     NUMBER;
110443 l_acc_rev_natural_side_code   VARCHAR2(1);
110444 
110445 l_num_entries                 NUMBER;
110446 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
110447 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
110448 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
110449 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
110450 l_recog_line_1                NUMBER;
110451 l_recog_line_2                NUMBER;
110452 
110453 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
110454 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
110455 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
110456 
110457 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
110458 
110459 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
110460 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
110461 
110462 ---------------------------------------------------------------------------------------------------------------
110463 
110464 
110465 --
110466 -- bulk performance
110467 --
110468 l_balance_type_code           VARCHAR2(1);
110469 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
110470 l_log_module                  VARCHAR2(240);
110471 
110472 --
110473 -- Upgrade strategy
110474 --
110475 l_actual_upg_option           VARCHAR2(1);
110476 l_enc_upg_option           VARCHAR2(1);
110477 
110478 --
110479 BEGIN
110480 --
110481 IF g_log_enabled THEN
110482       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_193';
110483 END IF;
110484 --
110485 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110486 
110487       trace
110488          (p_msg      => 'BEGIN of AcctLineType_193'
110489          ,p_level    => C_LEVEL_PROCEDURE
110490          ,p_module   => l_log_module);
110491 
110492 END IF;
110493 --
110494 l_component_type             := 'AMB_JLT';
110495 l_component_code             := 'AP_TAX_RATE_VAR_PMT_ENC';
110496 l_component_type_code        := 'S';
110497 l_component_appl_id          :=  200;
110498 l_amb_context_code           := 'DEFAULT';
110499 l_entity_code                := 'AP_PAYMENTS';
110500 l_event_class_code           := 'PAYMENTS';
110501 l_event_type_code            := 'PAYMENTS_ALL';
110502 l_line_definition_owner_code := 'S';
110503 l_line_definition_code       := 'ENC_PAYMENTS_ALL';
110504 --
110505 l_balance_type_code          := 'E';
110506 l_segment                     := NULL;
110507 l_ccid                        := NULL;
110508 l_adr_transaction_coa_id      := NULL;
110509 l_adr_accounting_coa_id       := NULL;
110510 l_adr_flexfield_segment_code  := NULL;
110511 l_adr_flex_value_set_id       := NULL;
110512 l_adr_value_type_code         := NULL;
110513 l_adr_value_combination_id    := NULL;
110514 l_adr_value_segment_code      := NULL;
110515 
110516 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
110517 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
110518 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
110519 l_budgetary_control_flag     := 'N';
110520 
110521 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
110522 l_bflow_applied_to_amt       := NULL; -- 5132302
110523 l_entered_amt_idx            := NULL;          -- 4262811
110524 l_accted_amt_idx             := NULL;          -- 4262811
110525 l_acc_rev_flag               := NULL;          -- 4262811
110526 l_accrual_line_num           := NULL;          -- 4262811
110527 l_tmp_amt                    := NULL;          -- 4262811
110528 --
110529  
110530 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
110531     l_balance_type_code <> 'B' THEN
110532 IF NVL(p_source_38,'
110533 ') <>  'CLEAR_CLEAR' AND 
110534 NVL(p_source_20,'
110535 ') =  'TRV' AND 
110536 (NVL(p_source_39,'
110537 ') =  'CASH' OR 
110538 NVL(p_source_39,'
110539 ') =  'DISCOUNT') AND 
110540 NVL(p_source_60,'
110541 ') <>  'R' AND 
110542 NVL(p_source_102,'
110543 ') =  'Y' AND 
110544 NVL(p_source_104,'
110545 ') =  'Y'
110546  THEN 
110547 
110548    --
110549    XLA_AE_LINES_PKG.SetNewLine;
110550 
110551    p_balance_type_code          := l_balance_type_code;
110552    -- set the flag so later we will know whether the gain loss line needs to be created
110553    
110554    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
110555      p_actual_flag :='A';
110556    END IF;
110557 
110558    --
110559    -- bulk performance
110560    --
110561    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
110562                                       p_header_num   => 0); -- 4262811
110563    --
110567            p_natural_side_code          => 'C'
110564    -- set accounting line options
110565    --
110566    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
110568          , p_gain_or_loss_flag          => 'N'
110569          , p_gl_transfer_mode_code      => 'S'
110570          , p_acct_entry_type_code       => 'E'
110571          , p_switch_side_flag           => 'Y'
110572          , p_merge_duplicate_code       => 'A'
110573          );
110574    --
110575    l_acc_rev_natural_side_code := 'D';  -- 4262811
110576    -- 
110577    --
110578    -- set accounting line type info
110579    --
110580    xla_ae_lines_pkg.SetAcctLineType
110581       (p_component_type             => l_component_type
110582       ,p_event_type_code            => l_event_type_code
110583       ,p_line_definition_owner_code => l_line_definition_owner_code
110584       ,p_line_definition_code       => l_line_definition_code
110585       ,p_accounting_line_code       => l_component_code
110586       ,p_accounting_line_type_code  => l_component_type_code
110587       ,p_accounting_line_appl_id    => l_component_appl_id
110588       ,p_amb_context_code           => l_amb_context_code
110589       ,p_entity_code                => l_entity_code
110590       ,p_event_class_code           => l_event_class_code);
110591    --
110592    -- set accounting class
110593    --
110594    xla_ae_lines_pkg.SetAcctClass(
110595            p_accounting_class_code  => 'TRV'
110596          , p_ae_header_id           => l_ae_header_id
110597          );
110598 
110599    --
110600    -- set rounding class
110601    --
110602    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
110603                       'TRV';
110604 
110605    --
110606    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
110607    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
110608    --
110609    -- bulk performance
110610    --
110611    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
110612 
110613    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
110614       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
110615 
110616    -- 4955764
110617    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110618       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
110619 
110620    -- 4458381 Public Sector Enh
110621    
110622    --
110623    -- set accounting attributes for the line type
110624    --
110625    l_entered_amt_idx := 10;
110626    l_accted_amt_idx  := 12;
110627    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
110628    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
110629    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
110630    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
110631    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
110632    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
110633    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
110634    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110635    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
110636    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
110637    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
110638    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
110639    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
110640    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110641    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
110642    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
110643    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
110644    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
110645    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
110646    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
110647    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
110648    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
110649    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
110650    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
110651    l_rec_acct_attrs.array_num_value(12)  := p_source_9;
110652    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
110653    l_rec_acct_attrs.array_char_value(13)  := p_source_53;
110654    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
110655    l_rec_acct_attrs.array_char_value(14)  := p_source_56;
110656    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
110657    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_57);
110658    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
110659    l_rec_acct_attrs.array_char_value(16)  := p_source_48;
110660    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
110661    l_rec_acct_attrs.array_num_value(17)  := p_source_58;
110662    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
110663    l_rec_acct_attrs.array_num_value(18)  := p_source_66;
110664    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
110665    l_rec_acct_attrs.array_num_value(19)  := p_source_59;
110666 
110667    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
110668    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
110669 
110673    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
110670    ---------------------------------------------------------------------------------------------------------------
110671    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
110672    ---------------------------------------------------------------------------------------------------------------
110674 
110675    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110676    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110677 
110678    IF xla_accounting_cache_pkg.GetValueChar
110679          (p_source_code         => 'LEDGER_CATEGORY_CODE'
110680          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
110681    AND l_bflow_method_code = 'PRIOR_ENTRY'
110682 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
110683    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
110684          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
110685        )
110686    THEN
110687          xla_ae_lines_pkg.BflowUpgEntry
110688            (p_business_method_code    => l_bflow_method_code
110689            ,p_business_class_code     => l_bflow_class_code
110690            ,p_balance_type            => l_balance_type_code);
110691    ELSE
110692       NULL;
110693 XLA_AE_LINES_PKG.business_flow_validation(
110694                                 p_business_method_code     => l_bflow_method_code
110695                                ,p_business_class_code      => l_bflow_class_code
110696                                ,p_inherit_description_flag => l_inherit_desc_flag);
110697    END IF;
110698 
110699    --
110700    -- call analytical criteria
110701    --
110702    -- Inherited Analytical Criteria for business flow method of Prior Entry.
110703    --
110704    -- call description
110705    --
110706    -- No description or it is inherited.
110707    --
110708    -- call ADRs
110709    -- Bug 4922099
110710    --
110711    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110712         (NVL(l_actual_upg_option, 'N') = 'O') OR
110713         (NVL(l_enc_upg_option, 'N') = 'O')
110714       )
110715    THEN
110716    NULL;
110717    --
110718    --
110719    
110720    --
110721    --
110722    END IF;
110723    --
110724    -- Bug 4922099
110725    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
110726           (NVL(l_enc_upg_option, 'N') = 'O')
110727         ) AND
110728         (l_bflow_method_code = 'PRIOR_ENTRY')
110729       )
110730    THEN
110731       IF
110732       --
110733       1 = 1
110734       --
110735       THEN
110736       xla_accounting_err_pkg.build_message
110737                                     (p_appli_s_name            => 'XLA'
110738                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110739                                     ,p_token_1                 => 'LINE_NUMBER'
110740                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
110741                                     ,p_token_2                 => 'LINE_TYPE_NAME'
110742                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
110743                                                                              l_component_type
110744                                                                             ,l_component_code
110745                                                                             ,l_component_type_code
110746                                                                             ,l_component_appl_id
110747                                                                             ,l_amb_context_code
110748                                                                             ,l_entity_code
110749                                                                             ,l_event_class_code
110750                                                                            )
110751                                     ,p_token_3                 => 'OWNER'
110752                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
110753                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
110754                                                                           ,p_lookup_code    => l_component_type_code
110755                                                                          )
110756                                     ,p_token_4                 => 'PRODUCT_NAME'
110757                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
110758                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
110759                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
110760                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
110761                                     ,p_ae_header_id            =>  NULL
110762                                        );
110763 
110764         IF (C_LEVEL_ERROR>= g_log_level) THEN
110765                  trace
110766                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110767                       ,p_level    => C_LEVEL_ERROR
110768                       ,p_module   => l_log_module);
110769         END IF;
110770       END IF;
110771    END IF;
110772    --
110773    --
110777    -- Prior Entry.  Currently, the following code is always generated.
110774    ------------------------------------------------------------------------------------------------
110775    -- 4219869 Business Flow
110776    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
110778    ------------------------------------------------------------------------------------------------
110779    -- No ValidateCurrentLine for business flow method of Prior Entry
110780 
110781    ------------------------------------------------------------------------------------
110782    -- 4219869 Business Flow
110783    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
110784    ------------------------------------------------------------------------------------
110785    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110786 
110787    ----------------------------------------------------------------------------------
110788    -- 4219869 Business Flow
110789    -- Update journal entry status -- Need to generate this within IF <condition>
110790    ----------------------------------------------------------------------------------
110791    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110792          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
110793          ,p_balance_type_code => l_balance_type_code
110794          );
110795 
110796    -------------------------------------------------------------------------------------------
110797    -- 4262811 - Generate the Accrual Reversal lines
110798    -------------------------------------------------------------------------------------------
110799    BEGIN
110800       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
110801                               (g_array_event(p_event_id).array_value_num('header_index'));
110802       IF l_acc_rev_flag IS NULL THEN
110803          l_acc_rev_flag := 'N';
110804       END IF;
110805    EXCEPTION
110806       WHEN OTHERS THEN
110807          l_acc_rev_flag := 'N';
110808    END;
110809    --
110810    IF (l_acc_rev_flag = 'Y') THEN
110811 
110812        -- 4645092  ------------------------------------------------------------------------------
110813        -- To allow MPA report to determine if it should generate report process
110814        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
110815        ------------------------------------------------------------------------------------------
110816 
110817        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
110818        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
110819    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
110820    -- call ADRs
110821    -- Bug 4922099
110822    --
110823    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110824         (NVL(l_actual_upg_option, 'N') = 'O') OR
110825         (NVL(l_enc_upg_option, 'N') = 'O')
110826       )
110827    THEN
110828    NULL;
110829    --
110830    --
110831    
110832    --
110833    --
110834    END IF;
110835 
110836        --
110837        -- Update the line information that should be overwritten
110838        --
110839        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
110840                                          p_header_num   => 1);
110841        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
110842 
110843        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
110844 
110845        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
110846           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
110847        END IF;
110848 
110849       --
110850       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
110851       --
110852       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
110853           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
110854       ELSE
110855           ---------------------------------------------------------------------------------------------------
110856           -- 4262811a Switch Sign
110857           ---------------------------------------------------------------------------------------------------
110858           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
110859           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110860                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110861           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110862                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110863           -- 5132302
110864           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
110865                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110866 
110867       END IF;
110868 
110869       -- 4955764
110870       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110871       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
110872 
110873 
110874       XLA_AE_LINES_PKG.ValidateCurrentLine;
110875       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110876 
110880 
110877       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110878                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
110879                ,p_balance_type_code => l_balance_type_code);
110881    END IF;
110882 
110883    -----------------------------------------------------------------------------------------
110884    -- 4262811 Multiperiod Accounting
110885    -----------------------------------------------------------------------------------------
110886      -- No MPA option is assigned.
110887 
110888 
110889 END IF;
110890 END IF;
110891 --
110892 
110893 --
110894 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110895    trace
110896       (p_msg      => 'END of AcctLineType_193'
110897       ,p_level    => C_LEVEL_PROCEDURE
110898       ,p_module   => l_log_module);
110899 END IF;
110900 --
110901 EXCEPTION
110902   WHEN xla_exceptions_pkg.application_exception THEN
110903       RAISE;
110904   WHEN OTHERS THEN
110905        xla_exceptions_pkg.raise_message
110906            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_193');
110907 END AcctLineType_193;
110908 --
110909 
110910 ---------------------------------------
110911 --
110912 -- PRIVATE FUNCTION
110913 --         AcctLineType_194
110914 --
110915 ---------------------------------------
110916 PROCEDURE AcctLineType_194 (
110917   p_application_id        IN NUMBER
110918  ,p_event_id              IN NUMBER
110919  ,p_calculate_acctd_flag  IN VARCHAR2
110920  ,p_calculate_g_l_flag    IN VARCHAR2
110921  ,p_actual_flag           IN OUT VARCHAR2
110922  ,p_balance_type_code     OUT VARCHAR2
110923  ,p_gain_or_loss_ref      OUT VARCHAR2
110924  
110925 --Payment Distribution (Payment Rate) Ledger Amount
110926  , p_source_9            IN NUMBER
110927 --Invoice Distribution Account
110928  , p_source_17            IN NUMBER
110929 --Invoice Distribution Type
110930  , p_source_20            IN VARCHAR2
110931  , p_source_20_meaning    IN VARCHAR2
110932 --When to Account for Payment Option
110933  , p_source_38            IN VARCHAR2
110934 --Payment Distribution Type
110935  , p_source_39            IN VARCHAR2
110936  , p_source_39_meaning    IN VARCHAR2
110937 --Accounting Reversal Indicator
110938  , p_source_40            IN VARCHAR2
110939 --Payment Distribution Amount
110940  , p_source_41            IN NUMBER
110941 --Business Flow Accounts Payable Application Identifier
110942  , p_source_42            IN NUMBER
110943 --Payment Distribution Identifier
110944  , p_source_47            IN NUMBER
110945 --Distribution Link Type
110946  , p_source_48            IN VARCHAR2
110947 --Payment Currency Code
110948  , p_source_49            IN VARCHAR2
110949 --Override Accounted Amount Indicator
110950  , p_source_53            IN VARCHAR2
110951  , p_source_53_meaning    IN VARCHAR2
110952 --Payment Supplier Identifier
110953  , p_source_54            IN NUMBER
110954 --Payment Supplier Site Identifier
110955  , p_source_55            IN NUMBER
110956 --Third Party Type
110957  , p_source_56            IN VARCHAR2
110958 --Payment Distribution Reversed Identifier
110959  , p_source_57            IN NUMBER
110960 --Invoice Distribution Tax Line Identifier
110961  , p_source_58            IN NUMBER
110962 --Invoice Distribution Summary Tax Line Identifier
110963  , p_source_59            IN NUMBER
110964 --Payment Type
110965  , p_source_60            IN VARCHAR2
110966  , p_source_60_meaning    IN VARCHAR2
110967 --Business Flow Invoice Distribution Type
110968  , p_source_62            IN VARCHAR2
110969 --Business Flow Invoice Entity Code
110970  , p_source_63            IN VARCHAR2
110971 --Business Flow Invoice Distribution Identifier
110972  , p_source_64            IN NUMBER
110973 --Business Flow Invoice Identifier
110974  , p_source_65            IN NUMBER
110975 --Invoice Distribution Tax Distribution Identifier from Tax
110976  , p_source_66            IN NUMBER
110977 --Accrue on Receipt Option
110978  , p_source_100            IN VARCHAR2
110979  , p_source_100_meaning    IN VARCHAR2
110980 --Payment Exchange Date
110981  , p_source_114            IN DATE
110982 --Payment Exchange Rate
110983  , p_source_115            IN NUMBER
110984 --Payment Exchange Rate Type
110985  , p_source_116            IN VARCHAR2
110986 )
110987 IS
110988 
110989 l_component_type              VARCHAR2(80);
110990 l_component_code              VARCHAR2(30);
110991 l_component_type_code         VARCHAR2(1);
110992 l_component_appl_id           INTEGER;
110993 l_amb_context_code            VARCHAR2(30);
110994 l_entity_code                 VARCHAR2(30);
110995 l_event_class_code            VARCHAR2(30);
110996 l_ae_header_id                NUMBER;
110997 l_event_type_code             VARCHAR2(30);
110998 l_line_definition_code        VARCHAR2(30);
110999 l_line_definition_owner_code  VARCHAR2(1);
111000 --
111001 -- adr variables
111002 l_segment                     VARCHAR2(30);
111003 l_ccid                        NUMBER;
111004 l_adr_transaction_coa_id      NUMBER;
111005 l_adr_accounting_coa_id       NUMBER;
111006 l_adr_flexfield_segment_code  VARCHAR2(30);
111007 l_adr_flex_value_set_id       NUMBER;
111008 l_adr_value_type_code         VARCHAR2(30);
111009 l_adr_value_combination_id    NUMBER;
111010 l_adr_value_segment_code      VARCHAR2(30);
111011 
111012 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
111013 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
111017 -- 4262811 Variables ------------------------------------------------------------------------------------------
111014 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
111015 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
111016 
111018 l_entered_amt_idx             NUMBER;
111019 l_accted_amt_idx              NUMBER;
111020 l_acc_rev_flag                VARCHAR2(1);
111021 l_accrual_line_num            NUMBER;
111022 l_tmp_amt                     NUMBER;
111023 l_acc_rev_natural_side_code   VARCHAR2(1);
111024 
111025 l_num_entries                 NUMBER;
111026 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
111027 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
111028 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
111029 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
111030 l_recog_line_1                NUMBER;
111031 l_recog_line_2                NUMBER;
111032 
111033 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
111034 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
111035 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
111036 
111037 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
111038 
111039 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
111040 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
111041 
111042 ---------------------------------------------------------------------------------------------------------------
111043 
111044 
111045 --
111046 -- bulk performance
111047 --
111048 l_balance_type_code           VARCHAR2(1);
111049 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
111050 l_log_module                  VARCHAR2(240);
111051 
111052 --
111053 -- Upgrade strategy
111054 --
111055 l_actual_upg_option           VARCHAR2(1);
111056 l_enc_upg_option           VARCHAR2(1);
111057 
111058 --
111059 BEGIN
111060 --
111061 IF g_log_enabled THEN
111062       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_194';
111063 END IF;
111064 --
111065 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111066 
111067       trace
111068          (p_msg      => 'BEGIN of AcctLineType_194'
111069          ,p_level    => C_LEVEL_PROCEDURE
111070          ,p_module   => l_log_module);
111071 
111072 END IF;
111073 --
111074 l_component_type             := 'AMB_JLT';
111075 l_component_code             := 'AP_TAX_RATE_VAR_REF';
111076 l_component_type_code        := 'S';
111077 l_component_appl_id          :=  200;
111078 l_amb_context_code           := 'DEFAULT';
111079 l_entity_code                := 'AP_PAYMENTS';
111080 l_event_class_code           := 'REFUNDS';
111081 l_event_type_code            := 'REFUNDS_ALL';
111082 l_line_definition_owner_code := 'S';
111083 l_line_definition_code       := 'CASH_REFUNDS_ALL';
111084 --
111085 l_balance_type_code          := 'A';
111086 l_segment                     := NULL;
111087 l_ccid                        := NULL;
111088 l_adr_transaction_coa_id      := NULL;
111089 l_adr_accounting_coa_id       := NULL;
111090 l_adr_flexfield_segment_code  := NULL;
111091 l_adr_flex_value_set_id       := NULL;
111092 l_adr_value_type_code         := NULL;
111093 l_adr_value_combination_id    := NULL;
111094 l_adr_value_segment_code      := NULL;
111095 
111096 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
111097 l_bflow_class_code           := '';    -- 4219869 Business Flow
111098 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
111099 l_budgetary_control_flag     := 'N';
111100 
111101 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
111102 l_bflow_applied_to_amt       := NULL; -- 5132302
111103 l_entered_amt_idx            := NULL;          -- 4262811
111104 l_accted_amt_idx             := NULL;          -- 4262811
111105 l_acc_rev_flag               := NULL;          -- 4262811
111106 l_accrual_line_num           := NULL;          -- 4262811
111107 l_tmp_amt                    := NULL;          -- 4262811
111108 --
111109  
111110 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
111111     l_balance_type_code <> 'B' THEN
111112 IF NVL(p_source_38,'
111113 ') <>  'CLEAR_CLEAR' AND 
111114 NVL(p_source_20,'
111115 ') =  'TRV' AND 
111116 (NVL(p_source_39,'
111117 ') =  'CASH' OR 
111118 NVL(p_source_39,'
111119 ') =  'DISCOUNT') AND 
111120 NVL(p_source_60,'
111121 ') =  'R' AND 
111122 NVL(p_source_100,'
111123 ') =  'Y'
111124  THEN 
111125 
111126    --
111127    XLA_AE_LINES_PKG.SetNewLine;
111128 
111129    p_balance_type_code          := l_balance_type_code;
111130    -- set the flag so later we will know whether the gain loss line needs to be created
111131    
111132    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
111133      p_actual_flag :='A';
111134    END IF;
111135 
111136    --
111137    -- bulk performance
111138    --
111139    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
111140                                       p_header_num   => 0); -- 4262811
111141    --
111142    -- set accounting line options
111143    --
111144    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
111145            p_natural_side_code          => 'D'
111146          , p_gain_or_loss_flag          => 'N'
111147          , p_gl_transfer_mode_code      => 'S'
111148          , p_acct_entry_type_code       => 'A'
111149          , p_switch_side_flag           => 'Y'
111153    l_acc_rev_natural_side_code := 'C';  -- 4262811
111150          , p_merge_duplicate_code       => 'A'
111151          );
111152    --
111154    -- 
111155    --
111156    -- set accounting line type info
111157    --
111158    xla_ae_lines_pkg.SetAcctLineType
111159       (p_component_type             => l_component_type
111160       ,p_event_type_code            => l_event_type_code
111161       ,p_line_definition_owner_code => l_line_definition_owner_code
111162       ,p_line_definition_code       => l_line_definition_code
111163       ,p_accounting_line_code       => l_component_code
111164       ,p_accounting_line_type_code  => l_component_type_code
111165       ,p_accounting_line_appl_id    => l_component_appl_id
111166       ,p_amb_context_code           => l_amb_context_code
111167       ,p_entity_code                => l_entity_code
111168       ,p_event_class_code           => l_event_class_code);
111169    --
111170    -- set accounting class
111171    --
111172    xla_ae_lines_pkg.SetAcctClass(
111173            p_accounting_class_code  => 'TRV'
111174          , p_ae_header_id           => l_ae_header_id
111175          );
111176 
111177    --
111178    -- set rounding class
111179    --
111180    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
111181                       'TRV';
111182 
111183    --
111184    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
111185    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
111186    --
111187    -- bulk performance
111188    --
111189    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
111190 
111191    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
111192       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
111193 
111194    -- 4955764
111195    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111196       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
111197 
111198    -- 4458381 Public Sector Enh
111199    
111200    --
111201    -- set accounting attributes for the line type
111202    --
111203    l_entered_amt_idx := 9;
111204    l_accted_amt_idx  := 14;
111205    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
111206    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
111207    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
111208    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
111209    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
111210    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
111211    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
111212    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
111213    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
111214    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
111215    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
111216    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
111217    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
111218    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
111219    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
111220    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
111221    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
111222    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
111223    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
111224    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
111225    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
111226    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
111227    l_rec_acct_attrs.array_date_value(11)  := p_source_114;
111228    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
111229    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
111230    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
111231    l_rec_acct_attrs.array_char_value(13)  := p_source_116;
111232    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
111233    l_rec_acct_attrs.array_num_value(14)  := p_source_9;
111234    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
111235    l_rec_acct_attrs.array_char_value(15)  := p_source_53;
111236    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
111237    l_rec_acct_attrs.array_num_value(16)  := p_source_54;
111238    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
111239    l_rec_acct_attrs.array_num_value(17)  := p_source_55;
111240    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
111241    l_rec_acct_attrs.array_char_value(18)  := p_source_56;
111242    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
111243    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_57);
111244    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
111245    l_rec_acct_attrs.array_char_value(20)  := p_source_48;
111246    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
111247    l_rec_acct_attrs.array_num_value(21)  := p_source_58;
111248    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
111249    l_rec_acct_attrs.array_num_value(22)  := p_source_66;
111250    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
111251    l_rec_acct_attrs.array_num_value(23)  := p_source_59;
111252 
111253    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111257    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111254    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111255 
111256    ---------------------------------------------------------------------------------------------------------------
111258    ---------------------------------------------------------------------------------------------------------------
111259    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111260 
111261    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111262    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111263 
111264    IF xla_accounting_cache_pkg.GetValueChar
111265          (p_source_code         => 'LEDGER_CATEGORY_CODE'
111266          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111267    AND l_bflow_method_code = 'PRIOR_ENTRY'
111268 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111269    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111270          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111271        )
111272    THEN
111273          xla_ae_lines_pkg.BflowUpgEntry
111274            (p_business_method_code    => l_bflow_method_code
111275            ,p_business_class_code     => l_bflow_class_code
111276            ,p_balance_type            => l_balance_type_code);
111277    ELSE
111278       NULL;
111279 -- No business flow processing for business flow method of NONE.
111280    END IF;
111281 
111282    --
111283    -- call analytical criteria
111284    --
111285    
111286    --
111287    -- call description
111288    --
111289    -- No description or it is inherited.
111290    --
111291    -- call ADRs
111292    -- Bug 4922099
111293    --
111294    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111295         (NVL(l_actual_upg_option, 'N') = 'O') OR
111296         (NVL(l_enc_upg_option, 'N') = 'O')
111297       )
111298    THEN
111299    NULL;
111300    --
111301    --
111302    
111303   l_ccid := AcctDerRule_26(
111304            p_application_id           => p_application_id
111305          , p_ae_header_id             => l_ae_header_id 
111306 , p_source_17 => p_source_17
111307          , x_transaction_coa_id       => l_adr_transaction_coa_id
111308          , x_accounting_coa_id        => l_adr_accounting_coa_id
111309          , x_value_type_code          => l_adr_value_type_code
111310          , p_side                     => 'NA'
111311    );
111312 
111313    xla_ae_lines_pkg.set_ccid(
111314     p_code_combination_id          => l_ccid
111315   , p_value_type_code              => l_adr_value_type_code
111316   , p_transaction_coa_id           => l_adr_transaction_coa_id
111317   , p_accounting_coa_id            => l_adr_accounting_coa_id
111318   , p_adr_code                     => 'AP_INVOICE_DIST'
111319   , p_adr_type_code                => 'S'
111320   , p_component_type               => l_component_type
111321   , p_component_code               => l_component_code
111322   , p_component_type_code          => l_component_type_code
111323   , p_component_appl_id            => l_component_appl_id
111324   , p_amb_context_code             => l_amb_context_code
111325   , p_side                         => 'NA'
111326   );
111327 
111328 
111329    --
111330    --
111331    END IF;
111332    --
111333    -- Bug 4922099
111334    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111335           (NVL(l_enc_upg_option, 'N') = 'O')
111336         ) AND
111337         (l_bflow_method_code = 'PRIOR_ENTRY')
111338       )
111339    THEN
111340       IF
111341       --
111342       1 = 2
111343       --
111344       THEN
111345       xla_accounting_err_pkg.build_message
111346                                     (p_appli_s_name            => 'XLA'
111347                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111348                                     ,p_token_1                 => 'LINE_NUMBER'
111349                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
111350                                     ,p_token_2                 => 'LINE_TYPE_NAME'
111351                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
111352                                                                              l_component_type
111353                                                                             ,l_component_code
111354                                                                             ,l_component_type_code
111355                                                                             ,l_component_appl_id
111356                                                                             ,l_amb_context_code
111357                                                                             ,l_entity_code
111358                                                                             ,l_event_class_code
111359                                                                            )
111360                                     ,p_token_3                 => 'OWNER'
111361                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
111362                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
111363                                                                           ,p_lookup_code    => l_component_type_code
111367                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111364                                                                          )
111365                                     ,p_token_4                 => 'PRODUCT_NAME'
111366                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111368                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111369                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111370                                     ,p_ae_header_id            =>  NULL
111371                                        );
111372 
111373         IF (C_LEVEL_ERROR>= g_log_level) THEN
111374                  trace
111375                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111376                       ,p_level    => C_LEVEL_ERROR
111377                       ,p_module   => l_log_module);
111378         END IF;
111379       END IF;
111380    END IF;
111381    --
111382    --
111383    ------------------------------------------------------------------------------------------------
111384    -- 4219869 Business Flow
111385    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111386    -- Prior Entry.  Currently, the following code is always generated.
111387    ------------------------------------------------------------------------------------------------
111388    XLA_AE_LINES_PKG.ValidateCurrentLine;
111389 
111390    ------------------------------------------------------------------------------------
111391    -- 4219869 Business Flow
111392    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111393    ------------------------------------------------------------------------------------
111394    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111395 
111396    ----------------------------------------------------------------------------------
111397    -- 4219869 Business Flow
111398    -- Update journal entry status -- Need to generate this within IF <condition>
111399    ----------------------------------------------------------------------------------
111400    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111401          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111402          ,p_balance_type_code => l_balance_type_code
111403          );
111404 
111405    -------------------------------------------------------------------------------------------
111406    -- 4262811 - Generate the Accrual Reversal lines
111407    -------------------------------------------------------------------------------------------
111408    BEGIN
111409       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
111410                               (g_array_event(p_event_id).array_value_num('header_index'));
111411       IF l_acc_rev_flag IS NULL THEN
111412          l_acc_rev_flag := 'N';
111413       END IF;
111414    EXCEPTION
111415       WHEN OTHERS THEN
111416          l_acc_rev_flag := 'N';
111417    END;
111418    --
111419    IF (l_acc_rev_flag = 'Y') THEN
111420 
111421        -- 4645092  ------------------------------------------------------------------------------
111422        -- To allow MPA report to determine if it should generate report process
111423        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
111424        ------------------------------------------------------------------------------------------
111425 
111426        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
111427        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
111428    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
111429    -- call ADRs
111430    -- Bug 4922099
111431    --
111432    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111433         (NVL(l_actual_upg_option, 'N') = 'O') OR
111434         (NVL(l_enc_upg_option, 'N') = 'O')
111435       )
111436    THEN
111437    NULL;
111438    --
111439    --
111440    
111441   l_ccid := AcctDerRule_26(
111442            p_application_id           => p_application_id
111443          , p_ae_header_id             => l_ae_header_id 
111444 , p_source_17 => p_source_17
111445          , x_transaction_coa_id       => l_adr_transaction_coa_id
111446          , x_accounting_coa_id        => l_adr_accounting_coa_id
111447          , x_value_type_code          => l_adr_value_type_code
111448          , p_side                     => 'NA'
111449    );
111450 
111451    xla_ae_lines_pkg.set_ccid(
111452     p_code_combination_id          => l_ccid
111453   , p_value_type_code              => l_adr_value_type_code
111454   , p_transaction_coa_id           => l_adr_transaction_coa_id
111455   , p_accounting_coa_id            => l_adr_accounting_coa_id
111456   , p_adr_code                     => 'AP_INVOICE_DIST'
111457   , p_adr_type_code                => 'S'
111458   , p_component_type               => l_component_type
111459   , p_component_code               => l_component_code
111460   , p_component_type_code          => l_component_type_code
111461   , p_component_appl_id            => l_component_appl_id
111462   , p_amb_context_code             => l_amb_context_code
111463   , p_side                         => 'NA'
111464   );
111465 
111466 
111467    --
111468    --
111469    END IF;
111470 
111471        --
111472        -- Update the line information that should be overwritten
111473        --
111477 
111474        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
111475                                          p_header_num   => 1);
111476        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
111478        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
111479 
111480        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
111481           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
111482        END IF;
111483 
111484       --
111485       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
111486       --
111487       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
111488           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
111489       ELSE
111490           ---------------------------------------------------------------------------------------------------
111491           -- 4262811a Switch Sign
111492           ---------------------------------------------------------------------------------------------------
111493           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
111494           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111495                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111496           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111497                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111498           -- 5132302
111499           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
111500                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111501 
111502       END IF;
111503 
111504       -- 4955764
111505       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111506       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
111507 
111508 
111509       XLA_AE_LINES_PKG.ValidateCurrentLine;
111510       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111511 
111512       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111513                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
111514                ,p_balance_type_code => l_balance_type_code);
111515 
111516    END IF;
111517 
111518    -----------------------------------------------------------------------------------------
111519    -- 4262811 Multiperiod Accounting
111520    -----------------------------------------------------------------------------------------
111521      -- No MPA option is assigned.
111522 
111523 
111524 END IF;
111525 END IF;
111526 --
111527 
111528 --
111529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111530    trace
111531       (p_msg      => 'END of AcctLineType_194'
111532       ,p_level    => C_LEVEL_PROCEDURE
111533       ,p_module   => l_log_module);
111534 END IF;
111535 --
111536 EXCEPTION
111537   WHEN xla_exceptions_pkg.application_exception THEN
111538       RAISE;
111539   WHEN OTHERS THEN
111540        xla_exceptions_pkg.raise_message
111541            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_194');
111542 END AcctLineType_194;
111543 --
111544 
111545 ---------------------------------------
111546 --
111547 -- PRIVATE FUNCTION
111548 --         AcctLineType_195
111549 --
111550 ---------------------------------------
111551 PROCEDURE AcctLineType_195 (
111552   p_application_id        IN NUMBER
111553  ,p_event_id              IN NUMBER
111554  ,p_calculate_acctd_flag  IN VARCHAR2
111555  ,p_calculate_g_l_flag    IN VARCHAR2
111556  ,p_actual_flag           IN OUT VARCHAR2
111557  ,p_balance_type_code     OUT VARCHAR2
111558  ,p_gain_or_loss_ref      OUT VARCHAR2
111559  
111560 --Payment Distribution (Payment Rate) Ledger Amount
111561  , p_source_9            IN NUMBER
111562 --Invoice Distribution Type
111563  , p_source_20            IN VARCHAR2
111564  , p_source_20_meaning    IN VARCHAR2
111565 --When to Account for Payment Option
111566  , p_source_38            IN VARCHAR2
111567 --Payment Distribution Type
111568  , p_source_39            IN VARCHAR2
111569  , p_source_39_meaning    IN VARCHAR2
111570 --Accounting Reversal Indicator
111571  , p_source_40            IN VARCHAR2
111572 --Payment Distribution Amount
111573  , p_source_41            IN NUMBER
111574 --Business Flow Accounts Payable Application Identifier
111575  , p_source_42            IN NUMBER
111576 --Payment Distribution Identifier
111577  , p_source_47            IN NUMBER
111578 --Distribution Link Type
111579  , p_source_48            IN VARCHAR2
111580 --Payment Currency Code
111581  , p_source_49            IN VARCHAR2
111582 --Override Accounted Amount Indicator
111583  , p_source_53            IN VARCHAR2
111584  , p_source_53_meaning    IN VARCHAR2
111585 --Third Party Type
111586  , p_source_56            IN VARCHAR2
111587 --Payment Distribution Reversed Identifier
111588  , p_source_57            IN NUMBER
111589 --Invoice Distribution Tax Line Identifier
111590  , p_source_58            IN NUMBER
111591 --Invoice Distribution Summary Tax Line Identifier
111592  , p_source_59            IN NUMBER
111596 --Business Flow Invoice Distribution Type
111593 --Payment Type
111594  , p_source_60            IN VARCHAR2
111595  , p_source_60_meaning    IN VARCHAR2
111597  , p_source_62            IN VARCHAR2
111598 --Business Flow Invoice Entity Code
111599  , p_source_63            IN VARCHAR2
111600 --Business Flow Invoice Distribution Identifier
111601  , p_source_64            IN NUMBER
111602 --Business Flow Invoice Identifier
111603  , p_source_65            IN NUMBER
111604 --Invoice Distribution Tax Distribution Identifier from Tax
111605  , p_source_66            IN NUMBER
111606 --Purchasing Encumbrance Option
111607  , p_source_102            IN VARCHAR2
111608  , p_source_102_meaning    IN VARCHAR2
111609 --Invoice Encumbered Option
111610  , p_source_104            IN VARCHAR2
111611  , p_source_104_meaning    IN VARCHAR2
111612 )
111613 IS
111614 
111615 l_component_type              VARCHAR2(80);
111616 l_component_code              VARCHAR2(30);
111617 l_component_type_code         VARCHAR2(1);
111618 l_component_appl_id           INTEGER;
111619 l_amb_context_code            VARCHAR2(30);
111620 l_entity_code                 VARCHAR2(30);
111621 l_event_class_code            VARCHAR2(30);
111622 l_ae_header_id                NUMBER;
111623 l_event_type_code             VARCHAR2(30);
111624 l_line_definition_code        VARCHAR2(30);
111625 l_line_definition_owner_code  VARCHAR2(1);
111626 --
111627 -- adr variables
111628 l_segment                     VARCHAR2(30);
111629 l_ccid                        NUMBER;
111630 l_adr_transaction_coa_id      NUMBER;
111631 l_adr_accounting_coa_id       NUMBER;
111632 l_adr_flexfield_segment_code  VARCHAR2(30);
111633 l_adr_flex_value_set_id       NUMBER;
111634 l_adr_value_type_code         VARCHAR2(30);
111635 l_adr_value_combination_id    NUMBER;
111636 l_adr_value_segment_code      VARCHAR2(30);
111637 
111638 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
111639 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
111640 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
111641 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
111642 
111643 -- 4262811 Variables ------------------------------------------------------------------------------------------
111644 l_entered_amt_idx             NUMBER;
111645 l_accted_amt_idx              NUMBER;
111646 l_acc_rev_flag                VARCHAR2(1);
111647 l_accrual_line_num            NUMBER;
111648 l_tmp_amt                     NUMBER;
111649 l_acc_rev_natural_side_code   VARCHAR2(1);
111650 
111651 l_num_entries                 NUMBER;
111652 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
111653 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
111654 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
111655 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
111656 l_recog_line_1                NUMBER;
111657 l_recog_line_2                NUMBER;
111658 
111659 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
111660 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
111661 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
111662 
111663 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
111664 
111665 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
111666 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
111667 
111668 ---------------------------------------------------------------------------------------------------------------
111669 
111670 
111671 --
111672 -- bulk performance
111673 --
111674 l_balance_type_code           VARCHAR2(1);
111675 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
111676 l_log_module                  VARCHAR2(240);
111677 
111678 --
111679 -- Upgrade strategy
111680 --
111681 l_actual_upg_option           VARCHAR2(1);
111682 l_enc_upg_option           VARCHAR2(1);
111683 
111684 --
111685 BEGIN
111686 --
111687 IF g_log_enabled THEN
111688       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_195';
111689 END IF;
111690 --
111691 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111692 
111693       trace
111694          (p_msg      => 'BEGIN of AcctLineType_195'
111695          ,p_level    => C_LEVEL_PROCEDURE
111696          ,p_module   => l_log_module);
111697 
111698 END IF;
111699 --
111700 l_component_type             := 'AMB_JLT';
111701 l_component_code             := 'AP_TAX_RATE_VAR_REF_ENC';
111702 l_component_type_code        := 'S';
111703 l_component_appl_id          :=  200;
111704 l_amb_context_code           := 'DEFAULT';
111705 l_entity_code                := 'AP_PAYMENTS';
111706 l_event_class_code           := 'REFUNDS';
111707 l_event_type_code            := 'REFUNDS_ALL';
111708 l_line_definition_owner_code := 'S';
111709 l_line_definition_code       := 'ENC_REFUNDS_ALL';
111710 --
111711 l_balance_type_code          := 'E';
111712 l_segment                     := NULL;
111713 l_ccid                        := NULL;
111714 l_adr_transaction_coa_id      := NULL;
111715 l_adr_accounting_coa_id       := NULL;
111716 l_adr_flexfield_segment_code  := NULL;
111717 l_adr_flex_value_set_id       := NULL;
111718 l_adr_value_type_code         := NULL;
111719 l_adr_value_combination_id    := NULL;
111720 l_adr_value_segment_code      := NULL;
111721 
111725 l_budgetary_control_flag     := 'N';
111722 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
111723 l_bflow_class_code           := 'AP_INV_ENCUM';    -- 4219869 Business Flow
111724 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
111726 
111727 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
111728 l_bflow_applied_to_amt       := NULL; -- 5132302
111729 l_entered_amt_idx            := NULL;          -- 4262811
111730 l_accted_amt_idx             := NULL;          -- 4262811
111731 l_acc_rev_flag               := NULL;          -- 4262811
111732 l_accrual_line_num           := NULL;          -- 4262811
111733 l_tmp_amt                    := NULL;          -- 4262811
111734 --
111735  
111736 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
111737     l_balance_type_code <> 'B' THEN
111738 IF NVL(p_source_38,'
111739 ') <>  'CLEAR_CLEAR' AND 
111740 NVL(p_source_20,'
111741 ') =  'TRV' AND 
111742 (NVL(p_source_39,'
111743 ') =  'CASH' OR 
111744 NVL(p_source_39,'
111745 ') =  'DISCOUNT') AND 
111746 NVL(p_source_60,'
111747 ') =  'R' AND 
111748 NVL(p_source_102,'
111749 ') =  'Y' AND 
111750 NVL(p_source_104,'
111751 ') =  'Y'
111752  THEN 
111753 
111754    --
111755    XLA_AE_LINES_PKG.SetNewLine;
111756 
111757    p_balance_type_code          := l_balance_type_code;
111758    -- set the flag so later we will know whether the gain loss line needs to be created
111759    
111760    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
111761      p_actual_flag :='A';
111762    END IF;
111763 
111764    --
111765    -- bulk performance
111766    --
111767    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
111768                                       p_header_num   => 0); -- 4262811
111769    --
111770    -- set accounting line options
111771    --
111772    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
111773            p_natural_side_code          => 'D'
111774          , p_gain_or_loss_flag          => 'N'
111775          , p_gl_transfer_mode_code      => 'S'
111776          , p_acct_entry_type_code       => 'E'
111777          , p_switch_side_flag           => 'Y'
111778          , p_merge_duplicate_code       => 'A'
111779          );
111780    --
111781    l_acc_rev_natural_side_code := 'C';  -- 4262811
111782    -- 
111783    --
111784    -- set accounting line type info
111785    --
111786    xla_ae_lines_pkg.SetAcctLineType
111787       (p_component_type             => l_component_type
111788       ,p_event_type_code            => l_event_type_code
111789       ,p_line_definition_owner_code => l_line_definition_owner_code
111790       ,p_line_definition_code       => l_line_definition_code
111791       ,p_accounting_line_code       => l_component_code
111792       ,p_accounting_line_type_code  => l_component_type_code
111793       ,p_accounting_line_appl_id    => l_component_appl_id
111794       ,p_amb_context_code           => l_amb_context_code
111795       ,p_entity_code                => l_entity_code
111796       ,p_event_class_code           => l_event_class_code);
111797    --
111798    -- set accounting class
111799    --
111800    xla_ae_lines_pkg.SetAcctClass(
111801            p_accounting_class_code  => 'TRV'
111802          , p_ae_header_id           => l_ae_header_id
111803          );
111804 
111805    --
111806    -- set rounding class
111807    --
111808    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
111809                       'TRV';
111810 
111811    --
111812    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
111813    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
111814    --
111815    -- bulk performance
111816    --
111817    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
111818 
111819    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
111820       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
111821 
111822    -- 4955764
111823    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111824       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
111825 
111826    -- 4458381 Public Sector Enh
111827    
111828    --
111829    -- set accounting attributes for the line type
111830    --
111831    l_entered_amt_idx := 9;
111832    l_accted_amt_idx  := 11;
111833    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
111834    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
111835    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
111836    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
111837    l_rec_acct_attrs.array_num_value(2)  := p_source_42;
111838    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
111839    l_rec_acct_attrs.array_char_value(3)  := p_source_62;
111840    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
111841    l_rec_acct_attrs.array_char_value(4)  := p_source_63;
111842    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
111843    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_64);
111844    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
111845    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_65);
111846    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
111850    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
111847    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_47);
111848    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
111849    l_rec_acct_attrs.array_char_value(8)  := p_source_48;
111851    l_rec_acct_attrs.array_num_value(9)  := p_source_41;
111852    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
111853    l_rec_acct_attrs.array_char_value(10)  := p_source_49;
111854    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
111855    l_rec_acct_attrs.array_num_value(11)  := p_source_9;
111856    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
111857    l_rec_acct_attrs.array_char_value(12)  := p_source_53;
111858    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
111859    l_rec_acct_attrs.array_char_value(13)  := p_source_56;
111860    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
111861    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_57);
111862    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
111863    l_rec_acct_attrs.array_char_value(15)  := p_source_48;
111864    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
111865    l_rec_acct_attrs.array_num_value(16)  := p_source_58;
111866    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
111867    l_rec_acct_attrs.array_num_value(17)  := p_source_66;
111868    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
111869    l_rec_acct_attrs.array_num_value(18)  := p_source_59;
111870 
111871    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111872    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111873 
111874    ---------------------------------------------------------------------------------------------------------------
111875    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111876    ---------------------------------------------------------------------------------------------------------------
111877    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111878 
111879    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111880    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111881 
111882    IF xla_accounting_cache_pkg.GetValueChar
111883          (p_source_code         => 'LEDGER_CATEGORY_CODE'
111884          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111885    AND l_bflow_method_code = 'PRIOR_ENTRY'
111886 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111887    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111888          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111889        )
111890    THEN
111891          xla_ae_lines_pkg.BflowUpgEntry
111892            (p_business_method_code    => l_bflow_method_code
111893            ,p_business_class_code     => l_bflow_class_code
111894            ,p_balance_type            => l_balance_type_code);
111895    ELSE
111896       NULL;
111897 XLA_AE_LINES_PKG.business_flow_validation(
111898                                 p_business_method_code     => l_bflow_method_code
111899                                ,p_business_class_code      => l_bflow_class_code
111900                                ,p_inherit_description_flag => l_inherit_desc_flag);
111901    END IF;
111902 
111903    --
111904    -- call analytical criteria
111905    --
111906    -- Inherited Analytical Criteria for business flow method of Prior Entry.
111907    --
111908    -- call description
111909    --
111910    -- No description or it is inherited.
111911    --
111912    -- call ADRs
111913    -- Bug 4922099
111914    --
111915    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111916         (NVL(l_actual_upg_option, 'N') = 'O') OR
111917         (NVL(l_enc_upg_option, 'N') = 'O')
111918       )
111919    THEN
111920    NULL;
111921    --
111922    --
111923    
111924    --
111925    --
111926    END IF;
111927    --
111928    -- Bug 4922099
111929    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111930           (NVL(l_enc_upg_option, 'N') = 'O')
111931         ) AND
111932         (l_bflow_method_code = 'PRIOR_ENTRY')
111933       )
111934    THEN
111935       IF
111936       --
111937       1 = 1
111938       --
111939       THEN
111940       xla_accounting_err_pkg.build_message
111941                                     (p_appli_s_name            => 'XLA'
111942                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111943                                     ,p_token_1                 => 'LINE_NUMBER'
111944                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
111945                                     ,p_token_2                 => 'LINE_TYPE_NAME'
111946                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
111947                                                                              l_component_type
111948                                                                             ,l_component_code
111949                                                                             ,l_component_type_code
111950                                                                             ,l_component_appl_id
111951                                                                             ,l_amb_context_code
111955                                     ,p_token_3                 => 'OWNER'
111952                                                                             ,l_entity_code
111953                                                                             ,l_event_class_code
111954                                                                            )
111956                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
111957                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
111958                                                                           ,p_lookup_code    => l_component_type_code
111959                                                                          )
111960                                     ,p_token_4                 => 'PRODUCT_NAME'
111961                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111962                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111963                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111964                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111965                                     ,p_ae_header_id            =>  NULL
111966                                        );
111967 
111968         IF (C_LEVEL_ERROR>= g_log_level) THEN
111969                  trace
111970                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111971                       ,p_level    => C_LEVEL_ERROR
111972                       ,p_module   => l_log_module);
111973         END IF;
111974       END IF;
111975    END IF;
111976    --
111977    --
111978    ------------------------------------------------------------------------------------------------
111979    -- 4219869 Business Flow
111980    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111981    -- Prior Entry.  Currently, the following code is always generated.
111982    ------------------------------------------------------------------------------------------------
111983    -- No ValidateCurrentLine for business flow method of Prior Entry
111984 
111985    ------------------------------------------------------------------------------------
111986    -- 4219869 Business Flow
111987    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111988    ------------------------------------------------------------------------------------
111989    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111990 
111991    ----------------------------------------------------------------------------------
111992    -- 4219869 Business Flow
111993    -- Update journal entry status -- Need to generate this within IF <condition>
111994    ----------------------------------------------------------------------------------
111995    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111996          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111997          ,p_balance_type_code => l_balance_type_code
111998          );
111999 
112000    -------------------------------------------------------------------------------------------
112001    -- 4262811 - Generate the Accrual Reversal lines
112002    -------------------------------------------------------------------------------------------
112003    BEGIN
112004       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
112005                               (g_array_event(p_event_id).array_value_num('header_index'));
112006       IF l_acc_rev_flag IS NULL THEN
112007          l_acc_rev_flag := 'N';
112008       END IF;
112009    EXCEPTION
112010       WHEN OTHERS THEN
112011          l_acc_rev_flag := 'N';
112012    END;
112013    --
112014    IF (l_acc_rev_flag = 'Y') THEN
112015 
112016        -- 4645092  ------------------------------------------------------------------------------
112017        -- To allow MPA report to determine if it should generate report process
112018        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
112019        ------------------------------------------------------------------------------------------
112020 
112021        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
112022        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
112023    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
112024    -- call ADRs
112025    -- Bug 4922099
112026    --
112027    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112028         (NVL(l_actual_upg_option, 'N') = 'O') OR
112029         (NVL(l_enc_upg_option, 'N') = 'O')
112030       )
112031    THEN
112032    NULL;
112033    --
112034    --
112035    
112036    --
112037    --
112038    END IF;
112039 
112040        --
112041        -- Update the line information that should be overwritten
112042        --
112043        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
112044                                          p_header_num   => 1);
112045        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
112046 
112047        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
112048 
112049        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
112050           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
112051        END IF;
112052 
112053       --
112057           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
112054       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112055       --
112056       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112058       ELSE
112059           ---------------------------------------------------------------------------------------------------
112060           -- 4262811a Switch Sign
112061           ---------------------------------------------------------------------------------------------------
112062           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
112063           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112064                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112065           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112066                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112067           -- 5132302
112068           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
112069                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112070 
112071       END IF;
112072 
112073       -- 4955764
112074       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112075       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
112076 
112077 
112078       XLA_AE_LINES_PKG.ValidateCurrentLine;
112079       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112080 
112081       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112082                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
112083                ,p_balance_type_code => l_balance_type_code);
112084 
112085    END IF;
112086 
112087    -----------------------------------------------------------------------------------------
112088    -- 4262811 Multiperiod Accounting
112089    -----------------------------------------------------------------------------------------
112090      -- No MPA option is assigned.
112091 
112092 
112093 END IF;
112094 END IF;
112095 --
112096 
112097 --
112098 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112099    trace
112100       (p_msg      => 'END of AcctLineType_195'
112101       ,p_level    => C_LEVEL_PROCEDURE
112102       ,p_module   => l_log_module);
112103 END IF;
112104 --
112105 EXCEPTION
112106   WHEN xla_exceptions_pkg.application_exception THEN
112107       RAISE;
112108   WHEN OTHERS THEN
112109        xla_exceptions_pkg.raise_message
112110            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_195');
112111 END AcctLineType_195;
112112 --
112113 
112114 ---------------------------------------
112115 --
112116 -- PRIVATE FUNCTION
112117 --         AcctLineType_196
112118 --
112119 ---------------------------------------
112120 PROCEDURE AcctLineType_196 (
112121   p_application_id        IN NUMBER
112122  ,p_event_id              IN NUMBER
112123  ,p_calculate_acctd_flag  IN VARCHAR2
112124  ,p_calculate_g_l_flag    IN VARCHAR2
112125  ,p_actual_flag           IN OUT VARCHAR2
112126  ,p_balance_type_code     OUT VARCHAR2
112127  ,p_gain_or_loss_ref      OUT VARCHAR2
112128  
112129 --Automatic Offsets Value
112130  , p_source_4            IN VARCHAR2
112131  , p_source_4_meaning    IN VARCHAR2
112132 --Purchase Order Rate Variance Gain Account
112133  , p_source_5            IN NUMBER
112134 --Invoice Distribution Ledger Amount
112135  , p_source_6            IN NUMBER
112136 --Destination Type of the PO Distribution
112137  , p_source_7            IN VARCHAR2
112138  , p_source_7_meaning    IN VARCHAR2
112139 --Purchase Order Rate Variance Loss Account
112140  , p_source_8            IN NUMBER
112141 --Invoice Distribution Account
112142  , p_source_17            IN NUMBER
112143 --Automatic Offsets Flag
112144  , p_source_30            IN VARCHAR2
112145  , p_source_30_meaning    IN VARCHAR2
112146 --When to Account for Payment Option
112147  , p_source_38            IN VARCHAR2
112148 --Accounting Reversal Indicator
112149  , p_source_40            IN VARCHAR2
112150 --Business Flow Accounts Payable Application Identifier
112151  , p_source_42            IN NUMBER
112152 --Distribution Link Type
112153  , p_source_48            IN VARCHAR2
112154 --Override Accounted Amount Indicator
112155  , p_source_53            IN VARCHAR2
112156  , p_source_53_meaning    IN VARCHAR2
112157 --Third Party Type
112158  , p_source_56            IN VARCHAR2
112159 --Invoice Distribution Tax Line Identifier
112160  , p_source_58            IN NUMBER
112161 --Invoice Distribution Summary Tax Line Identifier
112162  , p_source_59            IN NUMBER
112163 --Invoice Distribution Tax Distribution Identifier from Tax
112164  , p_source_66            IN NUMBER
112165 --Prepayment Distribution Type
112166  , p_source_67            IN VARCHAR2
112167 --Recipient Invoice Distribution Type
112168  , p_source_68            IN VARCHAR2
112169  , p_source_68_meaning    IN VARCHAR2
112170 --Prepayment Application Distribution Identifier
112171  , p_source_71            IN NUMBER
112172 --Invoice Identifier
112173  , p_source_72            IN NUMBER
112174 --Business Flow Prepayment Invoice Distribution Type
112175  , p_source_73            IN VARCHAR2
112179  , p_source_75            IN NUMBER
112176 --Business Flow Prepayment Invoice Entity Code
112177  , p_source_74            IN VARCHAR2
112178 --Business Flow Prepayment Invoice Distribution Identifier
112180 --Business Flow Prepayment Invoice Identifier
112181  , p_source_76            IN NUMBER
112182 --Upgrade Encumbrance Credit Account Class
112183  , p_source_77            IN VARCHAR2
112184 --Payables Encumbrance Upgrade Credit Account
112185  , p_source_78            IN NUMBER
112186 --Payables Encumbrance Upgrade Credit Amount
112187  , p_source_79            IN NUMBER
112188 --Invoice Currency Code
112189  , p_source_80            IN VARCHAR2
112190 --Payables Encumbrance Upgrade Credit Base Amount
112191  , p_source_81            IN NUMBER
112192 --Upgrade Encumbrance Debit Account Class
112193  , p_source_82            IN VARCHAR2
112194 --Payables Encumbrance Upgrade Debit Account
112195  , p_source_83            IN NUMBER
112196 --Payables Encumbrance Upgrade Debit Amount
112197  , p_source_84            IN NUMBER
112198 --Payables Encumbrance Upgrade Debit Base Amount
112199  , p_source_85            IN NUMBER
112200 --Payables Encumbrance Upgrade Option
112201  , p_source_86            IN VARCHAR2
112202 --Prepayment Distribution Amount
112203  , p_source_87            IN NUMBER
112204 --Prepayment Clearing Currency Code
112205  , p_source_88            IN VARCHAR2
112206 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
112207  , p_source_89            IN NUMBER
112208 --Deferred Accounting End Date
112209  , p_source_90            IN DATE
112210 --Deferred Accounting Option
112211  , p_source_91            IN VARCHAR2
112212 --Deferred Accounting Start Date
112213  , p_source_92            IN DATE
112214 --Invoice Supplier Identifier
112215  , p_source_93            IN NUMBER
112216 --Invoice Supplier Site Identifier
112217  , p_source_94            IN NUMBER
112218 --Identifier of the Prepayment Application Reversed
112219  , p_source_95            IN NUMBER
112220 --Payables Upgrade Credit Encumbrance Type Identifier
112221  , p_source_96            IN NUMBER
112222 --Payables Upgrade Debit Encumbrance Type Identifier
112223  , p_source_97            IN NUMBER
112224 --Accrue on Receipt Option
112225  , p_source_100            IN VARCHAR2
112226  , p_source_100_meaning    IN VARCHAR2
112227 --Prepayment Clearing Exchange Date
112228  , p_source_118            IN DATE
112229 --Prepayment Clearing Exchange Rate
112230  , p_source_119            IN NUMBER
112231 --Prepayment Clearing Exchange Rate Type
112232  , p_source_120            IN VARCHAR2
112233 )
112234 IS
112235 
112236 l_component_type              VARCHAR2(80);
112237 l_component_code              VARCHAR2(30);
112238 l_component_type_code         VARCHAR2(1);
112239 l_component_appl_id           INTEGER;
112240 l_amb_context_code            VARCHAR2(30);
112241 l_entity_code                 VARCHAR2(30);
112242 l_event_class_code            VARCHAR2(30);
112243 l_ae_header_id                NUMBER;
112244 l_event_type_code             VARCHAR2(30);
112245 l_line_definition_code        VARCHAR2(30);
112246 l_line_definition_owner_code  VARCHAR2(1);
112247 --
112248 -- adr variables
112249 l_segment                     VARCHAR2(30);
112250 l_ccid                        NUMBER;
112251 l_adr_transaction_coa_id      NUMBER;
112252 l_adr_accounting_coa_id       NUMBER;
112253 l_adr_flexfield_segment_code  VARCHAR2(30);
112254 l_adr_flex_value_set_id       NUMBER;
112255 l_adr_value_type_code         VARCHAR2(30);
112256 l_adr_value_combination_id    NUMBER;
112257 l_adr_value_segment_code      VARCHAR2(30);
112258 
112259 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
112260 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
112261 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
112262 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
112263 
112264 -- 4262811 Variables ------------------------------------------------------------------------------------------
112265 l_entered_amt_idx             NUMBER;
112266 l_accted_amt_idx              NUMBER;
112267 l_acc_rev_flag                VARCHAR2(1);
112268 l_accrual_line_num            NUMBER;
112269 l_tmp_amt                     NUMBER;
112270 l_acc_rev_natural_side_code   VARCHAR2(1);
112271 
112272 l_num_entries                 NUMBER;
112273 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
112274 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
112275 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
112276 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
112277 l_recog_line_1                NUMBER;
112278 l_recog_line_2                NUMBER;
112279 
112280 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
112281 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
112282 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
112283 
112284 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
112285 
112286 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
112287 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
112288 
112289 ---------------------------------------------------------------------------------------------------------------
112290 
112291 
112292 --
112293 -- bulk performance
112294 --
112295 l_balance_type_code           VARCHAR2(1);
112299 --
112296 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
112297 l_log_module                  VARCHAR2(240);
112298 
112300 -- Upgrade strategy
112301 --
112302 l_actual_upg_option           VARCHAR2(1);
112303 l_enc_upg_option           VARCHAR2(1);
112304 
112305 --
112306 BEGIN
112307 --
112308 IF g_log_enabled THEN
112309       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_196';
112310 END IF;
112311 --
112312 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112313 
112314       trace
112315          (p_msg      => 'BEGIN of AcctLineType_196'
112316          ,p_level    => C_LEVEL_PROCEDURE
112317          ,p_module   => l_log_module);
112318 
112319 END IF;
112320 --
112321 l_component_type             := 'AMB_JLT';
112322 l_component_code             := 'AP_TERV_CLR_RATE_APP';
112323 l_component_type_code        := 'S';
112324 l_component_appl_id          :=  200;
112325 l_amb_context_code           := 'DEFAULT';
112326 l_entity_code                := 'AP_INVOICES';
112327 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
112328 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
112329 l_line_definition_owner_code := 'S';
112330 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
112331 --
112332 l_balance_type_code          := 'A';
112333 l_segment                     := NULL;
112334 l_ccid                        := NULL;
112335 l_adr_transaction_coa_id      := NULL;
112336 l_adr_accounting_coa_id       := NULL;
112337 l_adr_flexfield_segment_code  := NULL;
112338 l_adr_flex_value_set_id       := NULL;
112339 l_adr_value_type_code         := NULL;
112340 l_adr_value_combination_id    := NULL;
112341 l_adr_value_segment_code      := NULL;
112342 
112343 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
112344 l_bflow_class_code           := '';    -- 4219869 Business Flow
112345 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
112346 l_budgetary_control_flag     := 'N';
112347 
112348 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
112349 l_bflow_applied_to_amt       := NULL; -- 5132302
112350 l_entered_amt_idx            := NULL;          -- 4262811
112351 l_accted_amt_idx             := NULL;          -- 4262811
112352 l_acc_rev_flag               := NULL;          -- 4262811
112353 l_accrual_line_num           := NULL;          -- 4262811
112354 l_tmp_amt                    := NULL;          -- 4262811
112355 --
112356 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
112357             (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
112358                return;
112359   END IF;
112360   
112361 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
112362     l_balance_type_code <> 'B' THEN
112363 IF NVL(p_source_38,'
112364 ') =  'CLEAR_CLEAR' AND 
112365 (NVL(p_source_67,'
112366 ') =  'PREPAY APPL' OR 
112367 NVL(p_source_67,'
112368 ') =  'PREPAY APPL NONREC TAX' OR 
112369 NVL(p_source_67,'
112370 ') =  'PREPAY APPL REC TAX') AND 
112371 NVL(p_source_68,'
112372 ') =  'TERV' AND 
112373 NVL(p_source_100,'
112374 ') =  'Y'
112375  THEN 
112376 
112377    --
112378    XLA_AE_LINES_PKG.SetNewLine;
112379 
112380    p_balance_type_code          := l_balance_type_code;
112381    -- set the flag so later we will know whether the gain loss line needs to be created
112382    
112383    IF(l_balance_type_code = 'A' ) THEN
112384      p_actual_flag :='G';
112385    END IF;
112386 
112387    --
112388    -- bulk performance
112389    --
112390    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
112391                                       p_header_num   => 0); -- 4262811
112392    --
112393    -- set accounting line options
112394    --
112395    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
112396            p_natural_side_code          => 'C'
112397          , p_gain_or_loss_flag          => 'Y'
112398          , p_gl_transfer_mode_code      => 'S'
112399          , p_acct_entry_type_code       => 'A'
112400          , p_switch_side_flag           => 'Y'
112401          , p_merge_duplicate_code       => 'A'
112402          );
112403    --
112404    l_acc_rev_natural_side_code := 'D';  -- 4262811
112405    -- 
112406    --
112407    -- set accounting line type info
112408    --
112409    xla_ae_lines_pkg.SetAcctLineType
112410       (p_component_type             => l_component_type
112411       ,p_event_type_code            => l_event_type_code
112412       ,p_line_definition_owner_code => l_line_definition_owner_code
112413       ,p_line_definition_code       => l_line_definition_code
112414       ,p_accounting_line_code       => l_component_code
112415       ,p_accounting_line_type_code  => l_component_type_code
112416       ,p_accounting_line_appl_id    => l_component_appl_id
112417       ,p_amb_context_code           => l_amb_context_code
112418       ,p_entity_code                => l_entity_code
112419       ,p_event_class_code           => l_event_class_code);
112420    --
112421    -- set accounting class
112422    --
112423    xla_ae_lines_pkg.SetAcctClass(
112424            p_accounting_class_code  => 'TERV'
112425          , p_ae_header_id           => l_ae_header_id
112426          );
112427 
112428    --
112429    -- set rounding class
112430    --
112431    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
112432                       'TERV';
112436    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
112433 
112434    --
112435    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
112437    --
112438    -- bulk performance
112439    --
112440    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
112441 
112442    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
112443       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
112444 
112445    -- 4955764
112446    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112447       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
112448 
112449    -- 4458381 Public Sector Enh
112450    
112451    --
112452    -- set accounting attributes for the line type
112453    --
112454    l_entered_amt_idx := 25;
112455    l_accted_amt_idx  := 30;
112456    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
112457    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
112458    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
112459    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
112460    l_rec_acct_attrs.array_num_value(2)  := 
112461 xla_ae_sources_pkg.GetSystemSourceNum(
112462    p_source_code           => 'XLA_EVENT_APPL_ID'
112463  , p_source_type_code      => 'Y'
112464  , p_source_application_id =>  602
112465 );
112466    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
112467    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
112468    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
112469    l_rec_acct_attrs.array_char_value(4)  := 
112470 xla_ae_sources_pkg.GetSystemSourceChar(
112471    p_source_code           => 'XLA_ENTITY_CODE'
112472  , p_source_type_code      => 'Y'
112473  , p_source_application_id =>  602
112474 );
112475    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
112476    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
112477    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
112478    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
112479    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
112480    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
112481    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
112482    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
112483    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
112484    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
112485    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
112486    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
112487    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
112488    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
112489    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
112490    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
112491    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
112492    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
112493    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
112494    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
112495    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
112496    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
112497    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
112498    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
112499    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
112500    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
112501    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
112502    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
112503    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
112504    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
112505    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
112506    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
112507    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
112508    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
112509    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
112510    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
112511    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
112512    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
112513    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
112514    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
112515    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
112516    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
112517    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
112518    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
112519    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
112520    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
112521    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
112522    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
112523    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
112524    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
112525    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
112526    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
112530    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
112527    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
112528    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
112529    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
112531    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
112532    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
112533    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
112534    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
112535    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
112536    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
112537    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
112538    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
112539    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
112540    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
112541    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
112542    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
112543    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
112544    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
112545    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
112546    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
112547    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
112548    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
112549    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
112550    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
112551    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
112552    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
112553    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
112554    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
112555 
112556    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
112557    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
112558 
112559    ---------------------------------------------------------------------------------------------------------------
112560    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
112561    ---------------------------------------------------------------------------------------------------------------
112562    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
112563 
112564    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112565    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112566 
112567    IF xla_accounting_cache_pkg.GetValueChar
112568          (p_source_code         => 'LEDGER_CATEGORY_CODE'
112569          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
112570    AND l_bflow_method_code = 'PRIOR_ENTRY'
112571 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
112572    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
112573          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
112574        )
112575    THEN
112576          xla_ae_lines_pkg.BflowUpgEntry
112577            (p_business_method_code    => l_bflow_method_code
112578            ,p_business_class_code     => l_bflow_class_code
112579            ,p_balance_type            => l_balance_type_code);
112580    ELSE
112581       NULL;
112582 -- No business flow processing for business flow method of NONE.
112583    END IF;
112584 
112585    --
112586    -- call analytical criteria
112587    --
112588    
112589    --
112590    -- call description
112591    --
112592    -- No description or it is inherited.
112593    --
112594    -- call ADRs
112595    -- Bug 4922099
112596    --
112597    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112598         (NVL(l_actual_upg_option, 'N') = 'O') OR
112599         (NVL(l_enc_upg_option, 'N') = 'O')
112600       )
112601    THEN
112602    NULL;
112603    --
112604    --
112605    
112606   l_ccid := AcctDerRule_23(
112607            p_application_id           => p_application_id
112608          , p_ae_header_id             => l_ae_header_id 
112609 , p_source_4 => p_source_4
112610 , p_source_4_meaning => p_source_4_meaning
112611 , p_source_5 => p_source_5
112612 , p_source_6 => p_source_6
112613 , p_source_7 => p_source_7
112614 , p_source_7_meaning => p_source_7_meaning
112615 , p_source_8 => p_source_8
112616 , p_source_17 => p_source_17
112617 , p_source_30 => p_source_30
112618 , p_source_30_meaning => p_source_30_meaning
112619          , x_transaction_coa_id       => l_adr_transaction_coa_id
112620          , x_accounting_coa_id        => l_adr_accounting_coa_id
112621          , x_value_type_code          => l_adr_value_type_code
112622          , p_side                     => 'NA'
112623    );
112624 
112625    xla_ae_lines_pkg.set_ccid(
112626     p_code_combination_id          => l_ccid
112627   , p_value_type_code              => l_adr_value_type_code
112628   , p_transaction_coa_id           => l_adr_transaction_coa_id
112629   , p_accounting_coa_id            => l_adr_accounting_coa_id
112630   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
112631   , p_adr_type_code                => 'S'
112632   , p_component_type               => l_component_type
112633   , p_component_code               => l_component_code
112634   , p_component_type_code          => l_component_type_code
112638   );
112635   , p_component_appl_id            => l_component_appl_id
112636   , p_amb_context_code             => l_amb_context_code
112637   , p_side                         => 'NA'
112639 
112640 
112641    l_segment := AcctDerRule_3(
112642            p_application_id           => p_application_id
112643          , p_ae_header_id             => l_ae_header_id 
112644 , p_source_4 => p_source_4
112645 , p_source_4_meaning => p_source_4_meaning
112646 , p_source_5 => p_source_5
112647 , p_source_6 => p_source_6
112648 , p_source_7 => p_source_7
112649 , p_source_7_meaning => p_source_7_meaning
112650 , p_source_8 => p_source_8
112651          , x_transaction_coa_id       => l_adr_transaction_coa_id
112652          , x_accounting_coa_id        => l_adr_accounting_coa_id
112653          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
112654          , x_flex_value_set_id        => l_adr_flex_value_set_id
112655          , x_value_type_code          => l_adr_value_type_code
112656          , x_value_combination_id     => l_adr_value_combination_id
112657          , x_value_segment_code       => l_adr_value_segment_code
112658          , p_side                     => 'NA'
112659          , p_override_seg_flag        => 'Y'
112660    );
112661 
112662    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
112663 
112664       xla_ae_lines_pkg.set_segment(
112665           p_to_segment_code         => 'GL_ACCOUNT'
112666         , p_segment_value           => l_segment
112667         , p_from_segment_code       => l_adr_value_segment_code
112668         , p_from_combination_id     => l_adr_value_combination_id
112669         , p_value_type_code         => l_adr_value_type_code
112670         , p_transaction_coa_id      => l_adr_transaction_coa_id
112671         , p_accounting_coa_id       => l_adr_accounting_coa_id
112672         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
112673         , p_flex_value_set_id       => l_adr_flex_value_set_id
112674         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
112675         , p_adr_type_code           => 'S'
112676         , p_component_type          => l_component_type
112677         , p_component_code          => l_component_code
112678         , p_component_type_code     => l_component_type_code
112679         , p_component_appl_id       => l_component_appl_id
112680         , p_amb_context_code        => l_amb_context_code
112681         , p_entity_code             => 'AP_INVOICES'
112682         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
112683         , p_side                    => 'NA'
112684         );
112685 
112686   END IF;
112687 
112688    l_segment := AcctDerRule_15(
112689            p_application_id           => p_application_id
112690          , p_ae_header_id             => l_ae_header_id 
112691 , p_source_4 => p_source_4
112692 , p_source_4_meaning => p_source_4_meaning
112693 , p_source_7 => p_source_7
112694 , p_source_7_meaning => p_source_7_meaning
112695 , p_source_17 => p_source_17
112696          , x_transaction_coa_id       => l_adr_transaction_coa_id
112697          , x_accounting_coa_id        => l_adr_accounting_coa_id
112698          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
112699          , x_flex_value_set_id        => l_adr_flex_value_set_id
112700          , x_value_type_code          => l_adr_value_type_code
112701          , x_value_combination_id     => l_adr_value_combination_id
112702          , x_value_segment_code       => l_adr_value_segment_code
112703          , p_side                     => 'NA'
112704          , p_override_seg_flag        => 'Y'
112705    );
112706 
112707    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
112708 
112709       xla_ae_lines_pkg.set_segment(
112710           p_to_segment_code         => 'GL_BALANCING'
112711         , p_segment_value           => l_segment
112712         , p_from_segment_code       => l_adr_value_segment_code
112713         , p_from_combination_id     => l_adr_value_combination_id
112714         , p_value_type_code         => l_adr_value_type_code
112715         , p_transaction_coa_id      => l_adr_transaction_coa_id
112716         , p_accounting_coa_id       => l_adr_accounting_coa_id
112717         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
112718         , p_flex_value_set_id       => l_adr_flex_value_set_id
112719         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
112720         , p_adr_type_code           => 'S'
112721         , p_component_type          => l_component_type
112722         , p_component_code          => l_component_code
112723         , p_component_type_code     => l_component_type_code
112724         , p_component_appl_id       => l_component_appl_id
112725         , p_amb_context_code        => l_amb_context_code
112726         , p_entity_code             => 'AP_INVOICES'
112727         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
112728         , p_side                    => 'NA'
112729         );
112730 
112731   END IF;
112732 
112733    --
112734    --
112735    END IF;
112736    --
112737    -- Bug 4922099
112738    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
112739           (NVL(l_enc_upg_option, 'N') = 'O')
112740         ) AND
112741         (l_bflow_method_code = 'PRIOR_ENTRY')
112742       )
112743    THEN
112744       IF
112745       --
112746       1 = 2
112747       --
112748       THEN
112749       xla_accounting_err_pkg.build_message
112750                                     (p_appli_s_name            => 'XLA'
112754                                     ,p_token_2                 => 'LINE_TYPE_NAME'
112751                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112752                                     ,p_token_1                 => 'LINE_NUMBER'
112753                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
112755                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
112756                                                                              l_component_type
112757                                                                             ,l_component_code
112758                                                                             ,l_component_type_code
112759                                                                             ,l_component_appl_id
112760                                                                             ,l_amb_context_code
112761                                                                             ,l_entity_code
112762                                                                             ,l_event_class_code
112763                                                                            )
112764                                     ,p_token_3                 => 'OWNER'
112765                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
112766                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
112767                                                                           ,p_lookup_code    => l_component_type_code
112768                                                                          )
112769                                     ,p_token_4                 => 'PRODUCT_NAME'
112770                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
112771                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
112772                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
112773                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
112774                                     ,p_ae_header_id            =>  NULL
112775                                        );
112776 
112777         IF (C_LEVEL_ERROR>= g_log_level) THEN
112778                  trace
112779                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112780                       ,p_level    => C_LEVEL_ERROR
112781                       ,p_module   => l_log_module);
112782         END IF;
112783       END IF;
112784    END IF;
112785    --
112786    --
112787    ------------------------------------------------------------------------------------------------
112788    -- 4219869 Business Flow
112789    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
112790    -- Prior Entry.  Currently, the following code is always generated.
112791    ------------------------------------------------------------------------------------------------
112792    XLA_AE_LINES_PKG.ValidateCurrentLine;
112793 
112794    ------------------------------------------------------------------------------------
112795    -- 4219869 Business Flow
112796    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
112797    ------------------------------------------------------------------------------------
112798    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112799 
112800    ----------------------------------------------------------------------------------
112801    -- 4219869 Business Flow
112802    -- Update journal entry status -- Need to generate this within IF <condition>
112803    ----------------------------------------------------------------------------------
112804    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112805          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
112806          ,p_balance_type_code => l_balance_type_code
112807          );
112808 
112809    -------------------------------------------------------------------------------------------
112810    -- 4262811 - Generate the Accrual Reversal lines
112811    -------------------------------------------------------------------------------------------
112812    BEGIN
112813       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
112814                               (g_array_event(p_event_id).array_value_num('header_index'));
112815       IF l_acc_rev_flag IS NULL THEN
112816          l_acc_rev_flag := 'N';
112817       END IF;
112818    EXCEPTION
112819       WHEN OTHERS THEN
112820          l_acc_rev_flag := 'N';
112821    END;
112822    --
112823    IF (l_acc_rev_flag = 'Y') THEN
112824 
112825        -- 4645092  ------------------------------------------------------------------------------
112826        -- To allow MPA report to determine if it should generate report process
112827        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
112828        ------------------------------------------------------------------------------------------
112829 
112830        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
112831        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
112832    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
112833    -- call ADRs
112834    -- Bug 4922099
112835    --
112836    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112840    THEN
112837         (NVL(l_actual_upg_option, 'N') = 'O') OR
112838         (NVL(l_enc_upg_option, 'N') = 'O')
112839       )
112841    NULL;
112842    --
112843    --
112844    
112845   l_ccid := AcctDerRule_23(
112846            p_application_id           => p_application_id
112847          , p_ae_header_id             => l_ae_header_id 
112848 , p_source_4 => p_source_4
112849 , p_source_4_meaning => p_source_4_meaning
112850 , p_source_5 => p_source_5
112851 , p_source_6 => p_source_6
112852 , p_source_7 => p_source_7
112853 , p_source_7_meaning => p_source_7_meaning
112854 , p_source_8 => p_source_8
112855 , p_source_17 => p_source_17
112856 , p_source_30 => p_source_30
112857 , p_source_30_meaning => p_source_30_meaning
112858          , x_transaction_coa_id       => l_adr_transaction_coa_id
112859          , x_accounting_coa_id        => l_adr_accounting_coa_id
112860          , x_value_type_code          => l_adr_value_type_code
112861          , p_side                     => 'NA'
112862    );
112863 
112864    xla_ae_lines_pkg.set_ccid(
112865     p_code_combination_id          => l_ccid
112866   , p_value_type_code              => l_adr_value_type_code
112867   , p_transaction_coa_id           => l_adr_transaction_coa_id
112868   , p_accounting_coa_id            => l_adr_accounting_coa_id
112869   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
112870   , p_adr_type_code                => 'S'
112871   , p_component_type               => l_component_type
112872   , p_component_code               => l_component_code
112873   , p_component_type_code          => l_component_type_code
112874   , p_component_appl_id            => l_component_appl_id
112875   , p_amb_context_code             => l_amb_context_code
112876   , p_side                         => 'NA'
112877   );
112878 
112879 
112880    l_segment := AcctDerRule_3(
112881            p_application_id           => p_application_id
112882          , p_ae_header_id             => l_ae_header_id 
112883 , p_source_4 => p_source_4
112884 , p_source_4_meaning => p_source_4_meaning
112885 , p_source_5 => p_source_5
112886 , p_source_6 => p_source_6
112887 , p_source_7 => p_source_7
112888 , p_source_7_meaning => p_source_7_meaning
112889 , p_source_8 => p_source_8
112890          , x_transaction_coa_id       => l_adr_transaction_coa_id
112891          , x_accounting_coa_id        => l_adr_accounting_coa_id
112892          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
112893          , x_flex_value_set_id        => l_adr_flex_value_set_id
112894          , x_value_type_code          => l_adr_value_type_code
112895          , x_value_combination_id     => l_adr_value_combination_id
112896          , x_value_segment_code       => l_adr_value_segment_code
112897          , p_side                     => 'NA'
112898          , p_override_seg_flag        => 'Y'
112899    );
112900 
112901    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
112902 
112903       xla_ae_lines_pkg.set_segment(
112904           p_to_segment_code         => 'GL_ACCOUNT'
112905         , p_segment_value           => l_segment
112906         , p_from_segment_code       => l_adr_value_segment_code
112907         , p_from_combination_id     => l_adr_value_combination_id
112908         , p_value_type_code         => l_adr_value_type_code
112909         , p_transaction_coa_id      => l_adr_transaction_coa_id
112910         , p_accounting_coa_id       => l_adr_accounting_coa_id
112911         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
112912         , p_flex_value_set_id       => l_adr_flex_value_set_id
112913         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
112914         , p_adr_type_code           => 'S'
112915         , p_component_type          => l_component_type
112916         , p_component_code          => l_component_code
112917         , p_component_type_code     => l_component_type_code
112918         , p_component_appl_id       => l_component_appl_id
112919         , p_amb_context_code        => l_amb_context_code
112920         , p_entity_code             => 'AP_INVOICES'
112921         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
112922         , p_side                    => 'NA'
112923         );
112924 
112925   END IF;
112926 
112927    l_segment := AcctDerRule_15(
112928            p_application_id           => p_application_id
112929          , p_ae_header_id             => l_ae_header_id 
112930 , p_source_4 => p_source_4
112931 , p_source_4_meaning => p_source_4_meaning
112932 , p_source_7 => p_source_7
112933 , p_source_7_meaning => p_source_7_meaning
112934 , p_source_17 => p_source_17
112935          , x_transaction_coa_id       => l_adr_transaction_coa_id
112936          , x_accounting_coa_id        => l_adr_accounting_coa_id
112937          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
112938          , x_flex_value_set_id        => l_adr_flex_value_set_id
112939          , x_value_type_code          => l_adr_value_type_code
112940          , x_value_combination_id     => l_adr_value_combination_id
112941          , x_value_segment_code       => l_adr_value_segment_code
112942          , p_side                     => 'NA'
112943          , p_override_seg_flag        => 'Y'
112944    );
112945 
112946    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
112947 
112948       xla_ae_lines_pkg.set_segment(
112949           p_to_segment_code         => 'GL_BALANCING'
112950         , p_segment_value           => l_segment
112951         , p_from_segment_code       => l_adr_value_segment_code
112952         , p_from_combination_id     => l_adr_value_combination_id
112956         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
112953         , p_value_type_code         => l_adr_value_type_code
112954         , p_transaction_coa_id      => l_adr_transaction_coa_id
112955         , p_accounting_coa_id       => l_adr_accounting_coa_id
112957         , p_flex_value_set_id       => l_adr_flex_value_set_id
112958         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
112959         , p_adr_type_code           => 'S'
112960         , p_component_type          => l_component_type
112961         , p_component_code          => l_component_code
112962         , p_component_type_code     => l_component_type_code
112963         , p_component_appl_id       => l_component_appl_id
112964         , p_amb_context_code        => l_amb_context_code
112965         , p_entity_code             => 'AP_INVOICES'
112966         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
112967         , p_side                    => 'NA'
112968         );
112969 
112970   END IF;
112971 
112972    --
112973    --
112974    END IF;
112975 
112976        --
112977        -- Update the line information that should be overwritten
112978        --
112979        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
112980                                          p_header_num   => 1);
112981        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
112982 
112983        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
112984 
112985        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
112986           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
112987        END IF;
112988 
112989       --
112990       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112991       --
112992       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112993           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
112994       ELSE
112995           ---------------------------------------------------------------------------------------------------
112996           -- 4262811a Switch Sign
112997           ---------------------------------------------------------------------------------------------------
112998           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
112999           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113000                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113001           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113002                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113003           -- 5132302
113004           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
113005                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113006 
113007       END IF;
113008 
113009       -- 4955764
113010       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113011       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
113012 
113013 
113014       XLA_AE_LINES_PKG.ValidateCurrentLine;
113015       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113016 
113017       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113018                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
113019                ,p_balance_type_code => l_balance_type_code);
113020 
113021    END IF;
113022 
113023    -----------------------------------------------------------------------------------------
113024    -- 4262811 Multiperiod Accounting
113025    -----------------------------------------------------------------------------------------
113026      -- No MPA option is assigned.
113027 
113028 
113029 END IF;
113030 END IF;
113031 --
113032 
113033 --
113034 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113035    trace
113036       (p_msg      => 'END of AcctLineType_196'
113037       ,p_level    => C_LEVEL_PROCEDURE
113038       ,p_module   => l_log_module);
113039 END IF;
113040 --
113041 EXCEPTION
113042   WHEN xla_exceptions_pkg.application_exception THEN
113043       RAISE;
113044   WHEN OTHERS THEN
113045        xla_exceptions_pkg.raise_message
113046            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_196');
113047 END AcctLineType_196;
113048 --
113049 
113050 ---------------------------------------
113051 --
113052 -- PRIVATE FUNCTION
113053 --         AcctLineType_197
113054 --
113055 ---------------------------------------
113056 PROCEDURE AcctLineType_197 (
113057   p_application_id        IN NUMBER
113058  ,p_event_id              IN NUMBER
113059  ,p_calculate_acctd_flag  IN VARCHAR2
113060  ,p_calculate_g_l_flag    IN VARCHAR2
113061  ,p_actual_flag           IN OUT VARCHAR2
113062  ,p_balance_type_code     OUT VARCHAR2
113063  ,p_gain_or_loss_ref      OUT VARCHAR2
113064  
113065 --Automatic Offsets Value
113066  , p_source_4            IN VARCHAR2
113067  , p_source_4_meaning    IN VARCHAR2
113068 --Purchase Order Rate Variance Gain Account
113069  , p_source_5            IN NUMBER
113070 --Invoice Distribution Ledger Amount
113071  , p_source_6            IN NUMBER
113072 --Destination Type of the PO Distribution
113073  , p_source_7            IN VARCHAR2
113077 --Invoice Distribution Account
113074  , p_source_7_meaning    IN VARCHAR2
113075 --Purchase Order Rate Variance Loss Account
113076  , p_source_8            IN NUMBER
113078  , p_source_17            IN NUMBER
113079 --Automatic Offsets Flag
113080  , p_source_30            IN VARCHAR2
113081  , p_source_30_meaning    IN VARCHAR2
113082 --When to Account for Payment Option
113083  , p_source_38            IN VARCHAR2
113084 --Accounting Reversal Indicator
113085  , p_source_40            IN VARCHAR2
113086 --Business Flow Accounts Payable Application Identifier
113087  , p_source_42            IN NUMBER
113088 --Distribution Link Type
113089  , p_source_48            IN VARCHAR2
113090 --Override Accounted Amount Indicator
113091  , p_source_53            IN VARCHAR2
113092  , p_source_53_meaning    IN VARCHAR2
113093 --Third Party Type
113094  , p_source_56            IN VARCHAR2
113095 --Invoice Distribution Tax Line Identifier
113096  , p_source_58            IN NUMBER
113097 --Invoice Distribution Summary Tax Line Identifier
113098  , p_source_59            IN NUMBER
113099 --Invoice Distribution Tax Distribution Identifier from Tax
113100  , p_source_66            IN NUMBER
113101 --Prepayment Distribution Type
113102  , p_source_67            IN VARCHAR2
113103 --Recipient Invoice Distribution Type
113104  , p_source_68            IN VARCHAR2
113105  , p_source_68_meaning    IN VARCHAR2
113106 --Prepayment Application Distribution Identifier
113107  , p_source_71            IN NUMBER
113108 --Invoice Identifier
113109  , p_source_72            IN NUMBER
113110 --Business Flow Prepayment Invoice Distribution Type
113111  , p_source_73            IN VARCHAR2
113112 --Business Flow Prepayment Invoice Entity Code
113113  , p_source_74            IN VARCHAR2
113114 --Business Flow Prepayment Invoice Distribution Identifier
113115  , p_source_75            IN NUMBER
113116 --Business Flow Prepayment Invoice Identifier
113117  , p_source_76            IN NUMBER
113118 --Upgrade Encumbrance Credit Account Class
113119  , p_source_77            IN VARCHAR2
113120 --Payables Encumbrance Upgrade Credit Account
113121  , p_source_78            IN NUMBER
113122 --Payables Encumbrance Upgrade Credit Amount
113123  , p_source_79            IN NUMBER
113124 --Invoice Currency Code
113125  , p_source_80            IN VARCHAR2
113126 --Payables Encumbrance Upgrade Credit Base Amount
113127  , p_source_81            IN NUMBER
113128 --Upgrade Encumbrance Debit Account Class
113129  , p_source_82            IN VARCHAR2
113130 --Payables Encumbrance Upgrade Debit Account
113131  , p_source_83            IN NUMBER
113132 --Payables Encumbrance Upgrade Debit Amount
113133  , p_source_84            IN NUMBER
113134 --Payables Encumbrance Upgrade Debit Base Amount
113135  , p_source_85            IN NUMBER
113136 --Payables Encumbrance Upgrade Option
113137  , p_source_86            IN VARCHAR2
113138 --Prepayment Distribution Amount
113139  , p_source_87            IN NUMBER
113140 --Deferred Accounting End Date
113141  , p_source_90            IN DATE
113142 --Deferred Accounting Option
113143  , p_source_91            IN VARCHAR2
113144 --Deferred Accounting Start Date
113145  , p_source_92            IN DATE
113146 --Invoice Supplier Identifier
113147  , p_source_93            IN NUMBER
113148 --Invoice Supplier Site Identifier
113149  , p_source_94            IN NUMBER
113150 --Identifier of the Prepayment Application Reversed
113151  , p_source_95            IN NUMBER
113152 --Payables Upgrade Credit Encumbrance Type Identifier
113153  , p_source_96            IN NUMBER
113154 --Payables Upgrade Debit Encumbrance Type Identifier
113155  , p_source_97            IN NUMBER
113156 --Prepayment Payment Currency Code
113157  , p_source_98            IN VARCHAR2
113158 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
113159  , p_source_99            IN NUMBER
113160 --Accrue on Receipt Option
113161  , p_source_100            IN VARCHAR2
113162  , p_source_100_meaning    IN VARCHAR2
113163 --Prepayment Payment Exchange Date
113164  , p_source_121            IN DATE
113165 --Prepayment Payment Exchange Rate
113166  , p_source_122            IN NUMBER
113167 --Prepayment Payment Exchange Rate Type
113168  , p_source_123            IN VARCHAR2
113169 )
113170 IS
113171 
113172 l_component_type              VARCHAR2(80);
113173 l_component_code              VARCHAR2(30);
113174 l_component_type_code         VARCHAR2(1);
113175 l_component_appl_id           INTEGER;
113176 l_amb_context_code            VARCHAR2(30);
113177 l_entity_code                 VARCHAR2(30);
113178 l_event_class_code            VARCHAR2(30);
113179 l_ae_header_id                NUMBER;
113180 l_event_type_code             VARCHAR2(30);
113181 l_line_definition_code        VARCHAR2(30);
113182 l_line_definition_owner_code  VARCHAR2(1);
113183 --
113184 -- adr variables
113185 l_segment                     VARCHAR2(30);
113186 l_ccid                        NUMBER;
113187 l_adr_transaction_coa_id      NUMBER;
113188 l_adr_accounting_coa_id       NUMBER;
113189 l_adr_flexfield_segment_code  VARCHAR2(30);
113190 l_adr_flex_value_set_id       NUMBER;
113191 l_adr_value_type_code         VARCHAR2(30);
113192 l_adr_value_combination_id    NUMBER;
113193 l_adr_value_segment_code      VARCHAR2(30);
113194 
113195 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
113196 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
113197 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
113198 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
113199 
113203 l_acc_rev_flag                VARCHAR2(1);
113200 -- 4262811 Variables ------------------------------------------------------------------------------------------
113201 l_entered_amt_idx             NUMBER;
113202 l_accted_amt_idx              NUMBER;
113204 l_accrual_line_num            NUMBER;
113205 l_tmp_amt                     NUMBER;
113206 l_acc_rev_natural_side_code   VARCHAR2(1);
113207 
113208 l_num_entries                 NUMBER;
113209 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
113210 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
113211 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
113212 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
113213 l_recog_line_1                NUMBER;
113214 l_recog_line_2                NUMBER;
113215 
113216 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
113217 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
113218 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
113219 
113220 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
113221 
113222 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
113223 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
113224 
113225 ---------------------------------------------------------------------------------------------------------------
113226 
113227 
113228 --
113229 -- bulk performance
113230 --
113231 l_balance_type_code           VARCHAR2(1);
113232 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
113233 l_log_module                  VARCHAR2(240);
113234 
113235 --
113236 -- Upgrade strategy
113237 --
113238 l_actual_upg_option           VARCHAR2(1);
113239 l_enc_upg_option           VARCHAR2(1);
113240 
113241 --
113242 BEGIN
113243 --
113244 IF g_log_enabled THEN
113245       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_197';
113246 END IF;
113247 --
113248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113249 
113250       trace
113251          (p_msg      => 'BEGIN of AcctLineType_197'
113252          ,p_level    => C_LEVEL_PROCEDURE
113253          ,p_module   => l_log_module);
113254 
113255 END IF;
113256 --
113257 l_component_type             := 'AMB_JLT';
113258 l_component_code             := 'AP_TERV_PREPAY_PAY_RATE';
113259 l_component_type_code        := 'S';
113260 l_component_appl_id          :=  200;
113261 l_amb_context_code           := 'DEFAULT';
113262 l_entity_code                := 'AP_INVOICES';
113263 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
113264 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
113265 l_line_definition_owner_code := 'S';
113266 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
113267 --
113268 l_balance_type_code          := 'A';
113269 l_segment                     := NULL;
113270 l_ccid                        := NULL;
113271 l_adr_transaction_coa_id      := NULL;
113272 l_adr_accounting_coa_id       := NULL;
113273 l_adr_flexfield_segment_code  := NULL;
113274 l_adr_flex_value_set_id       := NULL;
113275 l_adr_value_type_code         := NULL;
113276 l_adr_value_combination_id    := NULL;
113277 l_adr_value_segment_code      := NULL;
113278 
113279 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
113280 l_bflow_class_code           := '';    -- 4219869 Business Flow
113281 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
113282 l_budgetary_control_flag     := 'N';
113283 
113284 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
113285 l_bflow_applied_to_amt       := NULL; -- 5132302
113286 l_entered_amt_idx            := NULL;          -- 4262811
113287 l_accted_amt_idx             := NULL;          -- 4262811
113288 l_acc_rev_flag               := NULL;          -- 4262811
113289 l_accrual_line_num           := NULL;          -- 4262811
113290 l_tmp_amt                    := NULL;          -- 4262811
113291 --
113292 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
113293             (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
113294                return;
113295   END IF;
113296   
113297 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
113298     l_balance_type_code <> 'B' THEN
113299 IF NVL(p_source_38,'
113300 ') <>  'CLEAR_CLEAR' AND 
113301 (NVL(p_source_67,'
113302 ') =  'PREPAY APPL' OR 
113303 NVL(p_source_67,'
113304 ') =  'PREPAY APPL NONREC TAX' OR 
113305 NVL(p_source_67,'
113306 ') =  'PREPAY APPL REC TAX') AND 
113307 NVL(p_source_68,'
113308 ') =  'TERV' AND 
113309 NVL(p_source_100,'
113310 ') =  'Y'
113311  THEN 
113312 
113313    --
113314    XLA_AE_LINES_PKG.SetNewLine;
113315 
113316    p_balance_type_code          := l_balance_type_code;
113317    -- set the flag so later we will know whether the gain loss line needs to be created
113318    
113319    IF(l_balance_type_code = 'A' ) THEN
113320      p_actual_flag :='G';
113321    END IF;
113322 
113323    --
113324    -- bulk performance
113325    --
113326    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
113327                                       p_header_num   => 0); -- 4262811
113328    --
113329    -- set accounting line options
113330    --
113334          , p_gl_transfer_mode_code      => 'S'
113331    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
113332            p_natural_side_code          => 'C'
113333          , p_gain_or_loss_flag          => 'Y'
113335          , p_acct_entry_type_code       => 'A'
113336          , p_switch_side_flag           => 'Y'
113337          , p_merge_duplicate_code       => 'A'
113338          );
113339    --
113340    l_acc_rev_natural_side_code := 'D';  -- 4262811
113341    -- 
113342    --
113343    -- set accounting line type info
113344    --
113345    xla_ae_lines_pkg.SetAcctLineType
113346       (p_component_type             => l_component_type
113347       ,p_event_type_code            => l_event_type_code
113348       ,p_line_definition_owner_code => l_line_definition_owner_code
113349       ,p_line_definition_code       => l_line_definition_code
113350       ,p_accounting_line_code       => l_component_code
113351       ,p_accounting_line_type_code  => l_component_type_code
113352       ,p_accounting_line_appl_id    => l_component_appl_id
113353       ,p_amb_context_code           => l_amb_context_code
113354       ,p_entity_code                => l_entity_code
113355       ,p_event_class_code           => l_event_class_code);
113356    --
113357    -- set accounting class
113358    --
113359    xla_ae_lines_pkg.SetAcctClass(
113360            p_accounting_class_code  => 'TERV'
113361          , p_ae_header_id           => l_ae_header_id
113362          );
113363 
113364    --
113365    -- set rounding class
113366    --
113367    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
113368                       'TERV';
113369 
113370    --
113371    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
113372    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
113373    --
113374    -- bulk performance
113375    --
113376    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
113377 
113378    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
113379       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
113380 
113381    -- 4955764
113382    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113383       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
113384 
113385    -- 4458381 Public Sector Enh
113386    
113387    --
113388    -- set accounting attributes for the line type
113389    --
113390    l_entered_amt_idx := 25;
113391    l_accted_amt_idx  := 30;
113392    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
113393    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
113394    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
113395    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
113396    l_rec_acct_attrs.array_num_value(2)  := 
113397 xla_ae_sources_pkg.GetSystemSourceNum(
113398    p_source_code           => 'XLA_EVENT_APPL_ID'
113399  , p_source_type_code      => 'Y'
113400  , p_source_application_id =>  602
113401 );
113402    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
113403    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
113404    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
113405    l_rec_acct_attrs.array_char_value(4)  := 
113406 xla_ae_sources_pkg.GetSystemSourceChar(
113407    p_source_code           => 'XLA_ENTITY_CODE'
113408  , p_source_type_code      => 'Y'
113409  , p_source_application_id =>  602
113410 );
113411    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
113412    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
113413    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
113414    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
113415    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
113416    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
113417    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
113418    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
113419    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
113420    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
113421    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
113422    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
113423    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
113424    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
113425    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
113426    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
113427    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
113428    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
113429    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
113430    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
113431    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
113432    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
113433    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
113434    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
113435    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
113436    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
113437    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
113441    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
113438    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
113439    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
113440    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
113442    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
113443    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
113444    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
113445    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
113446    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
113447    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
113448    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
113449    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
113450    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
113451    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
113452    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
113453    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
113454    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
113455    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
113456    l_rec_acct_attrs.array_date_value(27)  := p_source_121;
113457    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
113458    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
113459    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
113460    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
113461    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
113462    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
113463    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
113464    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
113465    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
113466    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
113467    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
113468    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
113469    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
113470    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
113471    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
113472    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
113473    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
113474    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
113475    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
113476    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
113477    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
113478    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
113479    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
113480    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
113481    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
113482    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
113483    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
113484    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
113485    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
113486    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
113487    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
113488    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
113489    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
113490    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
113491 
113492    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
113493    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
113494 
113495    ---------------------------------------------------------------------------------------------------------------
113496    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
113497    ---------------------------------------------------------------------------------------------------------------
113498    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
113499 
113500    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113501    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113502 
113503    IF xla_accounting_cache_pkg.GetValueChar
113504          (p_source_code         => 'LEDGER_CATEGORY_CODE'
113505          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
113506    AND l_bflow_method_code = 'PRIOR_ENTRY'
113507 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
113508    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
113509          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
113510        )
113511    THEN
113512          xla_ae_lines_pkg.BflowUpgEntry
113513            (p_business_method_code    => l_bflow_method_code
113514            ,p_business_class_code     => l_bflow_class_code
113515            ,p_balance_type            => l_balance_type_code);
113516    ELSE
113517       NULL;
113518 -- No business flow processing for business flow method of NONE.
113519    END IF;
113520 
113521    --
113522    -- call analytical criteria
113523    --
113524    
113525    --
113526    -- call description
113527    --
113528    -- No description or it is inherited.
113529    --
113533    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113530    -- call ADRs
113531    -- Bug 4922099
113532    --
113534         (NVL(l_actual_upg_option, 'N') = 'O') OR
113535         (NVL(l_enc_upg_option, 'N') = 'O')
113536       )
113537    THEN
113538    NULL;
113539    --
113540    --
113541    
113542   l_ccid := AcctDerRule_23(
113543            p_application_id           => p_application_id
113544          , p_ae_header_id             => l_ae_header_id 
113545 , p_source_4 => p_source_4
113546 , p_source_4_meaning => p_source_4_meaning
113547 , p_source_5 => p_source_5
113548 , p_source_6 => p_source_6
113549 , p_source_7 => p_source_7
113550 , p_source_7_meaning => p_source_7_meaning
113551 , p_source_8 => p_source_8
113552 , p_source_17 => p_source_17
113553 , p_source_30 => p_source_30
113554 , p_source_30_meaning => p_source_30_meaning
113555          , x_transaction_coa_id       => l_adr_transaction_coa_id
113556          , x_accounting_coa_id        => l_adr_accounting_coa_id
113557          , x_value_type_code          => l_adr_value_type_code
113558          , p_side                     => 'NA'
113559    );
113560 
113561    xla_ae_lines_pkg.set_ccid(
113562     p_code_combination_id          => l_ccid
113563   , p_value_type_code              => l_adr_value_type_code
113564   , p_transaction_coa_id           => l_adr_transaction_coa_id
113565   , p_accounting_coa_id            => l_adr_accounting_coa_id
113566   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
113567   , p_adr_type_code                => 'S'
113568   , p_component_type               => l_component_type
113569   , p_component_code               => l_component_code
113570   , p_component_type_code          => l_component_type_code
113571   , p_component_appl_id            => l_component_appl_id
113572   , p_amb_context_code             => l_amb_context_code
113573   , p_side                         => 'NA'
113574   );
113575 
113576 
113577    l_segment := AcctDerRule_3(
113578            p_application_id           => p_application_id
113579          , p_ae_header_id             => l_ae_header_id 
113580 , p_source_4 => p_source_4
113581 , p_source_4_meaning => p_source_4_meaning
113582 , p_source_5 => p_source_5
113583 , p_source_6 => p_source_6
113584 , p_source_7 => p_source_7
113585 , p_source_7_meaning => p_source_7_meaning
113586 , p_source_8 => p_source_8
113587          , x_transaction_coa_id       => l_adr_transaction_coa_id
113588          , x_accounting_coa_id        => l_adr_accounting_coa_id
113589          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
113590          , x_flex_value_set_id        => l_adr_flex_value_set_id
113591          , x_value_type_code          => l_adr_value_type_code
113592          , x_value_combination_id     => l_adr_value_combination_id
113593          , x_value_segment_code       => l_adr_value_segment_code
113594          , p_side                     => 'NA'
113595          , p_override_seg_flag        => 'Y'
113596    );
113597 
113598    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
113599 
113600       xla_ae_lines_pkg.set_segment(
113601           p_to_segment_code         => 'GL_ACCOUNT'
113602         , p_segment_value           => l_segment
113603         , p_from_segment_code       => l_adr_value_segment_code
113604         , p_from_combination_id     => l_adr_value_combination_id
113605         , p_value_type_code         => l_adr_value_type_code
113606         , p_transaction_coa_id      => l_adr_transaction_coa_id
113607         , p_accounting_coa_id       => l_adr_accounting_coa_id
113608         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
113609         , p_flex_value_set_id       => l_adr_flex_value_set_id
113610         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
113611         , p_adr_type_code           => 'S'
113612         , p_component_type          => l_component_type
113613         , p_component_code          => l_component_code
113614         , p_component_type_code     => l_component_type_code
113615         , p_component_appl_id       => l_component_appl_id
113616         , p_amb_context_code        => l_amb_context_code
113617         , p_entity_code             => 'AP_INVOICES'
113618         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
113619         , p_side                    => 'NA'
113620         );
113621 
113622   END IF;
113623 
113624    l_segment := AcctDerRule_15(
113625            p_application_id           => p_application_id
113626          , p_ae_header_id             => l_ae_header_id 
113627 , p_source_4 => p_source_4
113628 , p_source_4_meaning => p_source_4_meaning
113629 , p_source_7 => p_source_7
113630 , p_source_7_meaning => p_source_7_meaning
113631 , p_source_17 => p_source_17
113632          , x_transaction_coa_id       => l_adr_transaction_coa_id
113633          , x_accounting_coa_id        => l_adr_accounting_coa_id
113634          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
113635          , x_flex_value_set_id        => l_adr_flex_value_set_id
113636          , x_value_type_code          => l_adr_value_type_code
113637          , x_value_combination_id     => l_adr_value_combination_id
113638          , x_value_segment_code       => l_adr_value_segment_code
113639          , p_side                     => 'NA'
113640          , p_override_seg_flag        => 'Y'
113641    );
113642 
113643    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
113644 
113645       xla_ae_lines_pkg.set_segment(
113646           p_to_segment_code         => 'GL_BALANCING'
113647         , p_segment_value           => l_segment
113651         , p_transaction_coa_id      => l_adr_transaction_coa_id
113648         , p_from_segment_code       => l_adr_value_segment_code
113649         , p_from_combination_id     => l_adr_value_combination_id
113650         , p_value_type_code         => l_adr_value_type_code
113652         , p_accounting_coa_id       => l_adr_accounting_coa_id
113653         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
113654         , p_flex_value_set_id       => l_adr_flex_value_set_id
113655         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
113656         , p_adr_type_code           => 'S'
113657         , p_component_type          => l_component_type
113658         , p_component_code          => l_component_code
113659         , p_component_type_code     => l_component_type_code
113660         , p_component_appl_id       => l_component_appl_id
113661         , p_amb_context_code        => l_amb_context_code
113662         , p_entity_code             => 'AP_INVOICES'
113663         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
113664         , p_side                    => 'NA'
113665         );
113666 
113667   END IF;
113668 
113669    --
113670    --
113671    END IF;
113672    --
113673    -- Bug 4922099
113674    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
113675           (NVL(l_enc_upg_option, 'N') = 'O')
113676         ) AND
113677         (l_bflow_method_code = 'PRIOR_ENTRY')
113678       )
113679    THEN
113680       IF
113681       --
113682       1 = 2
113683       --
113684       THEN
113685       xla_accounting_err_pkg.build_message
113686                                     (p_appli_s_name            => 'XLA'
113687                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113688                                     ,p_token_1                 => 'LINE_NUMBER'
113689                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
113690                                     ,p_token_2                 => 'LINE_TYPE_NAME'
113691                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
113692                                                                              l_component_type
113693                                                                             ,l_component_code
113694                                                                             ,l_component_type_code
113695                                                                             ,l_component_appl_id
113696                                                                             ,l_amb_context_code
113697                                                                             ,l_entity_code
113698                                                                             ,l_event_class_code
113699                                                                            )
113700                                     ,p_token_3                 => 'OWNER'
113701                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
113702                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
113703                                                                           ,p_lookup_code    => l_component_type_code
113704                                                                          )
113705                                     ,p_token_4                 => 'PRODUCT_NAME'
113706                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
113707                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
113708                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
113709                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
113710                                     ,p_ae_header_id            =>  NULL
113711                                        );
113712 
113713         IF (C_LEVEL_ERROR>= g_log_level) THEN
113714                  trace
113715                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113716                       ,p_level    => C_LEVEL_ERROR
113717                       ,p_module   => l_log_module);
113718         END IF;
113719       END IF;
113720    END IF;
113721    --
113722    --
113723    ------------------------------------------------------------------------------------------------
113724    -- 4219869 Business Flow
113725    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
113726    -- Prior Entry.  Currently, the following code is always generated.
113727    ------------------------------------------------------------------------------------------------
113728    XLA_AE_LINES_PKG.ValidateCurrentLine;
113729 
113730    ------------------------------------------------------------------------------------
113731    -- 4219869 Business Flow
113732    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
113733    ------------------------------------------------------------------------------------
113734    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113735 
113736    ----------------------------------------------------------------------------------
113737    -- 4219869 Business Flow
113738    -- Update journal entry status -- Need to generate this within IF <condition>
113739    ----------------------------------------------------------------------------------
113740    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113741          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
113745    -------------------------------------------------------------------------------------------
113742          ,p_balance_type_code => l_balance_type_code
113743          );
113744 
113746    -- 4262811 - Generate the Accrual Reversal lines
113747    -------------------------------------------------------------------------------------------
113748    BEGIN
113749       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
113750                               (g_array_event(p_event_id).array_value_num('header_index'));
113751       IF l_acc_rev_flag IS NULL THEN
113752          l_acc_rev_flag := 'N';
113753       END IF;
113754    EXCEPTION
113755       WHEN OTHERS THEN
113756          l_acc_rev_flag := 'N';
113757    END;
113758    --
113759    IF (l_acc_rev_flag = 'Y') THEN
113760 
113761        -- 4645092  ------------------------------------------------------------------------------
113762        -- To allow MPA report to determine if it should generate report process
113763        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
113764        ------------------------------------------------------------------------------------------
113765 
113766        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
113767        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
113768    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
113769    -- call ADRs
113770    -- Bug 4922099
113771    --
113772    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113773         (NVL(l_actual_upg_option, 'N') = 'O') OR
113774         (NVL(l_enc_upg_option, 'N') = 'O')
113775       )
113776    THEN
113777    NULL;
113778    --
113779    --
113780    
113781   l_ccid := AcctDerRule_23(
113782            p_application_id           => p_application_id
113783          , p_ae_header_id             => l_ae_header_id 
113784 , p_source_4 => p_source_4
113785 , p_source_4_meaning => p_source_4_meaning
113786 , p_source_5 => p_source_5
113787 , p_source_6 => p_source_6
113788 , p_source_7 => p_source_7
113789 , p_source_7_meaning => p_source_7_meaning
113790 , p_source_8 => p_source_8
113791 , p_source_17 => p_source_17
113792 , p_source_30 => p_source_30
113793 , p_source_30_meaning => p_source_30_meaning
113794          , x_transaction_coa_id       => l_adr_transaction_coa_id
113795          , x_accounting_coa_id        => l_adr_accounting_coa_id
113796          , x_value_type_code          => l_adr_value_type_code
113797          , p_side                     => 'NA'
113798    );
113799 
113800    xla_ae_lines_pkg.set_ccid(
113801     p_code_combination_id          => l_ccid
113802   , p_value_type_code              => l_adr_value_type_code
113803   , p_transaction_coa_id           => l_adr_transaction_coa_id
113804   , p_accounting_coa_id            => l_adr_accounting_coa_id
113805   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
113806   , p_adr_type_code                => 'S'
113807   , p_component_type               => l_component_type
113808   , p_component_code               => l_component_code
113809   , p_component_type_code          => l_component_type_code
113810   , p_component_appl_id            => l_component_appl_id
113811   , p_amb_context_code             => l_amb_context_code
113812   , p_side                         => 'NA'
113813   );
113814 
113815 
113816    l_segment := AcctDerRule_3(
113817            p_application_id           => p_application_id
113818          , p_ae_header_id             => l_ae_header_id 
113819 , p_source_4 => p_source_4
113820 , p_source_4_meaning => p_source_4_meaning
113821 , p_source_5 => p_source_5
113822 , p_source_6 => p_source_6
113823 , p_source_7 => p_source_7
113824 , p_source_7_meaning => p_source_7_meaning
113825 , p_source_8 => p_source_8
113826          , x_transaction_coa_id       => l_adr_transaction_coa_id
113827          , x_accounting_coa_id        => l_adr_accounting_coa_id
113828          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
113829          , x_flex_value_set_id        => l_adr_flex_value_set_id
113830          , x_value_type_code          => l_adr_value_type_code
113831          , x_value_combination_id     => l_adr_value_combination_id
113832          , x_value_segment_code       => l_adr_value_segment_code
113833          , p_side                     => 'NA'
113834          , p_override_seg_flag        => 'Y'
113835    );
113836 
113837    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
113838 
113839       xla_ae_lines_pkg.set_segment(
113840           p_to_segment_code         => 'GL_ACCOUNT'
113841         , p_segment_value           => l_segment
113842         , p_from_segment_code       => l_adr_value_segment_code
113843         , p_from_combination_id     => l_adr_value_combination_id
113844         , p_value_type_code         => l_adr_value_type_code
113845         , p_transaction_coa_id      => l_adr_transaction_coa_id
113846         , p_accounting_coa_id       => l_adr_accounting_coa_id
113847         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
113848         , p_flex_value_set_id       => l_adr_flex_value_set_id
113849         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
113850         , p_adr_type_code           => 'S'
113851         , p_component_type          => l_component_type
113852         , p_component_code          => l_component_code
113853         , p_component_type_code     => l_component_type_code
113854         , p_component_appl_id       => l_component_appl_id
113855         , p_amb_context_code        => l_amb_context_code
113856         , p_entity_code             => 'AP_INVOICES'
113860 
113857         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
113858         , p_side                    => 'NA'
113859         );
113861   END IF;
113862 
113863    l_segment := AcctDerRule_15(
113864            p_application_id           => p_application_id
113865          , p_ae_header_id             => l_ae_header_id 
113866 , p_source_4 => p_source_4
113867 , p_source_4_meaning => p_source_4_meaning
113868 , p_source_7 => p_source_7
113869 , p_source_7_meaning => p_source_7_meaning
113870 , p_source_17 => p_source_17
113871          , x_transaction_coa_id       => l_adr_transaction_coa_id
113872          , x_accounting_coa_id        => l_adr_accounting_coa_id
113873          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
113874          , x_flex_value_set_id        => l_adr_flex_value_set_id
113875          , x_value_type_code          => l_adr_value_type_code
113876          , x_value_combination_id     => l_adr_value_combination_id
113877          , x_value_segment_code       => l_adr_value_segment_code
113878          , p_side                     => 'NA'
113879          , p_override_seg_flag        => 'Y'
113880    );
113881 
113882    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
113883 
113884       xla_ae_lines_pkg.set_segment(
113885           p_to_segment_code         => 'GL_BALANCING'
113886         , p_segment_value           => l_segment
113887         , p_from_segment_code       => l_adr_value_segment_code
113888         , p_from_combination_id     => l_adr_value_combination_id
113889         , p_value_type_code         => l_adr_value_type_code
113890         , p_transaction_coa_id      => l_adr_transaction_coa_id
113891         , p_accounting_coa_id       => l_adr_accounting_coa_id
113892         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
113893         , p_flex_value_set_id       => l_adr_flex_value_set_id
113894         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
113895         , p_adr_type_code           => 'S'
113896         , p_component_type          => l_component_type
113897         , p_component_code          => l_component_code
113898         , p_component_type_code     => l_component_type_code
113899         , p_component_appl_id       => l_component_appl_id
113900         , p_amb_context_code        => l_amb_context_code
113901         , p_entity_code             => 'AP_INVOICES'
113902         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
113903         , p_side                    => 'NA'
113904         );
113905 
113906   END IF;
113907 
113908    --
113909    --
113910    END IF;
113911 
113912        --
113913        -- Update the line information that should be overwritten
113914        --
113915        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
113916                                          p_header_num   => 1);
113917        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
113918 
113919        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
113920 
113921        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
113922           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
113923        END IF;
113924 
113925       --
113926       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
113927       --
113928       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
113929           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
113930       ELSE
113931           ---------------------------------------------------------------------------------------------------
113932           -- 4262811a Switch Sign
113933           ---------------------------------------------------------------------------------------------------
113934           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
113935           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113936                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113937           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113938                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113939           -- 5132302
113940           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
113941                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113942 
113943       END IF;
113944 
113945       -- 4955764
113946       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113947       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
113948 
113949 
113950       XLA_AE_LINES_PKG.ValidateCurrentLine;
113951       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113952 
113953       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113954                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
113955                ,p_balance_type_code => l_balance_type_code);
113956 
113957    END IF;
113958 
113959    -----------------------------------------------------------------------------------------
113960    -- 4262811 Multiperiod Accounting
113961    -----------------------------------------------------------------------------------------
113965 END IF;
113962      -- No MPA option is assigned.
113963 
113964 
113966 END IF;
113967 --
113968 
113969 --
113970 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113971    trace
113972       (p_msg      => 'END of AcctLineType_197'
113973       ,p_level    => C_LEVEL_PROCEDURE
113974       ,p_module   => l_log_module);
113975 END IF;
113976 --
113977 EXCEPTION
113978   WHEN xla_exceptions_pkg.application_exception THEN
113979       RAISE;
113980   WHEN OTHERS THEN
113981        xla_exceptions_pkg.raise_message
113982            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_197');
113983 END AcctLineType_197;
113984 --
113985 
113986 ---------------------------------------
113987 --
113988 -- PRIVATE FUNCTION
113989 --         AcctLineType_198
113990 --
113991 ---------------------------------------
113992 PROCEDURE AcctLineType_198 (
113993   p_application_id        IN NUMBER
113994  ,p_event_id              IN NUMBER
113995  ,p_calculate_acctd_flag  IN VARCHAR2
113996  ,p_calculate_g_l_flag    IN VARCHAR2
113997  ,p_actual_flag           IN OUT VARCHAR2
113998  ,p_balance_type_code     OUT VARCHAR2
113999  ,p_gain_or_loss_ref      OUT VARCHAR2
114000  
114001 --Recipient Invoice Distribution Account
114002  , p_source_36            IN NUMBER
114003 --When to Account for Payment Option
114004  , p_source_38            IN VARCHAR2
114005 --Accounting Reversal Indicator
114006  , p_source_40            IN VARCHAR2
114007 --Business Flow Accounts Payable Application Identifier
114008  , p_source_42            IN NUMBER
114009 --Distribution Link Type
114010  , p_source_48            IN VARCHAR2
114011 --Override Accounted Amount Indicator
114012  , p_source_53            IN VARCHAR2
114013  , p_source_53_meaning    IN VARCHAR2
114014 --Third Party Type
114015  , p_source_56            IN VARCHAR2
114016 --Invoice Distribution Tax Line Identifier
114017  , p_source_58            IN NUMBER
114018 --Invoice Distribution Summary Tax Line Identifier
114019  , p_source_59            IN NUMBER
114020 --Invoice Distribution Tax Distribution Identifier from Tax
114021  , p_source_66            IN NUMBER
114022 --Prepayment Distribution Type
114023  , p_source_67            IN VARCHAR2
114024 --Recipient Invoice Distribution Type
114025  , p_source_68            IN VARCHAR2
114026  , p_source_68_meaning    IN VARCHAR2
114027 --Prepayment Application Distribution Identifier
114028  , p_source_71            IN NUMBER
114029 --Invoice Identifier
114030  , p_source_72            IN NUMBER
114031 --Business Flow Prepayment Invoice Distribution Type
114032  , p_source_73            IN VARCHAR2
114033 --Business Flow Prepayment Invoice Entity Code
114034  , p_source_74            IN VARCHAR2
114035 --Business Flow Prepayment Invoice Distribution Identifier
114036  , p_source_75            IN NUMBER
114037 --Business Flow Prepayment Invoice Identifier
114038  , p_source_76            IN NUMBER
114039 --Upgrade Encumbrance Credit Account Class
114040  , p_source_77            IN VARCHAR2
114041 --Payables Encumbrance Upgrade Credit Account
114042  , p_source_78            IN NUMBER
114043 --Payables Encumbrance Upgrade Credit Amount
114044  , p_source_79            IN NUMBER
114045 --Invoice Currency Code
114046  , p_source_80            IN VARCHAR2
114047 --Payables Encumbrance Upgrade Credit Base Amount
114048  , p_source_81            IN NUMBER
114049 --Upgrade Encumbrance Debit Account Class
114050  , p_source_82            IN VARCHAR2
114051 --Payables Encumbrance Upgrade Debit Account
114052  , p_source_83            IN NUMBER
114053 --Payables Encumbrance Upgrade Debit Amount
114054  , p_source_84            IN NUMBER
114055 --Payables Encumbrance Upgrade Debit Base Amount
114056  , p_source_85            IN NUMBER
114057 --Payables Encumbrance Upgrade Option
114058  , p_source_86            IN VARCHAR2
114059 --Prepayment Distribution Amount
114060  , p_source_87            IN NUMBER
114061 --Prepayment Clearing Currency Code
114062  , p_source_88            IN VARCHAR2
114063 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
114064  , p_source_89            IN NUMBER
114065 --Deferred Accounting End Date
114066  , p_source_90            IN DATE
114067 --Deferred Accounting Option
114068  , p_source_91            IN VARCHAR2
114069 --Deferred Accounting Start Date
114070  , p_source_92            IN DATE
114071 --Invoice Supplier Identifier
114072  , p_source_93            IN NUMBER
114073 --Invoice Supplier Site Identifier
114074  , p_source_94            IN NUMBER
114075 --Identifier of the Prepayment Application Reversed
114076  , p_source_95            IN NUMBER
114077 --Payables Upgrade Credit Encumbrance Type Identifier
114078  , p_source_96            IN NUMBER
114079 --Payables Upgrade Debit Encumbrance Type Identifier
114080  , p_source_97            IN NUMBER
114081 --Accrue on Receipt Option
114082  , p_source_100            IN VARCHAR2
114083  , p_source_100_meaning    IN VARCHAR2
114084 --Prepayment Clearing Exchange Date
114085  , p_source_118            IN DATE
114086 --Prepayment Clearing Exchange Rate
114087  , p_source_119            IN NUMBER
114088 --Prepayment Clearing Exchange Rate Type
114089  , p_source_120            IN VARCHAR2
114090 )
114091 IS
114092 
114093 l_component_type              VARCHAR2(80);
114094 l_component_code              VARCHAR2(30);
114095 l_component_type_code         VARCHAR2(1);
114096 l_component_appl_id           INTEGER;
114097 l_amb_context_code            VARCHAR2(30);
114101 l_event_type_code             VARCHAR2(30);
114098 l_entity_code                 VARCHAR2(30);
114099 l_event_class_code            VARCHAR2(30);
114100 l_ae_header_id                NUMBER;
114102 l_line_definition_code        VARCHAR2(30);
114103 l_line_definition_owner_code  VARCHAR2(1);
114104 --
114105 -- adr variables
114106 l_segment                     VARCHAR2(30);
114107 l_ccid                        NUMBER;
114108 l_adr_transaction_coa_id      NUMBER;
114109 l_adr_accounting_coa_id       NUMBER;
114110 l_adr_flexfield_segment_code  VARCHAR2(30);
114111 l_adr_flex_value_set_id       NUMBER;
114112 l_adr_value_type_code         VARCHAR2(30);
114113 l_adr_value_combination_id    NUMBER;
114114 l_adr_value_segment_code      VARCHAR2(30);
114115 
114116 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
114117 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
114118 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
114119 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
114120 
114121 -- 4262811 Variables ------------------------------------------------------------------------------------------
114122 l_entered_amt_idx             NUMBER;
114123 l_accted_amt_idx              NUMBER;
114124 l_acc_rev_flag                VARCHAR2(1);
114125 l_accrual_line_num            NUMBER;
114126 l_tmp_amt                     NUMBER;
114127 l_acc_rev_natural_side_code   VARCHAR2(1);
114128 
114129 l_num_entries                 NUMBER;
114130 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
114131 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
114132 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
114133 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
114134 l_recog_line_1                NUMBER;
114135 l_recog_line_2                NUMBER;
114136 
114137 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
114138 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
114139 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
114140 
114141 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114142 
114143 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
114144 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
114145 
114146 ---------------------------------------------------------------------------------------------------------------
114147 
114148 
114149 --
114150 -- bulk performance
114151 --
114152 l_balance_type_code           VARCHAR2(1);
114153 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
114154 l_log_module                  VARCHAR2(240);
114155 
114156 --
114157 -- Upgrade strategy
114158 --
114159 l_actual_upg_option           VARCHAR2(1);
114160 l_enc_upg_option           VARCHAR2(1);
114161 
114162 --
114163 BEGIN
114164 --
114165 IF g_log_enabled THEN
114166       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_198';
114167 END IF;
114168 --
114169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114170 
114171       trace
114172          (p_msg      => 'BEGIN of AcctLineType_198'
114173          ,p_level    => C_LEVEL_PROCEDURE
114174          ,p_module   => l_log_module);
114175 
114176 END IF;
114177 --
114178 l_component_type             := 'AMB_JLT';
114179 l_component_code             := 'AP_TIPV_PREPAY_CLR_RATE_APP';
114180 l_component_type_code        := 'S';
114181 l_component_appl_id          :=  200;
114182 l_amb_context_code           := 'DEFAULT';
114183 l_entity_code                := 'AP_INVOICES';
114184 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
114185 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
114186 l_line_definition_owner_code := 'S';
114187 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
114188 --
114189 l_balance_type_code          := 'A';
114190 l_segment                     := NULL;
114191 l_ccid                        := NULL;
114192 l_adr_transaction_coa_id      := NULL;
114193 l_adr_accounting_coa_id       := NULL;
114194 l_adr_flexfield_segment_code  := NULL;
114195 l_adr_flex_value_set_id       := NULL;
114196 l_adr_value_type_code         := NULL;
114197 l_adr_value_combination_id    := NULL;
114198 l_adr_value_segment_code      := NULL;
114199 
114200 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
114201 l_bflow_class_code           := '';    -- 4219869 Business Flow
114202 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
114203 l_budgetary_control_flag     := 'N';
114204 
114205 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
114206 l_bflow_applied_to_amt       := NULL; -- 5132302
114207 l_entered_amt_idx            := NULL;          -- 4262811
114208 l_accted_amt_idx             := NULL;          -- 4262811
114209 l_acc_rev_flag               := NULL;          -- 4262811
114210 l_accrual_line_num           := NULL;          -- 4262811
114211 l_tmp_amt                    := NULL;          -- 4262811
114212 --
114213  
114214 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
114215     l_balance_type_code <> 'B' THEN
114216 IF NVL(p_source_38,'
114217 ') =  'CLEAR_CLEAR' AND 
114218 (NVL(p_source_67,'
114219 ') =  'PREPAY APPL' OR 
114220 NVL(p_source_67,'
114221 ') =  'PREPAY APPL NONREC TAX' OR 
114222 NVL(p_source_67,'
114223 ') =  'PREPAY APPL REC TAX') AND 
114224 NVL(p_source_68,'
114225 ') =  'TIPV' AND 
114229 
114226 NVL(p_source_100,'
114227 ') =  'Y'
114228  THEN 
114230    --
114231    XLA_AE_LINES_PKG.SetNewLine;
114232 
114233    p_balance_type_code          := l_balance_type_code;
114234    -- set the flag so later we will know whether the gain loss line needs to be created
114235    
114236    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
114237      p_actual_flag :='A';
114238    END IF;
114239 
114240    --
114241    -- bulk performance
114242    --
114243    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
114244                                       p_header_num   => 0); -- 4262811
114245    --
114246    -- set accounting line options
114247    --
114248    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
114249            p_natural_side_code          => 'C'
114250          , p_gain_or_loss_flag          => 'N'
114251          , p_gl_transfer_mode_code      => 'S'
114252          , p_acct_entry_type_code       => 'A'
114253          , p_switch_side_flag           => 'Y'
114254          , p_merge_duplicate_code       => 'A'
114255          );
114256    --
114257    l_acc_rev_natural_side_code := 'D';  -- 4262811
114258    -- 
114259    --
114260    -- set accounting line type info
114261    --
114262    xla_ae_lines_pkg.SetAcctLineType
114263       (p_component_type             => l_component_type
114264       ,p_event_type_code            => l_event_type_code
114265       ,p_line_definition_owner_code => l_line_definition_owner_code
114266       ,p_line_definition_code       => l_line_definition_code
114267       ,p_accounting_line_code       => l_component_code
114268       ,p_accounting_line_type_code  => l_component_type_code
114269       ,p_accounting_line_appl_id    => l_component_appl_id
114270       ,p_amb_context_code           => l_amb_context_code
114271       ,p_entity_code                => l_entity_code
114272       ,p_event_class_code           => l_event_class_code);
114273    --
114274    -- set accounting class
114275    --
114276    xla_ae_lines_pkg.SetAcctClass(
114277            p_accounting_class_code  => 'TIPV'
114278          , p_ae_header_id           => l_ae_header_id
114279          );
114280 
114281    --
114282    -- set rounding class
114283    --
114284    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
114285                       'TIPV';
114286 
114287    --
114288    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
114289    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
114290    --
114291    -- bulk performance
114292    --
114293    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
114294 
114295    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
114296       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
114297 
114298    -- 4955764
114299    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114300       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
114301 
114302    -- 4458381 Public Sector Enh
114303    
114304    --
114305    -- set accounting attributes for the line type
114306    --
114307    l_entered_amt_idx := 25;
114308    l_accted_amt_idx  := 30;
114309    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
114310    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
114311    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
114312    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
114313    l_rec_acct_attrs.array_num_value(2)  := 
114314 xla_ae_sources_pkg.GetSystemSourceNum(
114315    p_source_code           => 'XLA_EVENT_APPL_ID'
114316  , p_source_type_code      => 'Y'
114317  , p_source_application_id =>  602
114318 );
114319    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
114320    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
114321    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
114322    l_rec_acct_attrs.array_char_value(4)  := 
114323 xla_ae_sources_pkg.GetSystemSourceChar(
114324    p_source_code           => 'XLA_ENTITY_CODE'
114325  , p_source_type_code      => 'Y'
114326  , p_source_application_id =>  602
114327 );
114328    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
114329    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
114330    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
114331    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
114332    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
114333    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
114334    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
114335    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
114336    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
114337    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
114338    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
114339    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
114340    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
114341    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
114342    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
114343    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
114344    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
114348    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
114345    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
114346    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
114347    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
114349    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
114350    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
114351    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
114352    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
114353    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
114354    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
114355    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
114356    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
114357    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
114358    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
114359    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
114360    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
114361    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
114362    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
114363    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
114364    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
114365    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
114366    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
114367    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
114368    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
114369    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
114370    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
114371    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
114372    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
114373    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
114374    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
114375    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
114376    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
114377    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
114378    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
114379    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
114380    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
114381    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
114382    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
114383    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
114384    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
114385    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
114386    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
114387    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
114388    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
114389    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
114390    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
114391    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
114392    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
114393    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
114394    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
114395    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
114396    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
114397    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
114398    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
114399    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
114400    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
114401    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
114402    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
114403    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
114404    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
114405    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
114406    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
114407    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
114408 
114409    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
114410    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
114411 
114412    ---------------------------------------------------------------------------------------------------------------
114413    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
114414    ---------------------------------------------------------------------------------------------------------------
114415    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
114416 
114417    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114418    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114419 
114420    IF xla_accounting_cache_pkg.GetValueChar
114421          (p_source_code         => 'LEDGER_CATEGORY_CODE'
114422          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
114423    AND l_bflow_method_code = 'PRIOR_ENTRY'
114424 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
114425    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
114426          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
114427        )
114428    THEN
114429          xla_ae_lines_pkg.BflowUpgEntry
114430            (p_business_method_code    => l_bflow_method_code
114434       NULL;
114431            ,p_business_class_code     => l_bflow_class_code
114432            ,p_balance_type            => l_balance_type_code);
114433    ELSE
114435 -- No business flow processing for business flow method of NONE.
114436    END IF;
114437 
114438    --
114439    -- call analytical criteria
114440    --
114441    
114442    --
114443    -- call description
114444    --
114445    -- No description or it is inherited.
114446    --
114447    -- call ADRs
114448    -- Bug 4922099
114449    --
114450    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114451         (NVL(l_actual_upg_option, 'N') = 'O') OR
114452         (NVL(l_enc_upg_option, 'N') = 'O')
114453       )
114454    THEN
114455    NULL;
114456    --
114457    --
114458    
114459   l_ccid := AcctDerRule_33(
114460            p_application_id           => p_application_id
114461          , p_ae_header_id             => l_ae_header_id 
114462 , p_source_36 => p_source_36
114463          , x_transaction_coa_id       => l_adr_transaction_coa_id
114464          , x_accounting_coa_id        => l_adr_accounting_coa_id
114465          , x_value_type_code          => l_adr_value_type_code
114466          , p_side                     => 'NA'
114467    );
114468 
114469    xla_ae_lines_pkg.set_ccid(
114470     p_code_combination_id          => l_ccid
114471   , p_value_type_code              => l_adr_value_type_code
114472   , p_transaction_coa_id           => l_adr_transaction_coa_id
114473   , p_accounting_coa_id            => l_adr_accounting_coa_id
114474   , p_adr_code                     => 'AP_RECP_INV_DIST'
114475   , p_adr_type_code                => 'S'
114476   , p_component_type               => l_component_type
114477   , p_component_code               => l_component_code
114478   , p_component_type_code          => l_component_type_code
114479   , p_component_appl_id            => l_component_appl_id
114480   , p_amb_context_code             => l_amb_context_code
114481   , p_side                         => 'NA'
114482   );
114483 
114484 
114485    --
114486    --
114487    END IF;
114488    --
114489    -- Bug 4922099
114490    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
114491           (NVL(l_enc_upg_option, 'N') = 'O')
114492         ) AND
114493         (l_bflow_method_code = 'PRIOR_ENTRY')
114494       )
114495    THEN
114496       IF
114497       --
114498       1 = 2
114499       --
114500       THEN
114501       xla_accounting_err_pkg.build_message
114502                                     (p_appli_s_name            => 'XLA'
114503                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114504                                     ,p_token_1                 => 'LINE_NUMBER'
114505                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
114506                                     ,p_token_2                 => 'LINE_TYPE_NAME'
114507                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
114508                                                                              l_component_type
114509                                                                             ,l_component_code
114510                                                                             ,l_component_type_code
114511                                                                             ,l_component_appl_id
114512                                                                             ,l_amb_context_code
114513                                                                             ,l_entity_code
114514                                                                             ,l_event_class_code
114515                                                                            )
114516                                     ,p_token_3                 => 'OWNER'
114517                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
114518                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
114519                                                                           ,p_lookup_code    => l_component_type_code
114520                                                                          )
114521                                     ,p_token_4                 => 'PRODUCT_NAME'
114522                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
114523                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
114524                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
114525                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
114526                                     ,p_ae_header_id            =>  NULL
114527                                        );
114528 
114529         IF (C_LEVEL_ERROR>= g_log_level) THEN
114530                  trace
114531                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114532                       ,p_level    => C_LEVEL_ERROR
114533                       ,p_module   => l_log_module);
114534         END IF;
114535       END IF;
114536    END IF;
114537    --
114538    --
114539    ------------------------------------------------------------------------------------------------
114540    -- 4219869 Business Flow
114544    XLA_AE_LINES_PKG.ValidateCurrentLine;
114541    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
114542    -- Prior Entry.  Currently, the following code is always generated.
114543    ------------------------------------------------------------------------------------------------
114545 
114546    ------------------------------------------------------------------------------------
114547    -- 4219869 Business Flow
114548    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
114549    ------------------------------------------------------------------------------------
114550    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114551 
114552    ----------------------------------------------------------------------------------
114553    -- 4219869 Business Flow
114554    -- Update journal entry status -- Need to generate this within IF <condition>
114555    ----------------------------------------------------------------------------------
114556    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114557          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
114558          ,p_balance_type_code => l_balance_type_code
114559          );
114560 
114561    -------------------------------------------------------------------------------------------
114562    -- 4262811 - Generate the Accrual Reversal lines
114563    -------------------------------------------------------------------------------------------
114564    BEGIN
114565       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
114566                               (g_array_event(p_event_id).array_value_num('header_index'));
114567       IF l_acc_rev_flag IS NULL THEN
114568          l_acc_rev_flag := 'N';
114569       END IF;
114570    EXCEPTION
114571       WHEN OTHERS THEN
114572          l_acc_rev_flag := 'N';
114573    END;
114574    --
114575    IF (l_acc_rev_flag = 'Y') THEN
114576 
114577        -- 4645092  ------------------------------------------------------------------------------
114578        -- To allow MPA report to determine if it should generate report process
114579        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
114580        ------------------------------------------------------------------------------------------
114581 
114582        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
114583        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
114584    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
114585    -- call ADRs
114586    -- Bug 4922099
114587    --
114588    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114589         (NVL(l_actual_upg_option, 'N') = 'O') OR
114590         (NVL(l_enc_upg_option, 'N') = 'O')
114591       )
114592    THEN
114593    NULL;
114594    --
114595    --
114596    
114597   l_ccid := AcctDerRule_33(
114598            p_application_id           => p_application_id
114599          , p_ae_header_id             => l_ae_header_id 
114600 , p_source_36 => p_source_36
114601          , x_transaction_coa_id       => l_adr_transaction_coa_id
114602          , x_accounting_coa_id        => l_adr_accounting_coa_id
114603          , x_value_type_code          => l_adr_value_type_code
114604          , p_side                     => 'NA'
114605    );
114606 
114607    xla_ae_lines_pkg.set_ccid(
114608     p_code_combination_id          => l_ccid
114609   , p_value_type_code              => l_adr_value_type_code
114610   , p_transaction_coa_id           => l_adr_transaction_coa_id
114611   , p_accounting_coa_id            => l_adr_accounting_coa_id
114612   , p_adr_code                     => 'AP_RECP_INV_DIST'
114613   , p_adr_type_code                => 'S'
114614   , p_component_type               => l_component_type
114615   , p_component_code               => l_component_code
114616   , p_component_type_code          => l_component_type_code
114617   , p_component_appl_id            => l_component_appl_id
114618   , p_amb_context_code             => l_amb_context_code
114619   , p_side                         => 'NA'
114620   );
114621 
114622 
114623    --
114624    --
114625    END IF;
114626 
114627        --
114628        -- Update the line information that should be overwritten
114629        --
114630        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
114631                                          p_header_num   => 1);
114632        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
114633 
114634        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
114635 
114636        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
114637           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
114638        END IF;
114639 
114640       --
114641       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
114642       --
114643       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
114644           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
114645       ELSE
114646           ---------------------------------------------------------------------------------------------------
114647           -- 4262811a Switch Sign
114648           ---------------------------------------------------------------------------------------------------
114652           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114649           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
114650           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114651                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114653                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114654           -- 5132302
114655           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
114656                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114657 
114658       END IF;
114659 
114660       -- 4955764
114661       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114662       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
114663 
114664 
114665       XLA_AE_LINES_PKG.ValidateCurrentLine;
114666       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114667 
114668       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114669                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
114670                ,p_balance_type_code => l_balance_type_code);
114671 
114672    END IF;
114673 
114674    -----------------------------------------------------------------------------------------
114675    -- 4262811 Multiperiod Accounting
114676    -----------------------------------------------------------------------------------------
114677      -- No MPA option is assigned.
114678 
114679 
114680 END IF;
114681 END IF;
114682 --
114683 
114684 --
114685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114686    trace
114687       (p_msg      => 'END of AcctLineType_198'
114688       ,p_level    => C_LEVEL_PROCEDURE
114689       ,p_module   => l_log_module);
114690 END IF;
114691 --
114692 EXCEPTION
114693   WHEN xla_exceptions_pkg.application_exception THEN
114694       RAISE;
114695   WHEN OTHERS THEN
114696        xla_exceptions_pkg.raise_message
114697            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_198');
114698 END AcctLineType_198;
114699 --
114700 
114701 ---------------------------------------
114702 --
114703 -- PRIVATE FUNCTION
114704 --         AcctLineType_199
114705 --
114706 ---------------------------------------
114707 PROCEDURE AcctLineType_199 (
114708   p_application_id        IN NUMBER
114709  ,p_event_id              IN NUMBER
114710  ,p_calculate_acctd_flag  IN VARCHAR2
114711  ,p_calculate_g_l_flag    IN VARCHAR2
114712  ,p_actual_flag           IN OUT VARCHAR2
114713  ,p_balance_type_code     OUT VARCHAR2
114714  ,p_gain_or_loss_ref      OUT VARCHAR2
114715  
114716 --Recipient Invoice Distribution Account
114717  , p_source_36            IN NUMBER
114718 --When to Account for Payment Option
114719  , p_source_38            IN VARCHAR2
114720 --Accounting Reversal Indicator
114721  , p_source_40            IN VARCHAR2
114722 --Business Flow Accounts Payable Application Identifier
114723  , p_source_42            IN NUMBER
114724 --Distribution Link Type
114725  , p_source_48            IN VARCHAR2
114726 --Override Accounted Amount Indicator
114727  , p_source_53            IN VARCHAR2
114728  , p_source_53_meaning    IN VARCHAR2
114729 --Third Party Type
114730  , p_source_56            IN VARCHAR2
114731 --Invoice Distribution Tax Line Identifier
114732  , p_source_58            IN NUMBER
114733 --Invoice Distribution Summary Tax Line Identifier
114734  , p_source_59            IN NUMBER
114735 --Invoice Distribution Tax Distribution Identifier from Tax
114736  , p_source_66            IN NUMBER
114737 --Prepayment Distribution Type
114738  , p_source_67            IN VARCHAR2
114739 --Recipient Invoice Distribution Type
114740  , p_source_68            IN VARCHAR2
114741  , p_source_68_meaning    IN VARCHAR2
114742 --Prepayment Application Distribution Identifier
114743  , p_source_71            IN NUMBER
114744 --Invoice Identifier
114745  , p_source_72            IN NUMBER
114746 --Business Flow Prepayment Invoice Distribution Type
114747  , p_source_73            IN VARCHAR2
114748 --Business Flow Prepayment Invoice Entity Code
114749  , p_source_74            IN VARCHAR2
114750 --Business Flow Prepayment Invoice Distribution Identifier
114751  , p_source_75            IN NUMBER
114752 --Business Flow Prepayment Invoice Identifier
114753  , p_source_76            IN NUMBER
114754 --Upgrade Encumbrance Credit Account Class
114755  , p_source_77            IN VARCHAR2
114756 --Payables Encumbrance Upgrade Credit Account
114757  , p_source_78            IN NUMBER
114758 --Payables Encumbrance Upgrade Credit Amount
114759  , p_source_79            IN NUMBER
114760 --Invoice Currency Code
114761  , p_source_80            IN VARCHAR2
114762 --Payables Encumbrance Upgrade Credit Base Amount
114763  , p_source_81            IN NUMBER
114764 --Upgrade Encumbrance Debit Account Class
114765  , p_source_82            IN VARCHAR2
114766 --Payables Encumbrance Upgrade Debit Account
114767  , p_source_83            IN NUMBER
114768 --Payables Encumbrance Upgrade Debit Amount
114769  , p_source_84            IN NUMBER
114770 --Payables Encumbrance Upgrade Debit Base Amount
114771  , p_source_85            IN NUMBER
114772 --Payables Encumbrance Upgrade Option
114773  , p_source_86            IN VARCHAR2
114774 --Prepayment Distribution Amount
114775  , p_source_87            IN NUMBER
114776 --Deferred Accounting End Date
114780 --Deferred Accounting Start Date
114777  , p_source_90            IN DATE
114778 --Deferred Accounting Option
114779  , p_source_91            IN VARCHAR2
114781  , p_source_92            IN DATE
114782 --Invoice Supplier Identifier
114783  , p_source_93            IN NUMBER
114784 --Invoice Supplier Site Identifier
114785  , p_source_94            IN NUMBER
114786 --Identifier of the Prepayment Application Reversed
114787  , p_source_95            IN NUMBER
114788 --Payables Upgrade Credit Encumbrance Type Identifier
114789  , p_source_96            IN NUMBER
114790 --Payables Upgrade Debit Encumbrance Type Identifier
114791  , p_source_97            IN NUMBER
114792 --Prepayment Payment Currency Code
114793  , p_source_98            IN VARCHAR2
114794 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
114795  , p_source_99            IN NUMBER
114796 --Accrue on Receipt Option
114797  , p_source_100            IN VARCHAR2
114798  , p_source_100_meaning    IN VARCHAR2
114799 --Prepayment Payment Exchange Date
114800  , p_source_121            IN DATE
114801 --Prepayment Payment Exchange Rate
114802  , p_source_122            IN NUMBER
114803 --Prepayment Payment Exchange Rate Type
114804  , p_source_123            IN VARCHAR2
114805 )
114806 IS
114807 
114808 l_component_type              VARCHAR2(80);
114809 l_component_code              VARCHAR2(30);
114810 l_component_type_code         VARCHAR2(1);
114811 l_component_appl_id           INTEGER;
114812 l_amb_context_code            VARCHAR2(30);
114813 l_entity_code                 VARCHAR2(30);
114814 l_event_class_code            VARCHAR2(30);
114815 l_ae_header_id                NUMBER;
114816 l_event_type_code             VARCHAR2(30);
114817 l_line_definition_code        VARCHAR2(30);
114818 l_line_definition_owner_code  VARCHAR2(1);
114819 --
114820 -- adr variables
114821 l_segment                     VARCHAR2(30);
114822 l_ccid                        NUMBER;
114823 l_adr_transaction_coa_id      NUMBER;
114824 l_adr_accounting_coa_id       NUMBER;
114825 l_adr_flexfield_segment_code  VARCHAR2(30);
114826 l_adr_flex_value_set_id       NUMBER;
114827 l_adr_value_type_code         VARCHAR2(30);
114828 l_adr_value_combination_id    NUMBER;
114829 l_adr_value_segment_code      VARCHAR2(30);
114830 
114831 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
114832 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
114833 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
114834 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
114835 
114836 -- 4262811 Variables ------------------------------------------------------------------------------------------
114837 l_entered_amt_idx             NUMBER;
114838 l_accted_amt_idx              NUMBER;
114839 l_acc_rev_flag                VARCHAR2(1);
114840 l_accrual_line_num            NUMBER;
114841 l_tmp_amt                     NUMBER;
114842 l_acc_rev_natural_side_code   VARCHAR2(1);
114843 
114844 l_num_entries                 NUMBER;
114845 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
114846 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
114847 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
114848 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
114849 l_recog_line_1                NUMBER;
114850 l_recog_line_2                NUMBER;
114851 
114852 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
114853 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
114854 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
114855 
114856 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114857 
114858 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
114859 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
114860 
114861 ---------------------------------------------------------------------------------------------------------------
114862 
114863 
114864 --
114865 -- bulk performance
114866 --
114867 l_balance_type_code           VARCHAR2(1);
114868 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
114869 l_log_module                  VARCHAR2(240);
114870 
114871 --
114872 -- Upgrade strategy
114873 --
114874 l_actual_upg_option           VARCHAR2(1);
114875 l_enc_upg_option           VARCHAR2(1);
114876 
114877 --
114878 BEGIN
114879 --
114880 IF g_log_enabled THEN
114881       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_199';
114882 END IF;
114883 --
114884 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114885 
114886       trace
114887          (p_msg      => 'BEGIN of AcctLineType_199'
114888          ,p_level    => C_LEVEL_PROCEDURE
114889          ,p_module   => l_log_module);
114890 
114891 END IF;
114892 --
114893 l_component_type             := 'AMB_JLT';
114894 l_component_code             := 'AP_TIPV_PREPAY_PAY_RATE_APP';
114895 l_component_type_code        := 'S';
114896 l_component_appl_id          :=  200;
114897 l_amb_context_code           := 'DEFAULT';
114898 l_entity_code                := 'AP_INVOICES';
114899 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
114900 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
114901 l_line_definition_owner_code := 'S';
114902 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
114903 --
114904 l_balance_type_code          := 'A';
114905 l_segment                     := NULL;
114909 l_adr_flexfield_segment_code  := NULL;
114906 l_ccid                        := NULL;
114907 l_adr_transaction_coa_id      := NULL;
114908 l_adr_accounting_coa_id       := NULL;
114910 l_adr_flex_value_set_id       := NULL;
114911 l_adr_value_type_code         := NULL;
114912 l_adr_value_combination_id    := NULL;
114913 l_adr_value_segment_code      := NULL;
114914 
114915 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
114916 l_bflow_class_code           := '';    -- 4219869 Business Flow
114917 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
114918 l_budgetary_control_flag     := 'N';
114919 
114920 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
114921 l_bflow_applied_to_amt       := NULL; -- 5132302
114922 l_entered_amt_idx            := NULL;          -- 4262811
114923 l_accted_amt_idx             := NULL;          -- 4262811
114924 l_acc_rev_flag               := NULL;          -- 4262811
114925 l_accrual_line_num           := NULL;          -- 4262811
114926 l_tmp_amt                    := NULL;          -- 4262811
114927 --
114928  
114929 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
114930     l_balance_type_code <> 'B' THEN
114931 IF NVL(p_source_38,'
114932 ') <>  'CLEAR_CLEAR' AND 
114933 (NVL(p_source_67,'
114934 ') =  'PREPAY APPL' OR 
114935 NVL(p_source_67,'
114936 ') =  'PREPAY APPL NONREC TAX' OR 
114937 NVL(p_source_67,'
114938 ') =  'PREPAY APPL REC TAX') AND 
114939 NVL(p_source_68,'
114940 ') =  'TIPV' AND 
114941 NVL(p_source_100,'
114942 ') =  'Y'
114943  THEN 
114944 
114945    --
114946    XLA_AE_LINES_PKG.SetNewLine;
114947 
114948    p_balance_type_code          := l_balance_type_code;
114949    -- set the flag so later we will know whether the gain loss line needs to be created
114950    
114951    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
114952      p_actual_flag :='A';
114953    END IF;
114954 
114955    --
114956    -- bulk performance
114957    --
114958    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
114959                                       p_header_num   => 0); -- 4262811
114960    --
114961    -- set accounting line options
114962    --
114963    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
114964            p_natural_side_code          => 'C'
114965          , p_gain_or_loss_flag          => 'N'
114966          , p_gl_transfer_mode_code      => 'S'
114967          , p_acct_entry_type_code       => 'A'
114968          , p_switch_side_flag           => 'Y'
114969          , p_merge_duplicate_code       => 'A'
114970          );
114971    --
114972    l_acc_rev_natural_side_code := 'D';  -- 4262811
114973    -- 
114974    --
114975    -- set accounting line type info
114976    --
114977    xla_ae_lines_pkg.SetAcctLineType
114978       (p_component_type             => l_component_type
114979       ,p_event_type_code            => l_event_type_code
114980       ,p_line_definition_owner_code => l_line_definition_owner_code
114981       ,p_line_definition_code       => l_line_definition_code
114982       ,p_accounting_line_code       => l_component_code
114983       ,p_accounting_line_type_code  => l_component_type_code
114984       ,p_accounting_line_appl_id    => l_component_appl_id
114985       ,p_amb_context_code           => l_amb_context_code
114986       ,p_entity_code                => l_entity_code
114987       ,p_event_class_code           => l_event_class_code);
114988    --
114989    -- set accounting class
114990    --
114991    xla_ae_lines_pkg.SetAcctClass(
114992            p_accounting_class_code  => 'TIPV'
114993          , p_ae_header_id           => l_ae_header_id
114994          );
114995 
114996    --
114997    -- set rounding class
114998    --
114999    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
115000                       'TIPV';
115001 
115002    --
115003    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
115004    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
115005    --
115006    -- bulk performance
115007    --
115008    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
115009 
115010    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
115011       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
115012 
115013    -- 4955764
115014    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115015       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
115016 
115017    -- 4458381 Public Sector Enh
115018    
115019    --
115020    -- set accounting attributes for the line type
115021    --
115022    l_entered_amt_idx := 25;
115023    l_accted_amt_idx  := 30;
115024    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
115025    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
115026    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
115027    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
115028    l_rec_acct_attrs.array_num_value(2)  := 
115029 xla_ae_sources_pkg.GetSystemSourceNum(
115030    p_source_code           => 'XLA_EVENT_APPL_ID'
115031  , p_source_type_code      => 'Y'
115032  , p_source_application_id =>  602
115033 );
115034    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
115038 xla_ae_sources_pkg.GetSystemSourceChar(
115035    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
115036    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
115037    l_rec_acct_attrs.array_char_value(4)  := 
115039    p_source_code           => 'XLA_ENTITY_CODE'
115040  , p_source_type_code      => 'Y'
115041  , p_source_application_id =>  602
115042 );
115043    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
115044    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
115045    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
115046    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
115047    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
115048    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
115049    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
115050    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
115051    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
115052    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
115053    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
115054    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
115055    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
115056    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
115057    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
115058    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
115059    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
115060    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
115061    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
115062    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
115063    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
115064    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
115065    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
115066    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
115067    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
115068    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
115069    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
115070    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
115071    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
115072    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
115073    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
115074    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
115075    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
115076    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
115077    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
115078    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
115079    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
115080    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
115081    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
115082    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
115083    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
115084    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
115085    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
115086    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
115087    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
115088    l_rec_acct_attrs.array_date_value(27)  := p_source_121;
115089    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
115090    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
115091    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
115092    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
115093    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
115094    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
115095    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
115096    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
115097    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
115098    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
115099    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
115100    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
115101    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
115102    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
115103    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
115104    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
115105    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
115106    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
115107    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
115108    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
115109    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
115110    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
115111    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
115112    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
115113    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
115114    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
115115    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
115116    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
115117    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
115118    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
115122    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
115119    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
115120    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
115121    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
115123 
115124    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
115125    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
115126 
115127    ---------------------------------------------------------------------------------------------------------------
115128    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
115129    ---------------------------------------------------------------------------------------------------------------
115130    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
115131 
115132    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115133    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115134 
115135    IF xla_accounting_cache_pkg.GetValueChar
115136          (p_source_code         => 'LEDGER_CATEGORY_CODE'
115137          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
115138    AND l_bflow_method_code = 'PRIOR_ENTRY'
115139 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
115140    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
115141          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
115142        )
115143    THEN
115144          xla_ae_lines_pkg.BflowUpgEntry
115145            (p_business_method_code    => l_bflow_method_code
115146            ,p_business_class_code     => l_bflow_class_code
115147            ,p_balance_type            => l_balance_type_code);
115148    ELSE
115149       NULL;
115150 -- No business flow processing for business flow method of NONE.
115151    END IF;
115152 
115153    --
115154    -- call analytical criteria
115155    --
115156    
115157    --
115158    -- call description
115159    --
115160    -- No description or it is inherited.
115161    --
115162    -- call ADRs
115163    -- Bug 4922099
115164    --
115165    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115166         (NVL(l_actual_upg_option, 'N') = 'O') OR
115167         (NVL(l_enc_upg_option, 'N') = 'O')
115168       )
115169    THEN
115170    NULL;
115171    --
115172    --
115173    
115174   l_ccid := AcctDerRule_33(
115175            p_application_id           => p_application_id
115176          , p_ae_header_id             => l_ae_header_id 
115177 , p_source_36 => p_source_36
115178          , x_transaction_coa_id       => l_adr_transaction_coa_id
115179          , x_accounting_coa_id        => l_adr_accounting_coa_id
115180          , x_value_type_code          => l_adr_value_type_code
115181          , p_side                     => 'NA'
115182    );
115183 
115184    xla_ae_lines_pkg.set_ccid(
115185     p_code_combination_id          => l_ccid
115186   , p_value_type_code              => l_adr_value_type_code
115187   , p_transaction_coa_id           => l_adr_transaction_coa_id
115188   , p_accounting_coa_id            => l_adr_accounting_coa_id
115189   , p_adr_code                     => 'AP_RECP_INV_DIST'
115190   , p_adr_type_code                => 'S'
115191   , p_component_type               => l_component_type
115192   , p_component_code               => l_component_code
115193   , p_component_type_code          => l_component_type_code
115194   , p_component_appl_id            => l_component_appl_id
115195   , p_amb_context_code             => l_amb_context_code
115196   , p_side                         => 'NA'
115197   );
115198 
115199 
115200    --
115201    --
115202    END IF;
115203    --
115204    -- Bug 4922099
115205    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
115206           (NVL(l_enc_upg_option, 'N') = 'O')
115207         ) AND
115208         (l_bflow_method_code = 'PRIOR_ENTRY')
115209       )
115210    THEN
115211       IF
115212       --
115213       1 = 2
115214       --
115215       THEN
115216       xla_accounting_err_pkg.build_message
115217                                     (p_appli_s_name            => 'XLA'
115218                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115219                                     ,p_token_1                 => 'LINE_NUMBER'
115220                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
115221                                     ,p_token_2                 => 'LINE_TYPE_NAME'
115222                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
115223                                                                              l_component_type
115224                                                                             ,l_component_code
115225                                                                             ,l_component_type_code
115226                                                                             ,l_component_appl_id
115227                                                                             ,l_amb_context_code
115228                                                                             ,l_entity_code
115229                                                                             ,l_event_class_code
115233                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
115230                                                                            )
115231                                     ,p_token_3                 => 'OWNER'
115232                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
115234                                                                           ,p_lookup_code    => l_component_type_code
115235                                                                          )
115236                                     ,p_token_4                 => 'PRODUCT_NAME'
115237                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115238                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115239                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115240                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115241                                     ,p_ae_header_id            =>  NULL
115242                                        );
115243 
115244         IF (C_LEVEL_ERROR>= g_log_level) THEN
115245                  trace
115246                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115247                       ,p_level    => C_LEVEL_ERROR
115248                       ,p_module   => l_log_module);
115249         END IF;
115250       END IF;
115251    END IF;
115252    --
115253    --
115254    ------------------------------------------------------------------------------------------------
115255    -- 4219869 Business Flow
115256    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115257    -- Prior Entry.  Currently, the following code is always generated.
115258    ------------------------------------------------------------------------------------------------
115259    XLA_AE_LINES_PKG.ValidateCurrentLine;
115260 
115261    ------------------------------------------------------------------------------------
115262    -- 4219869 Business Flow
115263    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115264    ------------------------------------------------------------------------------------
115265    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115266 
115267    ----------------------------------------------------------------------------------
115268    -- 4219869 Business Flow
115269    -- Update journal entry status -- Need to generate this within IF <condition>
115270    ----------------------------------------------------------------------------------
115271    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115272          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115273          ,p_balance_type_code => l_balance_type_code
115274          );
115275 
115276    -------------------------------------------------------------------------------------------
115277    -- 4262811 - Generate the Accrual Reversal lines
115278    -------------------------------------------------------------------------------------------
115279    BEGIN
115280       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115281                               (g_array_event(p_event_id).array_value_num('header_index'));
115282       IF l_acc_rev_flag IS NULL THEN
115283          l_acc_rev_flag := 'N';
115284       END IF;
115285    EXCEPTION
115286       WHEN OTHERS THEN
115287          l_acc_rev_flag := 'N';
115288    END;
115289    --
115290    IF (l_acc_rev_flag = 'Y') THEN
115291 
115292        -- 4645092  ------------------------------------------------------------------------------
115293        -- To allow MPA report to determine if it should generate report process
115294        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
115295        ------------------------------------------------------------------------------------------
115296 
115297        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
115298        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
115299    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
115300    -- call ADRs
115301    -- Bug 4922099
115302    --
115303    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115304         (NVL(l_actual_upg_option, 'N') = 'O') OR
115305         (NVL(l_enc_upg_option, 'N') = 'O')
115306       )
115307    THEN
115308    NULL;
115309    --
115310    --
115311    
115312   l_ccid := AcctDerRule_33(
115313            p_application_id           => p_application_id
115314          , p_ae_header_id             => l_ae_header_id 
115315 , p_source_36 => p_source_36
115316          , x_transaction_coa_id       => l_adr_transaction_coa_id
115317          , x_accounting_coa_id        => l_adr_accounting_coa_id
115318          , x_value_type_code          => l_adr_value_type_code
115319          , p_side                     => 'NA'
115320    );
115321 
115322    xla_ae_lines_pkg.set_ccid(
115323     p_code_combination_id          => l_ccid
115324   , p_value_type_code              => l_adr_value_type_code
115325   , p_transaction_coa_id           => l_adr_transaction_coa_id
115326   , p_accounting_coa_id            => l_adr_accounting_coa_id
115327   , p_adr_code                     => 'AP_RECP_INV_DIST'
115328   , p_adr_type_code                => 'S'
115329   , p_component_type               => l_component_type
115330   , p_component_code               => l_component_code
115331   , p_component_type_code          => l_component_type_code
115332   , p_component_appl_id            => l_component_appl_id
115336 
115333   , p_amb_context_code             => l_amb_context_code
115334   , p_side                         => 'NA'
115335   );
115337 
115338    --
115339    --
115340    END IF;
115341 
115342        --
115343        -- Update the line information that should be overwritten
115344        --
115345        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
115346                                          p_header_num   => 1);
115347        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
115348 
115349        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
115350 
115351        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
115352           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
115353        END IF;
115354 
115355       --
115356       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
115357       --
115358       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
115359           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
115360       ELSE
115361           ---------------------------------------------------------------------------------------------------
115362           -- 4262811a Switch Sign
115363           ---------------------------------------------------------------------------------------------------
115364           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
115365           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115366                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115367           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115368                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115369           -- 5132302
115370           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
115371                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115372 
115373       END IF;
115374 
115375       -- 4955764
115376       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115377       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
115378 
115379 
115380       XLA_AE_LINES_PKG.ValidateCurrentLine;
115381       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115382 
115383       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115384                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
115385                ,p_balance_type_code => l_balance_type_code);
115386 
115387    END IF;
115388 
115389    -----------------------------------------------------------------------------------------
115390    -- 4262811 Multiperiod Accounting
115391    -----------------------------------------------------------------------------------------
115392      -- No MPA option is assigned.
115393 
115394 
115395 END IF;
115396 END IF;
115397 --
115398 
115399 --
115400 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115401    trace
115402       (p_msg      => 'END of AcctLineType_199'
115403       ,p_level    => C_LEVEL_PROCEDURE
115404       ,p_module   => l_log_module);
115405 END IF;
115406 --
115407 EXCEPTION
115408   WHEN xla_exceptions_pkg.application_exception THEN
115409       RAISE;
115410   WHEN OTHERS THEN
115411        xla_exceptions_pkg.raise_message
115412            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_199');
115413 END AcctLineType_199;
115414 --
115415 
115416 ---------------------------------------
115417 --
115418 -- PRIVATE FUNCTION
115419 --         AcctLineType_200
115420 --
115421 ---------------------------------------
115422 PROCEDURE AcctLineType_200 (
115423   p_application_id        IN NUMBER
115424  ,p_event_id              IN NUMBER
115425  ,p_calculate_acctd_flag  IN VARCHAR2
115426  ,p_calculate_g_l_flag    IN VARCHAR2
115427  ,p_actual_flag           IN OUT VARCHAR2
115428  ,p_balance_type_code     OUT VARCHAR2
115429  ,p_gain_or_loss_ref      OUT VARCHAR2
115430  
115431 --Recipient Invoice Distribution Account
115432  , p_source_36            IN NUMBER
115433 --When to Account for Payment Option
115434  , p_source_38            IN VARCHAR2
115435 --Accounting Reversal Indicator
115436  , p_source_40            IN VARCHAR2
115437 --Business Flow Accounts Payable Application Identifier
115438  , p_source_42            IN NUMBER
115439 --Distribution Link Type
115440  , p_source_48            IN VARCHAR2
115441 --Override Accounted Amount Indicator
115442  , p_source_53            IN VARCHAR2
115443  , p_source_53_meaning    IN VARCHAR2
115444 --Third Party Type
115445  , p_source_56            IN VARCHAR2
115446 --Invoice Distribution Tax Line Identifier
115447  , p_source_58            IN NUMBER
115448 --Invoice Distribution Summary Tax Line Identifier
115449  , p_source_59            IN NUMBER
115450 --Invoice Distribution Tax Distribution Identifier from Tax
115451  , p_source_66            IN NUMBER
115452 --Prepayment Distribution Type
115453  , p_source_67            IN VARCHAR2
115454 --Recipient Invoice Distribution Type
115455  , p_source_68            IN VARCHAR2
115456  , p_source_68_meaning    IN VARCHAR2
115457 --Prepayment Application Distribution Identifier
115461 --Business Flow Prepayment Invoice Distribution Type
115458  , p_source_71            IN NUMBER
115459 --Invoice Identifier
115460  , p_source_72            IN NUMBER
115462  , p_source_73            IN VARCHAR2
115463 --Business Flow Prepayment Invoice Entity Code
115464  , p_source_74            IN VARCHAR2
115465 --Business Flow Prepayment Invoice Distribution Identifier
115466  , p_source_75            IN NUMBER
115467 --Business Flow Prepayment Invoice Identifier
115468  , p_source_76            IN NUMBER
115469 --Upgrade Encumbrance Credit Account Class
115470  , p_source_77            IN VARCHAR2
115471 --Payables Encumbrance Upgrade Credit Account
115472  , p_source_78            IN NUMBER
115473 --Payables Encumbrance Upgrade Credit Amount
115474  , p_source_79            IN NUMBER
115475 --Invoice Currency Code
115476  , p_source_80            IN VARCHAR2
115477 --Payables Encumbrance Upgrade Credit Base Amount
115478  , p_source_81            IN NUMBER
115479 --Upgrade Encumbrance Debit Account Class
115480  , p_source_82            IN VARCHAR2
115481 --Payables Encumbrance Upgrade Debit Account
115482  , p_source_83            IN NUMBER
115483 --Payables Encumbrance Upgrade Debit Amount
115484  , p_source_84            IN NUMBER
115485 --Payables Encumbrance Upgrade Debit Base Amount
115486  , p_source_85            IN NUMBER
115487 --Payables Encumbrance Upgrade Option
115488  , p_source_86            IN VARCHAR2
115489 --Prepayment Distribution Amount
115490  , p_source_87            IN NUMBER
115491 --Prepayment Clearing Currency Code
115492  , p_source_88            IN VARCHAR2
115493 --Prepayment Distribution (Prepayment Clearing Rate) Ledger Amount
115494  , p_source_89            IN NUMBER
115495 --Deferred Accounting End Date
115496  , p_source_90            IN DATE
115497 --Deferred Accounting Option
115498  , p_source_91            IN VARCHAR2
115499 --Deferred Accounting Start Date
115500  , p_source_92            IN DATE
115501 --Invoice Supplier Identifier
115502  , p_source_93            IN NUMBER
115503 --Invoice Supplier Site Identifier
115504  , p_source_94            IN NUMBER
115505 --Identifier of the Prepayment Application Reversed
115506  , p_source_95            IN NUMBER
115507 --Payables Upgrade Credit Encumbrance Type Identifier
115508  , p_source_96            IN NUMBER
115509 --Payables Upgrade Debit Encumbrance Type Identifier
115510  , p_source_97            IN NUMBER
115511 --Accrue on Receipt Option
115512  , p_source_100            IN VARCHAR2
115513  , p_source_100_meaning    IN VARCHAR2
115514 --Prepayment Clearing Exchange Date
115515  , p_source_118            IN DATE
115516 --Prepayment Clearing Exchange Rate
115517  , p_source_119            IN NUMBER
115518 --Prepayment Clearing Exchange Rate Type
115519  , p_source_120            IN VARCHAR2
115520 )
115521 IS
115522 
115523 l_component_type              VARCHAR2(80);
115524 l_component_code              VARCHAR2(30);
115525 l_component_type_code         VARCHAR2(1);
115526 l_component_appl_id           INTEGER;
115527 l_amb_context_code            VARCHAR2(30);
115528 l_entity_code                 VARCHAR2(30);
115529 l_event_class_code            VARCHAR2(30);
115530 l_ae_header_id                NUMBER;
115531 l_event_type_code             VARCHAR2(30);
115532 l_line_definition_code        VARCHAR2(30);
115533 l_line_definition_owner_code  VARCHAR2(1);
115534 --
115535 -- adr variables
115536 l_segment                     VARCHAR2(30);
115537 l_ccid                        NUMBER;
115538 l_adr_transaction_coa_id      NUMBER;
115539 l_adr_accounting_coa_id       NUMBER;
115540 l_adr_flexfield_segment_code  VARCHAR2(30);
115541 l_adr_flex_value_set_id       NUMBER;
115542 l_adr_value_type_code         VARCHAR2(30);
115543 l_adr_value_combination_id    NUMBER;
115544 l_adr_value_segment_code      VARCHAR2(30);
115545 
115546 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
115547 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
115548 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
115549 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
115550 
115551 -- 4262811 Variables ------------------------------------------------------------------------------------------
115552 l_entered_amt_idx             NUMBER;
115553 l_accted_amt_idx              NUMBER;
115554 l_acc_rev_flag                VARCHAR2(1);
115555 l_accrual_line_num            NUMBER;
115556 l_tmp_amt                     NUMBER;
115557 l_acc_rev_natural_side_code   VARCHAR2(1);
115558 
115559 l_num_entries                 NUMBER;
115560 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
115561 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
115562 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
115563 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
115564 l_recog_line_1                NUMBER;
115565 l_recog_line_2                NUMBER;
115566 
115567 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
115568 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
115569 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
115570 
115571 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
115572 
115573 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
115574 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
115575 
115579 --
115576 ---------------------------------------------------------------------------------------------------------------
115577 
115578 
115580 -- bulk performance
115581 --
115582 l_balance_type_code           VARCHAR2(1);
115583 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
115584 l_log_module                  VARCHAR2(240);
115585 
115586 --
115587 -- Upgrade strategy
115588 --
115589 l_actual_upg_option           VARCHAR2(1);
115590 l_enc_upg_option           VARCHAR2(1);
115591 
115592 --
115593 BEGIN
115594 --
115595 IF g_log_enabled THEN
115596       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_200';
115597 END IF;
115598 --
115599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115600 
115601       trace
115602          (p_msg      => 'BEGIN of AcctLineType_200'
115603          ,p_level    => C_LEVEL_PROCEDURE
115604          ,p_module   => l_log_module);
115605 
115606 END IF;
115607 --
115608 l_component_type             := 'AMB_JLT';
115609 l_component_code             := 'AP_TRV_PREPAY_CLR_RATE_APP';
115610 l_component_type_code        := 'S';
115611 l_component_appl_id          :=  200;
115612 l_amb_context_code           := 'DEFAULT';
115613 l_entity_code                := 'AP_INVOICES';
115614 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
115615 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
115616 l_line_definition_owner_code := 'S';
115617 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
115618 --
115619 l_balance_type_code          := 'A';
115620 l_segment                     := NULL;
115621 l_ccid                        := NULL;
115622 l_adr_transaction_coa_id      := NULL;
115623 l_adr_accounting_coa_id       := NULL;
115624 l_adr_flexfield_segment_code  := NULL;
115625 l_adr_flex_value_set_id       := NULL;
115626 l_adr_value_type_code         := NULL;
115627 l_adr_value_combination_id    := NULL;
115628 l_adr_value_segment_code      := NULL;
115629 
115630 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
115631 l_bflow_class_code           := '';    -- 4219869 Business Flow
115632 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
115633 l_budgetary_control_flag     := 'N';
115634 
115635 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
115636 l_bflow_applied_to_amt       := NULL; -- 5132302
115637 l_entered_amt_idx            := NULL;          -- 4262811
115638 l_accted_amt_idx             := NULL;          -- 4262811
115639 l_acc_rev_flag               := NULL;          -- 4262811
115640 l_accrual_line_num           := NULL;          -- 4262811
115641 l_tmp_amt                    := NULL;          -- 4262811
115642 --
115643  
115644 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
115645     l_balance_type_code <> 'B' THEN
115646 IF NVL(p_source_38,'
115647 ') =  'CLEAR_CLEAR' AND 
115648 (NVL(p_source_67,'
115649 ') =  'PREPAY APPL' OR 
115650 NVL(p_source_67,'
115651 ') =  'PREPAY APPL REC TAX' OR 
115652 NVL(p_source_67,'
115653 ') =  'PREPAY APPL NONREC TAX') AND 
115654 NVL(p_source_68,'
115655 ') =  'TRV' AND 
115656 NVL(p_source_100,'
115657 ') =  'Y'
115658  THEN 
115659 
115660    --
115661    XLA_AE_LINES_PKG.SetNewLine;
115662 
115663    p_balance_type_code          := l_balance_type_code;
115664    -- set the flag so later we will know whether the gain loss line needs to be created
115665    
115666    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
115667      p_actual_flag :='A';
115668    END IF;
115669 
115670    --
115671    -- bulk performance
115672    --
115673    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
115674                                       p_header_num   => 0); -- 4262811
115675    --
115676    -- set accounting line options
115677    --
115678    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
115679            p_natural_side_code          => 'C'
115680          , p_gain_or_loss_flag          => 'N'
115681          , p_gl_transfer_mode_code      => 'S'
115682          , p_acct_entry_type_code       => 'A'
115683          , p_switch_side_flag           => 'Y'
115684          , p_merge_duplicate_code       => 'A'
115685          );
115686    --
115687    l_acc_rev_natural_side_code := 'D';  -- 4262811
115688    -- 
115689    --
115690    -- set accounting line type info
115691    --
115692    xla_ae_lines_pkg.SetAcctLineType
115693       (p_component_type             => l_component_type
115694       ,p_event_type_code            => l_event_type_code
115695       ,p_line_definition_owner_code => l_line_definition_owner_code
115696       ,p_line_definition_code       => l_line_definition_code
115697       ,p_accounting_line_code       => l_component_code
115698       ,p_accounting_line_type_code  => l_component_type_code
115699       ,p_accounting_line_appl_id    => l_component_appl_id
115700       ,p_amb_context_code           => l_amb_context_code
115701       ,p_entity_code                => l_entity_code
115702       ,p_event_class_code           => l_event_class_code);
115703    --
115704    -- set accounting class
115705    --
115706    xla_ae_lines_pkg.SetAcctClass(
115707            p_accounting_class_code  => 'TRV'
115708          , p_ae_header_id           => l_ae_header_id
115709          );
115710 
115711    --
115712    -- set rounding class
115713    --
115714    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
115718    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
115715                       'TRV';
115716 
115717    --
115719    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
115720    --
115721    -- bulk performance
115722    --
115723    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
115724 
115725    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
115726       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
115727 
115728    -- 4955764
115729    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115730       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
115731 
115732    -- 4458381 Public Sector Enh
115733    
115734    --
115735    -- set accounting attributes for the line type
115736    --
115737    l_entered_amt_idx := 25;
115738    l_accted_amt_idx  := 30;
115739    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
115740    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
115741    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
115742    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
115743    l_rec_acct_attrs.array_num_value(2)  := 
115744 xla_ae_sources_pkg.GetSystemSourceNum(
115745    p_source_code           => 'XLA_EVENT_APPL_ID'
115746  , p_source_type_code      => 'Y'
115747  , p_source_application_id =>  602
115748 );
115749    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
115750    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
115751    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
115752    l_rec_acct_attrs.array_char_value(4)  := 
115753 xla_ae_sources_pkg.GetSystemSourceChar(
115754    p_source_code           => 'XLA_ENTITY_CODE'
115755  , p_source_type_code      => 'Y'
115756  , p_source_application_id =>  602
115757 );
115758    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
115759    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
115760    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
115761    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
115762    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
115763    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
115764    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
115765    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
115766    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
115767    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
115768    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
115769    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
115770    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
115771    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
115772    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
115773    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
115774    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
115775    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
115776    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
115777    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
115778    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
115779    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
115780    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
115781    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
115782    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
115783    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
115784    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
115785    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
115786    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
115787    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
115788    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
115789    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
115790    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
115791    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
115792    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
115793    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
115794    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
115795    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
115796    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
115797    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
115798    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
115799    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
115800    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
115801    l_rec_acct_attrs.array_char_value(26)  := p_source_88;
115802    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
115803    l_rec_acct_attrs.array_date_value(27)  := p_source_118;
115804    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
115805    l_rec_acct_attrs.array_num_value(28)  := p_source_119;
115806    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
115807    l_rec_acct_attrs.array_char_value(29)  := p_source_120;
115808    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
115809    l_rec_acct_attrs.array_num_value(30)  := p_source_89;
115813    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
115810    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
115811    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
115812    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
115814    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
115815    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
115816    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
115817    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
115818    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
115819    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
115820    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
115821    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
115822    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
115823    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
115824    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
115825    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
115826    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
115827    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
115828    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
115829    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
115830    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
115831    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
115832    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
115833    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
115834    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
115835    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
115836    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
115837    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
115838 
115839    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
115840    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
115841 
115842    ---------------------------------------------------------------------------------------------------------------
115843    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
115844    ---------------------------------------------------------------------------------------------------------------
115845    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
115846 
115847    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115848    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115849 
115850    IF xla_accounting_cache_pkg.GetValueChar
115851          (p_source_code         => 'LEDGER_CATEGORY_CODE'
115852          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
115853    AND l_bflow_method_code = 'PRIOR_ENTRY'
115854 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
115855    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
115856          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
115857        )
115858    THEN
115859          xla_ae_lines_pkg.BflowUpgEntry
115860            (p_business_method_code    => l_bflow_method_code
115861            ,p_business_class_code     => l_bflow_class_code
115862            ,p_balance_type            => l_balance_type_code);
115863    ELSE
115864       NULL;
115865 -- No business flow processing for business flow method of NONE.
115866    END IF;
115867 
115868    --
115869    -- call analytical criteria
115870    --
115871    
115872    --
115873    -- call description
115874    --
115875    -- No description or it is inherited.
115876    --
115877    -- call ADRs
115878    -- Bug 4922099
115879    --
115880    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115881         (NVL(l_actual_upg_option, 'N') = 'O') OR
115882         (NVL(l_enc_upg_option, 'N') = 'O')
115883       )
115884    THEN
115885    NULL;
115886    --
115887    --
115888    
115889   l_ccid := AcctDerRule_33(
115890            p_application_id           => p_application_id
115891          , p_ae_header_id             => l_ae_header_id 
115892 , p_source_36 => p_source_36
115893          , x_transaction_coa_id       => l_adr_transaction_coa_id
115894          , x_accounting_coa_id        => l_adr_accounting_coa_id
115895          , x_value_type_code          => l_adr_value_type_code
115896          , p_side                     => 'NA'
115897    );
115898 
115899    xla_ae_lines_pkg.set_ccid(
115900     p_code_combination_id          => l_ccid
115901   , p_value_type_code              => l_adr_value_type_code
115902   , p_transaction_coa_id           => l_adr_transaction_coa_id
115903   , p_accounting_coa_id            => l_adr_accounting_coa_id
115904   , p_adr_code                     => 'AP_RECP_INV_DIST'
115905   , p_adr_type_code                => 'S'
115906   , p_component_type               => l_component_type
115907   , p_component_code               => l_component_code
115908   , p_component_type_code          => l_component_type_code
115909   , p_component_appl_id            => l_component_appl_id
115910   , p_amb_context_code             => l_amb_context_code
115911   , p_side                         => 'NA'
115912   );
115913 
115914 
115915    --
115916    --
115917    END IF;
115918    --
115919    -- Bug 4922099
115920    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
115924       )
115921           (NVL(l_enc_upg_option, 'N') = 'O')
115922         ) AND
115923         (l_bflow_method_code = 'PRIOR_ENTRY')
115925    THEN
115926       IF
115927       --
115928       1 = 2
115929       --
115930       THEN
115931       xla_accounting_err_pkg.build_message
115932                                     (p_appli_s_name            => 'XLA'
115933                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115934                                     ,p_token_1                 => 'LINE_NUMBER'
115935                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
115936                                     ,p_token_2                 => 'LINE_TYPE_NAME'
115937                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
115938                                                                              l_component_type
115939                                                                             ,l_component_code
115940                                                                             ,l_component_type_code
115941                                                                             ,l_component_appl_id
115942                                                                             ,l_amb_context_code
115943                                                                             ,l_entity_code
115944                                                                             ,l_event_class_code
115945                                                                            )
115946                                     ,p_token_3                 => 'OWNER'
115947                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
115948                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
115949                                                                           ,p_lookup_code    => l_component_type_code
115950                                                                          )
115951                                     ,p_token_4                 => 'PRODUCT_NAME'
115952                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115953                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115954                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115955                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115956                                     ,p_ae_header_id            =>  NULL
115957                                        );
115958 
115959         IF (C_LEVEL_ERROR>= g_log_level) THEN
115960                  trace
115961                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115962                       ,p_level    => C_LEVEL_ERROR
115963                       ,p_module   => l_log_module);
115964         END IF;
115965       END IF;
115966    END IF;
115967    --
115968    --
115969    ------------------------------------------------------------------------------------------------
115970    -- 4219869 Business Flow
115971    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115972    -- Prior Entry.  Currently, the following code is always generated.
115973    ------------------------------------------------------------------------------------------------
115974    XLA_AE_LINES_PKG.ValidateCurrentLine;
115975 
115976    ------------------------------------------------------------------------------------
115977    -- 4219869 Business Flow
115978    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115979    ------------------------------------------------------------------------------------
115980    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115981 
115982    ----------------------------------------------------------------------------------
115983    -- 4219869 Business Flow
115984    -- Update journal entry status -- Need to generate this within IF <condition>
115985    ----------------------------------------------------------------------------------
115986    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115987          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115988          ,p_balance_type_code => l_balance_type_code
115989          );
115990 
115991    -------------------------------------------------------------------------------------------
115992    -- 4262811 - Generate the Accrual Reversal lines
115993    -------------------------------------------------------------------------------------------
115994    BEGIN
115995       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115996                               (g_array_event(p_event_id).array_value_num('header_index'));
115997       IF l_acc_rev_flag IS NULL THEN
115998          l_acc_rev_flag := 'N';
115999       END IF;
116000    EXCEPTION
116001       WHEN OTHERS THEN
116002          l_acc_rev_flag := 'N';
116003    END;
116004    --
116005    IF (l_acc_rev_flag = 'Y') THEN
116006 
116007        -- 4645092  ------------------------------------------------------------------------------
116008        -- To allow MPA report to determine if it should generate report process
116009        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
116010        ------------------------------------------------------------------------------------------
116011 
116012        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
116013        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
116017    --
116014    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
116015    -- call ADRs
116016    -- Bug 4922099
116018    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116019         (NVL(l_actual_upg_option, 'N') = 'O') OR
116020         (NVL(l_enc_upg_option, 'N') = 'O')
116021       )
116022    THEN
116023    NULL;
116024    --
116025    --
116026    
116027   l_ccid := AcctDerRule_33(
116028            p_application_id           => p_application_id
116029          , p_ae_header_id             => l_ae_header_id 
116030 , p_source_36 => p_source_36
116031          , x_transaction_coa_id       => l_adr_transaction_coa_id
116032          , x_accounting_coa_id        => l_adr_accounting_coa_id
116033          , x_value_type_code          => l_adr_value_type_code
116034          , p_side                     => 'NA'
116035    );
116036 
116037    xla_ae_lines_pkg.set_ccid(
116038     p_code_combination_id          => l_ccid
116039   , p_value_type_code              => l_adr_value_type_code
116040   , p_transaction_coa_id           => l_adr_transaction_coa_id
116041   , p_accounting_coa_id            => l_adr_accounting_coa_id
116042   , p_adr_code                     => 'AP_RECP_INV_DIST'
116043   , p_adr_type_code                => 'S'
116044   , p_component_type               => l_component_type
116045   , p_component_code               => l_component_code
116046   , p_component_type_code          => l_component_type_code
116047   , p_component_appl_id            => l_component_appl_id
116048   , p_amb_context_code             => l_amb_context_code
116049   , p_side                         => 'NA'
116050   );
116051 
116052 
116053    --
116054    --
116055    END IF;
116056 
116057        --
116058        -- Update the line information that should be overwritten
116059        --
116060        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116061                                          p_header_num   => 1);
116062        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
116063 
116064        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116065 
116066        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
116067           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116068        END IF;
116069 
116070       --
116071       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116072       --
116073       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116074           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
116075       ELSE
116076           ---------------------------------------------------------------------------------------------------
116077           -- 4262811a Switch Sign
116078           ---------------------------------------------------------------------------------------------------
116079           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
116080           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116081                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116082           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116083                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116084           -- 5132302
116085           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116086                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116087 
116088       END IF;
116089 
116090       -- 4955764
116091       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116092       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116093 
116094 
116095       XLA_AE_LINES_PKG.ValidateCurrentLine;
116096       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116097 
116098       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116099                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116100                ,p_balance_type_code => l_balance_type_code);
116101 
116102    END IF;
116103 
116104    -----------------------------------------------------------------------------------------
116105    -- 4262811 Multiperiod Accounting
116106    -----------------------------------------------------------------------------------------
116107      -- No MPA option is assigned.
116108 
116109 
116110 END IF;
116111 END IF;
116112 --
116113 
116114 --
116115 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116116    trace
116117       (p_msg      => 'END of AcctLineType_200'
116118       ,p_level    => C_LEVEL_PROCEDURE
116119       ,p_module   => l_log_module);
116120 END IF;
116121 --
116122 EXCEPTION
116123   WHEN xla_exceptions_pkg.application_exception THEN
116124       RAISE;
116125   WHEN OTHERS THEN
116126        xla_exceptions_pkg.raise_message
116127            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_200');
116128 END AcctLineType_200;
116129 --
116130 
116131 ---------------------------------------
116132 --
116133 -- PRIVATE FUNCTION
116134 --         AcctLineType_201
116135 --
116136 ---------------------------------------
116137 PROCEDURE AcctLineType_201 (
116141  ,p_calculate_g_l_flag    IN VARCHAR2
116138   p_application_id        IN NUMBER
116139  ,p_event_id              IN NUMBER
116140  ,p_calculate_acctd_flag  IN VARCHAR2
116142  ,p_actual_flag           IN OUT VARCHAR2
116143  ,p_balance_type_code     OUT VARCHAR2
116144  ,p_gain_or_loss_ref      OUT VARCHAR2
116145  
116146 --Recipient Invoice Distribution Account
116147  , p_source_36            IN NUMBER
116148 --When to Account for Payment Option
116149  , p_source_38            IN VARCHAR2
116150 --Accounting Reversal Indicator
116151  , p_source_40            IN VARCHAR2
116152 --Business Flow Accounts Payable Application Identifier
116153  , p_source_42            IN NUMBER
116154 --Distribution Link Type
116155  , p_source_48            IN VARCHAR2
116156 --Override Accounted Amount Indicator
116157  , p_source_53            IN VARCHAR2
116158  , p_source_53_meaning    IN VARCHAR2
116159 --Third Party Type
116160  , p_source_56            IN VARCHAR2
116161 --Invoice Distribution Tax Line Identifier
116162  , p_source_58            IN NUMBER
116163 --Invoice Distribution Summary Tax Line Identifier
116164  , p_source_59            IN NUMBER
116165 --Invoice Distribution Tax Distribution Identifier from Tax
116166  , p_source_66            IN NUMBER
116167 --Prepayment Distribution Type
116168  , p_source_67            IN VARCHAR2
116169 --Recipient Invoice Distribution Type
116170  , p_source_68            IN VARCHAR2
116171  , p_source_68_meaning    IN VARCHAR2
116172 --Prepayment Application Distribution Identifier
116173  , p_source_71            IN NUMBER
116174 --Invoice Identifier
116175  , p_source_72            IN NUMBER
116176 --Business Flow Prepayment Invoice Distribution Type
116177  , p_source_73            IN VARCHAR2
116178 --Business Flow Prepayment Invoice Entity Code
116179  , p_source_74            IN VARCHAR2
116180 --Business Flow Prepayment Invoice Distribution Identifier
116181  , p_source_75            IN NUMBER
116182 --Business Flow Prepayment Invoice Identifier
116183  , p_source_76            IN NUMBER
116184 --Upgrade Encumbrance Credit Account Class
116185  , p_source_77            IN VARCHAR2
116186 --Payables Encumbrance Upgrade Credit Account
116187  , p_source_78            IN NUMBER
116188 --Payables Encumbrance Upgrade Credit Amount
116189  , p_source_79            IN NUMBER
116190 --Invoice Currency Code
116191  , p_source_80            IN VARCHAR2
116192 --Payables Encumbrance Upgrade Credit Base Amount
116193  , p_source_81            IN NUMBER
116194 --Upgrade Encumbrance Debit Account Class
116195  , p_source_82            IN VARCHAR2
116196 --Payables Encumbrance Upgrade Debit Account
116197  , p_source_83            IN NUMBER
116198 --Payables Encumbrance Upgrade Debit Amount
116199  , p_source_84            IN NUMBER
116200 --Payables Encumbrance Upgrade Debit Base Amount
116201  , p_source_85            IN NUMBER
116202 --Payables Encumbrance Upgrade Option
116203  , p_source_86            IN VARCHAR2
116204 --Prepayment Distribution Amount
116205  , p_source_87            IN NUMBER
116206 --Deferred Accounting End Date
116207  , p_source_90            IN DATE
116208 --Deferred Accounting Option
116209  , p_source_91            IN VARCHAR2
116210 --Deferred Accounting Start Date
116211  , p_source_92            IN DATE
116212 --Invoice Supplier Identifier
116213  , p_source_93            IN NUMBER
116214 --Invoice Supplier Site Identifier
116215  , p_source_94            IN NUMBER
116216 --Identifier of the Prepayment Application Reversed
116217  , p_source_95            IN NUMBER
116218 --Payables Upgrade Credit Encumbrance Type Identifier
116219  , p_source_96            IN NUMBER
116220 --Payables Upgrade Debit Encumbrance Type Identifier
116221  , p_source_97            IN NUMBER
116222 --Prepayment Payment Currency Code
116223  , p_source_98            IN VARCHAR2
116224 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
116225  , p_source_99            IN NUMBER
116226 --Accrue on Receipt Option
116227  , p_source_100            IN VARCHAR2
116228  , p_source_100_meaning    IN VARCHAR2
116229 --Prepayment Payment Exchange Date
116230  , p_source_121            IN DATE
116231 --Prepayment Payment Exchange Rate
116232  , p_source_122            IN NUMBER
116233 --Prepayment Payment Exchange Rate Type
116234  , p_source_123            IN VARCHAR2
116235 )
116236 IS
116237 
116238 l_component_type              VARCHAR2(80);
116239 l_component_code              VARCHAR2(30);
116240 l_component_type_code         VARCHAR2(1);
116241 l_component_appl_id           INTEGER;
116242 l_amb_context_code            VARCHAR2(30);
116243 l_entity_code                 VARCHAR2(30);
116244 l_event_class_code            VARCHAR2(30);
116245 l_ae_header_id                NUMBER;
116246 l_event_type_code             VARCHAR2(30);
116247 l_line_definition_code        VARCHAR2(30);
116248 l_line_definition_owner_code  VARCHAR2(1);
116249 --
116250 -- adr variables
116251 l_segment                     VARCHAR2(30);
116252 l_ccid                        NUMBER;
116253 l_adr_transaction_coa_id      NUMBER;
116254 l_adr_accounting_coa_id       NUMBER;
116255 l_adr_flexfield_segment_code  VARCHAR2(30);
116256 l_adr_flex_value_set_id       NUMBER;
116257 l_adr_value_type_code         VARCHAR2(30);
116258 l_adr_value_combination_id    NUMBER;
116259 l_adr_value_segment_code      VARCHAR2(30);
116260 
116261 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
116262 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
116263 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
116267 l_entered_amt_idx             NUMBER;
116264 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
116265 
116266 -- 4262811 Variables ------------------------------------------------------------------------------------------
116268 l_accted_amt_idx              NUMBER;
116269 l_acc_rev_flag                VARCHAR2(1);
116270 l_accrual_line_num            NUMBER;
116271 l_tmp_amt                     NUMBER;
116272 l_acc_rev_natural_side_code   VARCHAR2(1);
116273 
116274 l_num_entries                 NUMBER;
116275 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
116276 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
116277 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
116278 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
116279 l_recog_line_1                NUMBER;
116280 l_recog_line_2                NUMBER;
116281 
116282 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
116283 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
116284 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
116285 
116286 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116287 
116288 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
116289 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
116290 
116291 ---------------------------------------------------------------------------------------------------------------
116292 
116293 
116294 --
116295 -- bulk performance
116296 --
116297 l_balance_type_code           VARCHAR2(1);
116298 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
116299 l_log_module                  VARCHAR2(240);
116300 
116301 --
116302 -- Upgrade strategy
116303 --
116304 l_actual_upg_option           VARCHAR2(1);
116305 l_enc_upg_option           VARCHAR2(1);
116306 
116307 --
116308 BEGIN
116309 --
116310 IF g_log_enabled THEN
116311       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_201';
116312 END IF;
116313 --
116314 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116315 
116316       trace
116317          (p_msg      => 'BEGIN of AcctLineType_201'
116318          ,p_level    => C_LEVEL_PROCEDURE
116319          ,p_module   => l_log_module);
116320 
116321 END IF;
116322 --
116323 l_component_type             := 'AMB_JLT';
116324 l_component_code             := 'AP_TRV_PREPAY_PAY_RATE_APP';
116325 l_component_type_code        := 'S';
116326 l_component_appl_id          :=  200;
116327 l_amb_context_code           := 'DEFAULT';
116328 l_entity_code                := 'AP_INVOICES';
116329 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
116330 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
116331 l_line_definition_owner_code := 'S';
116332 l_line_definition_code       := 'CASH_PREPAYMENT APPLICATIONS_3';
116333 --
116334 l_balance_type_code          := 'A';
116335 l_segment                     := NULL;
116336 l_ccid                        := NULL;
116337 l_adr_transaction_coa_id      := NULL;
116338 l_adr_accounting_coa_id       := NULL;
116339 l_adr_flexfield_segment_code  := NULL;
116340 l_adr_flex_value_set_id       := NULL;
116341 l_adr_value_type_code         := NULL;
116342 l_adr_value_combination_id    := NULL;
116343 l_adr_value_segment_code      := NULL;
116344 
116345 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
116346 l_bflow_class_code           := '';    -- 4219869 Business Flow
116347 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
116348 l_budgetary_control_flag     := 'N';
116349 
116350 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
116351 l_bflow_applied_to_amt       := NULL; -- 5132302
116352 l_entered_amt_idx            := NULL;          -- 4262811
116353 l_accted_amt_idx             := NULL;          -- 4262811
116354 l_acc_rev_flag               := NULL;          -- 4262811
116355 l_accrual_line_num           := NULL;          -- 4262811
116356 l_tmp_amt                    := NULL;          -- 4262811
116357 --
116358  
116359 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
116360     l_balance_type_code <> 'B' THEN
116361 IF NVL(p_source_38,'
116362 ') <>  'CLEAR_CLEAR' AND 
116363 (NVL(p_source_67,'
116364 ') =  'PREPAY APPL' OR 
116365 NVL(p_source_67,'
116366 ') =  'PREPAY APPL REC TAX' OR 
116367 NVL(p_source_67,'
116368 ') =  'PREPAY APPL NONREC TAX') AND 
116369 NVL(p_source_68,'
116370 ') =  'TRV' AND 
116371 NVL(p_source_100,'
116372 ') =  'Y'
116373  THEN 
116374 
116375    --
116376    XLA_AE_LINES_PKG.SetNewLine;
116377 
116378    p_balance_type_code          := l_balance_type_code;
116379    -- set the flag so later we will know whether the gain loss line needs to be created
116380    
116381    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
116382      p_actual_flag :='A';
116383    END IF;
116384 
116385    --
116386    -- bulk performance
116387    --
116388    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
116389                                       p_header_num   => 0); -- 4262811
116390    --
116391    -- set accounting line options
116392    --
116393    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
116394            p_natural_side_code          => 'C'
116395          , p_gain_or_loss_flag          => 'N'
116399          , p_merge_duplicate_code       => 'A'
116396          , p_gl_transfer_mode_code      => 'S'
116397          , p_acct_entry_type_code       => 'A'
116398          , p_switch_side_flag           => 'Y'
116400          );
116401    --
116402    l_acc_rev_natural_side_code := 'D';  -- 4262811
116403    -- 
116404    --
116405    -- set accounting line type info
116406    --
116407    xla_ae_lines_pkg.SetAcctLineType
116408       (p_component_type             => l_component_type
116409       ,p_event_type_code            => l_event_type_code
116410       ,p_line_definition_owner_code => l_line_definition_owner_code
116411       ,p_line_definition_code       => l_line_definition_code
116412       ,p_accounting_line_code       => l_component_code
116413       ,p_accounting_line_type_code  => l_component_type_code
116414       ,p_accounting_line_appl_id    => l_component_appl_id
116415       ,p_amb_context_code           => l_amb_context_code
116416       ,p_entity_code                => l_entity_code
116417       ,p_event_class_code           => l_event_class_code);
116418    --
116419    -- set accounting class
116420    --
116421    xla_ae_lines_pkg.SetAcctClass(
116422            p_accounting_class_code  => 'TRV'
116423          , p_ae_header_id           => l_ae_header_id
116424          );
116425 
116426    --
116427    -- set rounding class
116428    --
116429    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
116430                       'TRV';
116431 
116432    --
116433    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
116434    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
116435    --
116436    -- bulk performance
116437    --
116438    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
116439 
116440    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
116441       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
116442 
116443    -- 4955764
116444    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116445       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
116446 
116447    -- 4458381 Public Sector Enh
116448    
116449    --
116450    -- set accounting attributes for the line type
116451    --
116452    l_entered_amt_idx := 25;
116453    l_accted_amt_idx  := 30;
116454    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
116455    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
116456    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
116457    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
116458    l_rec_acct_attrs.array_num_value(2)  := 
116459 xla_ae_sources_pkg.GetSystemSourceNum(
116460    p_source_code           => 'XLA_EVENT_APPL_ID'
116461  , p_source_type_code      => 'Y'
116462  , p_source_application_id =>  602
116463 );
116464    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
116465    l_rec_acct_attrs.array_char_value(3)  := p_source_48;
116466    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
116467    l_rec_acct_attrs.array_char_value(4)  := 
116468 xla_ae_sources_pkg.GetSystemSourceChar(
116469    p_source_code           => 'XLA_ENTITY_CODE'
116470  , p_source_type_code      => 'Y'
116471  , p_source_application_id =>  602
116472 );
116473    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
116474    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_71);
116475    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
116476    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_72);
116477    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
116478    l_rec_acct_attrs.array_num_value(7)  := p_source_42;
116479    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
116480    l_rec_acct_attrs.array_char_value(8)  := p_source_73;
116481    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
116482    l_rec_acct_attrs.array_char_value(9)  := p_source_74;
116483    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
116484    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_75);
116485    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
116486    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_76);
116487    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
116488    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_71);
116489    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
116490    l_rec_acct_attrs.array_char_value(13)  := p_source_48;
116491    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
116492    l_rec_acct_attrs.array_char_value(14)  := p_source_77;
116493    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
116494    l_rec_acct_attrs.array_num_value(15)  := p_source_78;
116495    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
116496    l_rec_acct_attrs.array_num_value(16)  := p_source_79;
116497    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
116498    l_rec_acct_attrs.array_char_value(17)  := p_source_80;
116499    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
116500    l_rec_acct_attrs.array_num_value(18)  := p_source_81;
116504    l_rec_acct_attrs.array_num_value(20)  := p_source_83;
116501    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
116502    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
116503    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
116505    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
116506    l_rec_acct_attrs.array_num_value(21)  := p_source_84;
116507    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
116508    l_rec_acct_attrs.array_char_value(22)  := p_source_80;
116509    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
116510    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
116511    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
116512    l_rec_acct_attrs.array_char_value(24)  := p_source_86;
116513    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
116514    l_rec_acct_attrs.array_num_value(25)  := p_source_87;
116515    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
116516    l_rec_acct_attrs.array_char_value(26)  := p_source_98;
116517    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
116518    l_rec_acct_attrs.array_date_value(27)  := p_source_121;
116519    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
116520    l_rec_acct_attrs.array_num_value(28)  := p_source_122;
116521    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
116522    l_rec_acct_attrs.array_char_value(29)  := p_source_123;
116523    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
116524    l_rec_acct_attrs.array_num_value(30)  := p_source_99;
116525    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
116526    l_rec_acct_attrs.array_date_value(31)  := p_source_90;
116527    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
116528    l_rec_acct_attrs.array_char_value(32)  := p_source_91;
116529    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
116530    l_rec_acct_attrs.array_date_value(33)  := p_source_92;
116531    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
116532    l_rec_acct_attrs.array_char_value(34)  := p_source_53;
116533    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
116534    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
116535    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
116536    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
116537    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
116538    l_rec_acct_attrs.array_char_value(37)  := p_source_56;
116539    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
116540    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_95);
116541    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
116542    l_rec_acct_attrs.array_char_value(39)  := p_source_48;
116543    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
116544    l_rec_acct_attrs.array_num_value(40)  := p_source_58;
116545    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
116546    l_rec_acct_attrs.array_num_value(41)  := p_source_66;
116547    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
116548    l_rec_acct_attrs.array_num_value(42)  := p_source_59;
116549    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
116550    l_rec_acct_attrs.array_num_value(43)  := p_source_96;
116551    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
116552    l_rec_acct_attrs.array_num_value(44)  := p_source_97;
116553 
116554    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
116555    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
116556 
116557    ---------------------------------------------------------------------------------------------------------------
116558    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
116559    ---------------------------------------------------------------------------------------------------------------
116560    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
116561 
116562    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116563    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116564 
116565    IF xla_accounting_cache_pkg.GetValueChar
116566          (p_source_code         => 'LEDGER_CATEGORY_CODE'
116567          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
116568    AND l_bflow_method_code = 'PRIOR_ENTRY'
116569 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
116570    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
116571          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
116572        )
116573    THEN
116574          xla_ae_lines_pkg.BflowUpgEntry
116575            (p_business_method_code    => l_bflow_method_code
116576            ,p_business_class_code     => l_bflow_class_code
116577            ,p_balance_type            => l_balance_type_code);
116578    ELSE
116579       NULL;
116580 -- No business flow processing for business flow method of NONE.
116581    END IF;
116582 
116583    --
116584    -- call analytical criteria
116585    --
116586    
116587    --
116588    -- call description
116589    --
116590    -- No description or it is inherited.
116591    --
116592    -- call ADRs
116593    -- Bug 4922099
116594    --
116595    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116596         (NVL(l_actual_upg_option, 'N') = 'O') OR
116600    NULL;
116597         (NVL(l_enc_upg_option, 'N') = 'O')
116598       )
116599    THEN
116601    --
116602    --
116603    
116604   l_ccid := AcctDerRule_33(
116605            p_application_id           => p_application_id
116606          , p_ae_header_id             => l_ae_header_id 
116607 , p_source_36 => p_source_36
116608          , x_transaction_coa_id       => l_adr_transaction_coa_id
116609          , x_accounting_coa_id        => l_adr_accounting_coa_id
116610          , x_value_type_code          => l_adr_value_type_code
116611          , p_side                     => 'NA'
116612    );
116613 
116614    xla_ae_lines_pkg.set_ccid(
116615     p_code_combination_id          => l_ccid
116616   , p_value_type_code              => l_adr_value_type_code
116617   , p_transaction_coa_id           => l_adr_transaction_coa_id
116618   , p_accounting_coa_id            => l_adr_accounting_coa_id
116619   , p_adr_code                     => 'AP_RECP_INV_DIST'
116620   , p_adr_type_code                => 'S'
116621   , p_component_type               => l_component_type
116622   , p_component_code               => l_component_code
116623   , p_component_type_code          => l_component_type_code
116624   , p_component_appl_id            => l_component_appl_id
116625   , p_amb_context_code             => l_amb_context_code
116626   , p_side                         => 'NA'
116627   );
116628 
116629 
116630    --
116631    --
116632    END IF;
116633    --
116634    -- Bug 4922099
116635    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
116636           (NVL(l_enc_upg_option, 'N') = 'O')
116637         ) AND
116638         (l_bflow_method_code = 'PRIOR_ENTRY')
116639       )
116640    THEN
116641       IF
116642       --
116643       1 = 2
116644       --
116645       THEN
116646       xla_accounting_err_pkg.build_message
116647                                     (p_appli_s_name            => 'XLA'
116648                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116649                                     ,p_token_1                 => 'LINE_NUMBER'
116650                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
116651                                     ,p_token_2                 => 'LINE_TYPE_NAME'
116652                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
116653                                                                              l_component_type
116654                                                                             ,l_component_code
116655                                                                             ,l_component_type_code
116656                                                                             ,l_component_appl_id
116657                                                                             ,l_amb_context_code
116658                                                                             ,l_entity_code
116659                                                                             ,l_event_class_code
116660                                                                            )
116661                                     ,p_token_3                 => 'OWNER'
116662                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
116663                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
116664                                                                           ,p_lookup_code    => l_component_type_code
116665                                                                          )
116666                                     ,p_token_4                 => 'PRODUCT_NAME'
116667                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
116668                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
116669                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
116670                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
116671                                     ,p_ae_header_id            =>  NULL
116672                                        );
116673 
116674         IF (C_LEVEL_ERROR>= g_log_level) THEN
116675                  trace
116676                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116677                       ,p_level    => C_LEVEL_ERROR
116678                       ,p_module   => l_log_module);
116679         END IF;
116680       END IF;
116681    END IF;
116682    --
116683    --
116684    ------------------------------------------------------------------------------------------------
116685    -- 4219869 Business Flow
116686    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
116687    -- Prior Entry.  Currently, the following code is always generated.
116688    ------------------------------------------------------------------------------------------------
116689    XLA_AE_LINES_PKG.ValidateCurrentLine;
116690 
116691    ------------------------------------------------------------------------------------
116692    -- 4219869 Business Flow
116693    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
116694    ------------------------------------------------------------------------------------
116695    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116696 
116697    ----------------------------------------------------------------------------------
116698    -- 4219869 Business Flow
116699    -- Update journal entry status -- Need to generate this within IF <condition>
116703          ,p_balance_type_code => l_balance_type_code
116700    ----------------------------------------------------------------------------------
116701    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116702          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
116704          );
116705 
116706    -------------------------------------------------------------------------------------------
116707    -- 4262811 - Generate the Accrual Reversal lines
116708    -------------------------------------------------------------------------------------------
116709    BEGIN
116710       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
116711                               (g_array_event(p_event_id).array_value_num('header_index'));
116712       IF l_acc_rev_flag IS NULL THEN
116713          l_acc_rev_flag := 'N';
116714       END IF;
116715    EXCEPTION
116716       WHEN OTHERS THEN
116717          l_acc_rev_flag := 'N';
116718    END;
116719    --
116720    IF (l_acc_rev_flag = 'Y') THEN
116721 
116722        -- 4645092  ------------------------------------------------------------------------------
116723        -- To allow MPA report to determine if it should generate report process
116724        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
116725        ------------------------------------------------------------------------------------------
116726 
116727        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
116728        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
116729    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
116730    -- call ADRs
116731    -- Bug 4922099
116732    --
116733    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116734         (NVL(l_actual_upg_option, 'N') = 'O') OR
116735         (NVL(l_enc_upg_option, 'N') = 'O')
116736       )
116737    THEN
116738    NULL;
116739    --
116740    --
116741    
116742   l_ccid := AcctDerRule_33(
116743            p_application_id           => p_application_id
116744          , p_ae_header_id             => l_ae_header_id 
116745 , p_source_36 => p_source_36
116746          , x_transaction_coa_id       => l_adr_transaction_coa_id
116747          , x_accounting_coa_id        => l_adr_accounting_coa_id
116748          , x_value_type_code          => l_adr_value_type_code
116749          , p_side                     => 'NA'
116750    );
116751 
116752    xla_ae_lines_pkg.set_ccid(
116753     p_code_combination_id          => l_ccid
116754   , p_value_type_code              => l_adr_value_type_code
116755   , p_transaction_coa_id           => l_adr_transaction_coa_id
116756   , p_accounting_coa_id            => l_adr_accounting_coa_id
116757   , p_adr_code                     => 'AP_RECP_INV_DIST'
116758   , p_adr_type_code                => 'S'
116759   , p_component_type               => l_component_type
116760   , p_component_code               => l_component_code
116761   , p_component_type_code          => l_component_type_code
116762   , p_component_appl_id            => l_component_appl_id
116763   , p_amb_context_code             => l_amb_context_code
116764   , p_side                         => 'NA'
116765   );
116766 
116767 
116768    --
116769    --
116770    END IF;
116771 
116772        --
116773        -- Update the line information that should be overwritten
116774        --
116775        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116776                                          p_header_num   => 1);
116777        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
116778 
116779        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116780 
116781        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
116782           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116783        END IF;
116784 
116785       --
116786       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116787       --
116788       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116789           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
116790       ELSE
116791           ---------------------------------------------------------------------------------------------------
116792           -- 4262811a Switch Sign
116793           ---------------------------------------------------------------------------------------------------
116794           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
116795           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116796                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116797           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116798                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116799           -- 5132302
116800           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116801                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116802 
116803       END IF;
116804 
116805       -- 4955764
116806       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116807       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116808 
116809 
116810       XLA_AE_LINES_PKG.ValidateCurrentLine;
116814                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116811       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116812 
116813       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116815                ,p_balance_type_code => l_balance_type_code);
116816 
116817    END IF;
116818 
116819    -----------------------------------------------------------------------------------------
116820    -- 4262811 Multiperiod Accounting
116821    -----------------------------------------------------------------------------------------
116822      -- No MPA option is assigned.
116823 
116824 
116825 END IF;
116826 END IF;
116827 --
116828 
116829 --
116830 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116831    trace
116832       (p_msg      => 'END of AcctLineType_201'
116833       ,p_level    => C_LEVEL_PROCEDURE
116834       ,p_module   => l_log_module);
116835 END IF;
116836 --
116837 EXCEPTION
116838   WHEN xla_exceptions_pkg.application_exception THEN
116839       RAISE;
116840   WHEN OTHERS THEN
116841        xla_exceptions_pkg.raise_message
116842            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_201');
116843 END AcctLineType_201;
116844 --
116845 
116846 ---------------------------------------
116847 --
116848 -- PRIVATE FUNCTION
116849 --         AcctLineType_202
116850 --
116851 ---------------------------------------
116852 PROCEDURE AcctLineType_202 (
116853   p_application_id        IN NUMBER
116854  ,p_event_id              IN NUMBER
116855  ,p_calculate_acctd_flag  IN VARCHAR2
116856  ,p_calculate_g_l_flag    IN VARCHAR2
116857  ,p_actual_flag           IN OUT VARCHAR2
116858  ,p_balance_type_code     OUT VARCHAR2
116859  ,p_gain_or_loss_ref      OUT VARCHAR2
116860  
116861 --Automatic Offsets Value
116862  , p_source_4            IN VARCHAR2
116863  , p_source_4_meaning    IN VARCHAR2
116864 --Payment Distribution (Cleared Rate) Ledger Amount
116865  , p_source_10            IN NUMBER
116866 --Invoice Distribution Account
116867  , p_source_17            IN NUMBER
116868 --Withholding Related Distribution Account
116869  , p_source_24            IN NUMBER
116870 --When to Account for Payment Option
116871  , p_source_38            IN VARCHAR2
116872 --Payment Distribution Type
116873  , p_source_39            IN VARCHAR2
116874  , p_source_39_meaning    IN VARCHAR2
116875 --Accounting Reversal Indicator
116876  , p_source_40            IN VARCHAR2
116877 --Payment Distribution Amount
116878  , p_source_41            IN NUMBER
116879 --Business Flow Accounts Payable Application Identifier
116880  , p_source_42            IN NUMBER
116881 --Business Flow Payment Distribution Type
116882  , p_source_43            IN VARCHAR2
116883 --Business Flow Payment Entity Code
116884  , p_source_44            IN VARCHAR2
116885 --Business Flow Payment Distribution Identifier
116886  , p_source_45            IN NUMBER
116887 --Business Flow Payment Identifier
116888  , p_source_46            IN NUMBER
116889 --Payment Distribution Identifier
116890  , p_source_47            IN NUMBER
116891 --Distribution Link Type
116892  , p_source_48            IN VARCHAR2
116893 --Override Accounted Amount Indicator
116894  , p_source_53            IN VARCHAR2
116895  , p_source_53_meaning    IN VARCHAR2
116896 --Payment Supplier Identifier
116897  , p_source_54            IN NUMBER
116898 --Payment Supplier Site Identifier
116899  , p_source_55            IN NUMBER
116900 --Third Party Type
116901  , p_source_56            IN VARCHAR2
116902 --Payment Distribution Reversed Identifier
116903  , p_source_57            IN NUMBER
116904 --Invoice Distribution Tax Line Identifier
116905  , p_source_58            IN NUMBER
116906 --Invoice Distribution Summary Tax Line Identifier
116907  , p_source_59            IN NUMBER
116908 --Cleared Currency Code
116909  , p_source_106            IN VARCHAR2
116910 --Cleared Exchange Date
116911  , p_source_107            IN DATE
116912 --Cleared Exchange Rate
116913  , p_source_108            IN NUMBER
116914 --Cleared Exchange Rate Type
116915  , p_source_109            IN VARCHAR2
116916 --Withholding at Payment Indicator
116917  , p_source_151            IN VARCHAR2
116918  , p_source_151_meaning    IN VARCHAR2
116919 )
116920 IS
116921 
116922 l_component_type              VARCHAR2(80);
116923 l_component_code              VARCHAR2(30);
116924 l_component_type_code         VARCHAR2(1);
116925 l_component_appl_id           INTEGER;
116926 l_amb_context_code            VARCHAR2(30);
116927 l_entity_code                 VARCHAR2(30);
116928 l_event_class_code            VARCHAR2(30);
116929 l_ae_header_id                NUMBER;
116930 l_event_type_code             VARCHAR2(30);
116931 l_line_definition_code        VARCHAR2(30);
116932 l_line_definition_owner_code  VARCHAR2(1);
116933 --
116934 -- adr variables
116935 l_segment                     VARCHAR2(30);
116936 l_ccid                        NUMBER;
116937 l_adr_transaction_coa_id      NUMBER;
116938 l_adr_accounting_coa_id       NUMBER;
116939 l_adr_flexfield_segment_code  VARCHAR2(30);
116940 l_adr_flex_value_set_id       NUMBER;
116941 l_adr_value_type_code         VARCHAR2(30);
116942 l_adr_value_combination_id    NUMBER;
116943 l_adr_value_segment_code      VARCHAR2(30);
116944 
116945 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
116946 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
116947 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
116948 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
116949 
116953 l_acc_rev_flag                VARCHAR2(1);
116950 -- 4262811 Variables ------------------------------------------------------------------------------------------
116951 l_entered_amt_idx             NUMBER;
116952 l_accted_amt_idx              NUMBER;
116954 l_accrual_line_num            NUMBER;
116955 l_tmp_amt                     NUMBER;
116956 l_acc_rev_natural_side_code   VARCHAR2(1);
116957 
116958 l_num_entries                 NUMBER;
116959 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
116960 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
116961 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
116962 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
116963 l_recog_line_1                NUMBER;
116964 l_recog_line_2                NUMBER;
116965 
116966 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
116967 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
116968 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
116969 
116970 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116971 
116972 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
116973 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
116974 
116975 ---------------------------------------------------------------------------------------------------------------
116976 
116977 
116978 --
116979 -- bulk performance
116980 --
116981 l_balance_type_code           VARCHAR2(1);
116982 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
116983 l_log_module                  VARCHAR2(240);
116984 
116985 --
116986 -- Upgrade strategy
116987 --
116988 l_actual_upg_option           VARCHAR2(1);
116989 l_enc_upg_option           VARCHAR2(1);
116990 
116991 --
116992 BEGIN
116993 --
116994 IF g_log_enabled THEN
116995       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_202';
116996 END IF;
116997 --
116998 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116999 
117000       trace
117001          (p_msg      => 'BEGIN of AcctLineType_202'
117002          ,p_level    => C_LEVEL_PROCEDURE
117003          ,p_module   => l_log_module);
117004 
117005 END IF;
117006 --
117007 l_component_type             := 'AMB_JLT';
117008 l_component_code             := 'AP_WITHHOLD_TAX_CASH_CLEAR';
117009 l_component_type_code        := 'S';
117010 l_component_appl_id          :=  200;
117011 l_amb_context_code           := 'DEFAULT';
117012 l_entity_code                := 'AP_PAYMENTS';
117013 l_event_class_code           := 'RECONCILED PAYMENTS';
117014 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
117015 l_line_definition_owner_code := 'S';
117016 l_line_definition_code       := 'CASH_RECONCILED PAYMENTS_ALL';
117017 --
117018 l_balance_type_code          := 'A';
117019 l_segment                     := NULL;
117020 l_ccid                        := NULL;
117021 l_adr_transaction_coa_id      := NULL;
117022 l_adr_accounting_coa_id       := NULL;
117023 l_adr_flexfield_segment_code  := NULL;
117024 l_adr_flex_value_set_id       := NULL;
117025 l_adr_value_type_code         := NULL;
117026 l_adr_value_combination_id    := NULL;
117027 l_adr_value_segment_code      := NULL;
117028 
117029 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
117030 l_bflow_class_code           := '';    -- 4219869 Business Flow
117031 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
117032 l_budgetary_control_flag     := 'N';
117033 
117034 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
117035 l_bflow_applied_to_amt       := NULL; -- 5132302
117036 l_entered_amt_idx            := NULL;          -- 4262811
117037 l_accted_amt_idx             := NULL;          -- 4262811
117038 l_acc_rev_flag               := NULL;          -- 4262811
117039 l_accrual_line_num           := NULL;          -- 4262811
117040 l_tmp_amt                    := NULL;          -- 4262811
117041 --
117042  
117043 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117044     l_balance_type_code <> 'B' THEN
117045 IF NVL(p_source_38,'
117046 ') =  'CLEAR_CLEAR' AND 
117047 NVL(p_source_39,'
117048 ') =  'AWT' AND 
117049 NVL(p_source_151,'
117050 ') =  'Y'
117051  THEN 
117052 
117053    --
117054    XLA_AE_LINES_PKG.SetNewLine;
117055 
117056    p_balance_type_code          := l_balance_type_code;
117057    -- set the flag so later we will know whether the gain loss line needs to be created
117058    
117059    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117060      p_actual_flag :='A';
117061    END IF;
117062 
117063    --
117064    -- bulk performance
117065    --
117066    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117067                                       p_header_num   => 0); -- 4262811
117068    --
117069    -- set accounting line options
117070    --
117071    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117072            p_natural_side_code          => 'C'
117073          , p_gain_or_loss_flag          => 'N'
117074          , p_gl_transfer_mode_code      => 'S'
117075          , p_acct_entry_type_code       => 'A'
117076          , p_switch_side_flag           => 'Y'
117077          , p_merge_duplicate_code       => 'A'
117078          );
117079    --
117080    l_acc_rev_natural_side_code := 'D';  -- 4262811
117081    -- 
117085    xla_ae_lines_pkg.SetAcctLineType
117082    --
117083    -- set accounting line type info
117084    --
117086       (p_component_type             => l_component_type
117087       ,p_event_type_code            => l_event_type_code
117088       ,p_line_definition_owner_code => l_line_definition_owner_code
117089       ,p_line_definition_code       => l_line_definition_code
117090       ,p_accounting_line_code       => l_component_code
117091       ,p_accounting_line_type_code  => l_component_type_code
117092       ,p_accounting_line_appl_id    => l_component_appl_id
117093       ,p_amb_context_code           => l_amb_context_code
117094       ,p_entity_code                => l_entity_code
117095       ,p_event_class_code           => l_event_class_code);
117096    --
117097    -- set accounting class
117098    --
117099    xla_ae_lines_pkg.SetAcctClass(
117100            p_accounting_class_code  => 'AWT'
117101          , p_ae_header_id           => l_ae_header_id
117102          );
117103 
117104    --
117105    -- set rounding class
117106    --
117107    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117108                       'AWT';
117109 
117110    --
117111    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
117112    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
117113    --
117114    -- bulk performance
117115    --
117116    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
117117 
117118    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
117119       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
117120 
117121    -- 4955764
117122    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117123       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
117124 
117125    -- 4458381 Public Sector Enh
117126    
117127    --
117128    -- set accounting attributes for the line type
117129    --
117130    l_entered_amt_idx := 10;
117131    l_accted_amt_idx  := 15;
117132    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
117133    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
117134    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
117135    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
117136    l_rec_acct_attrs.array_num_value(2)  := p_source_41;
117137    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
117138    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
117139    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
117140    l_rec_acct_attrs.array_char_value(4)  := p_source_43;
117141    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
117142    l_rec_acct_attrs.array_char_value(5)  := p_source_44;
117143    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
117144    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_45);
117145    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
117146    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_46);
117147    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
117148    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
117149    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
117150    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
117151    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
117152    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
117153    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
117154    l_rec_acct_attrs.array_char_value(11)  := p_source_106;
117155    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
117156    l_rec_acct_attrs.array_date_value(12)  := p_source_107;
117157    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
117158    l_rec_acct_attrs.array_num_value(13)  := p_source_108;
117159    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
117160    l_rec_acct_attrs.array_char_value(14)  := p_source_109;
117161    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
117162    l_rec_acct_attrs.array_num_value(15)  := p_source_10;
117163    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
117164    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
117165    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
117166    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
117167    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
117168    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
117169    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
117170    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
117171    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
117172    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
117173    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
117174    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
117175    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
117176    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
117177    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
117178    l_rec_acct_attrs.array_num_value(23)  := p_source_58;
117179    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
117180    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
117181 
117185    ---------------------------------------------------------------------------------------------------------------
117182    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
117183    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
117184 
117186    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
117187    ---------------------------------------------------------------------------------------------------------------
117188    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
117189 
117190    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117191    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117192 
117193    IF xla_accounting_cache_pkg.GetValueChar
117194          (p_source_code         => 'LEDGER_CATEGORY_CODE'
117195          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
117196    AND l_bflow_method_code = 'PRIOR_ENTRY'
117197 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
117198    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
117199          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
117200        )
117201    THEN
117202          xla_ae_lines_pkg.BflowUpgEntry
117203            (p_business_method_code    => l_bflow_method_code
117204            ,p_business_class_code     => l_bflow_class_code
117205            ,p_balance_type            => l_balance_type_code);
117206    ELSE
117207       NULL;
117208 -- No business flow processing for business flow method of NONE.
117209    END IF;
117210 
117211    --
117212    -- call analytical criteria
117213    --
117214    
117215    --
117216    -- call description
117217    --
117218    -- No description or it is inherited.
117219    --
117220    -- call ADRs
117221    -- Bug 4922099
117222    --
117223    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117224         (NVL(l_actual_upg_option, 'N') = 'O') OR
117225         (NVL(l_enc_upg_option, 'N') = 'O')
117226       )
117227    THEN
117228    NULL;
117229    --
117230    --
117231    
117232   l_ccid := AcctDerRule_36(
117233            p_application_id           => p_application_id
117234          , p_ae_header_id             => l_ae_header_id 
117235 , p_source_4 => p_source_4
117236 , p_source_4_meaning => p_source_4_meaning
117237 , p_source_17 => p_source_17
117238 , p_source_24 => p_source_24
117239          , x_transaction_coa_id       => l_adr_transaction_coa_id
117240          , x_accounting_coa_id        => l_adr_accounting_coa_id
117241          , x_value_type_code          => l_adr_value_type_code
117242          , p_side                     => 'NA'
117243    );
117244 
117245    xla_ae_lines_pkg.set_ccid(
117246     p_code_combination_id          => l_ccid
117247   , p_value_type_code              => l_adr_value_type_code
117248   , p_transaction_coa_id           => l_adr_transaction_coa_id
117249   , p_accounting_coa_id            => l_adr_accounting_coa_id
117250   , p_adr_code                     => 'AP_WH_DIST_ACCT'
117251   , p_adr_type_code                => 'S'
117252   , p_component_type               => l_component_type
117253   , p_component_code               => l_component_code
117254   , p_component_type_code          => l_component_type_code
117255   , p_component_appl_id            => l_component_appl_id
117256   , p_amb_context_code             => l_amb_context_code
117257   , p_side                         => 'NA'
117258   );
117259 
117260 
117261    l_segment := AcctDerRule_10(
117262            p_application_id           => p_application_id
117263          , p_ae_header_id             => l_ae_header_id 
117264 , p_source_4 => p_source_4
117265 , p_source_4_meaning => p_source_4_meaning
117266 , p_source_17 => p_source_17
117267          , x_transaction_coa_id       => l_adr_transaction_coa_id
117268          , x_accounting_coa_id        => l_adr_accounting_coa_id
117269          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
117270          , x_flex_value_set_id        => l_adr_flex_value_set_id
117271          , x_value_type_code          => l_adr_value_type_code
117272          , x_value_combination_id     => l_adr_value_combination_id
117273          , x_value_segment_code       => l_adr_value_segment_code
117274          , p_side                     => 'NA'
117275          , p_override_seg_flag        => 'Y'
117276    );
117277 
117278    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
117279 
117280       xla_ae_lines_pkg.set_segment(
117281           p_to_segment_code         => 'GL_ACCOUNT'
117282         , p_segment_value           => l_segment
117283         , p_from_segment_code       => l_adr_value_segment_code
117284         , p_from_combination_id     => l_adr_value_combination_id
117285         , p_value_type_code         => l_adr_value_type_code
117286         , p_transaction_coa_id      => l_adr_transaction_coa_id
117287         , p_accounting_coa_id       => l_adr_accounting_coa_id
117288         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
117289         , p_flex_value_set_id       => l_adr_flex_value_set_id
117290         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
117291         , p_adr_type_code           => 'S'
117292         , p_component_type          => l_component_type
117293         , p_component_code          => l_component_code
117294         , p_component_type_code     => l_component_type_code
117298         , p_event_class_code        => 'RECONCILED PAYMENTS'
117295         , p_component_appl_id       => l_component_appl_id
117296         , p_amb_context_code        => l_amb_context_code
117297         , p_entity_code             => 'AP_PAYMENTS'
117299         , p_side                    => 'NA'
117300         );
117301 
117302   END IF;
117303 
117304    l_segment := AcctDerRule_17(
117305            p_application_id           => p_application_id
117306          , p_ae_header_id             => l_ae_header_id 
117307 , p_source_4 => p_source_4
117308 , p_source_4_meaning => p_source_4_meaning
117309 , p_source_24 => p_source_24
117310          , x_transaction_coa_id       => l_adr_transaction_coa_id
117311          , x_accounting_coa_id        => l_adr_accounting_coa_id
117312          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
117313          , x_flex_value_set_id        => l_adr_flex_value_set_id
117314          , x_value_type_code          => l_adr_value_type_code
117315          , x_value_combination_id     => l_adr_value_combination_id
117316          , x_value_segment_code       => l_adr_value_segment_code
117317          , p_side                     => 'NA'
117318          , p_override_seg_flag        => 'Y'
117319    );
117320 
117321    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
117322 
117323       xla_ae_lines_pkg.set_segment(
117324           p_to_segment_code         => 'GL_BALANCING'
117325         , p_segment_value           => l_segment
117326         , p_from_segment_code       => l_adr_value_segment_code
117327         , p_from_combination_id     => l_adr_value_combination_id
117328         , p_value_type_code         => l_adr_value_type_code
117329         , p_transaction_coa_id      => l_adr_transaction_coa_id
117330         , p_accounting_coa_id       => l_adr_accounting_coa_id
117331         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
117332         , p_flex_value_set_id       => l_adr_flex_value_set_id
117333         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
117334         , p_adr_type_code           => 'S'
117335         , p_component_type          => l_component_type
117336         , p_component_code          => l_component_code
117337         , p_component_type_code     => l_component_type_code
117338         , p_component_appl_id       => l_component_appl_id
117339         , p_amb_context_code        => l_amb_context_code
117340         , p_entity_code             => 'AP_PAYMENTS'
117341         , p_event_class_code        => 'RECONCILED PAYMENTS'
117342         , p_side                    => 'NA'
117343         );
117344 
117345   END IF;
117346 
117347    --
117348    --
117349    END IF;
117350    --
117351    -- Bug 4922099
117352    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
117353           (NVL(l_enc_upg_option, 'N') = 'O')
117354         ) AND
117355         (l_bflow_method_code = 'PRIOR_ENTRY')
117356       )
117357    THEN
117358       IF
117359       --
117360       1 = 2
117361       --
117362       THEN
117363       xla_accounting_err_pkg.build_message
117364                                     (p_appli_s_name            => 'XLA'
117365                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117366                                     ,p_token_1                 => 'LINE_NUMBER'
117367                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
117368                                     ,p_token_2                 => 'LINE_TYPE_NAME'
117369                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
117370                                                                              l_component_type
117371                                                                             ,l_component_code
117372                                                                             ,l_component_type_code
117373                                                                             ,l_component_appl_id
117374                                                                             ,l_amb_context_code
117375                                                                             ,l_entity_code
117376                                                                             ,l_event_class_code
117377                                                                            )
117378                                     ,p_token_3                 => 'OWNER'
117379                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
117380                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
117381                                                                           ,p_lookup_code    => l_component_type_code
117382                                                                          )
117383                                     ,p_token_4                 => 'PRODUCT_NAME'
117384                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
117385                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
117386                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
117387                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
117388                                     ,p_ae_header_id            =>  NULL
117389                                        );
117390 
117391         IF (C_LEVEL_ERROR>= g_log_level) THEN
117392                  trace
117393                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117397       END IF;
117394                       ,p_level    => C_LEVEL_ERROR
117395                       ,p_module   => l_log_module);
117396         END IF;
117398    END IF;
117399    --
117400    --
117401    ------------------------------------------------------------------------------------------------
117402    -- 4219869 Business Flow
117403    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
117404    -- Prior Entry.  Currently, the following code is always generated.
117405    ------------------------------------------------------------------------------------------------
117406    XLA_AE_LINES_PKG.ValidateCurrentLine;
117407 
117408    ------------------------------------------------------------------------------------
117409    -- 4219869 Business Flow
117410    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
117411    ------------------------------------------------------------------------------------
117412    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117413 
117414    ----------------------------------------------------------------------------------
117415    -- 4219869 Business Flow
117416    -- Update journal entry status -- Need to generate this within IF <condition>
117417    ----------------------------------------------------------------------------------
117418    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117419          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
117420          ,p_balance_type_code => l_balance_type_code
117421          );
117422 
117423    -------------------------------------------------------------------------------------------
117424    -- 4262811 - Generate the Accrual Reversal lines
117425    -------------------------------------------------------------------------------------------
117426    BEGIN
117427       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
117428                               (g_array_event(p_event_id).array_value_num('header_index'));
117429       IF l_acc_rev_flag IS NULL THEN
117430          l_acc_rev_flag := 'N';
117431       END IF;
117432    EXCEPTION
117433       WHEN OTHERS THEN
117434          l_acc_rev_flag := 'N';
117435    END;
117436    --
117437    IF (l_acc_rev_flag = 'Y') THEN
117438 
117439        -- 4645092  ------------------------------------------------------------------------------
117440        -- To allow MPA report to determine if it should generate report process
117441        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
117442        ------------------------------------------------------------------------------------------
117443 
117444        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
117445        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
117446    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
117447    -- call ADRs
117448    -- Bug 4922099
117449    --
117450    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117451         (NVL(l_actual_upg_option, 'N') = 'O') OR
117452         (NVL(l_enc_upg_option, 'N') = 'O')
117453       )
117454    THEN
117455    NULL;
117456    --
117457    --
117458    
117459   l_ccid := AcctDerRule_36(
117460            p_application_id           => p_application_id
117461          , p_ae_header_id             => l_ae_header_id 
117462 , p_source_4 => p_source_4
117463 , p_source_4_meaning => p_source_4_meaning
117464 , p_source_17 => p_source_17
117465 , p_source_24 => p_source_24
117466          , x_transaction_coa_id       => l_adr_transaction_coa_id
117467          , x_accounting_coa_id        => l_adr_accounting_coa_id
117468          , x_value_type_code          => l_adr_value_type_code
117469          , p_side                     => 'NA'
117470    );
117471 
117472    xla_ae_lines_pkg.set_ccid(
117473     p_code_combination_id          => l_ccid
117474   , p_value_type_code              => l_adr_value_type_code
117475   , p_transaction_coa_id           => l_adr_transaction_coa_id
117476   , p_accounting_coa_id            => l_adr_accounting_coa_id
117477   , p_adr_code                     => 'AP_WH_DIST_ACCT'
117478   , p_adr_type_code                => 'S'
117479   , p_component_type               => l_component_type
117480   , p_component_code               => l_component_code
117481   , p_component_type_code          => l_component_type_code
117482   , p_component_appl_id            => l_component_appl_id
117483   , p_amb_context_code             => l_amb_context_code
117484   , p_side                         => 'NA'
117485   );
117486 
117487 
117488    l_segment := AcctDerRule_10(
117489            p_application_id           => p_application_id
117490          , p_ae_header_id             => l_ae_header_id 
117491 , p_source_4 => p_source_4
117492 , p_source_4_meaning => p_source_4_meaning
117493 , p_source_17 => p_source_17
117494          , x_transaction_coa_id       => l_adr_transaction_coa_id
117495          , x_accounting_coa_id        => l_adr_accounting_coa_id
117496          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
117497          , x_flex_value_set_id        => l_adr_flex_value_set_id
117498          , x_value_type_code          => l_adr_value_type_code
117499          , x_value_combination_id     => l_adr_value_combination_id
117500          , x_value_segment_code       => l_adr_value_segment_code
117501          , p_side                     => 'NA'
117502          , p_override_seg_flag        => 'Y'
117503    );
117504 
117505    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
117506 
117507       xla_ae_lines_pkg.set_segment(
117508           p_to_segment_code         => 'GL_ACCOUNT'
117512         , p_value_type_code         => l_adr_value_type_code
117509         , p_segment_value           => l_segment
117510         , p_from_segment_code       => l_adr_value_segment_code
117511         , p_from_combination_id     => l_adr_value_combination_id
117513         , p_transaction_coa_id      => l_adr_transaction_coa_id
117514         , p_accounting_coa_id       => l_adr_accounting_coa_id
117515         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
117516         , p_flex_value_set_id       => l_adr_flex_value_set_id
117517         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
117518         , p_adr_type_code           => 'S'
117519         , p_component_type          => l_component_type
117520         , p_component_code          => l_component_code
117521         , p_component_type_code     => l_component_type_code
117522         , p_component_appl_id       => l_component_appl_id
117523         , p_amb_context_code        => l_amb_context_code
117524         , p_entity_code             => 'AP_PAYMENTS'
117525         , p_event_class_code        => 'RECONCILED PAYMENTS'
117526         , p_side                    => 'NA'
117527         );
117528 
117529   END IF;
117530 
117531    l_segment := AcctDerRule_17(
117532            p_application_id           => p_application_id
117533          , p_ae_header_id             => l_ae_header_id 
117534 , p_source_4 => p_source_4
117535 , p_source_4_meaning => p_source_4_meaning
117536 , p_source_24 => p_source_24
117537          , x_transaction_coa_id       => l_adr_transaction_coa_id
117538          , x_accounting_coa_id        => l_adr_accounting_coa_id
117539          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
117540          , x_flex_value_set_id        => l_adr_flex_value_set_id
117541          , x_value_type_code          => l_adr_value_type_code
117542          , x_value_combination_id     => l_adr_value_combination_id
117543          , x_value_segment_code       => l_adr_value_segment_code
117544          , p_side                     => 'NA'
117545          , p_override_seg_flag        => 'Y'
117546    );
117547 
117548    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
117549 
117550       xla_ae_lines_pkg.set_segment(
117551           p_to_segment_code         => 'GL_BALANCING'
117552         , p_segment_value           => l_segment
117553         , p_from_segment_code       => l_adr_value_segment_code
117554         , p_from_combination_id     => l_adr_value_combination_id
117555         , p_value_type_code         => l_adr_value_type_code
117556         , p_transaction_coa_id      => l_adr_transaction_coa_id
117557         , p_accounting_coa_id       => l_adr_accounting_coa_id
117558         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
117559         , p_flex_value_set_id       => l_adr_flex_value_set_id
117560         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
117561         , p_adr_type_code           => 'S'
117562         , p_component_type          => l_component_type
117563         , p_component_code          => l_component_code
117564         , p_component_type_code     => l_component_type_code
117565         , p_component_appl_id       => l_component_appl_id
117566         , p_amb_context_code        => l_amb_context_code
117567         , p_entity_code             => 'AP_PAYMENTS'
117568         , p_event_class_code        => 'RECONCILED PAYMENTS'
117569         , p_side                    => 'NA'
117570         );
117571 
117572   END IF;
117573 
117574    --
117575    --
117576    END IF;
117577 
117578        --
117579        -- Update the line information that should be overwritten
117580        --
117581        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
117582                                          p_header_num   => 1);
117583        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
117584 
117585        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
117586 
117587        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
117588           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
117589        END IF;
117590 
117591       --
117592       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
117593       --
117594       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
117595           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
117596       ELSE
117597           ---------------------------------------------------------------------------------------------------
117598           -- 4262811a Switch Sign
117599           ---------------------------------------------------------------------------------------------------
117600           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
117601           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117602                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117603           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117604                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117605           -- 5132302
117606           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
117610 
117607                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117608 
117609       END IF;
117611       -- 4955764
117612       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117613       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
117614 
117615 
117616       XLA_AE_LINES_PKG.ValidateCurrentLine;
117617       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117618 
117619       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117620                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
117621                ,p_balance_type_code => l_balance_type_code);
117622 
117623    END IF;
117624 
117625    -----------------------------------------------------------------------------------------
117626    -- 4262811 Multiperiod Accounting
117627    -----------------------------------------------------------------------------------------
117628      -- No MPA option is assigned.
117629 
117630 
117631 END IF;
117632 END IF;
117633 --
117634 
117635 --
117636 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117637    trace
117638       (p_msg      => 'END of AcctLineType_202'
117639       ,p_level    => C_LEVEL_PROCEDURE
117640       ,p_module   => l_log_module);
117641 END IF;
117642 --
117643 EXCEPTION
117644   WHEN xla_exceptions_pkg.application_exception THEN
117645       RAISE;
117646   WHEN OTHERS THEN
117647        xla_exceptions_pkg.raise_message
117648            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_202');
117649 END AcctLineType_202;
117650 --
117651 
117652 ---------------------------------------
117653 --
117654 -- PRIVATE FUNCTION
117655 --         AcctLineType_203
117656 --
117657 ---------------------------------------
117658 PROCEDURE AcctLineType_203 (
117659   p_application_id        IN NUMBER
117660  ,p_event_id              IN NUMBER
117661  ,p_calculate_acctd_flag  IN VARCHAR2
117662  ,p_calculate_g_l_flag    IN VARCHAR2
117663  ,p_actual_flag           IN OUT VARCHAR2
117664  ,p_balance_type_code     OUT VARCHAR2
117665  ,p_gain_or_loss_ref      OUT VARCHAR2
117666  
117667 --Automatic Offsets Value
117668  , p_source_4            IN VARCHAR2
117669  , p_source_4_meaning    IN VARCHAR2
117670 --Payment Distribution (Payment Rate) Ledger Amount
117671  , p_source_9            IN NUMBER
117672 --Invoice Distribution Account
117673  , p_source_17            IN NUMBER
117674 --Withholding Related Distribution Account
117675  , p_source_24            IN NUMBER
117676 --When to Account for Payment Option
117677  , p_source_38            IN VARCHAR2
117678 --Payment Distribution Type
117679  , p_source_39            IN VARCHAR2
117680  , p_source_39_meaning    IN VARCHAR2
117681 --Accounting Reversal Indicator
117682  , p_source_40            IN VARCHAR2
117683 --Payment Distribution Amount
117684  , p_source_41            IN NUMBER
117685 --Business Flow Accounts Payable Application Identifier
117686  , p_source_42            IN NUMBER
117687 --Payment Distribution Identifier
117688  , p_source_47            IN NUMBER
117689 --Distribution Link Type
117690  , p_source_48            IN VARCHAR2
117691 --Payment Currency Code
117692  , p_source_49            IN VARCHAR2
117693 --Override Accounted Amount Indicator
117694  , p_source_53            IN VARCHAR2
117695  , p_source_53_meaning    IN VARCHAR2
117696 --Payment Supplier Identifier
117697  , p_source_54            IN NUMBER
117698 --Payment Supplier Site Identifier
117699  , p_source_55            IN NUMBER
117700 --Third Party Type
117701  , p_source_56            IN VARCHAR2
117702 --Payment Distribution Reversed Identifier
117703  , p_source_57            IN NUMBER
117704 --Invoice Distribution Tax Line Identifier
117705  , p_source_58            IN NUMBER
117706 --Invoice Distribution Summary Tax Line Identifier
117707  , p_source_59            IN NUMBER
117708 --Payment Type
117709  , p_source_60            IN VARCHAR2
117710  , p_source_60_meaning    IN VARCHAR2
117711 --Invoice Distribution Amount of the Payment Distribution
117712  , p_source_61            IN NUMBER
117713 --Business Flow Invoice Distribution Type
117714  , p_source_62            IN VARCHAR2
117715 --Business Flow Invoice Entity Code
117716  , p_source_63            IN VARCHAR2
117717 --Business Flow Invoice Distribution Identifier
117718  , p_source_64            IN NUMBER
117719 --Business Flow Invoice Identifier
117720  , p_source_65            IN NUMBER
117721 --Invoice Distribution Tax Distribution Identifier from Tax
117722  , p_source_66            IN NUMBER
117723 --Payment Exchange Date
117724  , p_source_114            IN DATE
117725 --Payment Exchange Rate
117726  , p_source_115            IN NUMBER
117727 --Payment Exchange Rate Type
117728  , p_source_116            IN VARCHAR2
117729 )
117730 IS
117731 
117732 l_component_type              VARCHAR2(80);
117733 l_component_code              VARCHAR2(30);
117734 l_component_type_code         VARCHAR2(1);
117735 l_component_appl_id           INTEGER;
117736 l_amb_context_code            VARCHAR2(30);
117737 l_entity_code                 VARCHAR2(30);
117738 l_event_class_code            VARCHAR2(30);
117739 l_ae_header_id                NUMBER;
117740 l_event_type_code             VARCHAR2(30);
117741 l_line_definition_code        VARCHAR2(30);
117742 l_line_definition_owner_code  VARCHAR2(1);
117743 --
117747 l_adr_transaction_coa_id      NUMBER;
117744 -- adr variables
117745 l_segment                     VARCHAR2(30);
117746 l_ccid                        NUMBER;
117748 l_adr_accounting_coa_id       NUMBER;
117749 l_adr_flexfield_segment_code  VARCHAR2(30);
117750 l_adr_flex_value_set_id       NUMBER;
117751 l_adr_value_type_code         VARCHAR2(30);
117752 l_adr_value_combination_id    NUMBER;
117753 l_adr_value_segment_code      VARCHAR2(30);
117754 
117755 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
117756 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
117757 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
117758 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
117759 
117760 -- 4262811 Variables ------------------------------------------------------------------------------------------
117761 l_entered_amt_idx             NUMBER;
117762 l_accted_amt_idx              NUMBER;
117763 l_acc_rev_flag                VARCHAR2(1);
117764 l_accrual_line_num            NUMBER;
117765 l_tmp_amt                     NUMBER;
117766 l_acc_rev_natural_side_code   VARCHAR2(1);
117767 
117768 l_num_entries                 NUMBER;
117769 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
117770 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
117771 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
117772 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
117773 l_recog_line_1                NUMBER;
117774 l_recog_line_2                NUMBER;
117775 
117776 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
117777 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
117778 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
117779 
117780 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
117781 
117782 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
117783 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
117784 
117785 ---------------------------------------------------------------------------------------------------------------
117786 
117787 
117788 --
117789 -- bulk performance
117790 --
117791 l_balance_type_code           VARCHAR2(1);
117792 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
117793 l_log_module                  VARCHAR2(240);
117794 
117795 --
117796 -- Upgrade strategy
117797 --
117798 l_actual_upg_option           VARCHAR2(1);
117799 l_enc_upg_option           VARCHAR2(1);
117800 
117801 --
117802 BEGIN
117803 --
117804 IF g_log_enabled THEN
117805       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_203';
117806 END IF;
117807 --
117808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117809 
117810       trace
117811          (p_msg      => 'BEGIN of AcctLineType_203'
117812          ,p_level    => C_LEVEL_PROCEDURE
117813          ,p_module   => l_log_module);
117814 
117815 END IF;
117816 --
117817 l_component_type             := 'AMB_JLT';
117818 l_component_code             := 'AP_WITHHOLD_TAX_CASH_PMT';
117819 l_component_type_code        := 'S';
117820 l_component_appl_id          :=  200;
117821 l_amb_context_code           := 'DEFAULT';
117822 l_entity_code                := 'AP_PAYMENTS';
117823 l_event_class_code           := 'PAYMENTS';
117824 l_event_type_code            := 'PAYMENTS_ALL';
117825 l_line_definition_owner_code := 'S';
117826 l_line_definition_code       := 'CASH_PAYMENTS_ALL';
117827 --
117828 l_balance_type_code          := 'A';
117829 l_segment                     := NULL;
117830 l_ccid                        := NULL;
117831 l_adr_transaction_coa_id      := NULL;
117832 l_adr_accounting_coa_id       := NULL;
117833 l_adr_flexfield_segment_code  := NULL;
117834 l_adr_flex_value_set_id       := NULL;
117835 l_adr_value_type_code         := NULL;
117836 l_adr_value_combination_id    := NULL;
117837 l_adr_value_segment_code      := NULL;
117838 
117839 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
117840 l_bflow_class_code           := '';    -- 4219869 Business Flow
117841 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
117842 l_budgetary_control_flag     := 'N';
117843 
117844 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
117845 l_bflow_applied_to_amt       := NULL; -- 5132302
117846 l_entered_amt_idx            := NULL;          -- 4262811
117847 l_accted_amt_idx             := NULL;          -- 4262811
117848 l_acc_rev_flag               := NULL;          -- 4262811
117849 l_accrual_line_num           := NULL;          -- 4262811
117850 l_tmp_amt                    := NULL;          -- 4262811
117851 --
117852  
117853 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117854     l_balance_type_code <> 'B' THEN
117855 IF NVL(p_source_38,'
117856 ') <>  'CLEAR_CLEAR' AND 
117857 NVL(p_source_39,'
117858 ') =  'AWT' AND 
117859 NVL(p_source_60,'
117860 ') <>  'R'
117861  THEN 
117862 
117863    --
117864    XLA_AE_LINES_PKG.SetNewLine;
117865 
117866    p_balance_type_code          := l_balance_type_code;
117867    -- set the flag so later we will know whether the gain loss line needs to be created
117868    
117869    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117870      p_actual_flag :='A';
117871    END IF;
117872 
117873    --
117874    -- bulk performance
117878    --
117875    --
117876    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117877                                       p_header_num   => 0); -- 4262811
117879    -- set accounting line options
117880    --
117881    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117882            p_natural_side_code          => 'C'
117883          , p_gain_or_loss_flag          => 'N'
117884          , p_gl_transfer_mode_code      => 'S'
117885          , p_acct_entry_type_code       => 'A'
117886          , p_switch_side_flag           => 'Y'
117887          , p_merge_duplicate_code       => 'A'
117888          );
117889    --
117890    l_acc_rev_natural_side_code := 'D';  -- 4262811
117891    -- 
117892    --
117893    -- set accounting line type info
117894    --
117895    xla_ae_lines_pkg.SetAcctLineType
117896       (p_component_type             => l_component_type
117897       ,p_event_type_code            => l_event_type_code
117898       ,p_line_definition_owner_code => l_line_definition_owner_code
117899       ,p_line_definition_code       => l_line_definition_code
117900       ,p_accounting_line_code       => l_component_code
117901       ,p_accounting_line_type_code  => l_component_type_code
117902       ,p_accounting_line_appl_id    => l_component_appl_id
117903       ,p_amb_context_code           => l_amb_context_code
117904       ,p_entity_code                => l_entity_code
117905       ,p_event_class_code           => l_event_class_code);
117906    --
117907    -- set accounting class
117908    --
117909    xla_ae_lines_pkg.SetAcctClass(
117910            p_accounting_class_code  => 'AWT'
117911          , p_ae_header_id           => l_ae_header_id
117912          );
117913 
117914    --
117915    -- set rounding class
117916    --
117917    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117918                       'AWT';
117919 
117920    --
117921    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
117922    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
117923    --
117924    -- bulk performance
117925    --
117926    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
117927 
117928    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
117929       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
117930 
117931    -- 4955764
117932    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117933       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
117934 
117935    -- 4458381 Public Sector Enh
117936    
117937    --
117938    -- set accounting attributes for the line type
117939    --
117940    l_entered_amt_idx := 10;
117941    l_accted_amt_idx  := 15;
117942    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
117943    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
117944    l_rec_acct_attrs.array_char_value(1)  := p_source_40;
117945    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
117946    l_rec_acct_attrs.array_num_value(2)  := p_source_61;
117947    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
117948    l_rec_acct_attrs.array_num_value(3)  := p_source_42;
117949    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
117950    l_rec_acct_attrs.array_char_value(4)  := p_source_62;
117951    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
117952    l_rec_acct_attrs.array_char_value(5)  := p_source_63;
117953    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
117954    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_64);
117955    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
117956    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_65);
117957    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
117958    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_47);
117959    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
117960    l_rec_acct_attrs.array_char_value(9)  := p_source_48;
117961    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
117962    l_rec_acct_attrs.array_num_value(10)  := p_source_41;
117963    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
117964    l_rec_acct_attrs.array_char_value(11)  := p_source_49;
117965    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
117966    l_rec_acct_attrs.array_date_value(12)  := p_source_114;
117967    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
117968    l_rec_acct_attrs.array_num_value(13)  := p_source_115;
117969    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
117970    l_rec_acct_attrs.array_char_value(14)  := p_source_116;
117971    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
117972    l_rec_acct_attrs.array_num_value(15)  := p_source_9;
117973    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
117974    l_rec_acct_attrs.array_char_value(16)  := p_source_53;
117975    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
117976    l_rec_acct_attrs.array_num_value(17)  := p_source_54;
117977    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
117978    l_rec_acct_attrs.array_num_value(18)  := p_source_55;
117979    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
117980    l_rec_acct_attrs.array_char_value(19)  := p_source_56;
117984    l_rec_acct_attrs.array_char_value(21)  := p_source_48;
117981    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
117982    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_57);
117983    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
117985    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
117986    l_rec_acct_attrs.array_num_value(22)  := p_source_58;
117987    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
117988    l_rec_acct_attrs.array_num_value(23)  := p_source_66;
117989    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
117990    l_rec_acct_attrs.array_num_value(24)  := p_source_59;
117991 
117992    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
117993    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
117994 
117995    ---------------------------------------------------------------------------------------------------------------
117996    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
117997    ---------------------------------------------------------------------------------------------------------------
117998    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
117999 
118000    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118001    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118002 
118003    IF xla_accounting_cache_pkg.GetValueChar
118004          (p_source_code         => 'LEDGER_CATEGORY_CODE'
118005          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
118006    AND l_bflow_method_code = 'PRIOR_ENTRY'
118007 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
118008    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
118009          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
118010        )
118011    THEN
118012          xla_ae_lines_pkg.BflowUpgEntry
118013            (p_business_method_code    => l_bflow_method_code
118014            ,p_business_class_code     => l_bflow_class_code
118015            ,p_balance_type            => l_balance_type_code);
118016    ELSE
118017       NULL;
118018 -- No business flow processing for business flow method of NONE.
118019    END IF;
118020 
118021    --
118022    -- call analytical criteria
118023    --
118024    
118025    --
118026    -- call description
118027    --
118028    -- No description or it is inherited.
118029    --
118030    -- call ADRs
118031    -- Bug 4922099
118032    --
118033    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118034         (NVL(l_actual_upg_option, 'N') = 'O') OR
118035         (NVL(l_enc_upg_option, 'N') = 'O')
118036       )
118037    THEN
118038    NULL;
118039    --
118040    --
118041    
118042   l_ccid := AcctDerRule_36(
118043            p_application_id           => p_application_id
118044          , p_ae_header_id             => l_ae_header_id 
118045 , p_source_4 => p_source_4
118046 , p_source_4_meaning => p_source_4_meaning
118047 , p_source_17 => p_source_17
118048 , p_source_24 => p_source_24
118049          , x_transaction_coa_id       => l_adr_transaction_coa_id
118050          , x_accounting_coa_id        => l_adr_accounting_coa_id
118051          , x_value_type_code          => l_adr_value_type_code
118052          , p_side                     => 'NA'
118053    );
118054 
118055    xla_ae_lines_pkg.set_ccid(
118056     p_code_combination_id          => l_ccid
118057   , p_value_type_code              => l_adr_value_type_code
118058   , p_transaction_coa_id           => l_adr_transaction_coa_id
118059   , p_accounting_coa_id            => l_adr_accounting_coa_id
118060   , p_adr_code                     => 'AP_WH_DIST_ACCT'
118061   , p_adr_type_code                => 'S'
118062   , p_component_type               => l_component_type
118063   , p_component_code               => l_component_code
118064   , p_component_type_code          => l_component_type_code
118065   , p_component_appl_id            => l_component_appl_id
118066   , p_amb_context_code             => l_amb_context_code
118067   , p_side                         => 'NA'
118068   );
118069 
118070 
118071    l_segment := AcctDerRule_10(
118072            p_application_id           => p_application_id
118073          , p_ae_header_id             => l_ae_header_id 
118074 , p_source_4 => p_source_4
118075 , p_source_4_meaning => p_source_4_meaning
118076 , p_source_17 => p_source_17
118077          , x_transaction_coa_id       => l_adr_transaction_coa_id
118078          , x_accounting_coa_id        => l_adr_accounting_coa_id
118079          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
118080          , x_flex_value_set_id        => l_adr_flex_value_set_id
118081          , x_value_type_code          => l_adr_value_type_code
118082          , x_value_combination_id     => l_adr_value_combination_id
118083          , x_value_segment_code       => l_adr_value_segment_code
118084          , p_side                     => 'NA'
118085          , p_override_seg_flag        => 'Y'
118086    );
118087 
118088    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
118089 
118090       xla_ae_lines_pkg.set_segment(
118091           p_to_segment_code         => 'GL_ACCOUNT'
118092         , p_segment_value           => l_segment
118093         , p_from_segment_code       => l_adr_value_segment_code
118094         , p_from_combination_id     => l_adr_value_combination_id
118098         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
118095         , p_value_type_code         => l_adr_value_type_code
118096         , p_transaction_coa_id      => l_adr_transaction_coa_id
118097         , p_accounting_coa_id       => l_adr_accounting_coa_id
118099         , p_flex_value_set_id       => l_adr_flex_value_set_id
118100         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
118101         , p_adr_type_code           => 'S'
118102         , p_component_type          => l_component_type
118103         , p_component_code          => l_component_code
118104         , p_component_type_code     => l_component_type_code
118105         , p_component_appl_id       => l_component_appl_id
118106         , p_amb_context_code        => l_amb_context_code
118107         , p_entity_code             => 'AP_PAYMENTS'
118108         , p_event_class_code        => 'PAYMENTS'
118109         , p_side                    => 'NA'
118110         );
118111 
118112   END IF;
118113 
118114    l_segment := AcctDerRule_17(
118115            p_application_id           => p_application_id
118116          , p_ae_header_id             => l_ae_header_id 
118117 , p_source_4 => p_source_4
118118 , p_source_4_meaning => p_source_4_meaning
118119 , p_source_24 => p_source_24
118120          , x_transaction_coa_id       => l_adr_transaction_coa_id
118121          , x_accounting_coa_id        => l_adr_accounting_coa_id
118122          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
118123          , x_flex_value_set_id        => l_adr_flex_value_set_id
118124          , x_value_type_code          => l_adr_value_type_code
118125          , x_value_combination_id     => l_adr_value_combination_id
118126          , x_value_segment_code       => l_adr_value_segment_code
118127          , p_side                     => 'NA'
118128          , p_override_seg_flag        => 'Y'
118129    );
118130 
118131    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
118132 
118133       xla_ae_lines_pkg.set_segment(
118134           p_to_segment_code         => 'GL_BALANCING'
118135         , p_segment_value           => l_segment
118136         , p_from_segment_code       => l_adr_value_segment_code
118137         , p_from_combination_id     => l_adr_value_combination_id
118138         , p_value_type_code         => l_adr_value_type_code
118139         , p_transaction_coa_id      => l_adr_transaction_coa_id
118140         , p_accounting_coa_id       => l_adr_accounting_coa_id
118141         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
118142         , p_flex_value_set_id       => l_adr_flex_value_set_id
118143         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
118144         , p_adr_type_code           => 'S'
118145         , p_component_type          => l_component_type
118146         , p_component_code          => l_component_code
118147         , p_component_type_code     => l_component_type_code
118148         , p_component_appl_id       => l_component_appl_id
118149         , p_amb_context_code        => l_amb_context_code
118150         , p_entity_code             => 'AP_PAYMENTS'
118151         , p_event_class_code        => 'PAYMENTS'
118152         , p_side                    => 'NA'
118153         );
118154 
118155   END IF;
118156 
118157    --
118158    --
118159    END IF;
118160    --
118161    -- Bug 4922099
118162    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
118163           (NVL(l_enc_upg_option, 'N') = 'O')
118164         ) AND
118165         (l_bflow_method_code = 'PRIOR_ENTRY')
118166       )
118167    THEN
118168       IF
118169       --
118170       1 = 2
118171       --
118172       THEN
118173       xla_accounting_err_pkg.build_message
118174                                     (p_appli_s_name            => 'XLA'
118175                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118176                                     ,p_token_1                 => 'LINE_NUMBER'
118177                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
118178                                     ,p_token_2                 => 'LINE_TYPE_NAME'
118179                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
118180                                                                              l_component_type
118181                                                                             ,l_component_code
118182                                                                             ,l_component_type_code
118183                                                                             ,l_component_appl_id
118184                                                                             ,l_amb_context_code
118185                                                                             ,l_entity_code
118186                                                                             ,l_event_class_code
118187                                                                            )
118188                                     ,p_token_3                 => 'OWNER'
118189                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
118190                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
118191                                                                           ,p_lookup_code    => l_component_type_code
118192                                                                          )
118193                                     ,p_token_4                 => 'PRODUCT_NAME'
118197                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
118194                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
118195                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
118196                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
118198                                     ,p_ae_header_id            =>  NULL
118199                                        );
118200 
118201         IF (C_LEVEL_ERROR>= g_log_level) THEN
118202                  trace
118203                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118204                       ,p_level    => C_LEVEL_ERROR
118205                       ,p_module   => l_log_module);
118206         END IF;
118207       END IF;
118208    END IF;
118209    --
118210    --
118211    ------------------------------------------------------------------------------------------------
118212    -- 4219869 Business Flow
118213    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
118214    -- Prior Entry.  Currently, the following code is always generated.
118215    ------------------------------------------------------------------------------------------------
118216    XLA_AE_LINES_PKG.ValidateCurrentLine;
118217 
118218    ------------------------------------------------------------------------------------
118219    -- 4219869 Business Flow
118220    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
118221    ------------------------------------------------------------------------------------
118222    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118223 
118224    ----------------------------------------------------------------------------------
118225    -- 4219869 Business Flow
118226    -- Update journal entry status -- Need to generate this within IF <condition>
118227    ----------------------------------------------------------------------------------
118228    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118229          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
118230          ,p_balance_type_code => l_balance_type_code
118231          );
118232 
118233    -------------------------------------------------------------------------------------------
118234    -- 4262811 - Generate the Accrual Reversal lines
118235    -------------------------------------------------------------------------------------------
118236    BEGIN
118237       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
118238                               (g_array_event(p_event_id).array_value_num('header_index'));
118239       IF l_acc_rev_flag IS NULL THEN
118240          l_acc_rev_flag := 'N';
118241       END IF;
118242    EXCEPTION
118243       WHEN OTHERS THEN
118244          l_acc_rev_flag := 'N';
118245    END;
118246    --
118247    IF (l_acc_rev_flag = 'Y') THEN
118248 
118249        -- 4645092  ------------------------------------------------------------------------------
118250        -- To allow MPA report to determine if it should generate report process
118251        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
118252        ------------------------------------------------------------------------------------------
118253 
118254        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
118255        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
118256    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
118257    -- call ADRs
118258    -- Bug 4922099
118259    --
118260    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118261         (NVL(l_actual_upg_option, 'N') = 'O') OR
118262         (NVL(l_enc_upg_option, 'N') = 'O')
118263       )
118264    THEN
118265    NULL;
118266    --
118267    --
118268    
118269   l_ccid := AcctDerRule_36(
118270            p_application_id           => p_application_id
118271          , p_ae_header_id             => l_ae_header_id 
118272 , p_source_4 => p_source_4
118273 , p_source_4_meaning => p_source_4_meaning
118274 , p_source_17 => p_source_17
118275 , p_source_24 => p_source_24
118276          , x_transaction_coa_id       => l_adr_transaction_coa_id
118277          , x_accounting_coa_id        => l_adr_accounting_coa_id
118278          , x_value_type_code          => l_adr_value_type_code
118279          , p_side                     => 'NA'
118280    );
118281 
118282    xla_ae_lines_pkg.set_ccid(
118283     p_code_combination_id          => l_ccid
118284   , p_value_type_code              => l_adr_value_type_code
118285   , p_transaction_coa_id           => l_adr_transaction_coa_id
118286   , p_accounting_coa_id            => l_adr_accounting_coa_id
118287   , p_adr_code                     => 'AP_WH_DIST_ACCT'
118288   , p_adr_type_code                => 'S'
118289   , p_component_type               => l_component_type
118290   , p_component_code               => l_component_code
118291   , p_component_type_code          => l_component_type_code
118292   , p_component_appl_id            => l_component_appl_id
118293   , p_amb_context_code             => l_amb_context_code
118294   , p_side                         => 'NA'
118295   );
118296 
118297 
118298    l_segment := AcctDerRule_10(
118299            p_application_id           => p_application_id
118300          , p_ae_header_id             => l_ae_header_id 
118301 , p_source_4 => p_source_4
118302 , p_source_4_meaning => p_source_4_meaning
118306          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
118303 , p_source_17 => p_source_17
118304          , x_transaction_coa_id       => l_adr_transaction_coa_id
118305          , x_accounting_coa_id        => l_adr_accounting_coa_id
118307          , x_flex_value_set_id        => l_adr_flex_value_set_id
118308          , x_value_type_code          => l_adr_value_type_code
118309          , x_value_combination_id     => l_adr_value_combination_id
118310          , x_value_segment_code       => l_adr_value_segment_code
118311          , p_side                     => 'NA'
118312          , p_override_seg_flag        => 'Y'
118313    );
118314 
118315    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
118316 
118317       xla_ae_lines_pkg.set_segment(
118318           p_to_segment_code         => 'GL_ACCOUNT'
118319         , p_segment_value           => l_segment
118320         , p_from_segment_code       => l_adr_value_segment_code
118321         , p_from_combination_id     => l_adr_value_combination_id
118322         , p_value_type_code         => l_adr_value_type_code
118323         , p_transaction_coa_id      => l_adr_transaction_coa_id
118324         , p_accounting_coa_id       => l_adr_accounting_coa_id
118325         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
118326         , p_flex_value_set_id       => l_adr_flex_value_set_id
118327         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
118328         , p_adr_type_code           => 'S'
118329         , p_component_type          => l_component_type
118330         , p_component_code          => l_component_code
118331         , p_component_type_code     => l_component_type_code
118332         , p_component_appl_id       => l_component_appl_id
118333         , p_amb_context_code        => l_amb_context_code
118334         , p_entity_code             => 'AP_PAYMENTS'
118335         , p_event_class_code        => 'PAYMENTS'
118336         , p_side                    => 'NA'
118337         );
118338 
118339   END IF;
118340 
118341    l_segment := AcctDerRule_17(
118342            p_application_id           => p_application_id
118343          , p_ae_header_id             => l_ae_header_id 
118344 , p_source_4 => p_source_4
118345 , p_source_4_meaning => p_source_4_meaning
118346 , p_source_24 => p_source_24
118347          , x_transaction_coa_id       => l_adr_transaction_coa_id
118348          , x_accounting_coa_id        => l_adr_accounting_coa_id
118349          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
118350          , x_flex_value_set_id        => l_adr_flex_value_set_id
118351          , x_value_type_code          => l_adr_value_type_code
118352          , x_value_combination_id     => l_adr_value_combination_id
118353          , x_value_segment_code       => l_adr_value_segment_code
118354          , p_side                     => 'NA'
118355          , p_override_seg_flag        => 'Y'
118356    );
118357 
118358    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
118359 
118360       xla_ae_lines_pkg.set_segment(
118361           p_to_segment_code         => 'GL_BALANCING'
118362         , p_segment_value           => l_segment
118363         , p_from_segment_code       => l_adr_value_segment_code
118364         , p_from_combination_id     => l_adr_value_combination_id
118365         , p_value_type_code         => l_adr_value_type_code
118366         , p_transaction_coa_id      => l_adr_transaction_coa_id
118367         , p_accounting_coa_id       => l_adr_accounting_coa_id
118368         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
118369         , p_flex_value_set_id       => l_adr_flex_value_set_id
118370         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
118371         , p_adr_type_code           => 'S'
118372         , p_component_type          => l_component_type
118373         , p_component_code          => l_component_code
118374         , p_component_type_code     => l_component_type_code
118375         , p_component_appl_id       => l_component_appl_id
118376         , p_amb_context_code        => l_amb_context_code
118377         , p_entity_code             => 'AP_PAYMENTS'
118378         , p_event_class_code        => 'PAYMENTS'
118379         , p_side                    => 'NA'
118380         );
118381 
118382   END IF;
118383 
118384    --
118385    --
118386    END IF;
118387 
118388        --
118389        -- Update the line information that should be overwritten
118390        --
118391        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
118392                                          p_header_num   => 1);
118393        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
118394 
118395        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
118396 
118397        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
118398           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
118399        END IF;
118400 
118401       --
118402       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
118403       --
118404       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
118405           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
118406       ELSE
118407           ---------------------------------------------------------------------------------------------------
118408           -- 4262811a Switch Sign
118412                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118409           ---------------------------------------------------------------------------------------------------
118410           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
118411           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118413           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118414                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118415           -- 5132302
118416           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
118417                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118418 
118419       END IF;
118420 
118421       -- 4955764
118422       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118423       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
118424 
118425 
118426       XLA_AE_LINES_PKG.ValidateCurrentLine;
118427       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118428 
118429       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118430                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
118431                ,p_balance_type_code => l_balance_type_code);
118432 
118433    END IF;
118434 
118435    -----------------------------------------------------------------------------------------
118436    -- 4262811 Multiperiod Accounting
118437    -----------------------------------------------------------------------------------------
118438      -- No MPA option is assigned.
118439 
118440 
118441 END IF;
118442 END IF;
118443 --
118444 
118445 --
118446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118447    trace
118448       (p_msg      => 'END of AcctLineType_203'
118449       ,p_level    => C_LEVEL_PROCEDURE
118450       ,p_module   => l_log_module);
118451 END IF;
118452 --
118453 EXCEPTION
118454   WHEN xla_exceptions_pkg.application_exception THEN
118455       RAISE;
118456   WHEN OTHERS THEN
118457        xla_exceptions_pkg.raise_message
118458            (p_location => 'XLA_00200_AAD_S_000010_PKG.AcctLineType_203');
118459 END AcctLineType_203;
118460 --
118461 
118462 ---------------------------------------
118463 --
118464 -- PRIVATE PROCEDURE
118465 --         insert_sources_204
118466 --
118467 ----------------------------------------
118468 --
118469 PROCEDURE insert_sources_204(
118470                                 p_target_ledger_id       IN NUMBER
118471                               , p_language               IN VARCHAR2
118472                               , p_sla_ledger_id          IN NUMBER
118473                               , p_pad_start_date         IN DATE
118474                               , p_pad_end_date           IN DATE
118475                          )
118476 IS
118477 
118478 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
118479 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
118480 p_apps_owner                   VARCHAR2(30);
118481 l_log_module                   VARCHAR2(240);
118482 BEGIN
118483 IF g_log_enabled THEN
118484       l_log_module := C_DEFAULT_MODULE||'.insert_sources_204';
118485 END IF;
118486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118487 
118488       trace
118489          (p_msg      => 'BEGIN of insert_sources_204'
118490          ,p_level    => C_LEVEL_PROCEDURE
118491          ,p_module   => l_log_module);
118492 
118493 END IF;
118494 
118495 -- select APPS owner
118496 SELECT oracle_username
118497   INTO p_apps_owner
118498   FROM fnd_oracle_userid
118499  WHERE read_only_flag = 'U'
118500 ;
118501 
118502 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
118503       trace
118504          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
118505                         ' - p_language = '||p_language||
118506                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
118507                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
118508                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
118509                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
118510          ,p_level    => C_LEVEL_STATEMENT
118511          ,p_module   => l_log_module);
118512 END IF;
118513 
118514 
118515 --
118516 INSERT INTO xla_diag_sources --hdr2
118517 (
118518         event_id
118519       , ledger_id
118520       , sla_ledger_id
118521       , description_language
118522       , object_name
118523       , object_type_code
118524       , line_number
118525       , source_application_id
118526       , source_type_code
118527       , source_code
118528       , source_value
118529       , source_meaning
118530       , created_by
118531       , creation_date
118532       , last_update_date
118533       , last_updated_by
118534       , last_update_login
118535       , program_update_date
118536       , program_application_id
118537       , program_id
118538       , request_id
118539 )
118540 SELECT
118541         event_id
118542       , p_target_ledger_id
118543       , p_sla_ledger_id
118544       , p_language
118545       , object_name
118546       , object_type_code
118547       , line_number
118548       , source_application_id
118549       , source_type_code
118550       , source_code
118554       , TRUNC(SYSDATE)
118551       , SUBSTR(source_value ,1,1996)
118552       , SUBSTR(source_meaning ,1,200)
118553       , xla_environment_pkg.g_Usr_Id
118555       , TRUNC(SYSDATE)
118556       , xla_environment_pkg.g_Usr_Id
118557       , xla_environment_pkg.g_Login_Id
118558       , TRUNC(SYSDATE)
118559       , xla_environment_pkg.g_Prog_Appl_Id
118560       , xla_environment_pkg.g_Prog_Id
118561       , xla_environment_pkg.g_Req_Id
118562   FROM (
118563        SELECT xet.event_id                  event_id
118564             , 0                          line_number
118565             , CASE r
118566                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
118567                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
118568                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
118569                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
118570                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
118571                 
118572                ELSE null
118573               END                           object_name
118574             , CASE r
118575                 WHEN 1 THEN 'HEADER' 
118576                 WHEN 2 THEN 'HEADER' 
118577                 WHEN 3 THEN 'HEADER' 
118578                 WHEN 4 THEN 'HEADER' 
118579                 WHEN 5 THEN 'HEADER' 
118580                 
118581                 ELSE null
118582               END                           object_type_code
118583             , CASE r
118584                 WHEN 1 THEN '200' 
118585                 WHEN 2 THEN '200' 
118586                 WHEN 3 THEN '200' 
118587                 WHEN 4 THEN '200' 
118588                 WHEN 5 THEN '200' 
118589                 
118590                 ELSE null
118591               END                           source_application_id
118592             , 'S'             source_type_code
118593             , CASE r
118594                 WHEN 1 THEN 'THIRD_PARTY_TYPE' 
118595                 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE' 
118596                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
118597                 WHEN 4 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
118598                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
118599                 
118600                 ELSE null
118601               END                           source_code
118602             , CASE r
118603                 WHEN 1 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
118604                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
118605                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
118606                 WHEN 4 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
118607                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
118608                 
118609                 ELSE null
118610               END                           source_value
118611             , null              source_meaning
118612          FROM xla_events_gt     xet  
118613       , AP_INVOICE_EXTRACT_HEADER_V  h2
118614              ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
118615          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
118616            AND xet.event_class_code = C_EVENT_CLASS_CODE
118617               AND h2.event_id = xet.event_id
118618 
118619 )
118620 ;
118621 --
118622 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
118623 
118624       trace
118625          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
118626          ,p_level    => C_LEVEL_STATEMENT
118627          ,p_module   => l_log_module);
118628 
118629 END IF;
118630 --
118631 
118632 
118633 
118634 --
118635 INSERT INTO xla_diag_sources  --line2
118636 (
118637         event_id
118638       , ledger_id
118639       , sla_ledger_id
118640       , description_language
118641       , object_name
118642       , object_type_code
118643       , line_number
118644       , source_application_id
118645       , source_type_code
118646       , source_code
118647       , source_value
118648       , source_meaning
118649       , created_by
118650       , creation_date
118651       , last_update_date
118652       , last_updated_by
118653       , last_update_login
118654       , program_update_date
118655       , program_application_id
118656       , program_id
118657       , request_id
118658 )
118659 SELECT  event_id
118660       , p_target_ledger_id
118661       , p_sla_ledger_id
118662       , p_language
118663       , object_name
118664       , object_type_code
118665       , line_number
118666       , source_application_id
118667       , source_type_code
118668       , source_code
118669       , SUBSTR(source_value,1,1996)
118670       , SUBSTR(source_meaning ,1,200)
118671       , xla_environment_pkg.g_Usr_Id
118672       , TRUNC(SYSDATE)
118673       , TRUNC(SYSDATE)
118674       , xla_environment_pkg.g_Usr_Id
118675       , xla_environment_pkg.g_Login_Id
118676       , TRUNC(SYSDATE)
118677       , xla_environment_pkg.g_Prog_Appl_Id
118678       , xla_environment_pkg.g_Prog_Id
118679       , xla_environment_pkg.g_Req_Id
118680   FROM (
118681        SELECT xet.event_id                  event_id
118682             , l1.line_number                 line_number
118683             , CASE r
118684                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118685                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118686                 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
118687                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118688                 WHEN 5 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
118689                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118693                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118690                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118691                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118692                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118694                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118695                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118696                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118697                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118698                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118699                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
118700                 
118701                ELSE null
118702               END                           object_name
118703             , CASE r
118704                 WHEN 1 THEN 'LINE' 
118705                 WHEN 2 THEN 'LINE' 
118706                 WHEN 3 THEN 'LINE' 
118707                 WHEN 4 THEN 'LINE' 
118708                 WHEN 5 THEN 'LINE' 
118709                 WHEN 6 THEN 'LINE' 
118710                 WHEN 7 THEN 'LINE' 
118711                 WHEN 8 THEN 'LINE' 
118712                 WHEN 9 THEN 'LINE' 
118713                 WHEN 10 THEN 'LINE' 
118714                 WHEN 11 THEN 'LINE' 
118715                 WHEN 12 THEN 'LINE' 
118716                 WHEN 13 THEN 'LINE' 
118717                 WHEN 14 THEN 'LINE' 
118718                 WHEN 15 THEN 'LINE' 
118719                 WHEN 16 THEN 'LINE' 
118720                 
118721                 ELSE null
118722               END                           object_type_code
118723             , CASE r
118724                 WHEN 1 THEN '200' 
118725                 WHEN 2 THEN '200' 
118726                 WHEN 3 THEN '200' 
118727                 WHEN 4 THEN '200' 
118728                 WHEN 5 THEN '200' 
118729                 WHEN 6 THEN '200' 
118730                 WHEN 7 THEN '200' 
118731                 WHEN 8 THEN '200' 
118732                 WHEN 9 THEN '200' 
118733                 WHEN 10 THEN '200' 
118734                 WHEN 11 THEN '200' 
118735                 WHEN 12 THEN '200' 
118736                 WHEN 13 THEN '200' 
118737                 WHEN 14 THEN '200' 
118738                 WHEN 15 THEN '200' 
118739                 WHEN 16 THEN '200' 
118740                 
118741                 ELSE null
118742               END                           source_application_id
118743             , 'S'             source_type_code
118744             , CASE r
118745                 WHEN 1 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
118746                 WHEN 2 THEN 'DISTRIBUTION_LINK_TYPE' 
118747                 WHEN 3 THEN 'TAX_LINE_ID' 
118748                 WHEN 4 THEN 'SUMMARY_TAX_LINE_ID' 
118749                 WHEN 5 THEN 'REC_NREC_TAX_DIST_ID' 
118750                 WHEN 6 THEN 'UPG_ENC_CR_CCID' 
118751                 WHEN 7 THEN 'UPG_ENC_CR_AMT' 
118752                 WHEN 8 THEN 'UPG_ENC_CR_BASE_AMT' 
118753                 WHEN 9 THEN 'UPG_ENC_DR_CCID' 
118754                 WHEN 10 THEN 'UPG_ENC_DR_AMT' 
118755                 WHEN 11 THEN 'UPG_ENC_DR_BASE_AMT' 
118756                 WHEN 12 THEN 'UPG_AP_ENCUM_OPTION' 
118757                 WHEN 13 THEN 'UPG_CR_ENC_TYPE_ID' 
118758                 WHEN 14 THEN 'UPG_DR_ENC_TYPE_ID' 
118759                 WHEN 15 THEN 'AID_INVOICE_DIST_ID' 
118760                 WHEN 16 THEN 'AID_PARENT_REVERSAL_ID' 
118761                 
118762                 ELSE null
118763               END                           source_code
118764             , CASE r
118765                 WHEN 1 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
118766                 WHEN 2 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
118767                 WHEN 3 THEN TO_CHAR(l3.TAX_LINE_ID)
118768                 WHEN 4 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
118769                 WHEN 5 THEN TO_CHAR(l4.REC_NREC_TAX_DIST_ID)
118770                 WHEN 6 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
118771                 WHEN 7 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
118772                 WHEN 8 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
118773                 WHEN 9 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
118774                 WHEN 10 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
118775                 WHEN 11 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
118776                 WHEN 12 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
118777                 WHEN 13 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
118778                 WHEN 14 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
118779                 WHEN 15 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
118780                 WHEN 16 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
118781                 
118782                 ELSE null
118783               END                           source_value
118784             , null              source_meaning
118785          FROM  xla_events_gt     xet  
118786         , AP_INVOICE_EXTRACT_DETAILS_V  l1
118787         , ZX_AP_DEF_TAX_EXTRACT_V  l3
118788         , ZX_AP_TAX_JRNL_LINE_DESC_V  l4
118789             , (select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
118790         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
118791           AND xet.event_class_code = C_EVENT_CLASS_CODE
118792             AND l1.event_id          = xet.event_id
118793  AND l1.zrnd_tax_dist_id = l3.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+) 
118794 )
118795 ;
118796 --
118797 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
118798 
118799       trace
118800          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
118804 END IF;
118801          ,p_level    => C_LEVEL_STATEMENT
118802          ,p_module   => l_log_module);
118803 
118805 
118806 
118807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118808       trace
118809          (p_msg      => 'END of insert_sources_204'
118810          ,p_level    => C_LEVEL_PROCEDURE
118811          ,p_module   => l_log_module);
118812 END IF;
118813 EXCEPTION
118814   WHEN xla_exceptions_pkg.application_exception THEN
118815       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
118816             trace
118817                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
118818                ,p_level    => C_LEVEL_EXCEPTION
118819                ,p_module   => l_log_module);
118820       END IF;
118821       RAISE;
118822   WHEN OTHERS THEN
118823       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
118824             trace
118825                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
118826                ,p_level    => C_LEVEL_EXCEPTION
118827                ,p_module   => l_log_module);
118828        END IF;
118829        xla_exceptions_pkg.raise_message
118830            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_204');
118831 END insert_sources_204;
118832 --
118833 
118834 ---------------------------------------
118835 --
118836 -- PRIVATE FUNCTION
118837 --         EventClass_204
118838 --
118839 ----------------------------------------
118840 --
118841 FUNCTION EventClass_204
118842        (p_application_id         IN NUMBER
118843        ,p_base_ledger_id         IN NUMBER
118844        ,p_target_ledger_id       IN NUMBER
118845        ,p_language               IN VARCHAR2
118846        ,p_currency_code          IN VARCHAR2
118847        ,p_sla_ledger_id          IN NUMBER
118848        ,p_pad_start_date         IN DATE
118849        ,p_pad_end_date           IN DATE
118850        ,p_primary_ledger_id      IN NUMBER)
118851 RETURN BOOLEAN IS
118852 --
118853 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
118854 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
118855 
118856 l_calculate_acctd_flag   VARCHAR2(1) :='N';
118857 l_calculate_g_l_flag     VARCHAR2(1) :='N';
118858 --
118859 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118860 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118861 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
118862 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118863 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118864 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
118865 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
118866 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118867 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118868 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118869 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118870 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118871 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118872 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
118873 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118874 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118875 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118876 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
118877 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118878 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118879 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118880 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
118881 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
118882 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
118883 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
118884 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
118885 
118886 l_event_id                             NUMBER;
118887 l_previous_event_id                    NUMBER;
118888 l_first_event_id                       NUMBER;
118889 l_last_event_id                        NUMBER;
118890 
118891 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
118892 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
118893 --
118894 --
118895 l_result                    BOOLEAN := TRUE;
118896 l_rows                      NUMBER  := 1000;
118897 l_event_type_name           VARCHAR2(80) := 'All';
118898 l_event_class_name          VARCHAR2(80) := 'Credit Memos';
118899 l_description               VARCHAR2(4000);
118900 l_transaction_reversal      NUMBER;
118901 l_ae_header_id              NUMBER;
118902 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
118903 l_log_module                VARCHAR2(240);
118904 --
118905 l_acct_reversal_source      VARCHAR2(30);
118906 l_trx_reversal_source       VARCHAR2(30);
118907 
118908 l_continue_with_lines       BOOLEAN := TRUE;
118909 --
118910 l_acc_rev_gl_date_source    DATE;                      -- 4262811
118911 --
118912 type t_array_event_id is table of number index by binary_integer;
118913 
118917 l_actual_flag                        VARCHAR2(1) := NULL;
118914 l_rec_array_event                    t_rec_array_event;
118915 l_null_rec_array_event               t_rec_array_event;
118916 l_array_ae_header_id                 xla_number_array_type;
118918 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
118919 l_balance_type_code                  VARCHAR2(1) :=NULL;
118920 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
118921 
118922 --
118923 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
118924 --
118925 
118926 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
118927 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
118928 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
118929 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
118930 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
118931 
118932 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
118933 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
118934 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
118935 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
118936 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
118937 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
118938 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
118939 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
118940 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
118941 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
118942 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
118943 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
118944 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
118945 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
118946 TYPE t_array_source_156 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
118947 TYPE t_array_source_157 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
118948 
118949 l_array_source_56              t_array_source_56;
118950 l_array_source_80              t_array_source_80;
118951 l_array_source_152              t_array_source_152;
118952 l_array_source_153              t_array_source_153;
118953 l_array_source_154              t_array_source_154;
118954 
118955 l_array_source_40      t_array_source_40;
118956 l_array_source_48      t_array_source_48;
118957 l_array_source_58      t_array_source_58;
118958 l_array_source_59      t_array_source_59;
118959 l_array_source_66      t_array_source_66;
118960 l_array_source_78      t_array_source_78;
118961 l_array_source_79      t_array_source_79;
118962 l_array_source_81      t_array_source_81;
118963 l_array_source_83      t_array_source_83;
118964 l_array_source_84      t_array_source_84;
118965 l_array_source_85      t_array_source_85;
118966 l_array_source_86      t_array_source_86;
118967 l_array_source_96      t_array_source_96;
118968 l_array_source_97      t_array_source_97;
118969 l_array_source_156      t_array_source_156;
118970 l_array_source_157      t_array_source_157;
118971 
118972 --
118973 CURSOR header_cur
118974 IS
118975 SELECT /*+ leading(xet) cardinality(xet,1) */
118976 -- Event Class Code: CREDIT MEMOS
118977     xet.entity_id
118978    ,xet.legal_entity_id
118979    ,xet.entity_code
118980    ,xet.transaction_number
118981    ,xet.event_id
118982    ,xet.event_class_code
118983    ,xet.event_type_code
118984    ,xet.event_number
118985    ,xet.event_date
118986    ,xet.transaction_date
118987    ,xet.reference_num_1
118988    ,xet.reference_num_2
118989    ,xet.reference_num_3
118990    ,xet.reference_num_4
118991    ,xet.reference_char_1
118992    ,xet.reference_char_2
118993    ,xet.reference_char_3
118994    ,xet.reference_char_4
118995    ,xet.reference_date_1
118996    ,xet.reference_date_2
118997    ,xet.reference_date_3
118998    ,xet.reference_date_4
118999    ,xet.event_created_by
119000    ,xet.budgetary_control_flag 
119001   , h2.THIRD_PARTY_TYPE    source_56
119002   , h2.AI_INVOICE_CURRENCY_CODE    source_80
119003   , h2.INV_DOC_SEQUENCE_CATEGORY    source_152
119004   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_153
119005   , h2.INV_DOC_SEQUENCE_VALUE    source_154
119006   FROM xla_events_gt     xet 
119007   , AP_INVOICE_EXTRACT_HEADER_V  h2
119008  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
119009    and xet.event_class_code = C_EVENT_CLASS_CODE
119010    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
119011 
119012  ORDER BY event_id
119013 ;
119014 
119015 
119016 --
119017 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
119018 IS
119022    ,xet.legal_entity_id
119019 SELECT  /*+ leading(xet) cardinality(xet,1) */
119020 -- Event Class Code: CREDIT MEMOS
119021     xet.entity_id
119023    ,xet.entity_code
119024    ,xet.transaction_number
119025    ,xet.event_id
119026    ,xet.event_class_code
119027    ,xet.event_type_code
119028    ,xet.event_number
119029    ,xet.event_date
119030    ,xet.transaction_date
119031    ,xet.reference_num_1
119032    ,xet.reference_num_2
119033    ,xet.reference_num_3
119034    ,xet.reference_num_4
119035    ,xet.reference_char_1
119036    ,xet.reference_char_2
119037    ,xet.reference_char_3
119038    ,xet.reference_char_4
119039    ,xet.reference_date_1
119040    ,xet.reference_date_2
119041    ,xet.reference_date_3
119042    ,xet.reference_date_4
119043    ,xet.event_created_by
119044    ,xet.budgetary_control_flag
119045  , l1.LINE_NUMBER  
119046   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_40
119047   , l1.DISTRIBUTION_LINK_TYPE    source_48
119048   , l3.TAX_LINE_ID    source_58
119049   , l1.SUMMARY_TAX_LINE_ID    source_59
119050   , l4.REC_NREC_TAX_DIST_ID    source_66
119051   , l1.UPG_ENC_CR_CCID    source_78
119052   , l1.UPG_ENC_CR_AMT    source_79
119053   , l1.UPG_ENC_CR_BASE_AMT    source_81
119054   , l1.UPG_ENC_DR_CCID    source_83
119055   , l1.UPG_ENC_DR_AMT    source_84
119056   , l1.UPG_ENC_DR_BASE_AMT    source_85
119057   , l1.UPG_AP_ENCUM_OPTION    source_86
119058   , l1.UPG_CR_ENC_TYPE_ID    source_96
119059   , l1.UPG_DR_ENC_TYPE_ID    source_97
119060   , l1.AID_INVOICE_DIST_ID    source_156
119061   , l1.AID_PARENT_REVERSAL_ID    source_157
119062   FROM xla_events_gt     xet 
119063   , AP_INVOICE_EXTRACT_DETAILS_V  l1
119064   , ZX_AP_DEF_TAX_EXTRACT_V  l3
119065   , ZX_AP_TAX_JRNL_LINE_DESC_V  l4
119066  WHERE xet.event_id between x_first_event_id and x_last_event_id
119067    and xet.event_date between p_pad_start_date and p_pad_end_date
119068    and xet.event_class_code = C_EVENT_CLASS_CODE
119069    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
119070  AND l1.ZRND_tax_dist_id = l3.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) ;
119071 
119072 --
119073 BEGIN
119074 IF g_log_enabled THEN
119075    l_log_module := C_DEFAULT_MODULE||'.EventClass_204';
119076 END IF;
119077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119078    trace
119079       (p_msg      => 'BEGIN of EventClass_204'
119080       ,p_level    => C_LEVEL_PROCEDURE
119081       ,p_module   => l_log_module);
119082 END IF;
119083 
119084 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119085    trace
119086       (p_msg      => 'p_application_id = '||p_application_id||
119087                      ' - p_base_ledger_id = '||p_base_ledger_id||
119088                      ' - p_target_ledger_id  = '||p_target_ledger_id||
119089                      ' - p_language = '||p_language||
119090                      ' - p_currency_code = '||p_currency_code||
119091                      ' - p_sla_ledger_id = '||p_sla_ledger_id
119092       ,p_level    => C_LEVEL_STATEMENT
119093       ,p_module   => l_log_module);
119094 END IF;
119095 --
119096 -- initialze arrays
119097 --
119098 g_array_event.DELETE;
119099 l_rec_array_event := l_null_rec_array_event;
119100 --
119101 --------------------------------------
119102 -- 4262811 Initialze MPA Line Number
119103 --------------------------------------
119104 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
119105 
119106 --
119107 
119108 --
119109 OPEN header_cur;
119110 --
119111 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119112    trace
119113    (p_msg      => 'SQL - FETCH header_cur'
119114    ,p_level    => C_LEVEL_STATEMENT
119115    ,p_module   => l_log_module);
119116 END IF;
119117 --
119118 LOOP
119119 FETCH header_cur BULK COLLECT INTO
119120         l_array_entity_id
119121       , l_array_legal_entity_id
119122       , l_array_entity_code
119123       , l_array_transaction_num
119124       , l_array_event_id
119125       , l_array_class_code
119126       , l_array_event_type
119127       , l_array_event_number
119128       , l_array_event_date
119129       , l_array_transaction_date
119130       , l_array_reference_num_1
119131       , l_array_reference_num_2
119132       , l_array_reference_num_3
119133       , l_array_reference_num_4
119134       , l_array_reference_char_1
119135       , l_array_reference_char_2
119136       , l_array_reference_char_3
119137       , l_array_reference_char_4
119138       , l_array_reference_date_1
119139       , l_array_reference_date_2
119140       , l_array_reference_date_3
119141       , l_array_reference_date_4
119142       , l_array_event_created_by
119143       , l_array_budgetary_control_flag 
119144       , l_array_source_56
119145       , l_array_source_80
119146       , l_array_source_152
119147       , l_array_source_153
119148       , l_array_source_154
119149       LIMIT l_rows;
119150 --
119151 IF (C_LEVEL_EVENT >= g_log_level) THEN
119152    trace
119153    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
119154    ,p_level    => C_LEVEL_EVENT
119155    ,p_module   => l_log_module);
119156 END IF;
119157 --
119158 EXIT WHEN l_array_entity_id.COUNT = 0;
119159 
119160 -- initialize arrays
119161 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
119162 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
119163 
119164 --
119165 -- Bug 4458708
119166 --
119167 XLA_AE_LINES_PKG.g_LineNumber := 0;
119168 
119169 
119173 -- loop for the headers. Each iteration is for each header extract row
119170 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
119171 g_last_hdr_idx := l_array_event_id.LAST;
119172 --
119174 -- fetched in header cursor
119175 --
119176 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
119177 
119178 --
119179 -- set event info as cache for other routines to refer event attributes
119180 --
119181 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
119182    (p_application_id           => p_application_id
119183    ,p_primary_ledger_id        => p_primary_ledger_id
119184    ,p_base_ledger_id           => p_base_ledger_id
119185    ,p_target_ledger_id         => p_target_ledger_id
119186    ,p_entity_id                => l_array_entity_id(hdr_idx)
119187    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
119188    ,p_entity_code              => l_array_entity_code(hdr_idx)
119189    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
119190    ,p_event_id                 => l_array_event_id(hdr_idx)
119191    ,p_event_class_code         => l_array_class_code(hdr_idx)
119192    ,p_event_type_code          => l_array_event_type(hdr_idx)
119193    ,p_event_number             => l_array_event_number(hdr_idx)
119194    ,p_event_date               => l_array_event_date(hdr_idx)
119195    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
119196    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
119197    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
119198    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
119199    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
119200    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
119201    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
119202    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
119203    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
119204    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
119205    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
119206    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
119207    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
119208    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
119209    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
119210 
119211 --
119212 -- set the status of entry to C_VALID (0)
119213 --
119214 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
119215 
119216 --
119217 -- initialize a row for ae header
119218 --
119219 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
119220 
119221 l_event_id := l_array_event_id(hdr_idx);
119222 
119223 --
119224 -- storing the hdr_idx for event. May be used by line cursor.
119225 --
119226 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
119227 
119228 --
119229 -- store sources from header extract. This can be improved to
119230 -- store only those sources from header extract that may be used in lines
119231 --
119232 
119233 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
119234 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
119235 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
119236 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
119237 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
119238 
119239 --
119240 -- initilaize the status of ae headers for diffrent balance types
119241 -- the status is initialised to C_NOT_CREATED (2)
119242 --
119243 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
119244 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
119245 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
119246 
119247 --
119248 -- call api to validate and store accounting attributes for header
119249 --
119250 
119251 ------------------------------------------------------------
119252 -- Accrual Reversal : to get date for Standard Source (NONE)
119253 ------------------------------------------------------------
119254 l_acc_rev_gl_date_source := NULL;
119255 
119256      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
119257       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
119258      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
119259       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
119260      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
119261       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
119262      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
119263       l_rec_acct_attrs.array_date_value(4) := 
119264 xla_ae_sources_pkg.GetSystemSourceDate(
119265    p_source_code           => 'XLA_EVENT_DATE'
119266  , p_source_type_code      => 'Y'
119267  , p_source_application_id =>  602
119268 );
119269 
119270 
119271 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
119272 
119273 XLA_AE_HEADER_PKG.SetJeCategoryName;
119274 
119275 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
119276 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
119277 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
119281 
119278 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
119279 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
119280 
119282 -- No header level analytical criteria
119283 
119284 --
119285 --accounting attribute enhancement, bug 3612931
119286 --
119287 l_trx_reversal_source := SUBSTR(NULL, 1,30);
119288 
119289 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
119290    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
119291 
119292    xla_accounting_err_pkg.build_message
119293       (p_appli_s_name            => 'XLA'
119294       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
119295       ,p_token_1                 => 'ACCT_ATTR_NAME'
119296       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
119297       ,p_token_2                 => 'PRODUCT_NAME'
119298       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
119299       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
119300       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
119301       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
119302 
119303 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
119304    --
119305    -- following sets the accounting attributes needed to reverse
119306    -- accounting for a distributeion
119307    --
119308    xla_ae_lines_pkg.SetTrxReversalAttrs
119309       (p_event_id              => l_event_id
119310       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
119311       ,p_trx_reversal_source   => l_trx_reversal_source);
119312 
119313 END IF;
119314 
119315 
119316 ----------------------------------------------------------------
119317 -- 4262811 -  update the header statuses to invalid in need be
119318 ----------------------------------------------------------------
119319 --
119320 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
119321 
119322 
119323   -----------------------------------------------
119324   -- No accrual reversal for the event class/type
119325   -----------------------------------------------
119326 ----------------------------------------------------------------
119327 
119328 --
119329 -- this ends the header loop iteration for one bulk fetch
119330 --
119331 END LOOP;
119332 
119333 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
119334 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
119335 
119336 --
119337 -- insert dummy rows into lines gt table that were created due to
119338 -- transaction reversals
119339 --
119340 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
119341    l_result := XLA_AE_LINES_PKG.InsertLines;
119342 END IF;
119343 
119344 --
119345 -- reset the temp_line_num for each set of events fetched from header
119346 -- cursor rather than doing it for each new event in line cursor
119347 -- Bug 3939231
119348 --
119349 xla_ae_lines_pkg.g_temp_line_num := 0;
119350 
119351 
119352 
119353 --
119354 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
119355 --
119356 --
119357 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119358 
119359       trace
119360          (p_msg      => 'SQL - FETCH line_cur'
119361          ,p_level    => C_LEVEL_STATEMENT
119362          ,p_module   => l_log_module);
119363 
119364 END IF;
119365 --
119366 --
119367 LOOP
119368   --
119369   FETCH line_cur BULK COLLECT INTO
119370         l_array_entity_id
119371       , l_array_legal_entity_id
119372       , l_array_entity_code
119373       , l_array_transaction_num
119374       , l_array_event_id
119375       , l_array_class_code
119376       , l_array_event_type
119377       , l_array_event_number
119378       , l_array_event_date
119379       , l_array_transaction_date
119380       , l_array_reference_num_1
119381       , l_array_reference_num_2
119382       , l_array_reference_num_3
119383       , l_array_reference_num_4
119384       , l_array_reference_char_1
119385       , l_array_reference_char_2
119386       , l_array_reference_char_3
119387       , l_array_reference_char_4
119388       , l_array_reference_date_1
119389       , l_array_reference_date_2
119390       , l_array_reference_date_3
119391       , l_array_reference_date_4
119392       , l_array_event_created_by
119393       , l_array_budgetary_control_flag
119394       , l_array_extract_line_num 
119395       , l_array_source_40
119396       , l_array_source_48
119397       , l_array_source_58
119398       , l_array_source_59
119399       , l_array_source_66
119400       , l_array_source_78
119401       , l_array_source_79
119402       , l_array_source_81
119403       , l_array_source_83
119404       , l_array_source_84
119405       , l_array_source_85
119406       , l_array_source_86
119407       , l_array_source_96
119408       , l_array_source_97
119409       , l_array_source_156
119410       , l_array_source_157
119411       LIMIT l_rows;
119412 
119413   --
119414   IF (C_LEVEL_EVENT >= g_log_level) THEN
119415             trace
119416                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
119417                ,p_level    => C_LEVEL_EVENT
119421   EXIT WHEN l_array_entity_id.count = 0;
119418                ,p_module   => l_log_module);
119419   END IF;
119420   --
119422 
119423   XLA_AE_LINES_PKG.g_rec_lines := null;
119424 
119425 --
119426 -- Bug 4458708
119427 --
119428 XLA_AE_LINES_PKG.g_LineNumber := 0;
119429 --
119430 --
119431 
119432 FOR Idx IN 1..l_array_event_id.count LOOP
119433    --
119434    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
119435    --
119436    l_event_id := l_array_event_id(idx);  -- 5648433
119437 
119438    --
119439    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
119440    --
119441 
119442    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
119443              (g_array_event(l_event_id).array_value_num('header_index'))
119444          ,'N'
119445          ) <> 'Y'
119446    THEN
119447       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119448          trace
119449             (p_msg      => 'Trancaction revesal option is not Y '
119450             ,p_level    => C_LEVEL_STATEMENT
119451             ,p_module   => l_log_module);
119452       END IF;
119453 
119454 --
119455 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
119456 --
119457 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
119458 --
119459 -- set event info as cache for other routines to refer event attributes
119460 --
119461 
119462 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
119463    l_previous_event_id := l_event_id;
119464 
119465    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
119466       (p_application_id           => p_application_id
119467       ,p_primary_ledger_id        => p_primary_ledger_id
119468       ,p_base_ledger_id           => p_base_ledger_id
119469       ,p_target_ledger_id         => p_target_ledger_id
119470       ,p_entity_id                => l_array_entity_id(Idx)
119471       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
119472       ,p_entity_code              => l_array_entity_code(Idx)
119473       ,p_transaction_num          => l_array_transaction_num(Idx)
119474       ,p_event_id                 => l_array_event_id(Idx)
119475       ,p_event_class_code         => l_array_class_code(Idx)
119476       ,p_event_type_code          => l_array_event_type(Idx)
119477       ,p_event_number             => l_array_event_number(Idx)
119478       ,p_event_date               => l_array_event_date(Idx)
119479       ,p_transaction_date         => l_array_transaction_date(Idx)
119480       ,p_reference_num_1          => l_array_reference_num_1(Idx)
119481       ,p_reference_num_2          => l_array_reference_num_2(Idx)
119482       ,p_reference_num_3          => l_array_reference_num_3(Idx)
119483       ,p_reference_num_4          => l_array_reference_num_4(Idx)
119484       ,p_reference_char_1         => l_array_reference_char_1(Idx)
119485       ,p_reference_char_2         => l_array_reference_char_2(Idx)
119486       ,p_reference_char_3         => l_array_reference_char_3(Idx)
119487       ,p_reference_char_4         => l_array_reference_char_4(Idx)
119488       ,p_reference_date_1         => l_array_reference_date_1(Idx)
119489       ,p_reference_date_2         => l_array_reference_date_2(Idx)
119490       ,p_reference_date_3         => l_array_reference_date_3(Idx)
119491       ,p_reference_date_4         => l_array_reference_date_4(Idx)
119492       ,p_event_created_by         => l_array_event_created_by(Idx)
119493       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
119494        --
119495 END IF;
119496 
119497 
119498 
119499 --
119500 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
119501 
119502 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
119503 
119504 IF l_continue_with_lines THEN
119505    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
119506       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
119507 
119508       xla_accounting_err_pkg.build_message
119509          (p_appli_s_name            => 'XLA'
119510          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
119511          ,p_token_1                 => 'LINE_NUMBER'
119512          ,p_value_1                 => l_array_extract_line_num(Idx)
119513          ,p_token_2                 => 'PRODUCT_NAME'
119514          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
119515          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
119516          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
119517          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
119518 
119519    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
119520       --
119521       -- following sets the accounting attributes needed to reverse
119522       -- accounting for a distributeion
119523       --
119524 
119525       --
119526       -- 5217187
119527       --
119528       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
119529       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
119530                                        g_array_event(l_event_id).array_value_num('header_index'));
119531       --
119532       --
119533 
119534       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
119535       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_40(Idx);
119539       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_48(Idx);
119536       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
119537       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_156(Idx);
119538       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
119540       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
119541       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_78(Idx);
119542       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
119543       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_79(Idx);
119544       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
119545       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_80');
119546       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
119547       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_81(Idx);
119548       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
119549       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_83(Idx);
119550       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
119551       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_84(Idx);
119552       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
119553       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_80');
119554       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
119555       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_85(Idx);
119556       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
119557       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_86(Idx);
119558       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
119559       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_56');
119560       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
119561       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_157(Idx);
119562       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
119563       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_48(Idx);
119564       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
119565       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_58(Idx);
119566       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
119567       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_66(Idx);
119568       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
119569       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_59(Idx);
119570       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
119571       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_96(Idx);
119572       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
119573       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_97(Idx);
119574 
119575 
119576       xla_ae_lines_pkg.SetAcctReversalAttrs
119577          (p_event_id             => l_event_id
119578          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
119579          ,p_calculate_acctd_flag => l_calculate_acctd_flag
119580          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
119581    END IF;
119582 
119583    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
119584        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
119585       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
119586       -- or secondary ledger that has different currency with primary
119587       -- or alc that is calculated by sla
119588       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
119589             (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'))
119590 
119591 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
119592 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
119593           AND (l_actual_flag = 'A')) THEN
119594         XLA_AE_LINES_PKG.CreateGainOrLossLines(
119595           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
119596          ,p_application_id   => p_application_id
119597          ,p_amb_context_code => 'DEFAULT'
119598          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
119599          ,p_event_class_code => C_EVENT_CLASS_CODE
119600          ,p_event_type_code  => C_EVENT_TYPE_CODE
119601          
119602          ,p_gain_ccid        => -1
119603          ,p_loss_ccid        => -1
119604 
119605          ,p_actual_flag      => l_actual_flag
119606          ,p_enc_flag         => null
119607          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
119608          ,p_enc_g_l_ref      => null
119609          );
119610       END IF;
119611    END IF;
119612 END IF;
119613 
119614    ELSE
119615       --
119616       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
119617       --
119618       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119619          trace
119620             (p_msg      => 'Trancaction revesal option is Y'
119621             ,p_level    => C_LEVEL_STATEMENT
119622             ,p_module   => l_log_module);
119623       END IF;
119624    END IF;
119625 
119626 END LOOP;
119627 l_result := XLA_AE_LINES_PKG.InsertLines ;
119628 end loop;
119629 close line_cur;
119630 
119634 --
119631 
119632 --
119633 -- insert headers into xla_ae_headers_gt table
119635 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
119636 
119637 -- insert into errors table here.
119638 
119639 END LOOP;
119640 
119641 --
119642 -- 4865292
119643 --
119644 -- Compare g_hdr_extract_count with event count in
119645 -- CreateHeadersAndLines.
119646 --
119647 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
119648 
119649 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119650    trace (p_msg     => '# rows extracted from header extract objects '
119651                     || ' (running total): '
119652                     || g_hdr_extract_count
119653          ,p_level   => C_LEVEL_STATEMENT
119654          ,p_module  => l_log_module);
119655 END IF;
119656 
119657 CLOSE header_cur;
119658 --
119659 
119660 --
119661 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119662    trace
119663       (p_msg      => 'END of EventClass_204'
119664       ,p_level    => C_LEVEL_PROCEDURE
119665       ,p_module   => l_log_module);
119666 END IF;
119667 --
119668 RETURN l_result;
119669 EXCEPTION
119670 WHEN xla_exceptions_pkg.application_exception THEN
119671    
119672 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
119673 
119674    
119675 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
119676 
119677    RAISE;
119678 
119679 WHEN NO_DATA_FOUND THEN
119680 
119681 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
119682 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
119683 
119684 FOR header_record IN header_cur
119685 LOOP
119686     l_array_header_events(header_record.event_id) := header_record.event_id;
119687 END LOOP;
119688 
119689 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
119690 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
119691 
119692 fnd_file.put_line(fnd_file.LOG, '                    ');
119693 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
119694 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
119695 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
119696 
119697 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
119698 LOOP
119699 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
119700 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
119701         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
119702 	END IF;
119703 END LOOP;
119704 
119705 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
119706 fnd_file.put_line(fnd_file.LOG, '                    ');
119707 
119708 
119709 xla_exceptions_pkg.raise_message
119710       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_204');
119711 
119712 
119713 WHEN OTHERS THEN
119714    xla_exceptions_pkg.raise_message
119715       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_204');
119716 END EventClass_204;
119717 --
119718 
119719 ---------------------------------------
119720 --
119721 -- PRIVATE PROCEDURE
119722 --         insert_sources_205
119723 --
119724 ----------------------------------------
119725 --
119726 PROCEDURE insert_sources_205(
119727                                 p_target_ledger_id       IN NUMBER
119728                               , p_language               IN VARCHAR2
119729                               , p_sla_ledger_id          IN NUMBER
119730                               , p_pad_start_date         IN DATE
119731                               , p_pad_end_date           IN DATE
119732                          )
119733 IS
119734 
119735 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
119736 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
119737 p_apps_owner                   VARCHAR2(30);
119738 l_log_module                   VARCHAR2(240);
119739 BEGIN
119740 IF g_log_enabled THEN
119741       l_log_module := C_DEFAULT_MODULE||'.insert_sources_205';
119742 END IF;
119743 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119744 
119745       trace
119746          (p_msg      => 'BEGIN of insert_sources_205'
119747          ,p_level    => C_LEVEL_PROCEDURE
119748          ,p_module   => l_log_module);
119749 
119750 END IF;
119751 
119752 -- select APPS owner
119753 SELECT oracle_username
119754   INTO p_apps_owner
119755   FROM fnd_oracle_userid
119756  WHERE read_only_flag = 'U'
119757 ;
119758 
119759 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119760       trace
119761          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
119762                         ' - p_language = '||p_language||
119763                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
119764                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
119765                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
119766                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
119767          ,p_level    => C_LEVEL_STATEMENT
119768          ,p_module   => l_log_module);
119769 END IF;
119770 
119771 
119772 --
119773 INSERT INTO xla_diag_sources --hdr2
119774 (
119775         event_id
119776       , ledger_id
119777       , sla_ledger_id
119778       , description_language
119779       , object_name
119780       , object_type_code
119784       , source_code
119781       , line_number
119782       , source_application_id
119783       , source_type_code
119785       , source_value
119786       , source_meaning
119787       , created_by
119788       , creation_date
119789       , last_update_date
119790       , last_updated_by
119791       , last_update_login
119792       , program_update_date
119793       , program_application_id
119794       , program_id
119795       , request_id
119796 )
119797 SELECT
119798         event_id
119799       , p_target_ledger_id
119800       , p_sla_ledger_id
119801       , p_language
119802       , object_name
119803       , object_type_code
119804       , line_number
119805       , source_application_id
119806       , source_type_code
119807       , source_code
119808       , SUBSTR(source_value ,1,1996)
119809       , SUBSTR(source_meaning ,1,200)
119810       , xla_environment_pkg.g_Usr_Id
119811       , TRUNC(SYSDATE)
119812       , TRUNC(SYSDATE)
119813       , xla_environment_pkg.g_Usr_Id
119814       , xla_environment_pkg.g_Login_Id
119815       , TRUNC(SYSDATE)
119816       , xla_environment_pkg.g_Prog_Appl_Id
119817       , xla_environment_pkg.g_Prog_Id
119818       , xla_environment_pkg.g_Req_Id
119819   FROM (
119820        SELECT xet.event_id                  event_id
119821             , 0                          line_number
119822             , CASE r
119823                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
119824                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
119825                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
119826                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
119827                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
119828                 
119829                ELSE null
119830               END                           object_name
119831             , CASE r
119832                 WHEN 1 THEN 'HEADER' 
119833                 WHEN 2 THEN 'HEADER' 
119834                 WHEN 3 THEN 'HEADER' 
119835                 WHEN 4 THEN 'HEADER' 
119836                 WHEN 5 THEN 'HEADER' 
119837                 
119838                 ELSE null
119839               END                           object_type_code
119840             , CASE r
119841                 WHEN 1 THEN '200' 
119842                 WHEN 2 THEN '200' 
119843                 WHEN 3 THEN '200' 
119844                 WHEN 4 THEN '200' 
119845                 WHEN 5 THEN '200' 
119846                 
119847                 ELSE null
119848               END                           source_application_id
119849             , 'S'             source_type_code
119850             , CASE r
119851                 WHEN 1 THEN 'THIRD_PARTY_TYPE' 
119852                 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE' 
119853                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
119854                 WHEN 4 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
119855                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
119856                 
119857                 ELSE null
119858               END                           source_code
119859             , CASE r
119860                 WHEN 1 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
119861                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
119862                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
119863                 WHEN 4 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
119864                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
119865                 
119866                 ELSE null
119867               END                           source_value
119868             , null              source_meaning
119869          FROM xla_events_gt     xet  
119870       , AP_INVOICE_EXTRACT_HEADER_V  h2
119871              ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
119872          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
119873            AND xet.event_class_code = C_EVENT_CLASS_CODE
119874               AND h2.event_id = xet.event_id
119875 
119876 )
119877 ;
119878 --
119879 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119880 
119881       trace
119882          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
119883          ,p_level    => C_LEVEL_STATEMENT
119884          ,p_module   => l_log_module);
119885 
119886 END IF;
119887 --
119888 
119889 
119890 
119891 --
119892 INSERT INTO xla_diag_sources  --line2
119893 (
119894         event_id
119895       , ledger_id
119896       , sla_ledger_id
119897       , description_language
119898       , object_name
119899       , object_type_code
119900       , line_number
119901       , source_application_id
119902       , source_type_code
119903       , source_code
119904       , source_value
119905       , source_meaning
119906       , created_by
119907       , creation_date
119908       , last_update_date
119909       , last_updated_by
119910       , last_update_login
119911       , program_update_date
119912       , program_application_id
119913       , program_id
119914       , request_id
119915 )
119916 SELECT  event_id
119917       , p_target_ledger_id
119918       , p_sla_ledger_id
119919       , p_language
119920       , object_name
119921       , object_type_code
119922       , line_number
119923       , source_application_id
119924       , source_type_code
119925       , source_code
119926       , SUBSTR(source_value,1,1996)
119927       , SUBSTR(source_meaning ,1,200)
119928       , xla_environment_pkg.g_Usr_Id
119932       , xla_environment_pkg.g_Login_Id
119929       , TRUNC(SYSDATE)
119930       , TRUNC(SYSDATE)
119931       , xla_environment_pkg.g_Usr_Id
119933       , TRUNC(SYSDATE)
119934       , xla_environment_pkg.g_Prog_Appl_Id
119935       , xla_environment_pkg.g_Prog_Id
119936       , xla_environment_pkg.g_Req_Id
119937   FROM (
119938        SELECT xet.event_id                  event_id
119939             , l1.line_number                 line_number
119940             , CASE r
119941                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119942                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119943                 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
119944                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119945                 WHEN 5 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
119946                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119947                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119948                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119949                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119950                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119951                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119952                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119953                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119954                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119955                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119956                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
119957                 
119958                ELSE null
119959               END                           object_name
119960             , CASE r
119961                 WHEN 1 THEN 'LINE' 
119962                 WHEN 2 THEN 'LINE' 
119963                 WHEN 3 THEN 'LINE' 
119964                 WHEN 4 THEN 'LINE' 
119965                 WHEN 5 THEN 'LINE' 
119966                 WHEN 6 THEN 'LINE' 
119967                 WHEN 7 THEN 'LINE' 
119968                 WHEN 8 THEN 'LINE' 
119969                 WHEN 9 THEN 'LINE' 
119970                 WHEN 10 THEN 'LINE' 
119971                 WHEN 11 THEN 'LINE' 
119972                 WHEN 12 THEN 'LINE' 
119973                 WHEN 13 THEN 'LINE' 
119974                 WHEN 14 THEN 'LINE' 
119975                 WHEN 15 THEN 'LINE' 
119976                 WHEN 16 THEN 'LINE' 
119977                 
119978                 ELSE null
119979               END                           object_type_code
119980             , CASE r
119981                 WHEN 1 THEN '200' 
119982                 WHEN 2 THEN '200' 
119983                 WHEN 3 THEN '200' 
119984                 WHEN 4 THEN '200' 
119985                 WHEN 5 THEN '200' 
119986                 WHEN 6 THEN '200' 
119987                 WHEN 7 THEN '200' 
119988                 WHEN 8 THEN '200' 
119989                 WHEN 9 THEN '200' 
119990                 WHEN 10 THEN '200' 
119991                 WHEN 11 THEN '200' 
119992                 WHEN 12 THEN '200' 
119993                 WHEN 13 THEN '200' 
119994                 WHEN 14 THEN '200' 
119995                 WHEN 15 THEN '200' 
119996                 WHEN 16 THEN '200' 
119997                 
119998                 ELSE null
119999               END                           source_application_id
120000             , 'S'             source_type_code
120001             , CASE r
120002                 WHEN 1 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
120003                 WHEN 2 THEN 'DISTRIBUTION_LINK_TYPE' 
120004                 WHEN 3 THEN 'TAX_LINE_ID' 
120005                 WHEN 4 THEN 'SUMMARY_TAX_LINE_ID' 
120006                 WHEN 5 THEN 'REC_NREC_TAX_DIST_ID' 
120007                 WHEN 6 THEN 'UPG_ENC_CR_CCID' 
120008                 WHEN 7 THEN 'UPG_ENC_CR_AMT' 
120009                 WHEN 8 THEN 'UPG_ENC_CR_BASE_AMT' 
120010                 WHEN 9 THEN 'UPG_ENC_DR_CCID' 
120011                 WHEN 10 THEN 'UPG_ENC_DR_AMT' 
120012                 WHEN 11 THEN 'UPG_ENC_DR_BASE_AMT' 
120013                 WHEN 12 THEN 'UPG_AP_ENCUM_OPTION' 
120014                 WHEN 13 THEN 'UPG_CR_ENC_TYPE_ID' 
120015                 WHEN 14 THEN 'UPG_DR_ENC_TYPE_ID' 
120016                 WHEN 15 THEN 'AID_INVOICE_DIST_ID' 
120017                 WHEN 16 THEN 'AID_PARENT_REVERSAL_ID' 
120018                 
120019                 ELSE null
120020               END                           source_code
120021             , CASE r
120022                 WHEN 1 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
120023                 WHEN 2 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
120024                 WHEN 3 THEN TO_CHAR(l3.TAX_LINE_ID)
120025                 WHEN 4 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
120026                 WHEN 5 THEN TO_CHAR(l4.REC_NREC_TAX_DIST_ID)
120027                 WHEN 6 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
120028                 WHEN 7 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
120029                 WHEN 8 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
120030                 WHEN 9 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
120031                 WHEN 10 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
120032                 WHEN 11 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
120033                 WHEN 12 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
120034                 WHEN 13 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
120035                 WHEN 14 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
120036                 WHEN 15 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
120037                 WHEN 16 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
120038                 
120039                 ELSE null
120040               END                           source_value
120041             , null              source_meaning
120042          FROM  xla_events_gt     xet  
120046             , (select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
120043         , AP_INVOICE_EXTRACT_DETAILS_V  l1
120044         , ZX_AP_DEF_TAX_EXTRACT_V  l3
120045         , ZX_AP_TAX_JRNL_LINE_DESC_V  l4
120047         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
120048           AND xet.event_class_code = C_EVENT_CLASS_CODE
120049             AND l1.event_id          = xet.event_id
120050  AND l1.zrnd_tax_dist_id = l3.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+) 
120051 )
120052 ;
120053 --
120054 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120055 
120056       trace
120057          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
120058          ,p_level    => C_LEVEL_STATEMENT
120059          ,p_module   => l_log_module);
120060 
120061 END IF;
120062 
120063 
120064 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120065       trace
120066          (p_msg      => 'END of insert_sources_205'
120067          ,p_level    => C_LEVEL_PROCEDURE
120068          ,p_module   => l_log_module);
120069 END IF;
120070 EXCEPTION
120071   WHEN xla_exceptions_pkg.application_exception THEN
120072       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
120073             trace
120074                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
120075                ,p_level    => C_LEVEL_EXCEPTION
120076                ,p_module   => l_log_module);
120077       END IF;
120078       RAISE;
120079   WHEN OTHERS THEN
120080       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
120081             trace
120082                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
120083                ,p_level    => C_LEVEL_EXCEPTION
120084                ,p_module   => l_log_module);
120085        END IF;
120086        xla_exceptions_pkg.raise_message
120087            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_205');
120088 END insert_sources_205;
120089 --
120090 
120091 ---------------------------------------
120092 --
120093 -- PRIVATE FUNCTION
120094 --         EventClass_205
120095 --
120096 ----------------------------------------
120097 --
120098 FUNCTION EventClass_205
120099        (p_application_id         IN NUMBER
120100        ,p_base_ledger_id         IN NUMBER
120101        ,p_target_ledger_id       IN NUMBER
120102        ,p_language               IN VARCHAR2
120103        ,p_currency_code          IN VARCHAR2
120104        ,p_sla_ledger_id          IN NUMBER
120105        ,p_pad_start_date         IN DATE
120106        ,p_pad_end_date           IN DATE
120107        ,p_primary_ledger_id      IN NUMBER)
120108 RETURN BOOLEAN IS
120109 --
120110 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
120111 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
120112 
120113 l_calculate_acctd_flag   VARCHAR2(1) :='N';
120114 l_calculate_g_l_flag     VARCHAR2(1) :='N';
120115 --
120116 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120117 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120118 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
120119 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120120 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120121 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
120122 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
120123 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120124 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120125 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120126 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120127 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120128 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120129 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
120130 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120131 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120132 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120133 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
120134 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120135 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120136 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120137 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
120138 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
120139 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
120140 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
120141 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
120142 
120143 l_event_id                             NUMBER;
120144 l_previous_event_id                    NUMBER;
120145 l_first_event_id                       NUMBER;
120146 l_last_event_id                        NUMBER;
120147 
120148 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
120149 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
120150 --
120151 --
120152 l_result                    BOOLEAN := TRUE;
120153 l_rows                      NUMBER  := 1000;
120154 l_event_type_name           VARCHAR2(80) := 'All';
120158 l_ae_header_id              NUMBER;
120155 l_event_class_name          VARCHAR2(80) := 'Debit Memos';
120156 l_description               VARCHAR2(4000);
120157 l_transaction_reversal      NUMBER;
120159 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
120160 l_log_module                VARCHAR2(240);
120161 --
120162 l_acct_reversal_source      VARCHAR2(30);
120163 l_trx_reversal_source       VARCHAR2(30);
120164 
120165 l_continue_with_lines       BOOLEAN := TRUE;
120166 --
120167 l_acc_rev_gl_date_source    DATE;                      -- 4262811
120168 --
120169 type t_array_event_id is table of number index by binary_integer;
120170 
120171 l_rec_array_event                    t_rec_array_event;
120172 l_null_rec_array_event               t_rec_array_event;
120173 l_array_ae_header_id                 xla_number_array_type;
120174 l_actual_flag                        VARCHAR2(1) := NULL;
120175 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
120176 l_balance_type_code                  VARCHAR2(1) :=NULL;
120177 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
120178 
120179 --
120180 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
120181 --
120182 
120183 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
120184 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
120185 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
120186 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
120187 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
120188 
120189 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
120190 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
120191 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
120192 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
120193 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
120194 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
120195 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
120196 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
120197 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
120198 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
120199 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
120200 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
120201 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
120202 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
120203 TYPE t_array_source_156 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
120204 TYPE t_array_source_157 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
120205 
120206 l_array_source_56              t_array_source_56;
120207 l_array_source_80              t_array_source_80;
120208 l_array_source_152              t_array_source_152;
120209 l_array_source_153              t_array_source_153;
120210 l_array_source_154              t_array_source_154;
120211 
120212 l_array_source_40      t_array_source_40;
120213 l_array_source_48      t_array_source_48;
120214 l_array_source_58      t_array_source_58;
120215 l_array_source_59      t_array_source_59;
120216 l_array_source_66      t_array_source_66;
120217 l_array_source_78      t_array_source_78;
120218 l_array_source_79      t_array_source_79;
120219 l_array_source_81      t_array_source_81;
120220 l_array_source_83      t_array_source_83;
120221 l_array_source_84      t_array_source_84;
120222 l_array_source_85      t_array_source_85;
120223 l_array_source_86      t_array_source_86;
120224 l_array_source_96      t_array_source_96;
120225 l_array_source_97      t_array_source_97;
120226 l_array_source_156      t_array_source_156;
120227 l_array_source_157      t_array_source_157;
120228 
120229 --
120230 CURSOR header_cur
120231 IS
120232 SELECT /*+ leading(xet) cardinality(xet,1) */
120233 -- Event Class Code: DEBIT MEMOS
120234     xet.entity_id
120235    ,xet.legal_entity_id
120236    ,xet.entity_code
120237    ,xet.transaction_number
120238    ,xet.event_id
120239    ,xet.event_class_code
120240    ,xet.event_type_code
120241    ,xet.event_number
120242    ,xet.event_date
120243    ,xet.transaction_date
120244    ,xet.reference_num_1
120245    ,xet.reference_num_2
120246    ,xet.reference_num_3
120247    ,xet.reference_num_4
120248    ,xet.reference_char_1
120249    ,xet.reference_char_2
120250    ,xet.reference_char_3
120251    ,xet.reference_char_4
120252    ,xet.reference_date_1
120253    ,xet.reference_date_2
120254    ,xet.reference_date_3
120255    ,xet.reference_date_4
120256    ,xet.event_created_by
120260   , h2.INV_DOC_SEQUENCE_CATEGORY    source_152
120257    ,xet.budgetary_control_flag 
120258   , h2.THIRD_PARTY_TYPE    source_56
120259   , h2.AI_INVOICE_CURRENCY_CODE    source_80
120261   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_153
120262   , h2.INV_DOC_SEQUENCE_VALUE    source_154
120263   FROM xla_events_gt     xet 
120264   , AP_INVOICE_EXTRACT_HEADER_V  h2
120265  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
120266    and xet.event_class_code = C_EVENT_CLASS_CODE
120267    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
120268 
120269  ORDER BY event_id
120270 ;
120271 
120272 
120273 --
120274 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
120275 IS
120276 SELECT  /*+ leading(xet) cardinality(xet,1) */
120277 -- Event Class Code: DEBIT MEMOS
120278     xet.entity_id
120279    ,xet.legal_entity_id
120280    ,xet.entity_code
120281    ,xet.transaction_number
120282    ,xet.event_id
120283    ,xet.event_class_code
120284    ,xet.event_type_code
120285    ,xet.event_number
120286    ,xet.event_date
120287    ,xet.transaction_date
120288    ,xet.reference_num_1
120289    ,xet.reference_num_2
120290    ,xet.reference_num_3
120291    ,xet.reference_num_4
120292    ,xet.reference_char_1
120293    ,xet.reference_char_2
120294    ,xet.reference_char_3
120295    ,xet.reference_char_4
120296    ,xet.reference_date_1
120297    ,xet.reference_date_2
120298    ,xet.reference_date_3
120299    ,xet.reference_date_4
120300    ,xet.event_created_by
120301    ,xet.budgetary_control_flag
120302  , l1.LINE_NUMBER  
120303   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_40
120304   , l1.DISTRIBUTION_LINK_TYPE    source_48
120305   , l3.TAX_LINE_ID    source_58
120306   , l1.SUMMARY_TAX_LINE_ID    source_59
120307   , l4.REC_NREC_TAX_DIST_ID    source_66
120308   , l1.UPG_ENC_CR_CCID    source_78
120309   , l1.UPG_ENC_CR_AMT    source_79
120310   , l1.UPG_ENC_CR_BASE_AMT    source_81
120311   , l1.UPG_ENC_DR_CCID    source_83
120312   , l1.UPG_ENC_DR_AMT    source_84
120313   , l1.UPG_ENC_DR_BASE_AMT    source_85
120314   , l1.UPG_AP_ENCUM_OPTION    source_86
120315   , l1.UPG_CR_ENC_TYPE_ID    source_96
120316   , l1.UPG_DR_ENC_TYPE_ID    source_97
120317   , l1.AID_INVOICE_DIST_ID    source_156
120318   , l1.AID_PARENT_REVERSAL_ID    source_157
120319   FROM xla_events_gt     xet 
120320   , AP_INVOICE_EXTRACT_DETAILS_V  l1
120321   , ZX_AP_DEF_TAX_EXTRACT_V  l3
120322   , ZX_AP_TAX_JRNL_LINE_DESC_V  l4
120323  WHERE xet.event_id between x_first_event_id and x_last_event_id
120324    and xet.event_date between p_pad_start_date and p_pad_end_date
120325    and xet.event_class_code = C_EVENT_CLASS_CODE
120326    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
120327  AND l1.ZRND_tax_dist_id = l3.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) ;
120328 
120329 --
120330 BEGIN
120331 IF g_log_enabled THEN
120332    l_log_module := C_DEFAULT_MODULE||'.EventClass_205';
120333 END IF;
120334 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120335    trace
120336       (p_msg      => 'BEGIN of EventClass_205'
120337       ,p_level    => C_LEVEL_PROCEDURE
120338       ,p_module   => l_log_module);
120339 END IF;
120340 
120341 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120342    trace
120343       (p_msg      => 'p_application_id = '||p_application_id||
120344                      ' - p_base_ledger_id = '||p_base_ledger_id||
120345                      ' - p_target_ledger_id  = '||p_target_ledger_id||
120346                      ' - p_language = '||p_language||
120347                      ' - p_currency_code = '||p_currency_code||
120348                      ' - p_sla_ledger_id = '||p_sla_ledger_id
120349       ,p_level    => C_LEVEL_STATEMENT
120350       ,p_module   => l_log_module);
120351 END IF;
120352 --
120353 -- initialze arrays
120354 --
120355 g_array_event.DELETE;
120356 l_rec_array_event := l_null_rec_array_event;
120357 --
120358 --------------------------------------
120359 -- 4262811 Initialze MPA Line Number
120360 --------------------------------------
120361 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
120362 
120363 --
120364 
120365 --
120366 OPEN header_cur;
120367 --
120368 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120369    trace
120370    (p_msg      => 'SQL - FETCH header_cur'
120371    ,p_level    => C_LEVEL_STATEMENT
120372    ,p_module   => l_log_module);
120373 END IF;
120374 --
120375 LOOP
120376 FETCH header_cur BULK COLLECT INTO
120377         l_array_entity_id
120378       , l_array_legal_entity_id
120379       , l_array_entity_code
120380       , l_array_transaction_num
120381       , l_array_event_id
120382       , l_array_class_code
120383       , l_array_event_type
120384       , l_array_event_number
120385       , l_array_event_date
120386       , l_array_transaction_date
120387       , l_array_reference_num_1
120388       , l_array_reference_num_2
120389       , l_array_reference_num_3
120390       , l_array_reference_num_4
120391       , l_array_reference_char_1
120392       , l_array_reference_char_2
120393       , l_array_reference_char_3
120394       , l_array_reference_char_4
120395       , l_array_reference_date_1
120396       , l_array_reference_date_2
120397       , l_array_reference_date_3
120398       , l_array_reference_date_4
120399       , l_array_event_created_by
120400       , l_array_budgetary_control_flag 
120401       , l_array_source_56
120405       , l_array_source_154
120402       , l_array_source_80
120403       , l_array_source_152
120404       , l_array_source_153
120406       LIMIT l_rows;
120407 --
120408 IF (C_LEVEL_EVENT >= g_log_level) THEN
120409    trace
120410    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
120411    ,p_level    => C_LEVEL_EVENT
120412    ,p_module   => l_log_module);
120413 END IF;
120414 --
120415 EXIT WHEN l_array_entity_id.COUNT = 0;
120416 
120417 -- initialize arrays
120418 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
120419 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
120420 
120421 --
120422 -- Bug 4458708
120423 --
120424 XLA_AE_LINES_PKG.g_LineNumber := 0;
120425 
120426 
120427 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
120428 g_last_hdr_idx := l_array_event_id.LAST;
120429 --
120430 -- loop for the headers. Each iteration is for each header extract row
120431 -- fetched in header cursor
120432 --
120433 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
120434 
120435 --
120436 -- set event info as cache for other routines to refer event attributes
120437 --
120438 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
120439    (p_application_id           => p_application_id
120440    ,p_primary_ledger_id        => p_primary_ledger_id
120441    ,p_base_ledger_id           => p_base_ledger_id
120442    ,p_target_ledger_id         => p_target_ledger_id
120443    ,p_entity_id                => l_array_entity_id(hdr_idx)
120444    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
120445    ,p_entity_code              => l_array_entity_code(hdr_idx)
120446    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
120447    ,p_event_id                 => l_array_event_id(hdr_idx)
120448    ,p_event_class_code         => l_array_class_code(hdr_idx)
120449    ,p_event_type_code          => l_array_event_type(hdr_idx)
120450    ,p_event_number             => l_array_event_number(hdr_idx)
120451    ,p_event_date               => l_array_event_date(hdr_idx)
120452    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
120453    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
120454    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
120455    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
120456    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
120457    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
120458    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
120459    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
120460    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
120461    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
120462    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
120463    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
120464    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
120465    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
120466    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
120467 
120468 --
120469 -- set the status of entry to C_VALID (0)
120470 --
120471 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
120472 
120473 --
120474 -- initialize a row for ae header
120475 --
120476 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
120477 
120478 l_event_id := l_array_event_id(hdr_idx);
120479 
120480 --
120481 -- storing the hdr_idx for event. May be used by line cursor.
120482 --
120483 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
120484 
120485 --
120486 -- store sources from header extract. This can be improved to
120487 -- store only those sources from header extract that may be used in lines
120488 --
120489 
120490 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
120491 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
120492 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
120493 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
120494 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
120495 
120496 --
120497 -- initilaize the status of ae headers for diffrent balance types
120498 -- the status is initialised to C_NOT_CREATED (2)
120499 --
120500 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
120501 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
120502 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
120503 
120504 --
120505 -- call api to validate and store accounting attributes for header
120506 --
120507 
120508 ------------------------------------------------------------
120509 -- Accrual Reversal : to get date for Standard Source (NONE)
120510 ------------------------------------------------------------
120511 l_acc_rev_gl_date_source := NULL;
120512 
120513      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
120514       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
120515      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
120516       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
120517      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
120521 xla_ae_sources_pkg.GetSystemSourceDate(
120518       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
120519      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
120520       l_rec_acct_attrs.array_date_value(4) := 
120522    p_source_code           => 'XLA_EVENT_DATE'
120523  , p_source_type_code      => 'Y'
120524  , p_source_application_id =>  602
120525 );
120526 
120527 
120528 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
120529 
120530 XLA_AE_HEADER_PKG.SetJeCategoryName;
120531 
120532 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
120533 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
120534 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
120535 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
120536 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
120537 
120538 
120539 -- No header level analytical criteria
120540 
120541 --
120542 --accounting attribute enhancement, bug 3612931
120543 --
120544 l_trx_reversal_source := SUBSTR(NULL, 1,30);
120545 
120546 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
120547    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
120548 
120549    xla_accounting_err_pkg.build_message
120550       (p_appli_s_name            => 'XLA'
120551       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
120552       ,p_token_1                 => 'ACCT_ATTR_NAME'
120553       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
120554       ,p_token_2                 => 'PRODUCT_NAME'
120555       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
120556       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
120557       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
120558       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
120559 
120560 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
120561    --
120562    -- following sets the accounting attributes needed to reverse
120563    -- accounting for a distributeion
120564    --
120565    xla_ae_lines_pkg.SetTrxReversalAttrs
120566       (p_event_id              => l_event_id
120567       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
120568       ,p_trx_reversal_source   => l_trx_reversal_source);
120569 
120570 END IF;
120571 
120572 
120573 ----------------------------------------------------------------
120574 -- 4262811 -  update the header statuses to invalid in need be
120575 ----------------------------------------------------------------
120576 --
120577 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
120578 
120579 
120580   -----------------------------------------------
120581   -- No accrual reversal for the event class/type
120582   -----------------------------------------------
120583 ----------------------------------------------------------------
120584 
120585 --
120586 -- this ends the header loop iteration for one bulk fetch
120587 --
120588 END LOOP;
120589 
120590 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
120591 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
120592 
120593 --
120594 -- insert dummy rows into lines gt table that were created due to
120595 -- transaction reversals
120596 --
120597 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
120598    l_result := XLA_AE_LINES_PKG.InsertLines;
120599 END IF;
120600 
120601 --
120602 -- reset the temp_line_num for each set of events fetched from header
120603 -- cursor rather than doing it for each new event in line cursor
120604 -- Bug 3939231
120605 --
120606 xla_ae_lines_pkg.g_temp_line_num := 0;
120607 
120608 
120609 
120610 --
120611 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
120612 --
120613 --
120614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120615 
120616       trace
120617          (p_msg      => 'SQL - FETCH line_cur'
120618          ,p_level    => C_LEVEL_STATEMENT
120619          ,p_module   => l_log_module);
120620 
120621 END IF;
120622 --
120623 --
120624 LOOP
120625   --
120626   FETCH line_cur BULK COLLECT INTO
120627         l_array_entity_id
120628       , l_array_legal_entity_id
120629       , l_array_entity_code
120630       , l_array_transaction_num
120631       , l_array_event_id
120632       , l_array_class_code
120633       , l_array_event_type
120634       , l_array_event_number
120635       , l_array_event_date
120636       , l_array_transaction_date
120637       , l_array_reference_num_1
120638       , l_array_reference_num_2
120639       , l_array_reference_num_3
120640       , l_array_reference_num_4
120641       , l_array_reference_char_1
120642       , l_array_reference_char_2
120643       , l_array_reference_char_3
120644       , l_array_reference_char_4
120645       , l_array_reference_date_1
120646       , l_array_reference_date_2
120647       , l_array_reference_date_3
120648       , l_array_reference_date_4
120649       , l_array_event_created_by
120650       , l_array_budgetary_control_flag
120651       , l_array_extract_line_num 
120652       , l_array_source_40
120653       , l_array_source_48
120654       , l_array_source_58
120655       , l_array_source_59
120659       , l_array_source_81
120656       , l_array_source_66
120657       , l_array_source_78
120658       , l_array_source_79
120660       , l_array_source_83
120661       , l_array_source_84
120662       , l_array_source_85
120663       , l_array_source_86
120664       , l_array_source_96
120665       , l_array_source_97
120666       , l_array_source_156
120667       , l_array_source_157
120668       LIMIT l_rows;
120669 
120670   --
120671   IF (C_LEVEL_EVENT >= g_log_level) THEN
120672             trace
120673                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
120674                ,p_level    => C_LEVEL_EVENT
120675                ,p_module   => l_log_module);
120676   END IF;
120677   --
120678   EXIT WHEN l_array_entity_id.count = 0;
120679 
120680   XLA_AE_LINES_PKG.g_rec_lines := null;
120681 
120682 --
120683 -- Bug 4458708
120684 --
120685 XLA_AE_LINES_PKG.g_LineNumber := 0;
120686 --
120687 --
120688 
120689 FOR Idx IN 1..l_array_event_id.count LOOP
120690    --
120691    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
120692    --
120693    l_event_id := l_array_event_id(idx);  -- 5648433
120694 
120695    --
120696    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
120697    --
120698 
120699    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
120700              (g_array_event(l_event_id).array_value_num('header_index'))
120701          ,'N'
120702          ) <> 'Y'
120703    THEN
120704       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120705          trace
120706             (p_msg      => 'Trancaction revesal option is not Y '
120707             ,p_level    => C_LEVEL_STATEMENT
120708             ,p_module   => l_log_module);
120709       END IF;
120710 
120711 --
120712 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
120713 --
120714 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
120715 --
120716 -- set event info as cache for other routines to refer event attributes
120717 --
120718 
120719 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
120720    l_previous_event_id := l_event_id;
120721 
120722    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
120723       (p_application_id           => p_application_id
120724       ,p_primary_ledger_id        => p_primary_ledger_id
120725       ,p_base_ledger_id           => p_base_ledger_id
120726       ,p_target_ledger_id         => p_target_ledger_id
120727       ,p_entity_id                => l_array_entity_id(Idx)
120728       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
120729       ,p_entity_code              => l_array_entity_code(Idx)
120730       ,p_transaction_num          => l_array_transaction_num(Idx)
120731       ,p_event_id                 => l_array_event_id(Idx)
120732       ,p_event_class_code         => l_array_class_code(Idx)
120733       ,p_event_type_code          => l_array_event_type(Idx)
120734       ,p_event_number             => l_array_event_number(Idx)
120735       ,p_event_date               => l_array_event_date(Idx)
120736       ,p_transaction_date         => l_array_transaction_date(Idx)
120737       ,p_reference_num_1          => l_array_reference_num_1(Idx)
120738       ,p_reference_num_2          => l_array_reference_num_2(Idx)
120739       ,p_reference_num_3          => l_array_reference_num_3(Idx)
120740       ,p_reference_num_4          => l_array_reference_num_4(Idx)
120741       ,p_reference_char_1         => l_array_reference_char_1(Idx)
120742       ,p_reference_char_2         => l_array_reference_char_2(Idx)
120743       ,p_reference_char_3         => l_array_reference_char_3(Idx)
120744       ,p_reference_char_4         => l_array_reference_char_4(Idx)
120745       ,p_reference_date_1         => l_array_reference_date_1(Idx)
120746       ,p_reference_date_2         => l_array_reference_date_2(Idx)
120747       ,p_reference_date_3         => l_array_reference_date_3(Idx)
120748       ,p_reference_date_4         => l_array_reference_date_4(Idx)
120749       ,p_event_created_by         => l_array_event_created_by(Idx)
120750       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
120751        --
120752 END IF;
120753 
120754 
120755 
120756 --
120757 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
120758 
120759 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
120760 
120761 IF l_continue_with_lines THEN
120762    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
120763       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
120764 
120765       xla_accounting_err_pkg.build_message
120766          (p_appli_s_name            => 'XLA'
120767          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
120768          ,p_token_1                 => 'LINE_NUMBER'
120769          ,p_value_1                 => l_array_extract_line_num(Idx)
120770          ,p_token_2                 => 'PRODUCT_NAME'
120771          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
120772          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
120773          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
120774          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
120775 
120776    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
120777       --
120778       -- following sets the accounting attributes needed to reverse
120779       -- accounting for a distributeion
120783       -- 5217187
120780       --
120781 
120782       --
120784       --
120785       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
120786       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
120787                                        g_array_event(l_event_id).array_value_num('header_index'));
120788       --
120789       --
120790 
120791       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
120792       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_40(Idx);
120793       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
120794       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_156(Idx);
120795       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
120796       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_48(Idx);
120797       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
120798       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_78(Idx);
120799       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
120800       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_79(Idx);
120801       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
120802       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_80');
120803       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
120804       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_81(Idx);
120805       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
120806       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_83(Idx);
120807       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
120808       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_84(Idx);
120809       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
120810       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_80');
120811       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
120812       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_85(Idx);
120813       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
120814       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_86(Idx);
120815       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
120816       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_56');
120817       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
120818       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_157(Idx);
120819       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
120820       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_48(Idx);
120821       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
120822       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_58(Idx);
120823       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
120824       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_66(Idx);
120825       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
120826       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_59(Idx);
120827       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
120828       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_96(Idx);
120829       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
120830       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_97(Idx);
120831 
120832 
120833       xla_ae_lines_pkg.SetAcctReversalAttrs
120834          (p_event_id             => l_event_id
120835          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
120836          ,p_calculate_acctd_flag => l_calculate_acctd_flag
120837          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
120838    END IF;
120839 
120840    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
120841        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
120842       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
120843       -- or secondary ledger that has different currency with primary
120844       -- or alc that is calculated by sla
120845       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
120846             (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'))
120847 
120848 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
120849 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
120850           AND (l_actual_flag = 'A')) THEN
120851         XLA_AE_LINES_PKG.CreateGainOrLossLines(
120852           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
120853          ,p_application_id   => p_application_id
120854          ,p_amb_context_code => 'DEFAULT'
120855          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
120856          ,p_event_class_code => C_EVENT_CLASS_CODE
120857          ,p_event_type_code  => C_EVENT_TYPE_CODE
120858          
120859          ,p_gain_ccid        => -1
120860          ,p_loss_ccid        => -1
120861 
120862          ,p_actual_flag      => l_actual_flag
120863          ,p_enc_flag         => null
120864          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
120865          ,p_enc_g_l_ref      => null
120866          );
120867       END IF;
120868    END IF;
120869 END IF;
120870 
120871    ELSE
120872       --
120876          trace
120873       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
120874       --
120875       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120877             (p_msg      => 'Trancaction revesal option is Y'
120878             ,p_level    => C_LEVEL_STATEMENT
120879             ,p_module   => l_log_module);
120880       END IF;
120881    END IF;
120882 
120883 END LOOP;
120884 l_result := XLA_AE_LINES_PKG.InsertLines ;
120885 end loop;
120886 close line_cur;
120887 
120888 
120889 --
120890 -- insert headers into xla_ae_headers_gt table
120891 --
120892 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
120893 
120894 -- insert into errors table here.
120895 
120896 END LOOP;
120897 
120898 --
120899 -- 4865292
120900 --
120901 -- Compare g_hdr_extract_count with event count in
120902 -- CreateHeadersAndLines.
120903 --
120904 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
120905 
120906 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
120907    trace (p_msg     => '# rows extracted from header extract objects '
120908                     || ' (running total): '
120909                     || g_hdr_extract_count
120910          ,p_level   => C_LEVEL_STATEMENT
120911          ,p_module  => l_log_module);
120912 END IF;
120913 
120914 CLOSE header_cur;
120915 --
120916 
120917 --
120918 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120919    trace
120920       (p_msg      => 'END of EventClass_205'
120921       ,p_level    => C_LEVEL_PROCEDURE
120922       ,p_module   => l_log_module);
120923 END IF;
120924 --
120925 RETURN l_result;
120926 EXCEPTION
120927 WHEN xla_exceptions_pkg.application_exception THEN
120928    
120929 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
120930 
120931    
120932 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
120933 
120934    RAISE;
120935 
120936 WHEN NO_DATA_FOUND THEN
120937 
120938 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
120939 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
120940 
120941 FOR header_record IN header_cur
120942 LOOP
120943     l_array_header_events(header_record.event_id) := header_record.event_id;
120944 END LOOP;
120945 
120946 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
120947 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
120948 
120949 fnd_file.put_line(fnd_file.LOG, '                    ');
120950 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
120951 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
120952 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
120953 
120954 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
120955 LOOP
120956 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
120957 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
120958         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
120959 	END IF;
120960 END LOOP;
120961 
120962 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
120963 fnd_file.put_line(fnd_file.LOG, '                    ');
120964 
120965 
120966 xla_exceptions_pkg.raise_message
120967       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_205');
120968 
120969 
120970 WHEN OTHERS THEN
120971    xla_exceptions_pkg.raise_message
120972       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_205');
120973 END EventClass_205;
120974 --
120975 
120976 ---------------------------------------
120977 --
120978 -- PRIVATE PROCEDURE
120979 --         insert_sources_206
120980 --
120981 ----------------------------------------
120982 --
120983 PROCEDURE insert_sources_206(
120984                                 p_target_ledger_id       IN NUMBER
120985                               , p_language               IN VARCHAR2
120986                               , p_sla_ledger_id          IN NUMBER
120987                               , p_pad_start_date         IN DATE
120988                               , p_pad_end_date           IN DATE
120989                          )
120990 IS
120991 
120992 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
120993 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
120994 p_apps_owner                   VARCHAR2(30);
120995 l_log_module                   VARCHAR2(240);
120996 BEGIN
120997 IF g_log_enabled THEN
120998       l_log_module := C_DEFAULT_MODULE||'.insert_sources_206';
120999 END IF;
121000 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121001 
121002       trace
121003          (p_msg      => 'BEGIN of insert_sources_206'
121004          ,p_level    => C_LEVEL_PROCEDURE
121005          ,p_module   => l_log_module);
121006 
121007 END IF;
121008 
121009 -- select APPS owner
121010 SELECT oracle_username
121011   INTO p_apps_owner
121012   FROM fnd_oracle_userid
121013  WHERE read_only_flag = 'U'
121014 ;
121015 
121016 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121017       trace
121018          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
121019                         ' - p_language = '||p_language||
121023                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
121020                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
121021                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
121022                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
121024          ,p_level    => C_LEVEL_STATEMENT
121025          ,p_module   => l_log_module);
121026 END IF;
121027 
121028 
121029 --
121030 INSERT INTO xla_diag_sources --hdr2
121031 (
121032         event_id
121033       , ledger_id
121034       , sla_ledger_id
121035       , description_language
121036       , object_name
121037       , object_type_code
121038       , line_number
121039       , source_application_id
121040       , source_type_code
121041       , source_code
121042       , source_value
121043       , source_meaning
121044       , created_by
121045       , creation_date
121046       , last_update_date
121047       , last_updated_by
121048       , last_update_login
121049       , program_update_date
121050       , program_application_id
121051       , program_id
121052       , request_id
121053 )
121054 SELECT
121055         event_id
121056       , p_target_ledger_id
121057       , p_sla_ledger_id
121058       , p_language
121059       , object_name
121060       , object_type_code
121061       , line_number
121062       , source_application_id
121063       , source_type_code
121064       , source_code
121065       , SUBSTR(source_value ,1,1996)
121066       , SUBSTR(source_meaning ,1,200)
121067       , xla_environment_pkg.g_Usr_Id
121068       , TRUNC(SYSDATE)
121069       , TRUNC(SYSDATE)
121070       , xla_environment_pkg.g_Usr_Id
121071       , xla_environment_pkg.g_Login_Id
121072       , TRUNC(SYSDATE)
121073       , xla_environment_pkg.g_Prog_Appl_Id
121074       , xla_environment_pkg.g_Prog_Id
121075       , xla_environment_pkg.g_Req_Id
121076   FROM (
121077        SELECT xet.event_id                  event_id
121078             , 0                          line_number
121079             , CASE r
121080                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121081                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
121082                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121083                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
121084                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121085                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
121086                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121087                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
121088                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
121089                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
121090                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121091                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121092                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121093                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121094                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121095                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121096                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121097                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121098                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121099                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121100                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121101                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
121102                 
121103                ELSE null
121104               END                           object_name
121105             , CASE r
121106                 WHEN 1 THEN 'HEADER' 
121107                 WHEN 2 THEN 'HEADER' 
121108                 WHEN 3 THEN 'HEADER' 
121109                 WHEN 4 THEN 'HEADER' 
121110                 WHEN 5 THEN 'HEADER' 
121111                 WHEN 6 THEN 'HEADER' 
121112                 WHEN 7 THEN 'HEADER' 
121113                 WHEN 8 THEN 'HEADER' 
121114                 WHEN 9 THEN 'HEADER' 
121115                 WHEN 10 THEN 'HEADER' 
121116                 WHEN 11 THEN 'HEADER' 
121117                 WHEN 12 THEN 'HEADER' 
121118                 WHEN 13 THEN 'HEADER' 
121119                 WHEN 14 THEN 'HEADER' 
121120                 WHEN 15 THEN 'HEADER' 
121121                 WHEN 16 THEN 'HEADER' 
121122                 WHEN 17 THEN 'HEADER' 
121123                 WHEN 18 THEN 'HEADER' 
121124                 WHEN 19 THEN 'HEADER' 
121125                 WHEN 20 THEN 'HEADER' 
121126                 WHEN 21 THEN 'HEADER' 
121127                 WHEN 22 THEN 'HEADER' 
121128                 
121129                 ELSE null
121130               END                           object_type_code
121131             , CASE r
121132                 WHEN 1 THEN '200' 
121133                 WHEN 2 THEN '200' 
121134                 WHEN 3 THEN '200' 
121135                 WHEN 4 THEN '200' 
121136                 WHEN 5 THEN '200' 
121137                 WHEN 6 THEN '200' 
121138                 WHEN 7 THEN '200' 
121139                 WHEN 8 THEN '200' 
121140                 WHEN 9 THEN '200' 
121141                 WHEN 10 THEN '200' 
121142                 WHEN 11 THEN '200' 
121143                 WHEN 12 THEN '200' 
121144                 WHEN 13 THEN '200' 
121145                 WHEN 14 THEN '200' 
121146                 WHEN 15 THEN '200' 
121147                 WHEN 16 THEN '200' 
121148                 WHEN 17 THEN '200' 
121152                 WHEN 21 THEN '200' 
121149                 WHEN 18 THEN '200' 
121150                 WHEN 19 THEN '200' 
121151                 WHEN 20 THEN '200' 
121153                 WHEN 22 THEN '200' 
121154                 
121155                 ELSE null
121156               END                           source_application_id
121157             , 'S'             source_type_code
121158             , CASE r
121159                 WHEN 1 THEN 'CGAC_AP_ASSET_CCID' 
121160                 WHEN 2 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
121161                 WHEN 3 THEN 'CGAC_CASH_CLEARING_CCID' 
121162                 WHEN 4 THEN 'ASP_AUTO_OFFSET_FLAG' 
121163                 WHEN 5 THEN 'CGAC_GAIN_CCID' 
121164                 WHEN 6 THEN 'ASP_GAIN_CCID' 
121165                 WHEN 7 THEN 'CGAC_LOSS_CCID' 
121166                 WHEN 8 THEN 'ASP_LOSS_CCID' 
121167                 WHEN 9 THEN 'ASP_ROUNDING_ERROR_CCID' 
121168                 WHEN 10 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
121169                 WHEN 11 THEN 'AC_CURRENCY_CODE' 
121170                 WHEN 12 THEN 'AC_VENDOR_ID' 
121171                 WHEN 13 THEN 'AC_VENDOR_SITE_ID' 
121172                 WHEN 14 THEN 'THIRD_PARTY_TYPE' 
121173                 WHEN 15 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
121174                 WHEN 16 THEN 'AC_FUTURE_PAY_DUE_DATE' 
121175                 WHEN 17 THEN 'AC_EXCHANGE_DATE' 
121176                 WHEN 18 THEN 'AC_EXCHANGE_RATE' 
121177                 WHEN 19 THEN 'AC_EXCHANGE_RATE_TYPE' 
121178                 WHEN 20 THEN 'AC_DOC_CATEGORY_CODE' 
121179                 WHEN 21 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
121180                 WHEN 22 THEN 'AC_DOC_SEQUENCE_VALUE' 
121181                 
121182                 ELSE null
121183               END                           source_code
121184             , CASE r
121185                 WHEN 1 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
121186                 WHEN 2 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
121187                 WHEN 3 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
121188                 WHEN 4 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
121189                 WHEN 5 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
121190                 WHEN 6 THEN TO_CHAR(h3.ASP_GAIN_CCID)
121191                 WHEN 7 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
121192                 WHEN 8 THEN TO_CHAR(h3.ASP_LOSS_CCID)
121193                 WHEN 9 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
121194                 WHEN 10 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
121195                 WHEN 11 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
121196                 WHEN 12 THEN TO_CHAR(h2.AC_VENDOR_ID)
121197                 WHEN 13 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
121198                 WHEN 14 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
121199                 WHEN 15 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
121200                 WHEN 16 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
121201                 WHEN 17 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
121202                 WHEN 18 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
121203                 WHEN 19 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
121204                 WHEN 20 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
121205                 WHEN 21 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
121206                 WHEN 22 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
121207                 
121208                 ELSE null
121209               END                           source_value
121210             , CASE r
121211                 WHEN 2 THEN fvl4.meaning
121212                 WHEN 4 THEN fvl30.meaning
121213                 WHEN 15 THEN fvl110.meaning
121214                 
121215                 ELSE null
121216               END               source_meaning
121217          FROM xla_events_gt     xet  
121218       , AP_PAYMENT_EXTRACT_HEADER_V  h2
121219       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
121220   , fnd_lookup_values    fvl4
121221   , fnd_lookup_values    fvl30
121222   , fnd_lookup_values    fvl110
121223              ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
121224          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
121225            AND xet.event_class_code = C_EVENT_CLASS_CODE
121226               AND h2.event_id = xet.event_id
121227  AND h3.asp_org_id = h2.ac_org_id   AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
121228   AND fvl4.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
121229   AND fvl4.view_application_id(+) = 200
121230   AND fvl4.language(+)            = USERENV('LANG')
121231      AND fvl30.lookup_type(+)         = 'YES_NO'
121232   AND fvl30.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
121233   AND fvl30.view_application_id(+) = 0
121234   AND fvl30.language(+)            = USERENV('LANG')
121235      AND fvl110.lookup_type(+)         = 'YES_NO'
121236   AND fvl110.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
121237   AND fvl110.view_application_id(+) = 0
121238   AND fvl110.language(+)            = USERENV('LANG')
121239   
121240 )
121241 ;
121242 --
121243 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121244 
121245       trace
121246          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
121247          ,p_level    => C_LEVEL_STATEMENT
121248          ,p_module   => l_log_module);
121249 
121250 END IF;
121251 --
121252 
121253 
121254 
121255 --
121256 INSERT INTO xla_diag_sources  --line2
121257 (
121258         event_id
121259       , ledger_id
121260       , sla_ledger_id
121261       , description_language
121262       , object_name
121263       , object_type_code
121264       , line_number
121268       , source_value
121265       , source_application_id
121266       , source_type_code
121267       , source_code
121269       , source_meaning
121270       , created_by
121271       , creation_date
121272       , last_update_date
121273       , last_updated_by
121274       , last_update_login
121275       , program_update_date
121276       , program_application_id
121277       , program_id
121278       , request_id
121279 )
121280 SELECT  event_id
121281       , p_target_ledger_id
121282       , p_sla_ledger_id
121283       , p_language
121284       , object_name
121285       , object_type_code
121286       , line_number
121287       , source_application_id
121288       , source_type_code
121289       , source_code
121290       , SUBSTR(source_value,1,1996)
121291       , SUBSTR(source_meaning ,1,200)
121292       , xla_environment_pkg.g_Usr_Id
121293       , TRUNC(SYSDATE)
121294       , TRUNC(SYSDATE)
121295       , xla_environment_pkg.g_Usr_Id
121296       , xla_environment_pkg.g_Login_Id
121297       , TRUNC(SYSDATE)
121298       , xla_environment_pkg.g_Prog_Appl_Id
121299       , xla_environment_pkg.g_Prog_Id
121300       , xla_environment_pkg.g_Req_Id
121301   FROM (
121302        SELECT xet.event_id                  event_id
121303             , l1.line_number                 line_number
121304             , CASE r
121305                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121306                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121307                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121308                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121309                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121310                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121311                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121312                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121313                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121314                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121315                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121316                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121317                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121318                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121319                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121320                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121321                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
121322                 
121323                ELSE null
121324               END                           object_name
121325             , CASE r
121326                 WHEN 1 THEN 'LINE' 
121327                 WHEN 2 THEN 'LINE' 
121328                 WHEN 3 THEN 'LINE' 
121329                 WHEN 4 THEN 'LINE' 
121330                 WHEN 5 THEN 'LINE' 
121331                 WHEN 6 THEN 'LINE' 
121332                 WHEN 7 THEN 'LINE' 
121333                 WHEN 8 THEN 'LINE' 
121334                 WHEN 9 THEN 'LINE' 
121335                 WHEN 10 THEN 'LINE' 
121336                 WHEN 11 THEN 'LINE' 
121337                 WHEN 12 THEN 'LINE' 
121338                 WHEN 13 THEN 'LINE' 
121339                 WHEN 14 THEN 'LINE' 
121340                 WHEN 15 THEN 'LINE' 
121341                 WHEN 16 THEN 'LINE' 
121342                 WHEN 17 THEN 'LINE' 
121343                 
121344                 ELSE null
121345               END                           object_type_code
121346             , CASE r
121347                 WHEN 1 THEN '200' 
121348                 WHEN 2 THEN '200' 
121349                 WHEN 3 THEN '200' 
121350                 WHEN 4 THEN '200' 
121351                 WHEN 5 THEN '200' 
121352                 WHEN 6 THEN '200' 
121353                 WHEN 7 THEN '200' 
121354                 WHEN 8 THEN '200' 
121355                 WHEN 9 THEN '200' 
121356                 WHEN 10 THEN '200' 
121357                 WHEN 11 THEN '200' 
121358                 WHEN 12 THEN '200' 
121359                 WHEN 13 THEN '200' 
121360                 WHEN 14 THEN '200' 
121361                 WHEN 15 THEN '200' 
121362                 WHEN 16 THEN '200' 
121363                 WHEN 17 THEN '200' 
121364                 
121365                 ELSE null
121366               END                           source_application_id
121367             , 'S'             source_type_code
121368             , CASE r
121369                 WHEN 1 THEN 'APHD_PAYMENT_BASE_AMT' 
121370                 WHEN 2 THEN 'AID_DIST_CCID' 
121371                 WHEN 3 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
121372                 WHEN 4 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
121373                 WHEN 5 THEN 'APHD_AMOUNT' 
121374                 WHEN 6 THEN 'BUS_FLOW_AP_APP_ID' 
121375                 WHEN 7 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
121376                 WHEN 8 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
121377                 WHEN 9 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
121378                 WHEN 10 THEN 'BUS_FLOW_PAYMENT_ID' 
121379                 WHEN 11 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
121380                 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE' 
121381                 WHEN 13 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
121382                 WHEN 14 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
121383                 WHEN 15 THEN 'APHD_MATURED_BASE_AMOUNT' 
121384                 WHEN 16 THEN 'PMT_MAT_BASE_AMT_DIFF' 
121385                 WHEN 17 THEN 'PMT_MAT_GAIN_LOSS_INDICATOR' 
121386                 
121387                 ELSE null
121388               END                           source_code
121389             , CASE r
121393                 WHEN 4 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
121390                 WHEN 1 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
121391                 WHEN 2 THEN TO_CHAR(l1.AID_DIST_CCID)
121392                 WHEN 3 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
121394                 WHEN 5 THEN TO_CHAR(l1.APHD_AMOUNT)
121395                 WHEN 6 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
121396                 WHEN 7 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
121397                 WHEN 8 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
121398                 WHEN 9 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
121399                 WHEN 10 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
121400                 WHEN 11 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
121401                 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
121402                 WHEN 13 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
121403                 WHEN 14 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
121404                 WHEN 15 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
121405                 WHEN 16 THEN TO_CHAR(l1.PMT_MAT_BASE_AMT_DIFF)
121406                 WHEN 17 THEN TO_CHAR(l1.PMT_MAT_GAIN_LOSS_INDICATOR)
121407                 
121408                 ELSE null
121409               END                           source_value
121410             , CASE r
121411                 WHEN 3 THEN fvl39.meaning
121412                 WHEN 13 THEN fvl53.meaning
121413                 
121414                 ELSE null
121415               END               source_meaning
121416          FROM  xla_events_gt     xet  
121417         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
121418   , fnd_lookup_values    fvl39
121419   , fnd_lookup_values    fvl53
121420             , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
121421         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
121422           AND xet.event_class_code = C_EVENT_CLASS_CODE
121423             AND l1.event_id          = xet.event_id
121424    AND fvl39.lookup_type(+)         = 'PAY_DIST_TYPES'
121425   AND fvl39.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
121426   AND fvl39.view_application_id(+) = 200
121427   AND fvl39.language(+)            = USERENV('LANG')
121428      AND fvl53.lookup_type(+)         = 'YES_NO'
121429   AND fvl53.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
121430   AND fvl53.view_application_id(+) = 0
121431   AND fvl53.language(+)            = USERENV('LANG')
121432   
121433 )
121434 ;
121435 --
121436 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121437 
121438       trace
121439          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
121440          ,p_level    => C_LEVEL_STATEMENT
121441          ,p_module   => l_log_module);
121442 
121443 END IF;
121444 
121445 
121446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121447       trace
121448          (p_msg      => 'END of insert_sources_206'
121449          ,p_level    => C_LEVEL_PROCEDURE
121450          ,p_module   => l_log_module);
121451 END IF;
121452 EXCEPTION
121453   WHEN xla_exceptions_pkg.application_exception THEN
121454       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
121455             trace
121456                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
121457                ,p_level    => C_LEVEL_EXCEPTION
121458                ,p_module   => l_log_module);
121459       END IF;
121460       RAISE;
121461   WHEN OTHERS THEN
121462       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
121463             trace
121464                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
121465                ,p_level    => C_LEVEL_EXCEPTION
121466                ,p_module   => l_log_module);
121467        END IF;
121468        xla_exceptions_pkg.raise_message
121469            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_206');
121470 END insert_sources_206;
121471 --
121472 
121473 ---------------------------------------
121474 --
121475 -- PRIVATE FUNCTION
121476 --         EventClass_206
121477 --
121478 ----------------------------------------
121479 --
121480 FUNCTION EventClass_206
121481        (p_application_id         IN NUMBER
121482        ,p_base_ledger_id         IN NUMBER
121483        ,p_target_ledger_id       IN NUMBER
121484        ,p_language               IN VARCHAR2
121485        ,p_currency_code          IN VARCHAR2
121486        ,p_sla_ledger_id          IN NUMBER
121487        ,p_pad_start_date         IN DATE
121488        ,p_pad_end_date           IN DATE
121489        ,p_primary_ledger_id      IN NUMBER)
121490 RETURN BOOLEAN IS
121491 --
121492 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
121493 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
121494 
121495 l_calculate_acctd_flag   VARCHAR2(1) :='N';
121496 l_calculate_g_l_flag     VARCHAR2(1) :='N';
121497 --
121498 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121499 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121500 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
121501 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121502 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121503 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
121504 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
121505 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121506 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121510 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121507 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121508 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121509 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121511 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
121512 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121513 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121514 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121515 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
121516 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121517 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121518 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121519 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
121520 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
121521 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
121522 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
121523 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
121524 
121525 l_event_id                             NUMBER;
121526 l_previous_event_id                    NUMBER;
121527 l_first_event_id                       NUMBER;
121528 l_last_event_id                        NUMBER;
121529 
121530 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
121531 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
121532 --
121533 --
121534 l_result                    BOOLEAN := TRUE;
121535 l_rows                      NUMBER  := 1000;
121536 l_event_type_name           VARCHAR2(80) := 'All';
121537 l_event_class_name          VARCHAR2(80) := 'Future Dated Payments';
121538 l_description               VARCHAR2(4000);
121539 l_transaction_reversal      NUMBER;
121540 l_ae_header_id              NUMBER;
121541 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
121542 l_log_module                VARCHAR2(240);
121543 --
121544 l_acct_reversal_source      VARCHAR2(30);
121545 l_trx_reversal_source       VARCHAR2(30);
121546 
121547 l_continue_with_lines       BOOLEAN := TRUE;
121548 --
121549 l_acc_rev_gl_date_source    DATE;                      -- 4262811
121550 --
121551 type t_array_event_id is table of number index by binary_integer;
121552 
121553 l_rec_array_event                    t_rec_array_event;
121554 l_null_rec_array_event               t_rec_array_event;
121555 l_array_ae_header_id                 xla_number_array_type;
121556 l_actual_flag                        VARCHAR2(1) := NULL;
121557 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
121558 l_balance_type_code                  VARCHAR2(1) :=NULL;
121559 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
121560 
121561 --
121562 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
121563 --
121564 
121565 TYPE t_array_source_1 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
121566 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
121567 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
121568 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
121569 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
121570 TYPE t_array_source_33 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
121571 TYPE t_array_source_34 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
121572 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
121573 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
121574 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
121575 TYPE t_array_source_49 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
121576 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
121577 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
121578 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
121579 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
121580 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
121581 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
121582 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
121583 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
121584 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
121585 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
121589 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
121586 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
121587 
121588 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
121590 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
121591 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
121592 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
121593 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
121594 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
121595 TYPE t_array_source_44 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
121596 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
121597 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
121598 TYPE t_array_source_47 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
121599 TYPE t_array_source_48 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
121600 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
121601 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
121602 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
121603 TYPE t_array_source_128 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
121604 TYPE t_array_source_133 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
121605 
121606 l_array_source_1              t_array_source_1;
121607 l_array_source_4              t_array_source_4;
121608 l_array_source_4_meaning      t_array_lookup_meaning;
121609 l_array_source_21              t_array_source_21;
121610 l_array_source_30              t_array_source_30;
121611 l_array_source_30_meaning      t_array_lookup_meaning;
121612 l_array_source_32              t_array_source_32;
121613 l_array_source_33              t_array_source_33;
121614 l_array_source_34              t_array_source_34;
121615 l_array_source_35              t_array_source_35;
121616 l_array_source_37              t_array_source_37;
121617 l_array_source_38              t_array_source_38;
121618 l_array_source_49              t_array_source_49;
121619 l_array_source_54              t_array_source_54;
121620 l_array_source_55              t_array_source_55;
121621 l_array_source_56              t_array_source_56;
121622 l_array_source_110              t_array_source_110;
121623 l_array_source_110_meaning      t_array_lookup_meaning;
121624 l_array_source_111              t_array_source_111;
121625 l_array_source_114              t_array_source_114;
121626 l_array_source_115              t_array_source_115;
121627 l_array_source_116              t_array_source_116;
121628 l_array_source_158              t_array_source_158;
121629 l_array_source_159              t_array_source_159;
121630 l_array_source_160              t_array_source_160;
121631 
121632 l_array_source_9      t_array_source_9;
121633 l_array_source_17      t_array_source_17;
121634 l_array_source_39      t_array_source_39;
121635 l_array_source_39_meaning      t_array_lookup_meaning;
121636 l_array_source_40      t_array_source_40;
121637 l_array_source_41      t_array_source_41;
121638 l_array_source_42      t_array_source_42;
121639 l_array_source_43      t_array_source_43;
121640 l_array_source_44      t_array_source_44;
121641 l_array_source_45      t_array_source_45;
121642 l_array_source_46      t_array_source_46;
121643 l_array_source_47      t_array_source_47;
121644 l_array_source_48      t_array_source_48;
121645 l_array_source_53      t_array_source_53;
121646 l_array_source_53_meaning      t_array_lookup_meaning;
121647 l_array_source_57      t_array_source_57;
121648 l_array_source_117      t_array_source_117;
121649 l_array_source_128      t_array_source_128;
121650 l_array_source_133      t_array_source_133;
121651 
121652 --
121653 CURSOR header_cur
121654 IS
121655 SELECT /*+ leading(xet) cardinality(xet,1) */
121656 -- Event Class Code: FUTURE DATED PAYMENTS
121657     xet.entity_id
121658    ,xet.legal_entity_id
121659    ,xet.entity_code
121660    ,xet.transaction_number
121661    ,xet.event_id
121662    ,xet.event_class_code
121663    ,xet.event_type_code
121664    ,xet.event_number
121665    ,xet.event_date
121666    ,xet.transaction_date
121667    ,xet.reference_num_1
121668    ,xet.reference_num_2
121669    ,xet.reference_num_3
121670    ,xet.reference_num_4
121671    ,xet.reference_char_1
121672    ,xet.reference_char_2
121673    ,xet.reference_char_3
121674    ,xet.reference_char_4
121675    ,xet.reference_date_1
121676    ,xet.reference_date_2
121677    ,xet.reference_date_3
121678    ,xet.reference_date_4
121679    ,xet.event_created_by
121680    ,xet.budgetary_control_flag 
121681   , h2.CGAC_AP_ASSET_CCID    source_1
121682   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_4
121683   , fvl4.meaning   source_4_meaning
121684   , h2.CGAC_CASH_CLEARING_CCID    source_21
121685   , h3.ASP_AUTO_OFFSET_FLAG    source_30
121686   , fvl30.meaning   source_30_meaning
121687   , h2.CGAC_GAIN_CCID    source_32
121691   , h3.ASP_ROUNDING_ERROR_CCID    source_37
121688   , h3.ASP_GAIN_CCID    source_33
121689   , h2.CGAC_LOSS_CCID    source_34
121690   , h3.ASP_LOSS_CCID    source_35
121692   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_38
121693   , h2.AC_CURRENCY_CODE    source_49
121694   , h2.AC_VENDOR_ID    source_54
121695   , h2.AC_VENDOR_SITE_ID    source_55
121696   , h2.THIRD_PARTY_TYPE    source_56
121697   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_110
121698   , fvl110.meaning   source_110_meaning
121699   , h2.AC_FUTURE_PAY_DUE_DATE    source_111
121700   , h2.AC_EXCHANGE_DATE    source_114
121701   , h2.AC_EXCHANGE_RATE    source_115
121702   , h2.AC_EXCHANGE_RATE_TYPE    source_116
121703   , h2.AC_DOC_CATEGORY_CODE    source_158
121704   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_159
121705   , h2.AC_DOC_SEQUENCE_VALUE    source_160
121706   FROM xla_events_gt     xet 
121707   , AP_PAYMENT_EXTRACT_HEADER_V  h2
121708   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
121709   , fnd_lookup_values    fvl4
121710   , fnd_lookup_values    fvl30
121711   , fnd_lookup_values    fvl110
121712  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
121713    and xet.event_class_code = C_EVENT_CLASS_CODE
121714    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
121715  AND h3.asp_org_id = h2.ac_org_id   AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
121716   AND fvl4.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
121717   AND fvl4.view_application_id(+) = 200
121718   AND fvl4.language(+)            = USERENV('LANG')
121719      AND fvl30.lookup_type(+)         = 'YES_NO'
121720   AND fvl30.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
121721   AND fvl30.view_application_id(+) = 0
121722   AND fvl30.language(+)            = USERENV('LANG')
121723      AND fvl110.lookup_type(+)         = 'YES_NO'
121724   AND fvl110.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
121725   AND fvl110.view_application_id(+) = 0
121726   AND fvl110.language(+)            = USERENV('LANG')
121727   
121728  ORDER BY event_id
121729 ;
121730 
121731 
121732 --
121733 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
121734 IS
121735 SELECT  /*+ leading(xet) cardinality(xet,1) */
121736 -- Event Class Code: FUTURE DATED PAYMENTS
121737     xet.entity_id
121738    ,xet.legal_entity_id
121739    ,xet.entity_code
121740    ,xet.transaction_number
121741    ,xet.event_id
121742    ,xet.event_class_code
121743    ,xet.event_type_code
121744    ,xet.event_number
121745    ,xet.event_date
121746    ,xet.transaction_date
121747    ,xet.reference_num_1
121748    ,xet.reference_num_2
121749    ,xet.reference_num_3
121750    ,xet.reference_num_4
121751    ,xet.reference_char_1
121752    ,xet.reference_char_2
121753    ,xet.reference_char_3
121754    ,xet.reference_char_4
121755    ,xet.reference_date_1
121756    ,xet.reference_date_2
121757    ,xet.reference_date_3
121758    ,xet.reference_date_4
121759    ,xet.event_created_by
121760    ,xet.budgetary_control_flag
121761  , l1.LINE_NUMBER  
121762   , l1.APHD_PAYMENT_BASE_AMT    source_9
121763   , l1.AID_DIST_CCID    source_17
121764   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_39
121765   , fvl39.meaning   source_39_meaning
121766   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_40
121767   , l1.APHD_AMOUNT    source_41
121768   , l1.BUS_FLOW_AP_APP_ID    source_42
121769   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_43
121770   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_44
121771   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_45
121772   , l1.BUS_FLOW_PAYMENT_ID    source_46
121773   , l1.APHD_PAYMENT_HIST_DIST_ID    source_47
121774   , l1.DISTRIBUTION_LINK_TYPE    source_48
121775   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_53
121776   , fvl53.meaning   source_53_meaning
121777   , l1.APHD_REV_PAY_HIST_DIST_ID    source_57
121778   , l1.APHD_MATURED_BASE_AMOUNT    source_117
121779   , l1.PMT_MAT_BASE_AMT_DIFF    source_128
121780   , l1.PMT_MAT_GAIN_LOSS_INDICATOR    source_133
121781   FROM xla_events_gt     xet 
121782   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
121783   , fnd_lookup_values    fvl39
121784   , fnd_lookup_values    fvl53
121785  WHERE xet.event_id between x_first_event_id and x_last_event_id
121786    and xet.event_date between p_pad_start_date and p_pad_end_date
121787    and xet.event_class_code = C_EVENT_CLASS_CODE
121788    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
121789    AND fvl39.lookup_type(+)         = 'PAY_DIST_TYPES'
121790   AND fvl39.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
121791   AND fvl39.view_application_id(+) = 200
121792   AND fvl39.language(+)            = USERENV('LANG')
121793      AND fvl53.lookup_type(+)         = 'YES_NO'
121794   AND fvl53.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
121795   AND fvl53.view_application_id(+) = 0
121796   AND fvl53.language(+)            = USERENV('LANG')
121797   ;
121798 
121799 --
121800 BEGIN
121801 IF g_log_enabled THEN
121802    l_log_module := C_DEFAULT_MODULE||'.EventClass_206';
121803 END IF;
121804 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121805    trace
121806       (p_msg      => 'BEGIN of EventClass_206'
121807       ,p_level    => C_LEVEL_PROCEDURE
121808       ,p_module   => l_log_module);
121809 END IF;
121810 
121811 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121812    trace
121813       (p_msg      => 'p_application_id = '||p_application_id||
121814                      ' - p_base_ledger_id = '||p_base_ledger_id||
121818                      ' - p_sla_ledger_id = '||p_sla_ledger_id
121815                      ' - p_target_ledger_id  = '||p_target_ledger_id||
121816                      ' - p_language = '||p_language||
121817                      ' - p_currency_code = '||p_currency_code||
121819       ,p_level    => C_LEVEL_STATEMENT
121820       ,p_module   => l_log_module);
121821 END IF;
121822 --
121823 -- initialze arrays
121824 --
121825 g_array_event.DELETE;
121826 l_rec_array_event := l_null_rec_array_event;
121827 --
121828 --------------------------------------
121829 -- 4262811 Initialze MPA Line Number
121830 --------------------------------------
121831 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
121832 
121833 --
121834 
121835 --
121836 OPEN header_cur;
121837 --
121838 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
121839    trace
121840    (p_msg      => 'SQL - FETCH header_cur'
121841    ,p_level    => C_LEVEL_STATEMENT
121842    ,p_module   => l_log_module);
121843 END IF;
121844 --
121845 LOOP
121846 FETCH header_cur BULK COLLECT INTO
121847         l_array_entity_id
121848       , l_array_legal_entity_id
121849       , l_array_entity_code
121850       , l_array_transaction_num
121851       , l_array_event_id
121852       , l_array_class_code
121853       , l_array_event_type
121854       , l_array_event_number
121855       , l_array_event_date
121856       , l_array_transaction_date
121857       , l_array_reference_num_1
121858       , l_array_reference_num_2
121859       , l_array_reference_num_3
121860       , l_array_reference_num_4
121861       , l_array_reference_char_1
121862       , l_array_reference_char_2
121863       , l_array_reference_char_3
121864       , l_array_reference_char_4
121865       , l_array_reference_date_1
121866       , l_array_reference_date_2
121867       , l_array_reference_date_3
121868       , l_array_reference_date_4
121869       , l_array_event_created_by
121870       , l_array_budgetary_control_flag 
121871       , l_array_source_1
121872       , l_array_source_4
121873       , l_array_source_4_meaning
121874       , l_array_source_21
121875       , l_array_source_30
121876       , l_array_source_30_meaning
121877       , l_array_source_32
121878       , l_array_source_33
121879       , l_array_source_34
121880       , l_array_source_35
121881       , l_array_source_37
121882       , l_array_source_38
121883       , l_array_source_49
121884       , l_array_source_54
121885       , l_array_source_55
121886       , l_array_source_56
121887       , l_array_source_110
121888       , l_array_source_110_meaning
121889       , l_array_source_111
121890       , l_array_source_114
121891       , l_array_source_115
121892       , l_array_source_116
121893       , l_array_source_158
121894       , l_array_source_159
121895       , l_array_source_160
121896       LIMIT l_rows;
121897 --
121898 IF (C_LEVEL_EVENT >= g_log_level) THEN
121899    trace
121900    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
121901    ,p_level    => C_LEVEL_EVENT
121902    ,p_module   => l_log_module);
121903 END IF;
121904 --
121905 EXIT WHEN l_array_entity_id.COUNT = 0;
121906 
121907 -- initialize arrays
121908 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
121909 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
121910 
121911 --
121912 -- Bug 4458708
121913 --
121914 XLA_AE_LINES_PKG.g_LineNumber := 0;
121915 
121916 
121917 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
121918 g_last_hdr_idx := l_array_event_id.LAST;
121919 --
121920 -- loop for the headers. Each iteration is for each header extract row
121921 -- fetched in header cursor
121922 --
121923 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
121924 
121925 --
121926 -- set event info as cache for other routines to refer event attributes
121927 --
121928 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
121929    (p_application_id           => p_application_id
121930    ,p_primary_ledger_id        => p_primary_ledger_id
121931    ,p_base_ledger_id           => p_base_ledger_id
121932    ,p_target_ledger_id         => p_target_ledger_id
121933    ,p_entity_id                => l_array_entity_id(hdr_idx)
121934    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
121935    ,p_entity_code              => l_array_entity_code(hdr_idx)
121936    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
121937    ,p_event_id                 => l_array_event_id(hdr_idx)
121938    ,p_event_class_code         => l_array_class_code(hdr_idx)
121939    ,p_event_type_code          => l_array_event_type(hdr_idx)
121940    ,p_event_number             => l_array_event_number(hdr_idx)
121941    ,p_event_date               => l_array_event_date(hdr_idx)
121942    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
121943    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
121944    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
121945    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
121946    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
121947    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
121948    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
121949    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
121950    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
121954    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
121951    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
121952    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
121953    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
121955    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
121956    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
121957 
121958 --
121959 -- set the status of entry to C_VALID (0)
121960 --
121961 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
121962 
121963 --
121964 -- initialize a row for ae header
121965 --
121966 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
121967 
121968 l_event_id := l_array_event_id(hdr_idx);
121969 
121970 --
121971 -- storing the hdr_idx for event. May be used by line cursor.
121972 --
121973 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
121974 
121975 --
121976 -- store sources from header extract. This can be improved to
121977 -- store only those sources from header extract that may be used in lines
121978 --
121979 
121980 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
121981 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
121982 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
121983 g_array_event(l_event_id).array_value_num('source_21') := l_array_source_21(hdr_idx);
121984 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
121985 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
121986 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
121987 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
121988 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
121989 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
121990 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
121991 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
121992 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
121993 g_array_event(l_event_id).array_value_num('source_54') := l_array_source_54(hdr_idx);
121994 g_array_event(l_event_id).array_value_num('source_55') := l_array_source_55(hdr_idx);
121995 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
121996 g_array_event(l_event_id).array_value_char('source_110') := l_array_source_110(hdr_idx);
121997 g_array_event(l_event_id).array_value_char('source_110_meaning') := l_array_source_110_meaning(hdr_idx);
121998 g_array_event(l_event_id).array_value_date('source_111') := l_array_source_111(hdr_idx);
121999 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
122000 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
122001 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
122002 g_array_event(l_event_id).array_value_char('source_158') := l_array_source_158(hdr_idx);
122003 g_array_event(l_event_id).array_value_num('source_159') := l_array_source_159(hdr_idx);
122004 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
122005 
122006 --
122007 -- initilaize the status of ae headers for diffrent balance types
122008 -- the status is initialised to C_NOT_CREATED (2)
122009 --
122010 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
122011 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
122012 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
122013 
122014 --
122015 -- call api to validate and store accounting attributes for header
122016 --
122017 
122018 ------------------------------------------------------------
122019 -- Accrual Reversal : to get date for Standard Source (NONE)
122020 ------------------------------------------------------------
122021 l_acc_rev_gl_date_source := NULL;
122022 
122023      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
122024       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_158');
122025      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
122026       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_159');
122027      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
122028       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_160');
122029      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
122030       l_rec_acct_attrs.array_date_value(4) := 
122031 xla_ae_sources_pkg.GetSystemSourceDate(
122032    p_source_code           => 'XLA_EVENT_DATE'
122033  , p_source_type_code      => 'Y'
122034  , p_source_application_id =>  602
122035 );
122036 
122037 
122038 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
122039 
122040 XLA_AE_HEADER_PKG.SetJeCategoryName;
122041 
122042 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
122043 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
122044 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
122045 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
122049 -- No header level analytical criteria
122046 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
122047 
122048 
122050 
122051 --
122052 --accounting attribute enhancement, bug 3612931
122053 --
122054 l_trx_reversal_source := SUBSTR(NULL, 1,30);
122055 
122056 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
122057    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
122058 
122059    xla_accounting_err_pkg.build_message
122060       (p_appli_s_name            => 'XLA'
122061       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
122062       ,p_token_1                 => 'ACCT_ATTR_NAME'
122063       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
122064       ,p_token_2                 => 'PRODUCT_NAME'
122065       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
122066       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
122067       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
122068       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
122069 
122070 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
122071    --
122072    -- following sets the accounting attributes needed to reverse
122073    -- accounting for a distributeion
122074    --
122075    xla_ae_lines_pkg.SetTrxReversalAttrs
122076       (p_event_id              => l_event_id
122077       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
122078       ,p_trx_reversal_source   => l_trx_reversal_source);
122079 
122080 END IF;
122081 
122082 
122083 ----------------------------------------------------------------
122084 -- 4262811 -  update the header statuses to invalid in need be
122085 ----------------------------------------------------------------
122086 --
122087 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
122088 
122089 
122090   -----------------------------------------------
122091   -- No accrual reversal for the event class/type
122092   -----------------------------------------------
122093 ----------------------------------------------------------------
122094 
122095 --
122096 -- this ends the header loop iteration for one bulk fetch
122097 --
122098 END LOOP;
122099 
122100 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
122101 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
122102 
122103 --
122104 -- insert dummy rows into lines gt table that were created due to
122105 -- transaction reversals
122106 --
122107 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
122108    l_result := XLA_AE_LINES_PKG.InsertLines;
122109 END IF;
122110 
122111 --
122112 -- reset the temp_line_num for each set of events fetched from header
122113 -- cursor rather than doing it for each new event in line cursor
122114 -- Bug 3939231
122115 --
122116 xla_ae_lines_pkg.g_temp_line_num := 0;
122117 
122118 
122119 
122120 --
122121 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
122122 --
122123 --
122124 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
122125 
122126       trace
122127          (p_msg      => 'SQL - FETCH line_cur'
122128          ,p_level    => C_LEVEL_STATEMENT
122129          ,p_module   => l_log_module);
122130 
122131 END IF;
122132 --
122133 --
122134 LOOP
122135   --
122136   FETCH line_cur BULK COLLECT INTO
122137         l_array_entity_id
122138       , l_array_legal_entity_id
122139       , l_array_entity_code
122140       , l_array_transaction_num
122141       , l_array_event_id
122142       , l_array_class_code
122143       , l_array_event_type
122144       , l_array_event_number
122145       , l_array_event_date
122146       , l_array_transaction_date
122147       , l_array_reference_num_1
122148       , l_array_reference_num_2
122149       , l_array_reference_num_3
122150       , l_array_reference_num_4
122151       , l_array_reference_char_1
122152       , l_array_reference_char_2
122153       , l_array_reference_char_3
122154       , l_array_reference_char_4
122155       , l_array_reference_date_1
122156       , l_array_reference_date_2
122157       , l_array_reference_date_3
122158       , l_array_reference_date_4
122159       , l_array_event_created_by
122160       , l_array_budgetary_control_flag
122161       , l_array_extract_line_num 
122162       , l_array_source_9
122163       , l_array_source_17
122164       , l_array_source_39
122165       , l_array_source_39_meaning
122166       , l_array_source_40
122167       , l_array_source_41
122168       , l_array_source_42
122169       , l_array_source_43
122170       , l_array_source_44
122171       , l_array_source_45
122172       , l_array_source_46
122173       , l_array_source_47
122174       , l_array_source_48
122175       , l_array_source_53
122176       , l_array_source_53_meaning
122177       , l_array_source_57
122178       , l_array_source_117
122179       , l_array_source_128
122180       , l_array_source_133
122181       LIMIT l_rows;
122182 
122183   --
122184   IF (C_LEVEL_EVENT >= g_log_level) THEN
122185             trace
122186                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
122187                ,p_level    => C_LEVEL_EVENT
122188                ,p_module   => l_log_module);
122189   END IF;
122190   --
122194 
122191   EXIT WHEN l_array_entity_id.count = 0;
122192 
122193   XLA_AE_LINES_PKG.g_rec_lines := null;
122195 --
122196 -- Bug 4458708
122197 --
122198 XLA_AE_LINES_PKG.g_LineNumber := 0;
122199 --
122200 --
122201 
122202 FOR Idx IN 1..l_array_event_id.count LOOP
122203    --
122204    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
122205    --
122206    l_event_id := l_array_event_id(idx);  -- 5648433
122207 
122208    --
122209    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
122210    --
122211 
122212    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
122213              (g_array_event(l_event_id).array_value_num('header_index'))
122214          ,'N'
122215          ) <> 'Y'
122216    THEN
122217       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
122218          trace
122219             (p_msg      => 'Trancaction revesal option is not Y '
122220             ,p_level    => C_LEVEL_STATEMENT
122221             ,p_module   => l_log_module);
122222       END IF;
122223 
122224 --
122225 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
122226 --
122227 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
122228 --
122229 -- set event info as cache for other routines to refer event attributes
122230 --
122231 
122232 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
122233    l_previous_event_id := l_event_id;
122234 
122235    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
122236       (p_application_id           => p_application_id
122237       ,p_primary_ledger_id        => p_primary_ledger_id
122238       ,p_base_ledger_id           => p_base_ledger_id
122239       ,p_target_ledger_id         => p_target_ledger_id
122240       ,p_entity_id                => l_array_entity_id(Idx)
122241       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
122242       ,p_entity_code              => l_array_entity_code(Idx)
122243       ,p_transaction_num          => l_array_transaction_num(Idx)
122244       ,p_event_id                 => l_array_event_id(Idx)
122245       ,p_event_class_code         => l_array_class_code(Idx)
122246       ,p_event_type_code          => l_array_event_type(Idx)
122247       ,p_event_number             => l_array_event_number(Idx)
122248       ,p_event_date               => l_array_event_date(Idx)
122249       ,p_transaction_date         => l_array_transaction_date(Idx)
122250       ,p_reference_num_1          => l_array_reference_num_1(Idx)
122251       ,p_reference_num_2          => l_array_reference_num_2(Idx)
122252       ,p_reference_num_3          => l_array_reference_num_3(Idx)
122253       ,p_reference_num_4          => l_array_reference_num_4(Idx)
122254       ,p_reference_char_1         => l_array_reference_char_1(Idx)
122255       ,p_reference_char_2         => l_array_reference_char_2(Idx)
122256       ,p_reference_char_3         => l_array_reference_char_3(Idx)
122257       ,p_reference_char_4         => l_array_reference_char_4(Idx)
122258       ,p_reference_date_1         => l_array_reference_date_1(Idx)
122259       ,p_reference_date_2         => l_array_reference_date_2(Idx)
122260       ,p_reference_date_3         => l_array_reference_date_3(Idx)
122261       ,p_reference_date_4         => l_array_reference_date_4(Idx)
122262       ,p_event_created_by         => l_array_event_created_by(Idx)
122263       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
122264        --
122265 END IF;
122266 
122267 
122268 
122269 --
122270 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
122271 
122272 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
122273 
122274 IF l_continue_with_lines THEN
122275    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
122276       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
122277 
122278       xla_accounting_err_pkg.build_message
122279          (p_appli_s_name            => 'XLA'
122280          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
122281          ,p_token_1                 => 'LINE_NUMBER'
122282          ,p_value_1                 => l_array_extract_line_num(Idx)
122283          ,p_token_2                 => 'PRODUCT_NAME'
122284          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
122285          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
122286          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
122287          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
122288 
122289    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
122290       --
122291       -- following sets the accounting attributes needed to reverse
122292       -- accounting for a distributeion
122293       --
122294 
122295       --
122296       -- 5217187
122297       --
122298       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
122299       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
122300                                        g_array_event(l_event_id).array_value_num('header_index'));
122301       --
122302       --
122303 
122304       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
122305       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_40(Idx);
122306       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
122307       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_47(Idx);
122311       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_56');
122308       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
122309       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_48(Idx);
122310       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
122312       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
122313       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_57(Idx);
122314       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
122315       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_48(Idx);
122316 
122317 
122318       xla_ae_lines_pkg.SetAcctReversalAttrs
122319          (p_event_id             => l_event_id
122320          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
122321          ,p_calculate_acctd_flag => l_calculate_acctd_flag
122322          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
122323    END IF;
122324 
122325    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
122326        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
122327 
122328 --
122329 AcctLineType_63 (
122330  p_application_id  => p_application_id
122331  ,p_event_id     => l_event_id
122332  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122333  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122334  ,p_actual_flag => l_actual_flag
122335  ,p_balance_type_code => l_balance_type_code
122336  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122337  
122338  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
122339  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
122340  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
122341  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122342  , p_source_39 => l_array_source_39(Idx)
122343  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122344  , p_source_40 => l_array_source_40(Idx)
122345  , p_source_41 => l_array_source_41(Idx)
122346  , p_source_42 => l_array_source_42(Idx)
122347  , p_source_43 => l_array_source_43(Idx)
122348  , p_source_44 => l_array_source_44(Idx)
122349  , p_source_45 => l_array_source_45(Idx)
122350  , p_source_46 => l_array_source_46(Idx)
122351  , p_source_47 => l_array_source_47(Idx)
122352  , p_source_48 => l_array_source_48(Idx)
122353  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122354  , p_source_53 => l_array_source_53(Idx)
122355  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122356  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122357  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122358  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122359  , p_source_57 => l_array_source_57(Idx)
122360  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122361  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122362  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122363  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122364  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122365  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122366  , p_source_117 => l_array_source_117(Idx)
122367  );
122368 If(l_balance_type_code = 'A') THEN
122369   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122370 END IF;
122371 
122372 --
122373 
122374 
122375 --
122376 AcctLineType_64 (
122377  p_application_id  => p_application_id
122378  ,p_event_id     => l_event_id
122379  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122380  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122381  ,p_actual_flag => l_actual_flag
122382  ,p_balance_type_code => l_balance_type_code
122383  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122384  
122385  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122386  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122387  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
122388  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122389  , p_source_39 => l_array_source_39(Idx)
122390  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122391  , p_source_40 => l_array_source_40(Idx)
122392  , p_source_41 => l_array_source_41(Idx)
122393  , p_source_42 => l_array_source_42(Idx)
122394  , p_source_43 => l_array_source_43(Idx)
122395  , p_source_44 => l_array_source_44(Idx)
122396  , p_source_45 => l_array_source_45(Idx)
122397  , p_source_46 => l_array_source_46(Idx)
122398  , p_source_47 => l_array_source_47(Idx)
122399  , p_source_48 => l_array_source_48(Idx)
122400  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122401  , p_source_53 => l_array_source_53(Idx)
122402  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122403  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122404  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122405  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122406  , p_source_57 => l_array_source_57(Idx)
122407  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122408  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122409  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122410  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122411  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122415 If(l_balance_type_code = 'A') THEN
122412  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122413  , p_source_117 => l_array_source_117(Idx)
122414  );
122416   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122417 END IF;
122418 
122419 --
122420 
122421 
122422 --
122423 AcctLineType_65 (
122424  p_application_id  => p_application_id
122425  ,p_event_id     => l_event_id
122426  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122427  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122428  ,p_actual_flag => l_actual_flag
122429  ,p_balance_type_code => l_balance_type_code
122430  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122431  
122432  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122433  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122434  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
122435  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122436  , p_source_39 => l_array_source_39(Idx)
122437  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122438  , p_source_40 => l_array_source_40(Idx)
122439  , p_source_41 => l_array_source_41(Idx)
122440  , p_source_42 => l_array_source_42(Idx)
122441  , p_source_43 => l_array_source_43(Idx)
122442  , p_source_44 => l_array_source_44(Idx)
122443  , p_source_45 => l_array_source_45(Idx)
122444  , p_source_46 => l_array_source_46(Idx)
122445  , p_source_47 => l_array_source_47(Idx)
122446  , p_source_48 => l_array_source_48(Idx)
122447  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122448  , p_source_53 => l_array_source_53(Idx)
122449  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122450  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122451  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122452  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122453  , p_source_57 => l_array_source_57(Idx)
122454  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122455  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122456  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122457  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122458  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122459  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122460  , p_source_117 => l_array_source_117(Idx)
122461  );
122462 If(l_balance_type_code = 'A') THEN
122463   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122464 END IF;
122465 
122466 --
122467 
122468 
122469 --
122470 AcctLineType_72 (
122471  p_application_id  => p_application_id
122472  ,p_event_id     => l_event_id
122473  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122474  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122475  ,p_actual_flag => l_actual_flag
122476  ,p_balance_type_code => l_balance_type_code
122477  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122478  
122479  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
122480  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
122481  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
122482  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122483  , p_source_39 => l_array_source_39(Idx)
122484  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122485  , p_source_40 => l_array_source_40(Idx)
122486  , p_source_41 => l_array_source_41(Idx)
122487  , p_source_42 => l_array_source_42(Idx)
122488  , p_source_43 => l_array_source_43(Idx)
122489  , p_source_44 => l_array_source_44(Idx)
122490  , p_source_45 => l_array_source_45(Idx)
122491  , p_source_46 => l_array_source_46(Idx)
122492  , p_source_47 => l_array_source_47(Idx)
122493  , p_source_48 => l_array_source_48(Idx)
122494  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122495  , p_source_53 => l_array_source_53(Idx)
122496  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122497  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122498  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122499  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122500  , p_source_57 => l_array_source_57(Idx)
122501  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122502  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122503  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122504  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122505  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122506  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122507  , p_source_117 => l_array_source_117(Idx)
122508  );
122509 If(l_balance_type_code = 'A') THEN
122510   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122511 END IF;
122512 
122513 --
122514 
122515 
122516 --
122517 AcctLineType_73 (
122518  p_application_id  => p_application_id
122519  ,p_event_id     => l_event_id
122520  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122521  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122522  ,p_actual_flag => l_actual_flag
122523  ,p_balance_type_code => l_balance_type_code
122524  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122525  
122526  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
122530  , p_source_39 => l_array_source_39(Idx)
122527  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122528  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122529  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122531  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122532  , p_source_40 => l_array_source_40(Idx)
122533  , p_source_41 => l_array_source_41(Idx)
122534  , p_source_42 => l_array_source_42(Idx)
122535  , p_source_43 => l_array_source_43(Idx)
122536  , p_source_44 => l_array_source_44(Idx)
122537  , p_source_45 => l_array_source_45(Idx)
122538  , p_source_46 => l_array_source_46(Idx)
122539  , p_source_47 => l_array_source_47(Idx)
122540  , p_source_48 => l_array_source_48(Idx)
122541  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122542  , p_source_53 => l_array_source_53(Idx)
122543  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122544  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122545  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122546  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122547  , p_source_57 => l_array_source_57(Idx)
122548  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122549  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122550  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122551  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122552  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122553  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122554  , p_source_117 => l_array_source_117(Idx)
122555  );
122556 If(l_balance_type_code = 'A') THEN
122557   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122558 END IF;
122559 
122560 --
122561 
122562 
122563 --
122564 AcctLineType_74 (
122565  p_application_id  => p_application_id
122566  ,p_event_id     => l_event_id
122567  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122568  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122569  ,p_actual_flag => l_actual_flag
122570  ,p_balance_type_code => l_balance_type_code
122571  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122572  
122573  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
122574  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122575  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122576  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122577  , p_source_39 => l_array_source_39(Idx)
122578  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122579  , p_source_40 => l_array_source_40(Idx)
122580  , p_source_41 => l_array_source_41(Idx)
122581  , p_source_42 => l_array_source_42(Idx)
122582  , p_source_43 => l_array_source_43(Idx)
122583  , p_source_44 => l_array_source_44(Idx)
122584  , p_source_45 => l_array_source_45(Idx)
122585  , p_source_46 => l_array_source_46(Idx)
122586  , p_source_47 => l_array_source_47(Idx)
122587  , p_source_48 => l_array_source_48(Idx)
122588  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122589  , p_source_53 => l_array_source_53(Idx)
122590  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122591  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122592  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122593  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122594  , p_source_57 => l_array_source_57(Idx)
122595  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
122596  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
122597  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122598  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122599  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122600  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122601  , p_source_117 => l_array_source_117(Idx)
122602  );
122603 If(l_balance_type_code = 'A') THEN
122604   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122605 END IF;
122606 
122607 --
122608 
122609 
122610 --
122611 AcctLineType_100 (
122612  p_application_id  => p_application_id
122613  ,p_event_id     => l_event_id
122614  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122615  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122616  ,p_actual_flag => l_actual_flag
122617  ,p_balance_type_code => l_balance_type_code
122618  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122619  
122620  , p_source_9 => l_array_source_9(Idx)
122621  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122622  , p_source_39 => l_array_source_39(Idx)
122623  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122624  , p_source_40 => l_array_source_40(Idx)
122625  , p_source_41 => l_array_source_41(Idx)
122626  , p_source_42 => l_array_source_42(Idx)
122627  , p_source_43 => l_array_source_43(Idx)
122628  , p_source_44 => l_array_source_44(Idx)
122629  , p_source_45 => l_array_source_45(Idx)
122630  , p_source_46 => l_array_source_46(Idx)
122631  , p_source_47 => l_array_source_47(Idx)
122632  , p_source_48 => l_array_source_48(Idx)
122633  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122634  , p_source_53 => l_array_source_53(Idx)
122635  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122639  );
122636  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122637  , p_source_57 => l_array_source_57(Idx)
122638  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122640 If(l_balance_type_code = 'A') THEN
122641   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122642 END IF;
122643 
122644 --
122645 
122646 
122647 --
122648 AcctLineType_101 (
122649  p_application_id  => p_application_id
122650  ,p_event_id     => l_event_id
122651  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122652  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122653  ,p_actual_flag => l_actual_flag
122654  ,p_balance_type_code => l_balance_type_code
122655  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122656  
122657  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122658  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122659  , p_source_9 => l_array_source_9(Idx)
122660  , p_source_17 => l_array_source_17(Idx)
122661  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
122662  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122663  , p_source_39 => l_array_source_39(Idx)
122664  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122665  , p_source_40 => l_array_source_40(Idx)
122666  , p_source_41 => l_array_source_41(Idx)
122667  , p_source_42 => l_array_source_42(Idx)
122668  , p_source_43 => l_array_source_43(Idx)
122669  , p_source_44 => l_array_source_44(Idx)
122670  , p_source_45 => l_array_source_45(Idx)
122671  , p_source_46 => l_array_source_46(Idx)
122672  , p_source_47 => l_array_source_47(Idx)
122673  , p_source_48 => l_array_source_48(Idx)
122674  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122675  , p_source_53 => l_array_source_53(Idx)
122676  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122677  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122678  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122679  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122680  , p_source_57 => l_array_source_57(Idx)
122681  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122682  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122683  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122684  );
122685 If(l_balance_type_code = 'A') THEN
122686   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122687 END IF;
122688 
122689 --
122690 
122691 
122692 --
122693 AcctLineType_103 (
122694  p_application_id  => p_application_id
122695  ,p_event_id     => l_event_id
122696  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122697  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122698  ,p_actual_flag => l_actual_flag
122699  ,p_balance_type_code => l_balance_type_code
122700  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122701  
122702  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122703  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122704  , p_source_17 => l_array_source_17(Idx)
122705  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
122706  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
122707  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
122708  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
122709  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122710  , p_source_39 => l_array_source_39(Idx)
122711  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122712  , p_source_40 => l_array_source_40(Idx)
122713  , p_source_42 => l_array_source_42(Idx)
122714  , p_source_43 => l_array_source_43(Idx)
122715  , p_source_44 => l_array_source_44(Idx)
122716  , p_source_45 => l_array_source_45(Idx)
122717  , p_source_46 => l_array_source_46(Idx)
122718  , p_source_47 => l_array_source_47(Idx)
122719  , p_source_48 => l_array_source_48(Idx)
122720  , p_source_53 => l_array_source_53(Idx)
122721  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122722  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122723  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122724  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122725  , p_source_57 => l_array_source_57(Idx)
122726  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122727  , p_source_128 => l_array_source_128(Idx)
122728  );
122729 If(l_balance_type_code = 'A') THEN
122730   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122731 END IF;
122732 
122733 --
122734 
122735 
122736 --
122737 AcctLineType_106 (
122738  p_application_id  => p_application_id
122739  ,p_event_id     => l_event_id
122740  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122741  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122742  ,p_actual_flag => l_actual_flag
122743  ,p_balance_type_code => l_balance_type_code
122744  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122745  
122746  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122747  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122748  , p_source_17 => l_array_source_17(Idx)
122749  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
122750  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
122751  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122752  , p_source_39 => l_array_source_39(Idx)
122756  , p_source_42 => l_array_source_42(Idx)
122753  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122754  , p_source_40 => l_array_source_40(Idx)
122755  , p_source_41 => l_array_source_41(Idx)
122757  , p_source_43 => l_array_source_43(Idx)
122758  , p_source_44 => l_array_source_44(Idx)
122759  , p_source_45 => l_array_source_45(Idx)
122760  , p_source_46 => l_array_source_46(Idx)
122761  , p_source_47 => l_array_source_47(Idx)
122762  , p_source_48 => l_array_source_48(Idx)
122763  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122764  , p_source_53 => l_array_source_53(Idx)
122765  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122766  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122767  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122768  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122769  , p_source_57 => l_array_source_57(Idx)
122770  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122771  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122772  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122773  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122774  , p_source_128 => l_array_source_128(Idx)
122775  , p_source_133 => l_array_source_133(Idx)
122776  );
122777 If(l_balance_type_code = 'A') THEN
122778   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122779 END IF;
122780 
122781 --
122782 
122783 
122784 --
122785 AcctLineType_127 (
122786  p_application_id  => p_application_id
122787  ,p_event_id     => l_event_id
122788  ,p_calculate_acctd_flag => l_calculate_acctd_flag
122789  ,p_calculate_g_l_flag => l_calculate_g_l_flag
122790  ,p_actual_flag => l_actual_flag
122791  ,p_balance_type_code => l_balance_type_code
122792  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
122793  
122794  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
122795  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
122796  , p_source_17 => l_array_source_17(Idx)
122797  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
122798  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
122799  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
122800  , p_source_39 => l_array_source_39(Idx)
122801  , p_source_39_meaning => l_array_source_39_meaning(Idx)
122802  , p_source_40 => l_array_source_40(Idx)
122803  , p_source_41 => l_array_source_41(Idx)
122804  , p_source_42 => l_array_source_42(Idx)
122805  , p_source_43 => l_array_source_43(Idx)
122806  , p_source_44 => l_array_source_44(Idx)
122807  , p_source_45 => l_array_source_45(Idx)
122808  , p_source_46 => l_array_source_46(Idx)
122809  , p_source_47 => l_array_source_47(Idx)
122810  , p_source_48 => l_array_source_48(Idx)
122811  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
122812  , p_source_53 => l_array_source_53(Idx)
122813  , p_source_53_meaning => l_array_source_53_meaning(Idx)
122814  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
122815  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
122816  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
122817  , p_source_57 => l_array_source_57(Idx)
122818  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
122819  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
122820  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
122821  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
122822  , p_source_128 => l_array_source_128(Idx)
122823  , p_source_133 => l_array_source_133(Idx)
122824  );
122825 If(l_balance_type_code = 'A') THEN
122826   l_actual_gain_loss_ref := l_gain_or_loss_ref;
122827 END IF;
122828 
122829 --
122830 
122831       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
122832       -- or secondary ledger that has different currency with primary
122833       -- or alc that is calculated by sla
122834       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
122835             (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'))
122836 
122837 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
122838 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
122839           AND (l_actual_flag = 'A')) THEN
122840         XLA_AE_LINES_PKG.CreateGainOrLossLines(
122841           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
122842          ,p_application_id   => p_application_id
122843          ,p_amb_context_code => 'DEFAULT'
122844          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
122845          ,p_event_class_code => C_EVENT_CLASS_CODE
122846          ,p_event_type_code  => C_EVENT_TYPE_CODE
122847          
122848          ,p_gain_ccid        => -1
122849          ,p_loss_ccid        => -1
122850 
122851          ,p_actual_flag      => l_actual_flag
122852          ,p_enc_flag         => null
122853          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
122854          ,p_enc_g_l_ref      => null
122855          );
122856       END IF;
122857    END IF;
122858 END IF;
122859 
122860    ELSE
122861       --
122862       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
122863       --
122864       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
122865          trace
122869       END IF;
122866             (p_msg      => 'Trancaction revesal option is Y'
122867             ,p_level    => C_LEVEL_STATEMENT
122868             ,p_module   => l_log_module);
122870    END IF;
122871 
122872 END LOOP;
122873 l_result := XLA_AE_LINES_PKG.InsertLines ;
122874 end loop;
122875 close line_cur;
122876 
122877 
122878 --
122879 -- insert headers into xla_ae_headers_gt table
122880 --
122881 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
122882 
122883 -- insert into errors table here.
122884 
122885 END LOOP;
122886 
122887 --
122888 -- 4865292
122889 --
122890 -- Compare g_hdr_extract_count with event count in
122891 -- CreateHeadersAndLines.
122892 --
122893 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
122894 
122895 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
122896    trace (p_msg     => '# rows extracted from header extract objects '
122897                     || ' (running total): '
122898                     || g_hdr_extract_count
122899          ,p_level   => C_LEVEL_STATEMENT
122900          ,p_module  => l_log_module);
122901 END IF;
122902 
122903 CLOSE header_cur;
122904 --
122905 
122906 --
122907 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122908    trace
122909       (p_msg      => 'END of EventClass_206'
122910       ,p_level    => C_LEVEL_PROCEDURE
122911       ,p_module   => l_log_module);
122912 END IF;
122913 --
122914 RETURN l_result;
122915 EXCEPTION
122916 WHEN xla_exceptions_pkg.application_exception THEN
122917    
122918 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
122919 
122920    
122921 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
122922 
122923    RAISE;
122924 
122925 WHEN NO_DATA_FOUND THEN
122926 
122927 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
122928 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
122929 
122930 FOR header_record IN header_cur
122931 LOOP
122932     l_array_header_events(header_record.event_id) := header_record.event_id;
122933 END LOOP;
122934 
122935 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
122936 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
122937 
122938 fnd_file.put_line(fnd_file.LOG, '                    ');
122939 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
122940 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
122941 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
122942 
122943 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
122944 LOOP
122945 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
122946 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
122947         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
122948 	END IF;
122949 END LOOP;
122950 
122951 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
122952 fnd_file.put_line(fnd_file.LOG, '                    ');
122953 
122954 
122955 xla_exceptions_pkg.raise_message
122956       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_206');
122957 
122958 
122959 WHEN OTHERS THEN
122960    xla_exceptions_pkg.raise_message
122961       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_206');
122962 END EventClass_206;
122963 --
122964 
122965 ---------------------------------------
122966 --
122967 -- PRIVATE PROCEDURE
122968 --         insert_sources_207
122969 --
122970 ----------------------------------------
122971 --
122972 PROCEDURE insert_sources_207(
122973                                 p_target_ledger_id       IN NUMBER
122974                               , p_language               IN VARCHAR2
122975                               , p_sla_ledger_id          IN NUMBER
122976                               , p_pad_start_date         IN DATE
122977                               , p_pad_end_date           IN DATE
122978                          )
122979 IS
122980 
122981 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
122982 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'INVOICES';
122983 p_apps_owner                   VARCHAR2(30);
122984 l_log_module                   VARCHAR2(240);
122985 BEGIN
122986 IF g_log_enabled THEN
122987       l_log_module := C_DEFAULT_MODULE||'.insert_sources_207';
122988 END IF;
122989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122990 
122991       trace
122992          (p_msg      => 'BEGIN of insert_sources_207'
122993          ,p_level    => C_LEVEL_PROCEDURE
122994          ,p_module   => l_log_module);
122995 
122996 END IF;
122997 
122998 -- select APPS owner
122999 SELECT oracle_username
123000   INTO p_apps_owner
123001   FROM fnd_oracle_userid
123002  WHERE read_only_flag = 'U'
123003 ;
123004 
123005 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123006       trace
123007          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
123008                         ' - p_language = '||p_language||
123009                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
123010                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
123011                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
123012                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
123016 
123013          ,p_level    => C_LEVEL_STATEMENT
123014          ,p_module   => l_log_module);
123015 END IF;
123017 
123018 --
123019 INSERT INTO xla_diag_sources --hdr2
123020 (
123021         event_id
123022       , ledger_id
123023       , sla_ledger_id
123024       , description_language
123025       , object_name
123026       , object_type_code
123027       , line_number
123028       , source_application_id
123029       , source_type_code
123030       , source_code
123031       , source_value
123032       , source_meaning
123033       , created_by
123034       , creation_date
123035       , last_update_date
123036       , last_updated_by
123037       , last_update_login
123038       , program_update_date
123039       , program_application_id
123040       , program_id
123041       , request_id
123042 )
123043 SELECT
123044         event_id
123045       , p_target_ledger_id
123046       , p_sla_ledger_id
123047       , p_language
123048       , object_name
123049       , object_type_code
123050       , line_number
123051       , source_application_id
123052       , source_type_code
123053       , source_code
123054       , SUBSTR(source_value ,1,1996)
123055       , SUBSTR(source_meaning ,1,200)
123056       , xla_environment_pkg.g_Usr_Id
123057       , TRUNC(SYSDATE)
123058       , TRUNC(SYSDATE)
123059       , xla_environment_pkg.g_Usr_Id
123060       , xla_environment_pkg.g_Login_Id
123061       , TRUNC(SYSDATE)
123062       , xla_environment_pkg.g_Prog_Appl_Id
123063       , xla_environment_pkg.g_Prog_Id
123064       , xla_environment_pkg.g_Req_Id
123065   FROM (
123066        SELECT xet.event_id                  event_id
123067             , 0                          line_number
123068             , CASE r
123069                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
123070                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
123071                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
123072                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
123073                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
123074                 
123075                ELSE null
123076               END                           object_name
123077             , CASE r
123078                 WHEN 1 THEN 'HEADER' 
123079                 WHEN 2 THEN 'HEADER' 
123080                 WHEN 3 THEN 'HEADER' 
123081                 WHEN 4 THEN 'HEADER' 
123082                 WHEN 5 THEN 'HEADER' 
123083                 
123084                 ELSE null
123085               END                           object_type_code
123086             , CASE r
123087                 WHEN 1 THEN '200' 
123088                 WHEN 2 THEN '200' 
123089                 WHEN 3 THEN '200' 
123090                 WHEN 4 THEN '200' 
123091                 WHEN 5 THEN '200' 
123092                 
123093                 ELSE null
123094               END                           source_application_id
123095             , 'S'             source_type_code
123096             , CASE r
123097                 WHEN 1 THEN 'THIRD_PARTY_TYPE' 
123098                 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE' 
123099                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
123100                 WHEN 4 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
123101                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
123102                 
123103                 ELSE null
123104               END                           source_code
123105             , CASE r
123106                 WHEN 1 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
123107                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
123108                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
123109                 WHEN 4 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
123110                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
123111                 
123112                 ELSE null
123113               END                           source_value
123114             , null              source_meaning
123115          FROM xla_events_gt     xet  
123116       , AP_INVOICE_EXTRACT_HEADER_V  h2
123117              ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
123118          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
123119            AND xet.event_class_code = C_EVENT_CLASS_CODE
123120               AND h2.event_id = xet.event_id
123121 
123122 )
123123 ;
123124 --
123125 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123126 
123127       trace
123128          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
123129          ,p_level    => C_LEVEL_STATEMENT
123130          ,p_module   => l_log_module);
123131 
123132 END IF;
123133 --
123134 
123135 
123136 
123137 --
123138 INSERT INTO xla_diag_sources  --line2
123139 (
123140         event_id
123141       , ledger_id
123142       , sla_ledger_id
123143       , description_language
123144       , object_name
123145       , object_type_code
123146       , line_number
123147       , source_application_id
123148       , source_type_code
123149       , source_code
123150       , source_value
123151       , source_meaning
123152       , created_by
123153       , creation_date
123154       , last_update_date
123155       , last_updated_by
123156       , last_update_login
123157       , program_update_date
123158       , program_application_id
123159       , program_id
123160       , request_id
123161 )
123165       , p_language
123162 SELECT  event_id
123163       , p_target_ledger_id
123164       , p_sla_ledger_id
123166       , object_name
123167       , object_type_code
123168       , line_number
123169       , source_application_id
123170       , source_type_code
123171       , source_code
123172       , SUBSTR(source_value,1,1996)
123173       , SUBSTR(source_meaning ,1,200)
123174       , xla_environment_pkg.g_Usr_Id
123175       , TRUNC(SYSDATE)
123176       , TRUNC(SYSDATE)
123177       , xla_environment_pkg.g_Usr_Id
123178       , xla_environment_pkg.g_Login_Id
123179       , TRUNC(SYSDATE)
123180       , xla_environment_pkg.g_Prog_Appl_Id
123181       , xla_environment_pkg.g_Prog_Id
123182       , xla_environment_pkg.g_Req_Id
123183   FROM (
123184        SELECT xet.event_id                  event_id
123185             , l1.line_number                 line_number
123186             , CASE r
123187                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123188                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123189                 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
123190                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123191                 WHEN 5 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
123192                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123193                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123194                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123195                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123196                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123197                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123198                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123199                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123200                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123201                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123202                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
123203                 
123204                ELSE null
123205               END                           object_name
123206             , CASE r
123207                 WHEN 1 THEN 'LINE' 
123208                 WHEN 2 THEN 'LINE' 
123209                 WHEN 3 THEN 'LINE' 
123210                 WHEN 4 THEN 'LINE' 
123211                 WHEN 5 THEN 'LINE' 
123212                 WHEN 6 THEN 'LINE' 
123213                 WHEN 7 THEN 'LINE' 
123214                 WHEN 8 THEN 'LINE' 
123215                 WHEN 9 THEN 'LINE' 
123216                 WHEN 10 THEN 'LINE' 
123217                 WHEN 11 THEN 'LINE' 
123218                 WHEN 12 THEN 'LINE' 
123219                 WHEN 13 THEN 'LINE' 
123220                 WHEN 14 THEN 'LINE' 
123221                 WHEN 15 THEN 'LINE' 
123222                 WHEN 16 THEN 'LINE' 
123223                 
123224                 ELSE null
123225               END                           object_type_code
123226             , CASE r
123227                 WHEN 1 THEN '200' 
123228                 WHEN 2 THEN '200' 
123229                 WHEN 3 THEN '200' 
123230                 WHEN 4 THEN '200' 
123231                 WHEN 5 THEN '200' 
123232                 WHEN 6 THEN '200' 
123233                 WHEN 7 THEN '200' 
123234                 WHEN 8 THEN '200' 
123235                 WHEN 9 THEN '200' 
123236                 WHEN 10 THEN '200' 
123237                 WHEN 11 THEN '200' 
123238                 WHEN 12 THEN '200' 
123239                 WHEN 13 THEN '200' 
123240                 WHEN 14 THEN '200' 
123241                 WHEN 15 THEN '200' 
123242                 WHEN 16 THEN '200' 
123243                 
123244                 ELSE null
123245               END                           source_application_id
123246             , 'S'             source_type_code
123247             , CASE r
123248                 WHEN 1 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
123249                 WHEN 2 THEN 'DISTRIBUTION_LINK_TYPE' 
123250                 WHEN 3 THEN 'TAX_LINE_ID' 
123251                 WHEN 4 THEN 'SUMMARY_TAX_LINE_ID' 
123252                 WHEN 5 THEN 'REC_NREC_TAX_DIST_ID' 
123253                 WHEN 6 THEN 'UPG_ENC_CR_CCID' 
123254                 WHEN 7 THEN 'UPG_ENC_CR_AMT' 
123255                 WHEN 8 THEN 'UPG_ENC_CR_BASE_AMT' 
123256                 WHEN 9 THEN 'UPG_ENC_DR_CCID' 
123257                 WHEN 10 THEN 'UPG_ENC_DR_AMT' 
123258                 WHEN 11 THEN 'UPG_ENC_DR_BASE_AMT' 
123259                 WHEN 12 THEN 'UPG_AP_ENCUM_OPTION' 
123260                 WHEN 13 THEN 'UPG_CR_ENC_TYPE_ID' 
123261                 WHEN 14 THEN 'UPG_DR_ENC_TYPE_ID' 
123262                 WHEN 15 THEN 'AID_INVOICE_DIST_ID' 
123263                 WHEN 16 THEN 'AID_PARENT_REVERSAL_ID' 
123264                 
123265                 ELSE null
123266               END                           source_code
123267             , CASE r
123268                 WHEN 1 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
123269                 WHEN 2 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
123270                 WHEN 3 THEN TO_CHAR(l3.TAX_LINE_ID)
123271                 WHEN 4 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
123272                 WHEN 5 THEN TO_CHAR(l4.REC_NREC_TAX_DIST_ID)
123273                 WHEN 6 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
123274                 WHEN 7 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
123275                 WHEN 8 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
123276                 WHEN 9 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
123277                 WHEN 10 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
123278                 WHEN 11 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
123279                 WHEN 12 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
123280                 WHEN 13 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
123284                 
123281                 WHEN 14 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
123282                 WHEN 15 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
123283                 WHEN 16 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
123285                 ELSE null
123286               END                           source_value
123287             , null              source_meaning
123288          FROM  xla_events_gt     xet  
123289         , AP_INVOICE_EXTRACT_DETAILS_V  l1
123290         , ZX_AP_DEF_TAX_EXTRACT_V  l3
123291         , ZX_AP_TAX_JRNL_LINE_DESC_V  l4
123292             , (select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
123293         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
123294           AND xet.event_class_code = C_EVENT_CLASS_CODE
123295             AND l1.event_id          = xet.event_id
123296  AND l1.zrnd_tax_dist_id = l3.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+) 
123297 )
123298 ;
123299 --
123300 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123301 
123302       trace
123303          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
123304          ,p_level    => C_LEVEL_STATEMENT
123305          ,p_module   => l_log_module);
123306 
123307 END IF;
123308 
123309 
123310 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123311       trace
123312          (p_msg      => 'END of insert_sources_207'
123313          ,p_level    => C_LEVEL_PROCEDURE
123314          ,p_module   => l_log_module);
123315 END IF;
123316 EXCEPTION
123317   WHEN xla_exceptions_pkg.application_exception THEN
123318       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
123319             trace
123320                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
123321                ,p_level    => C_LEVEL_EXCEPTION
123322                ,p_module   => l_log_module);
123323       END IF;
123324       RAISE;
123325   WHEN OTHERS THEN
123326       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
123327             trace
123328                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
123329                ,p_level    => C_LEVEL_EXCEPTION
123330                ,p_module   => l_log_module);
123331        END IF;
123332        xla_exceptions_pkg.raise_message
123333            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_207');
123334 END insert_sources_207;
123335 --
123336 
123337 ---------------------------------------
123338 --
123339 -- PRIVATE FUNCTION
123340 --         EventClass_207
123341 --
123342 ----------------------------------------
123343 --
123344 FUNCTION EventClass_207
123345        (p_application_id         IN NUMBER
123346        ,p_base_ledger_id         IN NUMBER
123347        ,p_target_ledger_id       IN NUMBER
123348        ,p_language               IN VARCHAR2
123349        ,p_currency_code          IN VARCHAR2
123350        ,p_sla_ledger_id          IN NUMBER
123351        ,p_pad_start_date         IN DATE
123352        ,p_pad_end_date           IN DATE
123353        ,p_primary_ledger_id      IN NUMBER)
123354 RETURN BOOLEAN IS
123355 --
123356 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
123357 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'INVOICES';
123358 
123359 l_calculate_acctd_flag   VARCHAR2(1) :='N';
123360 l_calculate_g_l_flag     VARCHAR2(1) :='N';
123361 --
123362 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123363 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123364 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
123365 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123366 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123367 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
123368 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
123369 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123370 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123371 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123372 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123373 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123374 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123375 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
123376 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123377 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123378 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123379 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
123380 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123381 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123382 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123383 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
123384 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
123385 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
123386 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
123387 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
123388 
123389 l_event_id                             NUMBER;
123390 l_previous_event_id                    NUMBER;
123394 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
123391 l_first_event_id                       NUMBER;
123392 l_last_event_id                        NUMBER;
123393 
123395 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
123396 --
123397 --
123398 l_result                    BOOLEAN := TRUE;
123399 l_rows                      NUMBER  := 1000;
123400 l_event_type_name           VARCHAR2(80) := 'All';
123401 l_event_class_name          VARCHAR2(80) := 'Invoices';
123402 l_description               VARCHAR2(4000);
123403 l_transaction_reversal      NUMBER;
123404 l_ae_header_id              NUMBER;
123405 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
123406 l_log_module                VARCHAR2(240);
123407 --
123408 l_acct_reversal_source      VARCHAR2(30);
123409 l_trx_reversal_source       VARCHAR2(30);
123410 
123411 l_continue_with_lines       BOOLEAN := TRUE;
123412 --
123413 l_acc_rev_gl_date_source    DATE;                      -- 4262811
123414 --
123415 type t_array_event_id is table of number index by binary_integer;
123416 
123417 l_rec_array_event                    t_rec_array_event;
123418 l_null_rec_array_event               t_rec_array_event;
123419 l_array_ae_header_id                 xla_number_array_type;
123420 l_actual_flag                        VARCHAR2(1) := NULL;
123421 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
123422 l_balance_type_code                  VARCHAR2(1) :=NULL;
123423 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
123424 
123425 --
123426 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
123427 --
123428 
123429 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
123430 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
123431 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
123432 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
123433 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
123434 
123435 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
123436 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
123437 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
123438 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
123439 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
123440 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
123441 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
123442 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
123443 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
123444 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
123445 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
123446 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
123447 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
123448 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
123449 TYPE t_array_source_156 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
123450 TYPE t_array_source_157 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
123451 
123452 l_array_source_56              t_array_source_56;
123453 l_array_source_80              t_array_source_80;
123454 l_array_source_152              t_array_source_152;
123455 l_array_source_153              t_array_source_153;
123456 l_array_source_154              t_array_source_154;
123457 
123458 l_array_source_40      t_array_source_40;
123459 l_array_source_48      t_array_source_48;
123460 l_array_source_58      t_array_source_58;
123461 l_array_source_59      t_array_source_59;
123462 l_array_source_66      t_array_source_66;
123463 l_array_source_78      t_array_source_78;
123464 l_array_source_79      t_array_source_79;
123465 l_array_source_81      t_array_source_81;
123466 l_array_source_83      t_array_source_83;
123467 l_array_source_84      t_array_source_84;
123468 l_array_source_85      t_array_source_85;
123469 l_array_source_86      t_array_source_86;
123470 l_array_source_96      t_array_source_96;
123471 l_array_source_97      t_array_source_97;
123472 l_array_source_156      t_array_source_156;
123473 l_array_source_157      t_array_source_157;
123474 
123475 --
123476 CURSOR header_cur
123477 IS
123478 SELECT /*+ leading(xet) cardinality(xet,1) */
123479 -- Event Class Code: INVOICES
123480     xet.entity_id
123481    ,xet.legal_entity_id
123482    ,xet.entity_code
123483    ,xet.transaction_number
123484    ,xet.event_id
123485    ,xet.event_class_code
123486    ,xet.event_type_code
123487    ,xet.event_number
123491    ,xet.reference_num_2
123488    ,xet.event_date
123489    ,xet.transaction_date
123490    ,xet.reference_num_1
123492    ,xet.reference_num_3
123493    ,xet.reference_num_4
123494    ,xet.reference_char_1
123495    ,xet.reference_char_2
123496    ,xet.reference_char_3
123497    ,xet.reference_char_4
123498    ,xet.reference_date_1
123499    ,xet.reference_date_2
123500    ,xet.reference_date_3
123501    ,xet.reference_date_4
123502    ,xet.event_created_by
123503    ,xet.budgetary_control_flag 
123504   , h2.THIRD_PARTY_TYPE    source_56
123505   , h2.AI_INVOICE_CURRENCY_CODE    source_80
123506   , h2.INV_DOC_SEQUENCE_CATEGORY    source_152
123507   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_153
123508   , h2.INV_DOC_SEQUENCE_VALUE    source_154
123509   FROM xla_events_gt     xet 
123510   , AP_INVOICE_EXTRACT_HEADER_V  h2
123511  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
123512    and xet.event_class_code = C_EVENT_CLASS_CODE
123513    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
123514 
123515  ORDER BY event_id
123516 ;
123517 
123518 
123519 --
123520 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
123521 IS
123522 SELECT  /*+ leading(xet) cardinality(xet,1) */
123523 -- Event Class Code: INVOICES
123524     xet.entity_id
123525    ,xet.legal_entity_id
123526    ,xet.entity_code
123527    ,xet.transaction_number
123528    ,xet.event_id
123529    ,xet.event_class_code
123530    ,xet.event_type_code
123531    ,xet.event_number
123532    ,xet.event_date
123533    ,xet.transaction_date
123534    ,xet.reference_num_1
123535    ,xet.reference_num_2
123536    ,xet.reference_num_3
123537    ,xet.reference_num_4
123538    ,xet.reference_char_1
123539    ,xet.reference_char_2
123540    ,xet.reference_char_3
123541    ,xet.reference_char_4
123542    ,xet.reference_date_1
123543    ,xet.reference_date_2
123544    ,xet.reference_date_3
123545    ,xet.reference_date_4
123546    ,xet.event_created_by
123547    ,xet.budgetary_control_flag
123548  , l1.LINE_NUMBER  
123549   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_40
123550   , l1.DISTRIBUTION_LINK_TYPE    source_48
123551   , l3.TAX_LINE_ID    source_58
123552   , l1.SUMMARY_TAX_LINE_ID    source_59
123553   , l4.REC_NREC_TAX_DIST_ID    source_66
123554   , l1.UPG_ENC_CR_CCID    source_78
123555   , l1.UPG_ENC_CR_AMT    source_79
123556   , l1.UPG_ENC_CR_BASE_AMT    source_81
123557   , l1.UPG_ENC_DR_CCID    source_83
123558   , l1.UPG_ENC_DR_AMT    source_84
123559   , l1.UPG_ENC_DR_BASE_AMT    source_85
123560   , l1.UPG_AP_ENCUM_OPTION    source_86
123561   , l1.UPG_CR_ENC_TYPE_ID    source_96
123562   , l1.UPG_DR_ENC_TYPE_ID    source_97
123563   , l1.AID_INVOICE_DIST_ID    source_156
123564   , l1.AID_PARENT_REVERSAL_ID    source_157
123565   FROM xla_events_gt     xet 
123566   , AP_INVOICE_EXTRACT_DETAILS_V  l1
123567   , ZX_AP_DEF_TAX_EXTRACT_V  l3
123568   , ZX_AP_TAX_JRNL_LINE_DESC_V  l4
123569  WHERE xet.event_id between x_first_event_id and x_last_event_id
123570    and xet.event_date between p_pad_start_date and p_pad_end_date
123571    and xet.event_class_code = C_EVENT_CLASS_CODE
123572    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
123573  AND l1.ZRND_tax_dist_id = l3.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) ;
123574 
123575 --
123576 BEGIN
123577 IF g_log_enabled THEN
123578    l_log_module := C_DEFAULT_MODULE||'.EventClass_207';
123579 END IF;
123580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123581    trace
123582       (p_msg      => 'BEGIN of EventClass_207'
123583       ,p_level    => C_LEVEL_PROCEDURE
123584       ,p_module   => l_log_module);
123585 END IF;
123586 
123587 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123588    trace
123589       (p_msg      => 'p_application_id = '||p_application_id||
123590                      ' - p_base_ledger_id = '||p_base_ledger_id||
123591                      ' - p_target_ledger_id  = '||p_target_ledger_id||
123592                      ' - p_language = '||p_language||
123593                      ' - p_currency_code = '||p_currency_code||
123594                      ' - p_sla_ledger_id = '||p_sla_ledger_id
123595       ,p_level    => C_LEVEL_STATEMENT
123596       ,p_module   => l_log_module);
123597 END IF;
123598 --
123599 -- initialze arrays
123600 --
123601 g_array_event.DELETE;
123602 l_rec_array_event := l_null_rec_array_event;
123603 --
123604 --------------------------------------
123605 -- 4262811 Initialze MPA Line Number
123606 --------------------------------------
123607 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
123608 
123609 --
123610 
123611 --
123612 OPEN header_cur;
123613 --
123614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123615    trace
123616    (p_msg      => 'SQL - FETCH header_cur'
123617    ,p_level    => C_LEVEL_STATEMENT
123618    ,p_module   => l_log_module);
123619 END IF;
123620 --
123621 LOOP
123622 FETCH header_cur BULK COLLECT INTO
123623         l_array_entity_id
123624       , l_array_legal_entity_id
123625       , l_array_entity_code
123626       , l_array_transaction_num
123627       , l_array_event_id
123628       , l_array_class_code
123629       , l_array_event_type
123630       , l_array_event_number
123631       , l_array_event_date
123632       , l_array_transaction_date
123633       , l_array_reference_num_1
123634       , l_array_reference_num_2
123635       , l_array_reference_num_3
123636       , l_array_reference_num_4
123640       , l_array_reference_char_4
123637       , l_array_reference_char_1
123638       , l_array_reference_char_2
123639       , l_array_reference_char_3
123641       , l_array_reference_date_1
123642       , l_array_reference_date_2
123643       , l_array_reference_date_3
123644       , l_array_reference_date_4
123645       , l_array_event_created_by
123646       , l_array_budgetary_control_flag 
123647       , l_array_source_56
123648       , l_array_source_80
123649       , l_array_source_152
123650       , l_array_source_153
123651       , l_array_source_154
123652       LIMIT l_rows;
123653 --
123654 IF (C_LEVEL_EVENT >= g_log_level) THEN
123655    trace
123656    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
123657    ,p_level    => C_LEVEL_EVENT
123658    ,p_module   => l_log_module);
123659 END IF;
123660 --
123661 EXIT WHEN l_array_entity_id.COUNT = 0;
123662 
123663 -- initialize arrays
123664 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
123665 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
123666 
123667 --
123668 -- Bug 4458708
123669 --
123670 XLA_AE_LINES_PKG.g_LineNumber := 0;
123671 
123672 
123673 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
123674 g_last_hdr_idx := l_array_event_id.LAST;
123675 --
123676 -- loop for the headers. Each iteration is for each header extract row
123677 -- fetched in header cursor
123678 --
123679 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
123680 
123681 --
123682 -- set event info as cache for other routines to refer event attributes
123683 --
123684 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
123685    (p_application_id           => p_application_id
123686    ,p_primary_ledger_id        => p_primary_ledger_id
123687    ,p_base_ledger_id           => p_base_ledger_id
123688    ,p_target_ledger_id         => p_target_ledger_id
123689    ,p_entity_id                => l_array_entity_id(hdr_idx)
123690    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
123691    ,p_entity_code              => l_array_entity_code(hdr_idx)
123692    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
123693    ,p_event_id                 => l_array_event_id(hdr_idx)
123694    ,p_event_class_code         => l_array_class_code(hdr_idx)
123695    ,p_event_type_code          => l_array_event_type(hdr_idx)
123696    ,p_event_number             => l_array_event_number(hdr_idx)
123697    ,p_event_date               => l_array_event_date(hdr_idx)
123698    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
123699    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
123700    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
123701    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
123702    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
123703    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
123704    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
123705    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
123706    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
123707    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
123708    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
123709    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
123710    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
123711    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
123712    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
123713 
123714 --
123715 -- set the status of entry to C_VALID (0)
123716 --
123717 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
123718 
123719 --
123720 -- initialize a row for ae header
123721 --
123722 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
123723 
123724 l_event_id := l_array_event_id(hdr_idx);
123725 
123726 --
123727 -- storing the hdr_idx for event. May be used by line cursor.
123728 --
123729 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
123730 
123731 --
123732 -- store sources from header extract. This can be improved to
123733 -- store only those sources from header extract that may be used in lines
123734 --
123735 
123736 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
123737 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
123738 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
123739 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
123740 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
123741 
123742 --
123743 -- initilaize the status of ae headers for diffrent balance types
123744 -- the status is initialised to C_NOT_CREATED (2)
123745 --
123746 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
123747 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
123748 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
123749 
123750 --
123751 -- call api to validate and store accounting attributes for header
123752 --
123753 
123754 ------------------------------------------------------------
123755 -- Accrual Reversal : to get date for Standard Source (NONE)
123756 ------------------------------------------------------------
123757 l_acc_rev_gl_date_source := NULL;
123758 
123762       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
123759      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
123760       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
123761      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
123763      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
123764       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
123765      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
123766       l_rec_acct_attrs.array_date_value(4) := 
123767 xla_ae_sources_pkg.GetSystemSourceDate(
123768    p_source_code           => 'XLA_EVENT_DATE'
123769  , p_source_type_code      => 'Y'
123770  , p_source_application_id =>  602
123771 );
123772 
123773 
123774 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
123775 
123776 XLA_AE_HEADER_PKG.SetJeCategoryName;
123777 
123778 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
123779 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
123780 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
123781 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
123782 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
123783 
123784 
123785 -- No header level analytical criteria
123786 
123787 --
123788 --accounting attribute enhancement, bug 3612931
123789 --
123790 l_trx_reversal_source := SUBSTR(NULL, 1,30);
123791 
123792 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
123793    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
123794 
123795    xla_accounting_err_pkg.build_message
123796       (p_appli_s_name            => 'XLA'
123797       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
123798       ,p_token_1                 => 'ACCT_ATTR_NAME'
123799       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
123800       ,p_token_2                 => 'PRODUCT_NAME'
123801       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
123802       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
123803       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
123804       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
123805 
123806 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
123807    --
123808    -- following sets the accounting attributes needed to reverse
123809    -- accounting for a distributeion
123810    --
123811    xla_ae_lines_pkg.SetTrxReversalAttrs
123812       (p_event_id              => l_event_id
123813       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
123814       ,p_trx_reversal_source   => l_trx_reversal_source);
123815 
123816 END IF;
123817 
123818 
123819 ----------------------------------------------------------------
123820 -- 4262811 -  update the header statuses to invalid in need be
123821 ----------------------------------------------------------------
123822 --
123823 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
123824 
123825 
123826   -----------------------------------------------
123827   -- No accrual reversal for the event class/type
123828   -----------------------------------------------
123829 ----------------------------------------------------------------
123830 
123831 --
123832 -- this ends the header loop iteration for one bulk fetch
123833 --
123834 END LOOP;
123835 
123836 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
123837 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
123838 
123839 --
123840 -- insert dummy rows into lines gt table that were created due to
123841 -- transaction reversals
123842 --
123843 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
123844    l_result := XLA_AE_LINES_PKG.InsertLines;
123845 END IF;
123846 
123847 --
123848 -- reset the temp_line_num for each set of events fetched from header
123849 -- cursor rather than doing it for each new event in line cursor
123850 -- Bug 3939231
123851 --
123852 xla_ae_lines_pkg.g_temp_line_num := 0;
123853 
123854 
123855 
123856 --
123857 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
123858 --
123859 --
123860 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123861 
123862       trace
123863          (p_msg      => 'SQL - FETCH line_cur'
123864          ,p_level    => C_LEVEL_STATEMENT
123865          ,p_module   => l_log_module);
123866 
123867 END IF;
123868 --
123869 --
123870 LOOP
123871   --
123872   FETCH line_cur BULK COLLECT INTO
123873         l_array_entity_id
123874       , l_array_legal_entity_id
123875       , l_array_entity_code
123876       , l_array_transaction_num
123877       , l_array_event_id
123878       , l_array_class_code
123879       , l_array_event_type
123880       , l_array_event_number
123881       , l_array_event_date
123882       , l_array_transaction_date
123883       , l_array_reference_num_1
123884       , l_array_reference_num_2
123885       , l_array_reference_num_3
123886       , l_array_reference_num_4
123887       , l_array_reference_char_1
123888       , l_array_reference_char_2
123889       , l_array_reference_char_3
123893       , l_array_reference_date_3
123890       , l_array_reference_char_4
123891       , l_array_reference_date_1
123892       , l_array_reference_date_2
123894       , l_array_reference_date_4
123895       , l_array_event_created_by
123896       , l_array_budgetary_control_flag
123897       , l_array_extract_line_num 
123898       , l_array_source_40
123899       , l_array_source_48
123900       , l_array_source_58
123901       , l_array_source_59
123902       , l_array_source_66
123903       , l_array_source_78
123904       , l_array_source_79
123905       , l_array_source_81
123906       , l_array_source_83
123907       , l_array_source_84
123908       , l_array_source_85
123909       , l_array_source_86
123910       , l_array_source_96
123911       , l_array_source_97
123912       , l_array_source_156
123913       , l_array_source_157
123914       LIMIT l_rows;
123915 
123916   --
123917   IF (C_LEVEL_EVENT >= g_log_level) THEN
123918             trace
123919                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
123920                ,p_level    => C_LEVEL_EVENT
123921                ,p_module   => l_log_module);
123922   END IF;
123923   --
123924   EXIT WHEN l_array_entity_id.count = 0;
123925 
123926   XLA_AE_LINES_PKG.g_rec_lines := null;
123927 
123928 --
123929 -- Bug 4458708
123930 --
123931 XLA_AE_LINES_PKG.g_LineNumber := 0;
123932 --
123933 --
123934 
123935 FOR Idx IN 1..l_array_event_id.count LOOP
123936    --
123937    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
123938    --
123939    l_event_id := l_array_event_id(idx);  -- 5648433
123940 
123941    --
123942    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
123943    --
123944 
123945    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
123946              (g_array_event(l_event_id).array_value_num('header_index'))
123947          ,'N'
123948          ) <> 'Y'
123949    THEN
123950       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
123951          trace
123952             (p_msg      => 'Trancaction revesal option is not Y '
123953             ,p_level    => C_LEVEL_STATEMENT
123954             ,p_module   => l_log_module);
123955       END IF;
123956 
123957 --
123958 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
123959 --
123960 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
123961 --
123962 -- set event info as cache for other routines to refer event attributes
123963 --
123964 
123965 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
123966    l_previous_event_id := l_event_id;
123967 
123968    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
123969       (p_application_id           => p_application_id
123970       ,p_primary_ledger_id        => p_primary_ledger_id
123971       ,p_base_ledger_id           => p_base_ledger_id
123972       ,p_target_ledger_id         => p_target_ledger_id
123973       ,p_entity_id                => l_array_entity_id(Idx)
123974       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
123975       ,p_entity_code              => l_array_entity_code(Idx)
123976       ,p_transaction_num          => l_array_transaction_num(Idx)
123977       ,p_event_id                 => l_array_event_id(Idx)
123978       ,p_event_class_code         => l_array_class_code(Idx)
123979       ,p_event_type_code          => l_array_event_type(Idx)
123980       ,p_event_number             => l_array_event_number(Idx)
123981       ,p_event_date               => l_array_event_date(Idx)
123982       ,p_transaction_date         => l_array_transaction_date(Idx)
123983       ,p_reference_num_1          => l_array_reference_num_1(Idx)
123984       ,p_reference_num_2          => l_array_reference_num_2(Idx)
123985       ,p_reference_num_3          => l_array_reference_num_3(Idx)
123986       ,p_reference_num_4          => l_array_reference_num_4(Idx)
123987       ,p_reference_char_1         => l_array_reference_char_1(Idx)
123988       ,p_reference_char_2         => l_array_reference_char_2(Idx)
123989       ,p_reference_char_3         => l_array_reference_char_3(Idx)
123990       ,p_reference_char_4         => l_array_reference_char_4(Idx)
123991       ,p_reference_date_1         => l_array_reference_date_1(Idx)
123992       ,p_reference_date_2         => l_array_reference_date_2(Idx)
123993       ,p_reference_date_3         => l_array_reference_date_3(Idx)
123994       ,p_reference_date_4         => l_array_reference_date_4(Idx)
123995       ,p_event_created_by         => l_array_event_created_by(Idx)
123996       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
123997        --
123998 END IF;
123999 
124000 
124001 
124002 --
124003 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
124004 
124005 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
124006 
124007 IF l_continue_with_lines THEN
124008    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
124009       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
124010 
124011       xla_accounting_err_pkg.build_message
124012          (p_appli_s_name            => 'XLA'
124013          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
124014          ,p_token_1                 => 'LINE_NUMBER'
124015          ,p_value_1                 => l_array_extract_line_num(Idx)
124016          ,p_token_2                 => 'PRODUCT_NAME'
124020          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
124017          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
124018          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
124019          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
124021 
124022    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
124023       --
124024       -- following sets the accounting attributes needed to reverse
124025       -- accounting for a distributeion
124026       --
124027 
124028       --
124029       -- 5217187
124030       --
124031       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
124032       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
124033                                        g_array_event(l_event_id).array_value_num('header_index'));
124034       --
124035       --
124036 
124037       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
124038       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_40(Idx);
124039       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
124040       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_156(Idx);
124041       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
124042       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_48(Idx);
124043       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
124044       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_78(Idx);
124045       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
124046       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_79(Idx);
124047       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
124048       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_80');
124049       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
124050       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_81(Idx);
124051       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
124052       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_83(Idx);
124053       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
124054       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_84(Idx);
124055       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
124056       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_80');
124057       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
124058       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_85(Idx);
124059       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
124060       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_86(Idx);
124061       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
124062       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_56');
124063       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
124064       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_157(Idx);
124065       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
124066       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_48(Idx);
124067       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
124068       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_58(Idx);
124069       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
124070       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_66(Idx);
124071       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
124072       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_59(Idx);
124073       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
124074       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_96(Idx);
124075       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
124076       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_97(Idx);
124077 
124078 
124079       xla_ae_lines_pkg.SetAcctReversalAttrs
124080          (p_event_id             => l_event_id
124081          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
124082          ,p_calculate_acctd_flag => l_calculate_acctd_flag
124083          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
124084    END IF;
124085 
124086    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
124087        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
124088       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
124089       -- or secondary ledger that has different currency with primary
124090       -- or alc that is calculated by sla
124091       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
124092             (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'))
124093 
124094 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
124095 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
124096           AND (l_actual_flag = 'A')) THEN
124097         XLA_AE_LINES_PKG.CreateGainOrLossLines(
124098           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
124099          ,p_application_id   => p_application_id
124100          ,p_amb_context_code => 'DEFAULT'
124104          
124101          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
124102          ,p_event_class_code => C_EVENT_CLASS_CODE
124103          ,p_event_type_code  => C_EVENT_TYPE_CODE
124105          ,p_gain_ccid        => -1
124106          ,p_loss_ccid        => -1
124107 
124108          ,p_actual_flag      => l_actual_flag
124109          ,p_enc_flag         => null
124110          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
124111          ,p_enc_g_l_ref      => null
124112          );
124113       END IF;
124114    END IF;
124115 END IF;
124116 
124117    ELSE
124118       --
124119       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
124120       --
124121       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124122          trace
124123             (p_msg      => 'Trancaction revesal option is Y'
124124             ,p_level    => C_LEVEL_STATEMENT
124125             ,p_module   => l_log_module);
124126       END IF;
124127    END IF;
124128 
124129 END LOOP;
124130 l_result := XLA_AE_LINES_PKG.InsertLines ;
124131 end loop;
124132 close line_cur;
124133 
124134 
124135 --
124136 -- insert headers into xla_ae_headers_gt table
124137 --
124138 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
124139 
124140 -- insert into errors table here.
124141 
124142 END LOOP;
124143 
124144 --
124145 -- 4865292
124146 --
124147 -- Compare g_hdr_extract_count with event count in
124148 -- CreateHeadersAndLines.
124149 --
124150 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
124151 
124152 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124153    trace (p_msg     => '# rows extracted from header extract objects '
124154                     || ' (running total): '
124155                     || g_hdr_extract_count
124156          ,p_level   => C_LEVEL_STATEMENT
124157          ,p_module  => l_log_module);
124158 END IF;
124159 
124160 CLOSE header_cur;
124161 --
124162 
124163 --
124164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124165    trace
124166       (p_msg      => 'END of EventClass_207'
124167       ,p_level    => C_LEVEL_PROCEDURE
124168       ,p_module   => l_log_module);
124169 END IF;
124170 --
124171 RETURN l_result;
124172 EXCEPTION
124173 WHEN xla_exceptions_pkg.application_exception THEN
124174    
124175 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
124176 
124177    
124178 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
124179 
124180    RAISE;
124181 
124182 WHEN NO_DATA_FOUND THEN
124183 
124184 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
124185 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
124186 
124187 FOR header_record IN header_cur
124188 LOOP
124189     l_array_header_events(header_record.event_id) := header_record.event_id;
124190 END LOOP;
124191 
124192 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
124193 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
124194 
124195 fnd_file.put_line(fnd_file.LOG, '                    ');
124196 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
124197 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
124198 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
124199 
124200 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
124201 LOOP
124202 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
124203 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
124204         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
124205 	END IF;
124206 END LOOP;
124207 
124208 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
124209 fnd_file.put_line(fnd_file.LOG, '                    ');
124210 
124211 
124212 xla_exceptions_pkg.raise_message
124213       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_207');
124214 
124215 
124216 WHEN OTHERS THEN
124217    xla_exceptions_pkg.raise_message
124218       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_207');
124219 END EventClass_207;
124220 --
124221 
124222 ---------------------------------------
124223 --
124224 -- PRIVATE PROCEDURE
124225 --         insert_sources_208
124226 --
124227 ----------------------------------------
124228 --
124229 PROCEDURE insert_sources_208(
124230                                 p_target_ledger_id       IN NUMBER
124231                               , p_language               IN VARCHAR2
124232                               , p_sla_ledger_id          IN NUMBER
124233                               , p_pad_start_date         IN DATE
124234                               , p_pad_end_date           IN DATE
124235                          )
124236 IS
124237 
124238 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICE_BURDEN_ALL';
124239 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'INVOICE_BURDEN';
124240 p_apps_owner                   VARCHAR2(30);
124241 l_log_module                   VARCHAR2(240);
124242 BEGIN
124243 IF g_log_enabled THEN
124244       l_log_module := C_DEFAULT_MODULE||'.insert_sources_208';
124245 END IF;
124246 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124247 
124251          ,p_module   => l_log_module);
124248       trace
124249          (p_msg      => 'BEGIN of insert_sources_208'
124250          ,p_level    => C_LEVEL_PROCEDURE
124252 
124253 END IF;
124254 
124255 -- select APPS owner
124256 SELECT oracle_username
124257   INTO p_apps_owner
124258   FROM fnd_oracle_userid
124259  WHERE read_only_flag = 'U'
124260 ;
124261 
124262 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124263       trace
124264          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
124265                         ' - p_language = '||p_language||
124266                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
124267                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
124268                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
124269                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
124270          ,p_level    => C_LEVEL_STATEMENT
124271          ,p_module   => l_log_module);
124272 END IF;
124273 
124274  
124275 
124276 
124277 --
124278 INSERT INTO xla_diag_sources  --line2
124279 (
124280         event_id
124281       , ledger_id
124282       , sla_ledger_id
124283       , description_language
124284       , object_name
124285       , object_type_code
124286       , line_number
124287       , source_application_id
124288       , source_type_code
124289       , source_code
124290       , source_value
124291       , source_meaning
124292       , created_by
124293       , creation_date
124294       , last_update_date
124295       , last_updated_by
124296       , last_update_login
124297       , program_update_date
124298       , program_application_id
124299       , program_id
124300       , request_id
124301 )
124302 SELECT  event_id
124303       , p_target_ledger_id
124304       , p_sla_ledger_id
124305       , p_language
124306       , object_name
124307       , object_type_code
124308       , line_number
124309       , source_application_id
124310       , source_type_code
124311       , source_code
124312       , SUBSTR(source_value,1,1996)
124313       , SUBSTR(source_meaning ,1,200)
124314       , xla_environment_pkg.g_Usr_Id
124315       , TRUNC(SYSDATE)
124316       , TRUNC(SYSDATE)
124317       , xla_environment_pkg.g_Usr_Id
124318       , xla_environment_pkg.g_Login_Id
124319       , TRUNC(SYSDATE)
124320       , xla_environment_pkg.g_Prog_Appl_Id
124321       , xla_environment_pkg.g_Prog_Id
124322       , xla_environment_pkg.g_Req_Id
124323   FROM (
124324        SELECT xet.event_id                  event_id
124325             , l1.line_number                 line_number
124326             , CASE r
124327                WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124328                 WHEN 2 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124329                 WHEN 3 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124330                 WHEN 4 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124331                 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124332                 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124333                 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124334                 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124335                 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124336                 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124337                 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124338                 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124339                 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124340                 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124341                 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124342                 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124343                 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
124344                 
124345                ELSE null
124346               END                           object_name
124347             , CASE r
124348                 WHEN 1 THEN 'LINE' 
124349                 WHEN 2 THEN 'LINE' 
124350                 WHEN 3 THEN 'LINE' 
124351                 WHEN 4 THEN 'LINE' 
124352                 WHEN 5 THEN 'LINE' 
124353                 WHEN 6 THEN 'LINE' 
124354                 WHEN 7 THEN 'LINE' 
124355                 WHEN 8 THEN 'LINE' 
124356                 WHEN 9 THEN 'LINE' 
124357                 WHEN 10 THEN 'LINE' 
124358                 WHEN 11 THEN 'LINE' 
124359                 WHEN 12 THEN 'LINE' 
124360                 WHEN 13 THEN 'LINE' 
124361                 WHEN 14 THEN 'LINE' 
124362                 WHEN 15 THEN 'LINE' 
124363                 WHEN 16 THEN 'LINE' 
124364                 WHEN 17 THEN 'LINE' 
124365                 
124366                 ELSE null
124367               END                           object_type_code
124368             , CASE r
124369                 WHEN 1 THEN '200' 
124370                 WHEN 2 THEN '200' 
124371                 WHEN 3 THEN '200' 
124372                 WHEN 4 THEN '200' 
124373                 WHEN 5 THEN '200' 
124374                 WHEN 6 THEN '200' 
124375                 WHEN 7 THEN '200' 
124376                 WHEN 8 THEN '200' 
124377                 WHEN 9 THEN '200' 
124378                 WHEN 10 THEN '200' 
124379                 WHEN 11 THEN '200' 
124380                 WHEN 12 THEN '200' 
124381                 WHEN 13 THEN '200' 
124382                 WHEN 14 THEN '200' 
124383                 WHEN 15 THEN '200' 
124384                 WHEN 16 THEN '200' 
124385                 WHEN 17 THEN '200' 
124389             , 'S'             source_type_code
124386                 
124387                 ELSE null
124388               END                           source_application_id
124390             , CASE r
124391                 WHEN 1 THEN 'DISTRIBUTION_LINK_TYPE' 
124392                 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE' 
124393                 WHEN 3 THEN 'AID_INVOICE_DIST_ID' 
124394                 WHEN 4 THEN 'ACCT_REVERSAL_INDICATOR' 
124395                 WHEN 5 THEN 'AID_EXPENDITURE_TYPE' 
124396                 WHEN 6 THEN 'ENC_UPG_CR_ACCT_CLASS' 
124397                 WHEN 7 THEN 'ENC_UPG_CR_ACCOUNT' 
124398                 WHEN 8 THEN 'AID_AMOUNT' 
124399                 WHEN 9 THEN 'AID_BASE_AMT_NO_ROUND' 
124400                 WHEN 10 THEN 'ENC_UPG_DR_ACCT_CLASS' 
124401                 WHEN 11 THEN 'ENC_UPG_DR_ACCOUNT' 
124402                 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG' 
124403                 WHEN 13 THEN 'ACCT_REVERSAL_FIRST_DIST_ID' 
124404                 WHEN 14 THEN 'AP_SECOND_DIST_ID' 
124405                 WHEN 15 THEN 'ACCT_REV_DISTRIBUTION_TYPE' 
124406                 WHEN 16 THEN 'ENC_UPG_CR_ENC_TYPE_ID' 
124407                 WHEN 17 THEN 'ENC_UPG_DR_ENC_TYPE_ID' 
124408                 
124409                 ELSE null
124410               END                           source_code
124411             , CASE r
124412                 WHEN 1 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
124413                 WHEN 2 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
124414                 WHEN 3 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
124415                 WHEN 4 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
124416                 WHEN 5 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
124417                 WHEN 6 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
124418                 WHEN 7 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
124419                 WHEN 8 THEN TO_CHAR(l1.AID_AMOUNT)
124420                 WHEN 9 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
124421                 WHEN 10 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
124422                 WHEN 11 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
124423                 WHEN 12 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
124424                 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
124425                 WHEN 14 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
124426                 WHEN 15 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
124427                 WHEN 16 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
124428                 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
124429                 
124430                 ELSE null
124431               END                           source_value
124432             , null              source_meaning
124433          FROM  xla_events_gt     xet  
124434         , PA_XLA_BC_PKT_AP_DETAIL_V  l1
124435             , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
124436         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
124437           AND xet.event_class_code = C_EVENT_CLASS_CODE
124438             AND l1.event_id          = xet.event_id
124439 
124440 )
124441 ;
124442 --
124443 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124444 
124445       trace
124446          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
124447          ,p_level    => C_LEVEL_STATEMENT
124448          ,p_module   => l_log_module);
124449 
124450 END IF;
124451 
124452 
124453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124454       trace
124455          (p_msg      => 'END of insert_sources_208'
124456          ,p_level    => C_LEVEL_PROCEDURE
124457          ,p_module   => l_log_module);
124458 END IF;
124459 EXCEPTION
124460   WHEN xla_exceptions_pkg.application_exception THEN
124461       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
124462             trace
124463                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
124464                ,p_level    => C_LEVEL_EXCEPTION
124465                ,p_module   => l_log_module);
124466       END IF;
124467       RAISE;
124468   WHEN OTHERS THEN
124469       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
124470             trace
124471                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
124472                ,p_level    => C_LEVEL_EXCEPTION
124473                ,p_module   => l_log_module);
124474        END IF;
124475        xla_exceptions_pkg.raise_message
124476            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_208');
124477 END insert_sources_208;
124478 --
124479 
124480 ---------------------------------------
124481 --
124482 -- PRIVATE FUNCTION
124483 --         EventClass_208
124484 --
124485 ----------------------------------------
124486 --
124487 FUNCTION EventClass_208
124488        (p_application_id         IN NUMBER
124489        ,p_base_ledger_id         IN NUMBER
124490        ,p_target_ledger_id       IN NUMBER
124491        ,p_language               IN VARCHAR2
124492        ,p_currency_code          IN VARCHAR2
124493        ,p_sla_ledger_id          IN NUMBER
124494        ,p_pad_start_date         IN DATE
124495        ,p_pad_end_date           IN DATE
124496        ,p_primary_ledger_id      IN NUMBER)
124497 RETURN BOOLEAN IS
124498 --
124499 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICE_BURDEN_ALL';
124500 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'INVOICE_BURDEN';
124501 
124502 l_calculate_acctd_flag   VARCHAR2(1) :='N';
124503 l_calculate_g_l_flag     VARCHAR2(1) :='N';
124504 --
124505 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124509 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124506 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124507 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
124508 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124510 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
124511 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
124512 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124513 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124514 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124515 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124516 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124517 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124518 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
124519 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124520 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124521 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124522 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
124523 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124524 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124525 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124526 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
124527 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
124528 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
124529 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
124530 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
124531 
124532 l_event_id                             NUMBER;
124533 l_previous_event_id                    NUMBER;
124534 l_first_event_id                       NUMBER;
124535 l_last_event_id                        NUMBER;
124536 
124537 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
124538 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
124539 --
124540 --
124541 l_result                    BOOLEAN := TRUE;
124542 l_rows                      NUMBER  := 1000;
124543 l_event_type_name           VARCHAR2(80) := 'All';
124544 l_event_class_name          VARCHAR2(80) := 'Burden for Invoices';
124545 l_description               VARCHAR2(4000);
124546 l_transaction_reversal      NUMBER;
124547 l_ae_header_id              NUMBER;
124548 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
124549 l_log_module                VARCHAR2(240);
124550 --
124551 l_acct_reversal_source      VARCHAR2(30);
124552 l_trx_reversal_source       VARCHAR2(30);
124553 
124554 l_continue_with_lines       BOOLEAN := TRUE;
124555 --
124556 l_acc_rev_gl_date_source    DATE;                      -- 4262811
124557 --
124558 type t_array_event_id is table of number index by binary_integer;
124559 
124560 l_rec_array_event                    t_rec_array_event;
124561 l_null_rec_array_event               t_rec_array_event;
124562 l_array_ae_header_id                 xla_number_array_type;
124563 l_actual_flag                        VARCHAR2(1) := NULL;
124564 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
124565 l_balance_type_code                  VARCHAR2(1) :=NULL;
124566 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
124567 
124568 --
124569 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
124570 --
124571 
124572 
124573 TYPE t_array_source_48 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
124574 TYPE t_array_source_80 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
124575 TYPE t_array_source_156 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
124576 TYPE t_array_source_161 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
124577 TYPE t_array_source_162 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
124578 TYPE t_array_source_163 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
124579 TYPE t_array_source_164 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
124580 TYPE t_array_source_165 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
124581 TYPE t_array_source_166 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
124582 TYPE t_array_source_167 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
124583 TYPE t_array_source_168 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
124584 TYPE t_array_source_169 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
124585 TYPE t_array_source_170 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
124586 TYPE t_array_source_171 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
124587 TYPE t_array_source_172 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
124588 TYPE t_array_source_173 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
124592 l_array_source_48      t_array_source_48;
124589 TYPE t_array_source_174 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
124590 
124591 
124593 l_array_source_80      t_array_source_80;
124594 l_array_source_156      t_array_source_156;
124595 l_array_source_161      t_array_source_161;
124596 l_array_source_162      t_array_source_162;
124597 l_array_source_163      t_array_source_163;
124598 l_array_source_164      t_array_source_164;
124599 l_array_source_165      t_array_source_165;
124600 l_array_source_166      t_array_source_166;
124601 l_array_source_167      t_array_source_167;
124602 l_array_source_168      t_array_source_168;
124603 l_array_source_169      t_array_source_169;
124604 l_array_source_170      t_array_source_170;
124605 l_array_source_171      t_array_source_171;
124606 l_array_source_172      t_array_source_172;
124607 l_array_source_173      t_array_source_173;
124608 l_array_source_174      t_array_source_174;
124609 
124610 --
124611 CURSOR header_cur
124612 IS
124613 SELECT /*+ leading(xet) cardinality(xet,1) */
124614 -- Event Class Code: INVOICE_BURDEN
124615     xet.entity_id
124616    ,xet.legal_entity_id
124617    ,xet.entity_code
124618    ,xet.transaction_number
124619    ,xet.event_id
124620    ,xet.event_class_code
124621    ,xet.event_type_code
124622    ,xet.event_number
124623    ,xet.event_date
124624    ,xet.transaction_date
124625    ,xet.reference_num_1
124626    ,xet.reference_num_2
124627    ,xet.reference_num_3
124628    ,xet.reference_num_4
124629    ,xet.reference_char_1
124630    ,xet.reference_char_2
124631    ,xet.reference_char_3
124632    ,xet.reference_char_4
124633    ,xet.reference_date_1
124634    ,xet.reference_date_2
124635    ,xet.reference_date_3
124636    ,xet.reference_date_4
124637    ,xet.event_created_by
124638    ,xet.budgetary_control_flag  
124639   FROM xla_events_gt     xet  
124640  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
124641    and xet.event_class_code = C_EVENT_CLASS_CODE
124642    and xet.event_status_code <> 'N'  
124643  ORDER BY event_id
124644 ;
124645 
124646 
124647 --
124648 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
124649 IS
124650 SELECT  /*+ leading(xet) cardinality(xet,1) */
124651 -- Event Class Code: INVOICE_BURDEN
124652     xet.entity_id
124653    ,xet.legal_entity_id
124654    ,xet.entity_code
124655    ,xet.transaction_number
124656    ,xet.event_id
124657    ,xet.event_class_code
124658    ,xet.event_type_code
124659    ,xet.event_number
124660    ,xet.event_date
124661    ,xet.transaction_date
124662    ,xet.reference_num_1
124663    ,xet.reference_num_2
124664    ,xet.reference_num_3
124665    ,xet.reference_num_4
124666    ,xet.reference_char_1
124667    ,xet.reference_char_2
124668    ,xet.reference_char_3
124669    ,xet.reference_char_4
124670    ,xet.reference_date_1
124671    ,xet.reference_date_2
124672    ,xet.reference_date_3
124673    ,xet.reference_date_4
124674    ,xet.event_created_by
124675    ,xet.budgetary_control_flag
124676  , l1.LINE_NUMBER  
124677   , l1.DISTRIBUTION_LINK_TYPE    source_48
124678   , l1.AI_INVOICE_CURRENCY_CODE    source_80
124679   , l1.AID_INVOICE_DIST_ID    source_156
124680   , l1.ACCT_REVERSAL_INDICATOR    source_161
124681   , l1.AID_EXPENDITURE_TYPE    source_162
124682   , l1.ENC_UPG_CR_ACCT_CLASS    source_163
124683   , l1.ENC_UPG_CR_ACCOUNT    source_164
124684   , l1.AID_AMOUNT    source_165
124685   , l1.AID_BASE_AMT_NO_ROUND    source_166
124686   , l1.ENC_UPG_DR_ACCT_CLASS    source_167
124687   , l1.ENC_UPG_DR_ACCOUNT    source_168
124688   , l1.USE_ENC_UPG_ATTRIB_FLAG    source_169
124689   , l1.ACCT_REVERSAL_FIRST_DIST_ID    source_170
124690   , l1.AP_SECOND_DIST_ID    source_171
124691   , l1.ACCT_REV_DISTRIBUTION_TYPE    source_172
124692   , l1.ENC_UPG_CR_ENC_TYPE_ID    source_173
124693   , l1.ENC_UPG_DR_ENC_TYPE_ID    source_174
124694   FROM xla_events_gt     xet 
124695   , PA_XLA_BC_PKT_AP_DETAIL_V  l1
124696  WHERE xet.event_id between x_first_event_id and x_last_event_id
124697    and xet.event_date between p_pad_start_date and p_pad_end_date
124698    and xet.event_class_code = C_EVENT_CLASS_CODE
124699    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
124700 ;
124701 
124702 --
124703 BEGIN
124704 IF g_log_enabled THEN
124705    l_log_module := C_DEFAULT_MODULE||'.EventClass_208';
124706 END IF;
124707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124708    trace
124709       (p_msg      => 'BEGIN of EventClass_208'
124710       ,p_level    => C_LEVEL_PROCEDURE
124711       ,p_module   => l_log_module);
124712 END IF;
124713 
124714 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124715    trace
124716       (p_msg      => 'p_application_id = '||p_application_id||
124717                      ' - p_base_ledger_id = '||p_base_ledger_id||
124718                      ' - p_target_ledger_id  = '||p_target_ledger_id||
124719                      ' - p_language = '||p_language||
124720                      ' - p_currency_code = '||p_currency_code||
124721                      ' - p_sla_ledger_id = '||p_sla_ledger_id
124722       ,p_level    => C_LEVEL_STATEMENT
124723       ,p_module   => l_log_module);
124724 END IF;
124725 --
124726 -- initialze arrays
124727 --
124728 g_array_event.DELETE;
124729 l_rec_array_event := l_null_rec_array_event;
124730 --
124731 --------------------------------------
124732 -- 4262811 Initialze MPA Line Number
124736 --
124733 --------------------------------------
124734 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
124735 
124737 
124738 --
124739 OPEN header_cur;
124740 --
124741 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124742    trace
124743    (p_msg      => 'SQL - FETCH header_cur'
124744    ,p_level    => C_LEVEL_STATEMENT
124745    ,p_module   => l_log_module);
124746 END IF;
124747 --
124748 LOOP
124749 FETCH header_cur BULK COLLECT INTO
124750         l_array_entity_id
124751       , l_array_legal_entity_id
124752       , l_array_entity_code
124753       , l_array_transaction_num
124754       , l_array_event_id
124755       , l_array_class_code
124756       , l_array_event_type
124757       , l_array_event_number
124758       , l_array_event_date
124759       , l_array_transaction_date
124760       , l_array_reference_num_1
124761       , l_array_reference_num_2
124762       , l_array_reference_num_3
124763       , l_array_reference_num_4
124764       , l_array_reference_char_1
124765       , l_array_reference_char_2
124766       , l_array_reference_char_3
124767       , l_array_reference_char_4
124768       , l_array_reference_date_1
124769       , l_array_reference_date_2
124770       , l_array_reference_date_3
124771       , l_array_reference_date_4
124772       , l_array_event_created_by
124773       , l_array_budgetary_control_flag 
124774       LIMIT l_rows;
124775 --
124776 IF (C_LEVEL_EVENT >= g_log_level) THEN
124777    trace
124778    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
124779    ,p_level    => C_LEVEL_EVENT
124780    ,p_module   => l_log_module);
124781 END IF;
124782 --
124783 EXIT WHEN l_array_entity_id.COUNT = 0;
124784 
124785 -- initialize arrays
124786 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
124787 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
124788 
124789 --
124790 -- Bug 4458708
124791 --
124792 XLA_AE_LINES_PKG.g_LineNumber := 0;
124793 
124794 
124795 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
124796 g_last_hdr_idx := l_array_event_id.LAST;
124797 --
124798 -- loop for the headers. Each iteration is for each header extract row
124799 -- fetched in header cursor
124800 --
124801 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
124802 
124803 --
124804 -- set event info as cache for other routines to refer event attributes
124805 --
124806 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
124807    (p_application_id           => p_application_id
124808    ,p_primary_ledger_id        => p_primary_ledger_id
124809    ,p_base_ledger_id           => p_base_ledger_id
124810    ,p_target_ledger_id         => p_target_ledger_id
124811    ,p_entity_id                => l_array_entity_id(hdr_idx)
124812    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
124813    ,p_entity_code              => l_array_entity_code(hdr_idx)
124814    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
124815    ,p_event_id                 => l_array_event_id(hdr_idx)
124816    ,p_event_class_code         => l_array_class_code(hdr_idx)
124817    ,p_event_type_code          => l_array_event_type(hdr_idx)
124818    ,p_event_number             => l_array_event_number(hdr_idx)
124819    ,p_event_date               => l_array_event_date(hdr_idx)
124820    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
124821    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
124822    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
124823    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
124824    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
124825    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
124826    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
124827    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
124828    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
124829    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
124830    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
124831    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
124832    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
124833    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
124834    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
124835 
124836 --
124837 -- set the status of entry to C_VALID (0)
124838 --
124839 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
124840 
124841 --
124842 -- initialize a row for ae header
124843 --
124844 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
124845 
124846 l_event_id := l_array_event_id(hdr_idx);
124847 
124848 --
124849 -- storing the hdr_idx for event. May be used by line cursor.
124850 --
124851 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
124852 
124853 --
124854 -- store sources from header extract. This can be improved to
124855 -- store only those sources from header extract that may be used in lines
124856 --
124857 
124858 
124859 --
124860 -- initilaize the status of ae headers for diffrent balance types
124861 -- the status is initialised to C_NOT_CREATED (2)
124862 --
124863 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
124864 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
124868 -- call api to validate and store accounting attributes for header
124865 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
124866 
124867 --
124869 --
124870 
124871 ------------------------------------------------------------
124872 -- Accrual Reversal : to get date for Standard Source (NONE)
124873 ------------------------------------------------------------
124874 l_acc_rev_gl_date_source := NULL;
124875 
124876      l_rec_acct_attrs.array_acct_attr_code(1)   := 'GL_DATE';
124877       l_rec_acct_attrs.array_date_value(1) := 
124878 xla_ae_sources_pkg.GetSystemSourceDate(
124879    p_source_code           => 'XLA_EVENT_DATE'
124880  , p_source_type_code      => 'Y'
124881  , p_source_application_id =>  602
124882 );
124883 
124884 
124885 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
124886 
124887 XLA_AE_HEADER_PKG.SetJeCategoryName;
124888 
124889 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
124890 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
124891 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
124892 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
124893 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
124894 
124895 
124896 -- No header level analytical criteria
124897 
124898 --
124899 --accounting attribute enhancement, bug 3612931
124900 --
124901 l_trx_reversal_source := SUBSTR(NULL, 1,30);
124902 
124903 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
124904    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
124905 
124906    xla_accounting_err_pkg.build_message
124907       (p_appli_s_name            => 'XLA'
124908       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
124909       ,p_token_1                 => 'ACCT_ATTR_NAME'
124910       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
124911       ,p_token_2                 => 'PRODUCT_NAME'
124912       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
124913       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
124914       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
124915       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
124916 
124917 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
124918    --
124919    -- following sets the accounting attributes needed to reverse
124920    -- accounting for a distributeion
124921    --
124922    xla_ae_lines_pkg.SetTrxReversalAttrs
124923       (p_event_id              => l_event_id
124924       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
124925       ,p_trx_reversal_source   => l_trx_reversal_source);
124926 
124927 END IF;
124928 
124929 
124930 ----------------------------------------------------------------
124931 -- 4262811 -  update the header statuses to invalid in need be
124932 ----------------------------------------------------------------
124933 --
124934 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
124935 
124936 
124937   -----------------------------------------------
124938   -- No accrual reversal for the event class/type
124939   -----------------------------------------------
124940 ----------------------------------------------------------------
124941 
124942 --
124943 -- this ends the header loop iteration for one bulk fetch
124944 --
124945 END LOOP;
124946 
124947 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
124948 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
124949 
124950 --
124951 -- insert dummy rows into lines gt table that were created due to
124952 -- transaction reversals
124953 --
124954 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
124955    l_result := XLA_AE_LINES_PKG.InsertLines;
124956 END IF;
124957 
124958 --
124959 -- reset the temp_line_num for each set of events fetched from header
124960 -- cursor rather than doing it for each new event in line cursor
124961 -- Bug 3939231
124962 --
124963 xla_ae_lines_pkg.g_temp_line_num := 0;
124964 
124965 
124966 
124967 --
124968 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
124969 --
124970 --
124971 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
124972 
124973       trace
124974          (p_msg      => 'SQL - FETCH line_cur'
124975          ,p_level    => C_LEVEL_STATEMENT
124976          ,p_module   => l_log_module);
124977 
124978 END IF;
124979 --
124980 --
124981 LOOP
124982   --
124983   FETCH line_cur BULK COLLECT INTO
124984         l_array_entity_id
124985       , l_array_legal_entity_id
124986       , l_array_entity_code
124987       , l_array_transaction_num
124988       , l_array_event_id
124989       , l_array_class_code
124990       , l_array_event_type
124991       , l_array_event_number
124992       , l_array_event_date
124993       , l_array_transaction_date
124994       , l_array_reference_num_1
124995       , l_array_reference_num_2
124996       , l_array_reference_num_3
124997       , l_array_reference_num_4
124998       , l_array_reference_char_1
124999       , l_array_reference_char_2
125003       , l_array_reference_date_2
125000       , l_array_reference_char_3
125001       , l_array_reference_char_4
125002       , l_array_reference_date_1
125004       , l_array_reference_date_3
125005       , l_array_reference_date_4
125006       , l_array_event_created_by
125007       , l_array_budgetary_control_flag
125008       , l_array_extract_line_num 
125009       , l_array_source_48
125010       , l_array_source_80
125011       , l_array_source_156
125012       , l_array_source_161
125013       , l_array_source_162
125014       , l_array_source_163
125015       , l_array_source_164
125016       , l_array_source_165
125017       , l_array_source_166
125018       , l_array_source_167
125019       , l_array_source_168
125020       , l_array_source_169
125021       , l_array_source_170
125022       , l_array_source_171
125023       , l_array_source_172
125024       , l_array_source_173
125025       , l_array_source_174
125026       LIMIT l_rows;
125027 
125028   --
125029   IF (C_LEVEL_EVENT >= g_log_level) THEN
125030             trace
125031                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
125032                ,p_level    => C_LEVEL_EVENT
125033                ,p_module   => l_log_module);
125034   END IF;
125035   --
125036   EXIT WHEN l_array_entity_id.count = 0;
125037 
125038   XLA_AE_LINES_PKG.g_rec_lines := null;
125039 
125040 --
125041 -- Bug 4458708
125042 --
125043 XLA_AE_LINES_PKG.g_LineNumber := 0;
125044 --
125045 --
125046 
125047 FOR Idx IN 1..l_array_event_id.count LOOP
125048    --
125049    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
125050    --
125051    l_event_id := l_array_event_id(idx);  -- 5648433
125052 
125053    --
125054    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
125055    --
125056 
125057    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
125058              (g_array_event(l_event_id).array_value_num('header_index'))
125059          ,'N'
125060          ) <> 'Y'
125061    THEN
125062       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125063          trace
125064             (p_msg      => 'Trancaction revesal option is not Y '
125065             ,p_level    => C_LEVEL_STATEMENT
125066             ,p_module   => l_log_module);
125067       END IF;
125068 
125069 --
125070 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
125071 --
125072 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
125073 --
125074 -- set event info as cache for other routines to refer event attributes
125075 --
125076 
125077 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
125078    l_previous_event_id := l_event_id;
125079 
125080    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
125081       (p_application_id           => p_application_id
125082       ,p_primary_ledger_id        => p_primary_ledger_id
125083       ,p_base_ledger_id           => p_base_ledger_id
125084       ,p_target_ledger_id         => p_target_ledger_id
125085       ,p_entity_id                => l_array_entity_id(Idx)
125086       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
125087       ,p_entity_code              => l_array_entity_code(Idx)
125088       ,p_transaction_num          => l_array_transaction_num(Idx)
125089       ,p_event_id                 => l_array_event_id(Idx)
125090       ,p_event_class_code         => l_array_class_code(Idx)
125091       ,p_event_type_code          => l_array_event_type(Idx)
125092       ,p_event_number             => l_array_event_number(Idx)
125093       ,p_event_date               => l_array_event_date(Idx)
125094       ,p_transaction_date         => l_array_transaction_date(Idx)
125095       ,p_reference_num_1          => l_array_reference_num_1(Idx)
125096       ,p_reference_num_2          => l_array_reference_num_2(Idx)
125097       ,p_reference_num_3          => l_array_reference_num_3(Idx)
125098       ,p_reference_num_4          => l_array_reference_num_4(Idx)
125099       ,p_reference_char_1         => l_array_reference_char_1(Idx)
125100       ,p_reference_char_2         => l_array_reference_char_2(Idx)
125101       ,p_reference_char_3         => l_array_reference_char_3(Idx)
125102       ,p_reference_char_4         => l_array_reference_char_4(Idx)
125103       ,p_reference_date_1         => l_array_reference_date_1(Idx)
125104       ,p_reference_date_2         => l_array_reference_date_2(Idx)
125105       ,p_reference_date_3         => l_array_reference_date_3(Idx)
125106       ,p_reference_date_4         => l_array_reference_date_4(Idx)
125107       ,p_event_created_by         => l_array_event_created_by(Idx)
125108       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
125109        --
125110 END IF;
125111 
125112 
125113 
125114 --
125115 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
125116 
125117 l_acct_reversal_source := SUBSTR(l_array_source_161(Idx), 1,30);
125118 
125119 IF l_continue_with_lines THEN
125120    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
125121       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
125122 
125123       xla_accounting_err_pkg.build_message
125124          (p_appli_s_name            => 'XLA'
125125          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
125126          ,p_token_1                 => 'LINE_NUMBER'
125130          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
125127          ,p_value_1                 => l_array_extract_line_num(Idx)
125128          ,p_token_2                 => 'PRODUCT_NAME'
125129          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
125131          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
125132          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
125133 
125134    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
125135       --
125136       -- following sets the accounting attributes needed to reverse
125137       -- accounting for a distributeion
125138       --
125139 
125140       --
125141       -- 5217187
125142       --
125143       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
125144       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
125145                                        g_array_event(l_event_id).array_value_num('header_index'));
125146       --
125147       --
125148 
125149       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
125150       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_161(Idx);
125151       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
125152       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_156(Idx);
125153       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
125154       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_162(Idx);
125155       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
125156       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_48(Idx);
125157       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
125158       l_rec_rev_acct_attrs.array_char_value(6)  := l_array_source_163(Idx);
125159       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
125160       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_164(Idx);
125161       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
125162       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_165(Idx);
125163       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
125164       l_rec_rev_acct_attrs.array_char_value(9)  := l_array_source_80(Idx);
125165       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
125166       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_166(Idx);
125167       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
125168       l_rec_rev_acct_attrs.array_char_value(11)  := l_array_source_167(Idx);
125169       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
125170       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_168(Idx);
125171       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
125172       l_rec_rev_acct_attrs.array_num_value(13)  := l_array_source_165(Idx);
125173       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
125174       l_rec_rev_acct_attrs.array_char_value(14)  := l_array_source_80(Idx);
125175       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
125176       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_166(Idx);
125177       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
125178       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_169(Idx);
125179       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
125180       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_170(Idx);
125181       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
125182       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_171(Idx);
125183       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
125184       l_rec_rev_acct_attrs.array_char_value(19)  := l_array_source_172(Idx);
125185       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
125186       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_173(Idx);
125187       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
125188       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_174(Idx);
125189 
125190 
125191       xla_ae_lines_pkg.SetAcctReversalAttrs
125192          (p_event_id             => l_event_id
125193          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
125194          ,p_calculate_acctd_flag => l_calculate_acctd_flag
125195          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
125196    END IF;
125197 
125198    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
125199        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
125200       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
125201       -- or secondary ledger that has different currency with primary
125202       -- or alc that is calculated by sla
125203       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
125204             (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'))
125205 
125206 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
125207 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
125208           AND (l_actual_flag = 'A')) THEN
125209         XLA_AE_LINES_PKG.CreateGainOrLossLines(
125213          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
125210           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
125211          ,p_application_id   => p_application_id
125212          ,p_amb_context_code => 'DEFAULT'
125214          ,p_event_class_code => C_EVENT_CLASS_CODE
125215          ,p_event_type_code  => C_EVENT_TYPE_CODE
125216          
125217          ,p_gain_ccid        => -1
125218          ,p_loss_ccid        => -1
125219 
125220          ,p_actual_flag      => l_actual_flag
125221          ,p_enc_flag         => null
125222          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
125223          ,p_enc_g_l_ref      => null
125224          );
125225       END IF;
125226    END IF;
125227 END IF;
125228 
125229    ELSE
125230       --
125231       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
125232       --
125233       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125234          trace
125235             (p_msg      => 'Trancaction revesal option is Y'
125236             ,p_level    => C_LEVEL_STATEMENT
125237             ,p_module   => l_log_module);
125238       END IF;
125239    END IF;
125240 
125241 END LOOP;
125242 l_result := XLA_AE_LINES_PKG.InsertLines ;
125243 end loop;
125244 close line_cur;
125245 
125246 
125247 --
125248 -- insert headers into xla_ae_headers_gt table
125249 --
125250 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
125251 
125252 -- insert into errors table here.
125253 
125254 END LOOP;
125255 
125256 --
125257 -- 4865292
125258 --
125259 -- Compare g_hdr_extract_count with event count in
125260 -- CreateHeadersAndLines.
125261 --
125262 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
125263 
125264 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125265    trace (p_msg     => '# rows extracted from header extract objects '
125266                     || ' (running total): '
125267                     || g_hdr_extract_count
125268          ,p_level   => C_LEVEL_STATEMENT
125269          ,p_module  => l_log_module);
125270 END IF;
125271 
125272 CLOSE header_cur;
125273 --
125274 
125275 --
125276 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125277    trace
125278       (p_msg      => 'END of EventClass_208'
125279       ,p_level    => C_LEVEL_PROCEDURE
125280       ,p_module   => l_log_module);
125281 END IF;
125282 --
125283 RETURN l_result;
125284 EXCEPTION
125285 WHEN xla_exceptions_pkg.application_exception THEN
125286    
125287 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
125288 
125289    
125290 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
125291 
125292    RAISE;
125293 
125294 WHEN NO_DATA_FOUND THEN
125295 
125296 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
125297 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
125298 
125299 FOR header_record IN header_cur
125300 LOOP
125301     l_array_header_events(header_record.event_id) := header_record.event_id;
125302 END LOOP;
125303 
125304 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
125305 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
125306 
125307 fnd_file.put_line(fnd_file.LOG, '                    ');
125308 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
125309 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
125310 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
125311 
125312 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
125313 LOOP
125314 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
125315 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
125316         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
125317 	END IF;
125318 END LOOP;
125319 
125320 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
125321 fnd_file.put_line(fnd_file.LOG, '                    ');
125322 
125323 
125324 xla_exceptions_pkg.raise_message
125325       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_208');
125326 
125327 
125328 WHEN OTHERS THEN
125329    xla_exceptions_pkg.raise_message
125330       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_208');
125331 END EventClass_208;
125332 --
125333 
125334 ---------------------------------------
125335 --
125336 -- PRIVATE PROCEDURE
125337 --         insert_sources_209
125338 --
125339 ----------------------------------------
125340 --
125341 PROCEDURE insert_sources_209(
125342                                 p_target_ledger_id       IN NUMBER
125343                               , p_language               IN VARCHAR2
125344                               , p_sla_ledger_id          IN NUMBER
125345                               , p_pad_start_date         IN DATE
125346                               , p_pad_end_date           IN DATE
125347                          )
125348 IS
125349 
125350 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
125351 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PAYMENTS';
125352 p_apps_owner                   VARCHAR2(30);
125353 l_log_module                   VARCHAR2(240);
125354 BEGIN
125355 IF g_log_enabled THEN
125356       l_log_module := C_DEFAULT_MODULE||'.insert_sources_209';
125357 END IF;
125361          (p_msg      => 'BEGIN of insert_sources_209'
125358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125359 
125360       trace
125362          ,p_level    => C_LEVEL_PROCEDURE
125363          ,p_module   => l_log_module);
125364 
125365 END IF;
125366 
125367 -- select APPS owner
125368 SELECT oracle_username
125369   INTO p_apps_owner
125370   FROM fnd_oracle_userid
125371  WHERE read_only_flag = 'U'
125372 ;
125373 
125374 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125375       trace
125376          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
125377                         ' - p_language = '||p_language||
125378                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
125379                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
125380                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
125381                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
125382          ,p_level    => C_LEVEL_STATEMENT
125383          ,p_module   => l_log_module);
125384 END IF;
125385 
125386 
125387 --
125388 INSERT INTO xla_diag_sources --hdr2
125389 (
125390         event_id
125391       , ledger_id
125392       , sla_ledger_id
125393       , description_language
125394       , object_name
125395       , object_type_code
125396       , line_number
125397       , source_application_id
125398       , source_type_code
125399       , source_code
125400       , source_value
125401       , source_meaning
125402       , created_by
125403       , creation_date
125404       , last_update_date
125405       , last_updated_by
125406       , last_update_login
125407       , program_update_date
125408       , program_application_id
125409       , program_id
125410       , request_id
125411 )
125412 SELECT
125413         event_id
125414       , p_target_ledger_id
125415       , p_sla_ledger_id
125416       , p_language
125417       , object_name
125418       , object_type_code
125419       , line_number
125420       , source_application_id
125421       , source_type_code
125422       , source_code
125423       , SUBSTR(source_value ,1,1996)
125424       , SUBSTR(source_meaning ,1,200)
125425       , xla_environment_pkg.g_Usr_Id
125426       , TRUNC(SYSDATE)
125427       , TRUNC(SYSDATE)
125428       , xla_environment_pkg.g_Usr_Id
125429       , xla_environment_pkg.g_Login_Id
125430       , TRUNC(SYSDATE)
125431       , xla_environment_pkg.g_Prog_Appl_Id
125432       , xla_environment_pkg.g_Prog_Id
125433       , xla_environment_pkg.g_Req_Id
125434   FROM (
125435        SELECT xet.event_id                  event_id
125436             , 0                          line_number
125437             , CASE r
125438                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125439                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125440                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125441                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125442                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125443                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125444                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125445                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125446                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125447                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125448                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125449                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125450                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125451                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125452                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125453                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125454                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125455                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125456                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125457                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125458                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125459                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125460                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125461                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125462                 WHEN 25 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
125463                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125464                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125465                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125466                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125467                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125468                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125469                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125470                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125471                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125472                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
125473                 
125474                ELSE null
125475               END                           object_name
125476             , CASE r
125477                 WHEN 1 THEN 'HEADER' 
125478                 WHEN 2 THEN 'HEADER' 
125479                 WHEN 3 THEN 'HEADER' 
125480                 WHEN 4 THEN 'HEADER' 
125481                 WHEN 5 THEN 'HEADER' 
125482                 WHEN 6 THEN 'HEADER' 
125483                 WHEN 7 THEN 'HEADER' 
125484                 WHEN 8 THEN 'HEADER' 
125485                 WHEN 9 THEN 'HEADER' 
125489                 WHEN 13 THEN 'HEADER' 
125486                 WHEN 10 THEN 'HEADER' 
125487                 WHEN 11 THEN 'HEADER' 
125488                 WHEN 12 THEN 'HEADER' 
125490                 WHEN 14 THEN 'HEADER' 
125491                 WHEN 15 THEN 'HEADER' 
125492                 WHEN 16 THEN 'HEADER' 
125493                 WHEN 17 THEN 'HEADER' 
125494                 WHEN 18 THEN 'HEADER' 
125495                 WHEN 19 THEN 'HEADER' 
125496                 WHEN 20 THEN 'HEADER' 
125497                 WHEN 21 THEN 'HEADER' 
125498                 WHEN 22 THEN 'HEADER' 
125499                 WHEN 23 THEN 'HEADER' 
125500                 WHEN 24 THEN 'HEADER' 
125501                 WHEN 25 THEN 'HEADER' 
125502                 WHEN 26 THEN 'HEADER' 
125503                 WHEN 27 THEN 'HEADER' 
125504                 WHEN 28 THEN 'HEADER' 
125505                 WHEN 29 THEN 'HEADER' 
125506                 WHEN 30 THEN 'HEADER' 
125507                 WHEN 31 THEN 'HEADER' 
125508                 WHEN 32 THEN 'HEADER' 
125509                 WHEN 33 THEN 'HEADER' 
125510                 WHEN 34 THEN 'HEADER' 
125511                 WHEN 35 THEN 'HEADER' 
125512                 
125513                 ELSE null
125514               END                           object_type_code
125515             , CASE r
125516                 WHEN 1 THEN '200' 
125517                 WHEN 2 THEN '200' 
125518                 WHEN 3 THEN '200' 
125519                 WHEN 4 THEN '200' 
125520                 WHEN 5 THEN '200' 
125521                 WHEN 6 THEN '200' 
125522                 WHEN 7 THEN '200' 
125523                 WHEN 8 THEN '200' 
125524                 WHEN 9 THEN '200' 
125525                 WHEN 10 THEN '200' 
125526                 WHEN 11 THEN '200' 
125527                 WHEN 12 THEN '200' 
125528                 WHEN 13 THEN '200' 
125529                 WHEN 14 THEN '200' 
125530                 WHEN 15 THEN '200' 
125531                 WHEN 16 THEN '200' 
125532                 WHEN 17 THEN '200' 
125533                 WHEN 18 THEN '200' 
125534                 WHEN 19 THEN '200' 
125535                 WHEN 20 THEN '200' 
125536                 WHEN 21 THEN '200' 
125537                 WHEN 22 THEN '200' 
125538                 WHEN 23 THEN '200' 
125539                 WHEN 24 THEN '200' 
125540                 WHEN 25 THEN '200' 
125541                 WHEN 26 THEN '200' 
125542                 WHEN 27 THEN '200' 
125543                 WHEN 28 THEN '200' 
125544                 WHEN 29 THEN '200' 
125545                 WHEN 30 THEN '200' 
125546                 WHEN 31 THEN '200' 
125547                 WHEN 32 THEN '200' 
125548                 WHEN 33 THEN '200' 
125549                 WHEN 34 THEN '200' 
125550                 WHEN 35 THEN '200' 
125551                 
125552                 ELSE null
125553               END                           source_application_id
125554             , 'S'             source_type_code
125555             , CASE r
125556                 WHEN 1 THEN 'CGAC_AP_ASSET_CCID' 
125557                 WHEN 2 THEN 'FSP_DISC_TAKEN_CCID' 
125558                 WHEN 3 THEN 'ASP_DISCOUNT_DIST_METHOD' 
125559                 WHEN 4 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
125560                 WHEN 5 THEN 'ASP_RATE_VAR_GAIN_CCID' 
125561                 WHEN 6 THEN 'ASP_RATE_VAR_LOSS_CCID' 
125562                 WHEN 7 THEN 'CGAC_FUTURE_DATED_PMT_CCID' 
125563                 WHEN 8 THEN 'ASP_FD_PMT_ACCT_SOURCE' 
125564                 WHEN 9 THEN 'FSP_FUTURE_DATED_PAYMENT_CCID' 
125565                 WHEN 10 THEN 'POS_FDP_CCID' 
125566                 WHEN 11 THEN 'ASP_INTEREST_CCID' 
125567                 WHEN 12 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
125568                 WHEN 13 THEN 'ASP_BUILD_PREPAY_ACCOUNTS_FLAG' 
125569                 WHEN 14 THEN 'CGAC_CASH_CLEARING_CCID' 
125570                 WHEN 15 THEN 'FSP_RETAINAGE_ACCOUNT' 
125571                 WHEN 16 THEN 'ASP_DISC_TAKEN_CCID' 
125572                 WHEN 17 THEN 'ASP_AUTO_OFFSET_FLAG' 
125573                 WHEN 18 THEN 'PAYCARD_ACCRUED_ACCOUNT_CCID' 
125574                 WHEN 19 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
125575                 WHEN 20 THEN 'AC_CURRENCY_CODE' 
125576                 WHEN 21 THEN 'AC_VENDOR_ID' 
125577                 WHEN 22 THEN 'AC_VENDOR_SITE_ID' 
125578                 WHEN 23 THEN 'THIRD_PARTY_TYPE' 
125579                 WHEN 24 THEN 'PAYMENT_TYPE' 
125580                 WHEN 25 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
125581                 WHEN 26 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
125582                 WHEN 27 THEN 'AC_FUTURE_PAY_DUE_DATE' 
125583                 WHEN 28 THEN 'PAYMENT_PROCESSING_TYPE' 
125584                 WHEN 29 THEN 'AC_EXCHANGE_DATE' 
125585                 WHEN 30 THEN 'AC_EXCHANGE_RATE' 
125586                 WHEN 31 THEN 'AC_EXCHANGE_RATE_TYPE' 
125587                 WHEN 32 THEN 'AC_DOC_CATEGORY_CODE' 
125588                 WHEN 33 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
125589                 WHEN 34 THEN 'AC_DOC_SEQUENCE_VALUE' 
125590                 WHEN 35 THEN 'TRANSAC_REVERSAL_FLAG' 
125591                 
125592                 ELSE null
125593               END                           source_code
125594             , CASE r
125595                 WHEN 1 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
125596                 WHEN 2 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
125597                 WHEN 3 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
125598                 WHEN 4 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
125599                 WHEN 5 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
125603                 WHEN 9 THEN TO_CHAR(h4.FSP_FUTURE_DATED_PAYMENT_CCID)
125600                 WHEN 6 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
125601                 WHEN 7 THEN TO_CHAR(h2.CGAC_FUTURE_DATED_PMT_CCID)
125602                 WHEN 8 THEN TO_CHAR(h4.ASP_FD_PMT_ACCT_SOURCE)
125604                 WHEN 10 THEN TO_CHAR(h2.POS_FDP_CCID)
125605                 WHEN 11 THEN TO_CHAR(h4.ASP_INTEREST_CCID)
125606                 WHEN 12 THEN TO_CHAR(h4.ASP_PRORATE_INT_ACROSS_DISTS)
125607                 WHEN 13 THEN TO_CHAR(h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG)
125608                 WHEN 14 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
125609                 WHEN 15 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
125610                 WHEN 16 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
125611                 WHEN 17 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
125612                 WHEN 18 THEN TO_CHAR(h2.PAYCARD_ACCRUED_ACCOUNT_CCID)
125613                 WHEN 19 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
125614                 WHEN 20 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
125615                 WHEN 21 THEN TO_CHAR(h2.AC_VENDOR_ID)
125616                 WHEN 22 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
125617                 WHEN 23 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
125618                 WHEN 24 THEN TO_CHAR(h2.PAYMENT_TYPE)
125619                 WHEN 25 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
125620                 WHEN 26 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
125621                 WHEN 27 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
125622                 WHEN 28 THEN TO_CHAR(h2.PAYMENT_PROCESSING_TYPE)
125623                 WHEN 29 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
125624                 WHEN 30 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
125625                 WHEN 31 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
125626                 WHEN 32 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
125627                 WHEN 33 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
125628                 WHEN 34 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
125629                 WHEN 35 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
125630                 
125631                 ELSE null
125632               END                           source_value
125633             , CASE r
125634                 WHEN 3 THEN fvl3.meaning
125635                 WHEN 4 THEN fvl4.meaning
125636                 WHEN 8 THEN fvl12.meaning
125637                 WHEN 13 THEN fvl18.meaning
125638                 WHEN 17 THEN fvl30.meaning
125639                 WHEN 24 THEN fvl60.meaning
125640                 WHEN 25 THEN fvl102.meaning
125641                 WHEN 26 THEN fvl110.meaning
125642                 WHEN 35 THEN fvl175.meaning
125643                 
125644                 ELSE null
125645               END               source_meaning
125646          FROM xla_events_gt     xet  
125647       , AP_PAYMENT_EXTRACT_HEADER_V  h2
125648       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
125649   , fnd_lookup_values    fvl3
125650   , fnd_lookup_values    fvl4
125651   , fnd_lookup_values    fvl12
125652   , fnd_lookup_values    fvl18
125653   , fnd_lookup_values    fvl30
125654   , fnd_lookup_values    fvl60
125655   , fnd_lookup_values    fvl102
125656   , fnd_lookup_values    fvl110
125657   , fnd_lookup_values    fvl175
125658              ,(select rownum r from all_objects where rownum <= 35 and owner = p_apps_owner)
125659          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
125660            AND xet.event_class_code = C_EVENT_CLASS_CODE
125661               AND h2.event_id = xet.event_id
125662  AND h4.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
125663   AND fvl3.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
125664   AND fvl3.view_application_id(+) = 200
125665   AND fvl3.language(+)            = USERENV('LANG')
125666      AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
125667   AND fvl4.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
125668   AND fvl4.view_application_id(+) = 200
125669   AND fvl4.language(+)            = USERENV('LANG')
125670      AND fvl12.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
125671   AND fvl12.lookup_code(+)         = h4.ASP_FD_PMT_ACCT_SOURCE
125672   AND fvl12.view_application_id(+) = 200
125673   AND fvl12.language(+)            = USERENV('LANG')
125674      AND fvl18.lookup_type(+)         = 'YES_NO'
125675   AND fvl18.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
125676   AND fvl18.view_application_id(+) = 0
125677   AND fvl18.language(+)            = USERENV('LANG')
125678      AND fvl30.lookup_type(+)         = 'YES_NO'
125679   AND fvl30.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
125680   AND fvl30.view_application_id(+) = 0
125681   AND fvl30.language(+)            = USERENV('LANG')
125682      AND fvl60.lookup_type(+)         = 'PAYMENT TYPE'
125683   AND fvl60.lookup_code(+)         = h2.PAYMENT_TYPE
125684   AND fvl60.view_application_id(+) = 200
125685   AND fvl60.language(+)            = USERENV('LANG')
125686      AND fvl102.lookup_type(+)         = 'YES_NO'
125687   AND fvl102.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
125688   AND fvl102.view_application_id(+) = 0
125689   AND fvl102.language(+)            = USERENV('LANG')
125690      AND fvl110.lookup_type(+)         = 'YES_NO'
125691   AND fvl110.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
125692   AND fvl110.view_application_id(+) = 0
125693   AND fvl110.language(+)            = USERENV('LANG')
125694      AND fvl175.lookup_type(+)         = 'YES_NO'
125695   AND fvl175.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
125696   AND fvl175.view_application_id(+) = 0
125697   AND fvl175.language(+)            = USERENV('LANG')
125698   
125699 )
125700 ;
125701 --
125702 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
125703 
125707          ,p_module   => l_log_module);
125704       trace
125705          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
125706          ,p_level    => C_LEVEL_STATEMENT
125708 
125709 END IF;
125710 --
125711 
125712 
125713 
125714 --
125715 INSERT INTO xla_diag_sources  --line2
125716 (
125717         event_id
125718       , ledger_id
125719       , sla_ledger_id
125720       , description_language
125721       , object_name
125722       , object_type_code
125723       , line_number
125724       , source_application_id
125725       , source_type_code
125726       , source_code
125727       , source_value
125728       , source_meaning
125729       , created_by
125730       , creation_date
125731       , last_update_date
125732       , last_updated_by
125733       , last_update_login
125734       , program_update_date
125735       , program_application_id
125736       , program_id
125737       , request_id
125738 )
125739 SELECT  event_id
125740       , p_target_ledger_id
125741       , p_sla_ledger_id
125742       , p_language
125743       , object_name
125744       , object_type_code
125745       , line_number
125746       , source_application_id
125747       , source_type_code
125748       , source_code
125749       , SUBSTR(source_value,1,1996)
125750       , SUBSTR(source_meaning ,1,200)
125751       , xla_environment_pkg.g_Usr_Id
125752       , TRUNC(SYSDATE)
125753       , TRUNC(SYSDATE)
125754       , xla_environment_pkg.g_Usr_Id
125755       , xla_environment_pkg.g_Login_Id
125756       , TRUNC(SYSDATE)
125757       , xla_environment_pkg.g_Prog_Appl_Id
125758       , xla_environment_pkg.g_Prog_Id
125759       , xla_environment_pkg.g_Req_Id
125760   FROM (
125761        SELECT xet.event_id                  event_id
125762             , l1.line_number                 line_number
125763             , CASE r
125764                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125765                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125766                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125767                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125768                 WHEN 5 THEN 'AP_PO_HEADERS_EXTRACT_V' 
125769                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125770                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125771                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125772                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125773                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125774                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125775                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125776                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125777                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125778                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125779                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125780                 WHEN 17 THEN 'AP_PO_HEADERS_EXTRACT_V' 
125781                 WHEN 18 THEN 'AP_PO_HEADERS_EXTRACT_V' 
125782                 WHEN 19 THEN 'AP_PO_HEADERS_EXTRACT_V' 
125783                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125784                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125785                 WHEN 22 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
125786                 WHEN 23 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
125787                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125788                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125789                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125790                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125791                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125792                 WHEN 29 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
125793                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125794                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125795                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125796                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125797                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125798                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125799                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125800                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125801                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
125802                 
125803                ELSE null
125804               END                           object_name
125805             , CASE r
125806                 WHEN 1 THEN 'LINE' 
125807                 WHEN 2 THEN 'LINE' 
125808                 WHEN 3 THEN 'LINE' 
125809                 WHEN 4 THEN 'LINE' 
125810                 WHEN 5 THEN 'LINE' 
125811                 WHEN 6 THEN 'LINE' 
125812                 WHEN 7 THEN 'LINE' 
125813                 WHEN 8 THEN 'LINE' 
125814                 WHEN 9 THEN 'LINE' 
125815                 WHEN 10 THEN 'LINE' 
125816                 WHEN 11 THEN 'LINE' 
125817                 WHEN 12 THEN 'LINE' 
125818                 WHEN 13 THEN 'LINE' 
125819                 WHEN 14 THEN 'LINE' 
125820                 WHEN 15 THEN 'LINE' 
125821                 WHEN 16 THEN 'LINE' 
125822                 WHEN 17 THEN 'LINE' 
125823                 WHEN 18 THEN 'LINE' 
125824                 WHEN 19 THEN 'LINE' 
125825                 WHEN 20 THEN 'LINE' 
125826                 WHEN 21 THEN 'LINE' 
125827                 WHEN 22 THEN 'LINE' 
125828                 WHEN 23 THEN 'LINE' 
125829                 WHEN 24 THEN 'LINE' 
125833                 WHEN 28 THEN 'LINE' 
125830                 WHEN 25 THEN 'LINE' 
125831                 WHEN 26 THEN 'LINE' 
125832                 WHEN 27 THEN 'LINE' 
125834                 WHEN 29 THEN 'LINE' 
125835                 WHEN 30 THEN 'LINE' 
125836                 WHEN 31 THEN 'LINE' 
125837                 WHEN 32 THEN 'LINE' 
125838                 WHEN 33 THEN 'LINE' 
125839                 WHEN 34 THEN 'LINE' 
125840                 WHEN 35 THEN 'LINE' 
125841                 WHEN 36 THEN 'LINE' 
125842                 WHEN 37 THEN 'LINE' 
125843                 WHEN 38 THEN 'LINE' 
125844                 
125845                 ELSE null
125846               END                           object_type_code
125847             , CASE r
125848                 WHEN 1 THEN '200' 
125849                 WHEN 2 THEN '200' 
125850                 WHEN 3 THEN '200' 
125851                 WHEN 4 THEN '200' 
125852                 WHEN 5 THEN '200' 
125853                 WHEN 6 THEN '200' 
125854                 WHEN 7 THEN '200' 
125855                 WHEN 8 THEN '200' 
125856                 WHEN 9 THEN '200' 
125857                 WHEN 10 THEN '200' 
125858                 WHEN 11 THEN '200' 
125859                 WHEN 12 THEN '200' 
125860                 WHEN 13 THEN '200' 
125861                 WHEN 14 THEN '200' 
125862                 WHEN 15 THEN '200' 
125863                 WHEN 16 THEN '200' 
125864                 WHEN 17 THEN '200' 
125865                 WHEN 18 THEN '200' 
125866                 WHEN 19 THEN '200' 
125867                 WHEN 20 THEN '200' 
125868                 WHEN 21 THEN '200' 
125869                 WHEN 22 THEN '200' 
125870                 WHEN 23 THEN '200' 
125871                 WHEN 24 THEN '200' 
125872                 WHEN 25 THEN '200' 
125873                 WHEN 26 THEN '200' 
125874                 WHEN 27 THEN '200' 
125875                 WHEN 28 THEN '200' 
125876                 WHEN 29 THEN '200' 
125877                 WHEN 30 THEN '200' 
125878                 WHEN 31 THEN '200' 
125879                 WHEN 32 THEN '200' 
125880                 WHEN 33 THEN '200' 
125881                 WHEN 34 THEN '200' 
125882                 WHEN 35 THEN '200' 
125883                 WHEN 36 THEN '200' 
125884                 WHEN 37 THEN '200' 
125885                 WHEN 38 THEN '200' 
125886                 
125887                 ELSE null
125888               END                           source_application_id
125889             , 'S'             source_type_code
125890             , CASE r
125891                 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE' 
125892                 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT' 
125893                 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT' 
125894                 WHEN 4 THEN 'AID_DIST_CCID' 
125895                 WHEN 5 THEN 'PO_NUMBER' 
125896                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
125897                 WHEN 7 THEN 'AID_RET_RELATED_DIST_CCID' 
125898                 WHEN 8 THEN 'AWT_RELATED_DIST_ACCOUNT' 
125899                 WHEN 9 THEN 'POD_CCID' 
125900                 WHEN 10 THEN 'PO_VARIANCE_ACCOUNT' 
125901                 WHEN 11 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
125902                 WHEN 12 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
125903                 WHEN 13 THEN 'APHD_AMOUNT' 
125904                 WHEN 14 THEN 'BUS_FLOW_AP_APP_ID' 
125905                 WHEN 15 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
125906                 WHEN 16 THEN 'DISTRIBUTION_LINK_TYPE' 
125907                 WHEN 17 THEN 'POH_RATE_DATE' 
125908                 WHEN 18 THEN 'POH_RATE' 
125909                 WHEN 19 THEN 'POH_RATE_TYPE' 
125910                 WHEN 20 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
125911                 WHEN 21 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
125912                 WHEN 22 THEN 'TAX_LINE_ID' 
125913                 WHEN 23 THEN 'SUMMARY_TAX_LINE_ID' 
125914                 WHEN 24 THEN 'APHD_INVOICE_DIST_AMOUNT' 
125915                 WHEN 25 THEN 'BUS_FLOW_INV_DIST_TYPE' 
125916                 WHEN 26 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
125917                 WHEN 27 THEN 'BUS_FLOW_INV_DIST_ID' 
125918                 WHEN 28 THEN 'BUS_FLOW_INV_ID' 
125919                 WHEN 29 THEN 'REC_NREC_TAX_DIST_ID' 
125920                 WHEN 30 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
125921                 WHEN 31 THEN 'AI_INVOICE_TYPE_PAID' 
125922                 WHEN 32 THEN 'APHD_INV_BASE_AMT_VARIANCE' 
125923                 WHEN 33 THEN 'AID_ENCUMBERED_FLAG' 
125924                 WHEN 34 THEN 'APHD_AMOUNT_VARIANCE' 
125925                 WHEN 35 THEN 'APHD_INV_BASE_QTY_VARIANCE' 
125926                 WHEN 36 THEN 'APHD_QUANTITY_VARIANCE' 
125927                 WHEN 37 THEN 'BF_RETAINED_INV_DIST_ID_PMT' 
125928                 WHEN 38 THEN 'BF_RETAINED_INV_ID_PMT' 
125929                 
125930                 ELSE null
125931               END                           source_code
125932             , CASE r
125933                 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
125934                 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
125935                 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
125936                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
125937                 WHEN 5 THEN TO_CHAR(l3.PO_NUMBER)
125938                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
125939                 WHEN 7 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
125940                 WHEN 8 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
125941                 WHEN 9 THEN TO_CHAR(l1.POD_CCID)
125945                 WHEN 13 THEN TO_CHAR(l1.APHD_AMOUNT)
125942                 WHEN 10 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
125943                 WHEN 11 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
125944                 WHEN 12 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
125946                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
125947                 WHEN 15 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
125948                 WHEN 16 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
125949                 WHEN 17 THEN TO_CHAR(l3.POH_RATE_DATE)
125950                 WHEN 18 THEN TO_CHAR(l3.POH_RATE)
125951                 WHEN 19 THEN TO_CHAR(l3.POH_RATE_TYPE)
125952                 WHEN 20 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
125953                 WHEN 21 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
125954                 WHEN 22 THEN TO_CHAR(l5.TAX_LINE_ID)
125955                 WHEN 23 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
125956                 WHEN 24 THEN TO_CHAR(l1.APHD_INVOICE_DIST_AMOUNT)
125957                 WHEN 25 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
125958                 WHEN 26 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
125959                 WHEN 27 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
125960                 WHEN 28 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
125961                 WHEN 29 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
125962                 WHEN 30 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
125963                 WHEN 31 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
125964                 WHEN 32 THEN TO_CHAR(l1.APHD_INV_BASE_AMT_VARIANCE)
125965                 WHEN 33 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
125966                 WHEN 34 THEN TO_CHAR(l1.APHD_AMOUNT_VARIANCE)
125967                 WHEN 35 THEN TO_CHAR(l1.APHD_INV_BASE_QTY_VARIANCE)
125968                 WHEN 36 THEN TO_CHAR(l1.APHD_QUANTITY_VARIANCE)
125969                 WHEN 37 THEN TO_CHAR(l1.BF_RETAINED_INV_DIST_ID_PMT)
125970                 WHEN 38 THEN TO_CHAR(l1.BF_RETAINED_INV_ID_PMT)
125971                 
125972                 ELSE null
125973               END                           source_value
125974             , CASE r
125975                 WHEN 1 THEN fvl7.meaning
125976                 WHEN 6 THEN fvl20.meaning
125977                 WHEN 11 THEN fvl39.meaning
125978                 WHEN 20 THEN fvl53.meaning
125979                 WHEN 30 THEN fvl100.meaning
125980                 WHEN 31 THEN fvl101.meaning
125981                 WHEN 33 THEN fvl104.meaning
125982                 
125983                 ELSE null
125984               END               source_meaning
125985          FROM  xla_events_gt     xet  
125986         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
125987         , AP_PO_HEADERS_EXTRACT_V  l3
125988         , ZX_AP_DEF_TAX_EXTRACT_V  l5
125989         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
125990   , fnd_lookup_values    fvl7
125991   , fnd_lookup_values    fvl20
125992   , fnd_lookup_values    fvl39
125993   , fnd_lookup_values    fvl53
125994   , fnd_lookup_values    fvl100
125995   , fnd_lookup_values    fvl101
125996   , fnd_lookup_values    fvl104
125997             , (select rownum r from all_objects where rownum <= 38 and owner = p_apps_owner)
125998         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
125999           AND xet.event_class_code = C_EVENT_CLASS_CODE
126000             AND l1.event_id          = xet.event_id
126001  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.aid_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl7.lookup_type(+)         = 'DESTINATION TYPE'
126002   AND fvl7.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
126003   AND fvl7.view_application_id(+) = 201
126004   AND fvl7.language(+)            = USERENV('LANG')
126005      AND fvl20.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
126006   AND fvl20.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
126007   AND fvl20.view_application_id(+) = 200
126008   AND fvl20.language(+)            = USERENV('LANG')
126009      AND fvl39.lookup_type(+)         = 'PAY_DIST_TYPES'
126010   AND fvl39.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
126011   AND fvl39.view_application_id(+) = 200
126012   AND fvl39.language(+)            = USERENV('LANG')
126013      AND fvl53.lookup_type(+)         = 'YES_NO'
126014   AND fvl53.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
126015   AND fvl53.view_application_id(+) = 0
126016   AND fvl53.language(+)            = USERENV('LANG')
126017      AND fvl100.lookup_type(+)         = 'YES_NO'
126018   AND fvl100.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
126019   AND fvl100.view_application_id(+) = 0
126020   AND fvl100.language(+)            = USERENV('LANG')
126021      AND fvl101.lookup_type(+)         = 'INVOICE TYPE'
126022   AND fvl101.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
126023   AND fvl101.view_application_id(+) = 200
126024   AND fvl101.language(+)            = USERENV('LANG')
126025      AND fvl104.lookup_type(+)         = 'YES_NO'
126026   AND fvl104.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
126027   AND fvl104.view_application_id(+) = 0
126028   AND fvl104.language(+)            = USERENV('LANG')
126029   
126030 )
126031 ;
126032 --
126033 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
126034 
126035       trace
126036          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
126037          ,p_level    => C_LEVEL_STATEMENT
126038          ,p_module   => l_log_module);
126039 
126040 END IF;
126041 
126042 
126043 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126044       trace
126045          (p_msg      => 'END of insert_sources_209'
126046          ,p_level    => C_LEVEL_PROCEDURE
126047          ,p_module   => l_log_module);
126048 END IF;
126052             trace
126049 EXCEPTION
126050   WHEN xla_exceptions_pkg.application_exception THEN
126051       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
126053                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
126054                ,p_level    => C_LEVEL_EXCEPTION
126055                ,p_module   => l_log_module);
126056       END IF;
126057       RAISE;
126058   WHEN OTHERS THEN
126059       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
126060             trace
126061                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
126062                ,p_level    => C_LEVEL_EXCEPTION
126063                ,p_module   => l_log_module);
126064        END IF;
126065        xla_exceptions_pkg.raise_message
126066            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_209');
126067 END insert_sources_209;
126068 --
126069 
126070 ---------------------------------------
126071 --
126072 -- PRIVATE FUNCTION
126073 --         EventClass_209
126074 --
126075 ----------------------------------------
126076 --
126077 FUNCTION EventClass_209
126078        (p_application_id         IN NUMBER
126079        ,p_base_ledger_id         IN NUMBER
126080        ,p_target_ledger_id       IN NUMBER
126081        ,p_language               IN VARCHAR2
126082        ,p_currency_code          IN VARCHAR2
126083        ,p_sla_ledger_id          IN NUMBER
126084        ,p_pad_start_date         IN DATE
126085        ,p_pad_end_date           IN DATE
126086        ,p_primary_ledger_id      IN NUMBER)
126087 RETURN BOOLEAN IS
126088 --
126089 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
126090 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PAYMENTS';
126091 
126092 l_calculate_acctd_flag   VARCHAR2(1) :='N';
126093 l_calculate_g_l_flag     VARCHAR2(1) :='N';
126094 --
126095 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126096 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126097 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
126098 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126099 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126100 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
126101 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
126102 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126103 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126104 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126105 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126106 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126107 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126108 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
126109 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126110 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126111 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126112 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
126113 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126114 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126115 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126116 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
126117 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
126118 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
126119 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
126120 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
126121 
126122 l_event_id                             NUMBER;
126123 l_previous_event_id                    NUMBER;
126124 l_first_event_id                       NUMBER;
126125 l_last_event_id                        NUMBER;
126126 
126127 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
126128 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
126129 --
126130 --
126131 l_result                    BOOLEAN := TRUE;
126132 l_rows                      NUMBER  := 1000;
126133 l_event_type_name           VARCHAR2(80) := 'All';
126134 l_event_class_name          VARCHAR2(80) := 'Payments';
126135 l_description               VARCHAR2(4000);
126136 l_transaction_reversal      NUMBER;
126137 l_ae_header_id              NUMBER;
126138 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
126139 l_log_module                VARCHAR2(240);
126140 --
126141 l_acct_reversal_source      VARCHAR2(30);
126142 l_trx_reversal_source       VARCHAR2(30);
126143 
126144 l_continue_with_lines       BOOLEAN := TRUE;
126145 --
126146 l_acc_rev_gl_date_source    DATE;                      -- 4262811
126147 --
126148 type t_array_event_id is table of number index by binary_integer;
126149 
126150 l_rec_array_event                    t_rec_array_event;
126151 l_null_rec_array_event               t_rec_array_event;
126152 l_array_ae_header_id                 xla_number_array_type;
126153 l_actual_flag                        VARCHAR2(1) := NULL;
126154 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
126155 l_balance_type_code                  VARCHAR2(1) :=NULL;
126156 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
126157 
126158 --
126162 TYPE t_array_source_1 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
126159 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
126160 --
126161 
126163 TYPE t_array_source_2 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
126164 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
126165 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
126166 TYPE t_array_source_5 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
126167 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
126168 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_FUTURE_DATED_PMT_CCID%TYPE INDEX BY BINARY_INTEGER;
126169 TYPE t_array_source_12 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_FD_PMT_ACCT_SOURCE%TYPE INDEX BY BINARY_INTEGER;
126170 TYPE t_array_source_13 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_FUTURE_DATED_PAYMENT_CCID%TYPE INDEX BY BINARY_INTEGER;
126171 TYPE t_array_source_14 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.POS_FDP_CCID%TYPE INDEX BY BINARY_INTEGER;
126172 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
126173 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
126174 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_BUILD_PREPAY_ACCOUNTS_FLAG%TYPE INDEX BY BINARY_INTEGER;
126175 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
126176 TYPE t_array_source_22 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
126177 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
126178 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
126179 TYPE t_array_source_31 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYCARD_ACCRUED_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
126180 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
126181 TYPE t_array_source_49 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
126182 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
126183 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
126184 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
126185 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
126186 TYPE t_array_source_102 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
126187 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
126188 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
126189 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_PROCESSING_TYPE%TYPE INDEX BY BINARY_INTEGER;
126190 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
126191 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
126192 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
126193 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
126194 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
126195 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
126196 TYPE t_array_source_175 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
126197 
126198 TYPE t_array_source_7 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
126199 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
126200 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
126201 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
126202 TYPE t_array_source_19 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
126203 TYPE t_array_source_20 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
126204 TYPE t_array_source_23 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
126205 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
126206 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
126207 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
126208 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
126209 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
126210 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
126211 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
126212 TYPE t_array_source_47 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
126216 TYPE t_array_source_52 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
126213 TYPE t_array_source_48 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
126214 TYPE t_array_source_50 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
126215 TYPE t_array_source_51 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
126217 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
126218 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
126219 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
126220 TYPE t_array_source_59 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
126221 TYPE t_array_source_61 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_DIST_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
126222 TYPE t_array_source_62 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
126223 TYPE t_array_source_63 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
126224 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
126225 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
126226 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
126227 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
126228 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
126229 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INV_BASE_AMT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
126230 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
126231 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
126232 TYPE t_array_source_142 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INV_BASE_QTY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
126233 TYPE t_array_source_143 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
126234 TYPE t_array_source_149 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_DIST_ID_PMT%TYPE INDEX BY BINARY_INTEGER;
126235 TYPE t_array_source_150 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_ID_PMT%TYPE INDEX BY BINARY_INTEGER;
126236 
126237 l_array_source_1              t_array_source_1;
126238 l_array_source_2              t_array_source_2;
126239 l_array_source_3              t_array_source_3;
126240 l_array_source_3_meaning      t_array_lookup_meaning;
126241 l_array_source_4              t_array_source_4;
126242 l_array_source_4_meaning      t_array_lookup_meaning;
126243 l_array_source_5              t_array_source_5;
126244 l_array_source_8              t_array_source_8;
126245 l_array_source_11              t_array_source_11;
126246 l_array_source_12              t_array_source_12;
126247 l_array_source_12_meaning      t_array_lookup_meaning;
126248 l_array_source_13              t_array_source_13;
126249 l_array_source_14              t_array_source_14;
126250 l_array_source_15              t_array_source_15;
126251 l_array_source_16              t_array_source_16;
126252 l_array_source_18              t_array_source_18;
126253 l_array_source_18_meaning      t_array_lookup_meaning;
126254 l_array_source_21              t_array_source_21;
126255 l_array_source_22              t_array_source_22;
126256 l_array_source_27              t_array_source_27;
126257 l_array_source_30              t_array_source_30;
126258 l_array_source_30_meaning      t_array_lookup_meaning;
126259 l_array_source_31              t_array_source_31;
126260 l_array_source_38              t_array_source_38;
126261 l_array_source_49              t_array_source_49;
126262 l_array_source_54              t_array_source_54;
126263 l_array_source_55              t_array_source_55;
126264 l_array_source_56              t_array_source_56;
126265 l_array_source_60              t_array_source_60;
126266 l_array_source_60_meaning      t_array_lookup_meaning;
126267 l_array_source_102              t_array_source_102;
126268 l_array_source_102_meaning      t_array_lookup_meaning;
126269 l_array_source_110              t_array_source_110;
126270 l_array_source_110_meaning      t_array_lookup_meaning;
126271 l_array_source_111              t_array_source_111;
126272 l_array_source_113              t_array_source_113;
126273 l_array_source_114              t_array_source_114;
126274 l_array_source_115              t_array_source_115;
126275 l_array_source_116              t_array_source_116;
126276 l_array_source_158              t_array_source_158;
126277 l_array_source_159              t_array_source_159;
126278 l_array_source_160              t_array_source_160;
126279 l_array_source_175              t_array_source_175;
126280 l_array_source_175_meaning      t_array_lookup_meaning;
126281 
126282 l_array_source_7      t_array_source_7;
126283 l_array_source_7_meaning      t_array_lookup_meaning;
126284 l_array_source_9      t_array_source_9;
126285 l_array_source_10      t_array_source_10;
126286 l_array_source_17      t_array_source_17;
126287 l_array_source_19      t_array_source_19;
126288 l_array_source_20      t_array_source_20;
126289 l_array_source_20_meaning      t_array_lookup_meaning;
126290 l_array_source_23      t_array_source_23;
126291 l_array_source_24      t_array_source_24;
126292 l_array_source_28      t_array_source_28;
126296 l_array_source_40      t_array_source_40;
126293 l_array_source_29      t_array_source_29;
126294 l_array_source_39      t_array_source_39;
126295 l_array_source_39_meaning      t_array_lookup_meaning;
126297 l_array_source_41      t_array_source_41;
126298 l_array_source_42      t_array_source_42;
126299 l_array_source_47      t_array_source_47;
126300 l_array_source_48      t_array_source_48;
126301 l_array_source_50      t_array_source_50;
126302 l_array_source_51      t_array_source_51;
126303 l_array_source_52      t_array_source_52;
126304 l_array_source_53      t_array_source_53;
126305 l_array_source_53_meaning      t_array_lookup_meaning;
126306 l_array_source_57      t_array_source_57;
126307 l_array_source_58      t_array_source_58;
126308 l_array_source_59      t_array_source_59;
126309 l_array_source_61      t_array_source_61;
126310 l_array_source_62      t_array_source_62;
126311 l_array_source_63      t_array_source_63;
126312 l_array_source_64      t_array_source_64;
126313 l_array_source_65      t_array_source_65;
126314 l_array_source_66      t_array_source_66;
126315 l_array_source_100      t_array_source_100;
126316 l_array_source_100_meaning      t_array_lookup_meaning;
126317 l_array_source_101      t_array_source_101;
126318 l_array_source_101_meaning      t_array_lookup_meaning;
126319 l_array_source_103      t_array_source_103;
126320 l_array_source_104      t_array_source_104;
126321 l_array_source_104_meaning      t_array_lookup_meaning;
126322 l_array_source_105      t_array_source_105;
126323 l_array_source_142      t_array_source_142;
126324 l_array_source_143      t_array_source_143;
126325 l_array_source_149      t_array_source_149;
126326 l_array_source_150      t_array_source_150;
126327 
126328 --
126329 CURSOR header_cur
126330 IS
126331 SELECT /*+ leading(xet) cardinality(xet,1) */
126332 -- Event Class Code: PAYMENTS
126333     xet.entity_id
126334    ,xet.legal_entity_id
126335    ,xet.entity_code
126336    ,xet.transaction_number
126337    ,xet.event_id
126338    ,xet.event_class_code
126339    ,xet.event_type_code
126340    ,xet.event_number
126341    ,xet.event_date
126342    ,xet.transaction_date
126343    ,xet.reference_num_1
126344    ,xet.reference_num_2
126345    ,xet.reference_num_3
126346    ,xet.reference_num_4
126347    ,xet.reference_char_1
126348    ,xet.reference_char_2
126349    ,xet.reference_char_3
126350    ,xet.reference_char_4
126351    ,xet.reference_date_1
126352    ,xet.reference_date_2
126353    ,xet.reference_date_3
126354    ,xet.reference_date_4
126355    ,xet.event_created_by
126356    ,xet.budgetary_control_flag 
126357   , h2.CGAC_AP_ASSET_CCID    source_1
126358   , h4.FSP_DISC_TAKEN_CCID    source_2
126359   , h4.ASP_DISCOUNT_DIST_METHOD    source_3
126360   , fvl3.meaning   source_3_meaning
126361   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_4
126362   , fvl4.meaning   source_4_meaning
126363   , h4.ASP_RATE_VAR_GAIN_CCID    source_5
126364   , h4.ASP_RATE_VAR_LOSS_CCID    source_8
126365   , h2.CGAC_FUTURE_DATED_PMT_CCID    source_11
126366   , h4.ASP_FD_PMT_ACCT_SOURCE    source_12
126367   , fvl12.meaning   source_12_meaning
126368   , h4.FSP_FUTURE_DATED_PAYMENT_CCID    source_13
126369   , h2.POS_FDP_CCID    source_14
126370   , h4.ASP_INTEREST_CCID    source_15
126371   , h4.ASP_PRORATE_INT_ACROSS_DISTS    source_16
126372   , h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG    source_18
126373   , fvl18.meaning   source_18_meaning
126374   , h2.CGAC_CASH_CLEARING_CCID    source_21
126375   , h4.FSP_RETAINAGE_ACCOUNT    source_22
126376   , h4.ASP_DISC_TAKEN_CCID    source_27
126377   , h4.ASP_AUTO_OFFSET_FLAG    source_30
126378   , fvl30.meaning   source_30_meaning
126379   , h2.PAYCARD_ACCRUED_ACCOUNT_CCID    source_31
126380   , h4.ASP_WHEN_TO_ACCOUNT_PMT    source_38
126381   , h2.AC_CURRENCY_CODE    source_49
126382   , h2.AC_VENDOR_ID    source_54
126383   , h2.AC_VENDOR_SITE_ID    source_55
126384   , h2.THIRD_PARTY_TYPE    source_56
126385   , h2.PAYMENT_TYPE    source_60
126386   , fvl60.meaning   source_60_meaning
126387   , h4.FSP_PURCH_ENCUMBRANCE_FLAG    source_102
126388   , fvl102.meaning   source_102_meaning
126389   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_110
126390   , fvl110.meaning   source_110_meaning
126391   , h2.AC_FUTURE_PAY_DUE_DATE    source_111
126392   , h2.PAYMENT_PROCESSING_TYPE    source_113
126393   , h2.AC_EXCHANGE_DATE    source_114
126394   , h2.AC_EXCHANGE_RATE    source_115
126395   , h2.AC_EXCHANGE_RATE_TYPE    source_116
126396   , h2.AC_DOC_CATEGORY_CODE    source_158
126397   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_159
126398   , h2.AC_DOC_SEQUENCE_VALUE    source_160
126399   , h2.TRANSAC_REVERSAL_FLAG    source_175
126400   , fvl175.meaning   source_175_meaning
126401   FROM xla_events_gt     xet 
126402   , AP_PAYMENT_EXTRACT_HEADER_V  h2
126403   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
126404   , fnd_lookup_values    fvl3
126405   , fnd_lookup_values    fvl4
126406   , fnd_lookup_values    fvl12
126407   , fnd_lookup_values    fvl18
126408   , fnd_lookup_values    fvl30
126409   , fnd_lookup_values    fvl60
126410   , fnd_lookup_values    fvl102
126411   , fnd_lookup_values    fvl110
126412   , fnd_lookup_values    fvl175
126413  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
126414    and xet.event_class_code = C_EVENT_CLASS_CODE
126415    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
126416  AND h4.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
126420      AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
126417   AND fvl3.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
126418   AND fvl3.view_application_id(+) = 200
126419   AND fvl3.language(+)            = USERENV('LANG')
126421   AND fvl4.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
126422   AND fvl4.view_application_id(+) = 200
126423   AND fvl4.language(+)            = USERENV('LANG')
126424      AND fvl12.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
126425   AND fvl12.lookup_code(+)         = h4.ASP_FD_PMT_ACCT_SOURCE
126426   AND fvl12.view_application_id(+) = 200
126427   AND fvl12.language(+)            = USERENV('LANG')
126428      AND fvl18.lookup_type(+)         = 'YES_NO'
126429   AND fvl18.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
126430   AND fvl18.view_application_id(+) = 0
126431   AND fvl18.language(+)            = USERENV('LANG')
126432      AND fvl30.lookup_type(+)         = 'YES_NO'
126433   AND fvl30.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
126434   AND fvl30.view_application_id(+) = 0
126435   AND fvl30.language(+)            = USERENV('LANG')
126436      AND fvl60.lookup_type(+)         = 'PAYMENT TYPE'
126437   AND fvl60.lookup_code(+)         = h2.PAYMENT_TYPE
126438   AND fvl60.view_application_id(+) = 200
126439   AND fvl60.language(+)            = USERENV('LANG')
126440      AND fvl102.lookup_type(+)         = 'YES_NO'
126441   AND fvl102.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
126442   AND fvl102.view_application_id(+) = 0
126443   AND fvl102.language(+)            = USERENV('LANG')
126444      AND fvl110.lookup_type(+)         = 'YES_NO'
126445   AND fvl110.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
126446   AND fvl110.view_application_id(+) = 0
126447   AND fvl110.language(+)            = USERENV('LANG')
126448      AND fvl175.lookup_type(+)         = 'YES_NO'
126449   AND fvl175.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
126450   AND fvl175.view_application_id(+) = 0
126451   AND fvl175.language(+)            = USERENV('LANG')
126452   
126453  ORDER BY event_id
126454 ;
126455 
126456 
126457 --
126458 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
126459 IS
126460 SELECT  /*+ leading(xet) cardinality(xet,1) */
126461 -- Event Class Code: PAYMENTS
126462     xet.entity_id
126463    ,xet.legal_entity_id
126464    ,xet.entity_code
126465    ,xet.transaction_number
126466    ,xet.event_id
126467    ,xet.event_class_code
126468    ,xet.event_type_code
126469    ,xet.event_number
126470    ,xet.event_date
126471    ,xet.transaction_date
126472    ,xet.reference_num_1
126473    ,xet.reference_num_2
126474    ,xet.reference_num_3
126475    ,xet.reference_num_4
126476    ,xet.reference_char_1
126477    ,xet.reference_char_2
126478    ,xet.reference_char_3
126479    ,xet.reference_char_4
126480    ,xet.reference_date_1
126481    ,xet.reference_date_2
126482    ,xet.reference_date_3
126483    ,xet.reference_date_4
126484    ,xet.event_created_by
126485    ,xet.budgetary_control_flag
126486  , l1.LINE_NUMBER  
126487   , l1.RELATED_INV_DIST_DEST_TYPE    source_7
126488   , fvl7.meaning   source_7_meaning
126489   , l1.APHD_PAYMENT_BASE_AMT    source_9
126490   , l1.APHD_CLEARING_BASE_AMT    source_10
126491   , l1.AID_DIST_CCID    source_17
126492   , l3.PO_NUMBER    source_19
126493   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_20
126494   , fvl20.meaning   source_20_meaning
126495   , l1.AID_RET_RELATED_DIST_CCID    source_23
126496   , l1.AWT_RELATED_DIST_ACCOUNT    source_24
126497   , l1.POD_CCID    source_28
126498   , l1.PO_VARIANCE_ACCOUNT    source_29
126499   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_39
126500   , fvl39.meaning   source_39_meaning
126501   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_40
126502   , l1.APHD_AMOUNT    source_41
126503   , l1.BUS_FLOW_AP_APP_ID    source_42
126504   , l1.APHD_PAYMENT_HIST_DIST_ID    source_47
126505   , l1.DISTRIBUTION_LINK_TYPE    source_48
126506   , l3.POH_RATE_DATE    source_50
126507   , l3.POH_RATE    source_51
126508   , l3.POH_RATE_TYPE    source_52
126509   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_53
126510   , fvl53.meaning   source_53_meaning
126511   , l1.APHD_REV_PAY_HIST_DIST_ID    source_57
126512   , l5.TAX_LINE_ID    source_58
126513   , l5.SUMMARY_TAX_LINE_ID    source_59
126514   , l1.APHD_INVOICE_DIST_AMOUNT    source_61
126515   , l1.BUS_FLOW_INV_DIST_TYPE    source_62
126516   , l1.BUS_FLOW_INV_ENTITY_CODE    source_63
126517   , l1.BUS_FLOW_INV_DIST_ID    source_64
126518   , l1.BUS_FLOW_INV_ID    source_65
126519   , l6.REC_NREC_TAX_DIST_ID    source_66
126520   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_100
126521   , fvl100.meaning   source_100_meaning
126522   , l1.AI_INVOICE_TYPE_PAID    source_101
126523   , fvl101.meaning   source_101_meaning
126524   , l1.APHD_INV_BASE_AMT_VARIANCE    source_103
126525   , l1.AID_ENCUMBERED_FLAG    source_104
126526   , fvl104.meaning   source_104_meaning
126527   , l1.APHD_AMOUNT_VARIANCE    source_105
126528   , l1.APHD_INV_BASE_QTY_VARIANCE    source_142
126529   , l1.APHD_QUANTITY_VARIANCE    source_143
126530   , l1.BF_RETAINED_INV_DIST_ID_PMT    source_149
126531   , l1.BF_RETAINED_INV_ID_PMT    source_150
126532   FROM xla_events_gt     xet 
126533   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
126534   , AP_PO_HEADERS_EXTRACT_V  l3
126535   , ZX_AP_DEF_TAX_EXTRACT_V  l5
126536   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
126537   , fnd_lookup_values    fvl7
126538   , fnd_lookup_values    fvl20
126539   , fnd_lookup_values    fvl39
126540   , fnd_lookup_values    fvl53
126544  WHERE xet.event_id between x_first_event_id and x_last_event_id
126541   , fnd_lookup_values    fvl100
126542   , fnd_lookup_values    fvl101
126543   , fnd_lookup_values    fvl104
126545    and xet.event_date between p_pad_start_date and p_pad_end_date
126546    and xet.event_class_code = C_EVENT_CLASS_CODE
126547    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
126548  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl7.lookup_type(+)         = 'DESTINATION TYPE'
126549   AND fvl7.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
126550   AND fvl7.view_application_id(+) = 201
126551   AND fvl7.language(+)            = USERENV('LANG')
126552      AND fvl20.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
126553   AND fvl20.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
126554   AND fvl20.view_application_id(+) = 200
126555   AND fvl20.language(+)            = USERENV('LANG')
126556      AND fvl39.lookup_type(+)         = 'PAY_DIST_TYPES'
126557   AND fvl39.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
126558   AND fvl39.view_application_id(+) = 200
126559   AND fvl39.language(+)            = USERENV('LANG')
126560      AND fvl53.lookup_type(+)         = 'YES_NO'
126561   AND fvl53.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
126562   AND fvl53.view_application_id(+) = 0
126563   AND fvl53.language(+)            = USERENV('LANG')
126564      AND fvl100.lookup_type(+)         = 'YES_NO'
126565   AND fvl100.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
126566   AND fvl100.view_application_id(+) = 0
126567   AND fvl100.language(+)            = USERENV('LANG')
126568      AND fvl101.lookup_type(+)         = 'INVOICE TYPE'
126569   AND fvl101.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
126570   AND fvl101.view_application_id(+) = 200
126571   AND fvl101.language(+)            = USERENV('LANG')
126572      AND fvl104.lookup_type(+)         = 'YES_NO'
126573   AND fvl104.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
126574   AND fvl104.view_application_id(+) = 0
126575   AND fvl104.language(+)            = USERENV('LANG')
126576   ;
126577 
126578 --
126579 BEGIN
126580 IF g_log_enabled THEN
126581    l_log_module := C_DEFAULT_MODULE||'.EventClass_209';
126582 END IF;
126583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126584    trace
126585       (p_msg      => 'BEGIN of EventClass_209'
126586       ,p_level    => C_LEVEL_PROCEDURE
126587       ,p_module   => l_log_module);
126588 END IF;
126589 
126590 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
126591    trace
126592       (p_msg      => 'p_application_id = '||p_application_id||
126593                      ' - p_base_ledger_id = '||p_base_ledger_id||
126594                      ' - p_target_ledger_id  = '||p_target_ledger_id||
126595                      ' - p_language = '||p_language||
126596                      ' - p_currency_code = '||p_currency_code||
126597                      ' - p_sla_ledger_id = '||p_sla_ledger_id
126598       ,p_level    => C_LEVEL_STATEMENT
126599       ,p_module   => l_log_module);
126600 END IF;
126601 --
126602 -- initialze arrays
126603 --
126604 g_array_event.DELETE;
126605 l_rec_array_event := l_null_rec_array_event;
126606 --
126607 --------------------------------------
126608 -- 4262811 Initialze MPA Line Number
126609 --------------------------------------
126610 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
126611 
126612 --
126613 
126614 --
126615 OPEN header_cur;
126616 --
126617 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
126618    trace
126619    (p_msg      => 'SQL - FETCH header_cur'
126620    ,p_level    => C_LEVEL_STATEMENT
126621    ,p_module   => l_log_module);
126622 END IF;
126623 --
126624 LOOP
126625 FETCH header_cur BULK COLLECT INTO
126626         l_array_entity_id
126627       , l_array_legal_entity_id
126628       , l_array_entity_code
126629       , l_array_transaction_num
126630       , l_array_event_id
126631       , l_array_class_code
126632       , l_array_event_type
126633       , l_array_event_number
126634       , l_array_event_date
126635       , l_array_transaction_date
126636       , l_array_reference_num_1
126637       , l_array_reference_num_2
126638       , l_array_reference_num_3
126639       , l_array_reference_num_4
126640       , l_array_reference_char_1
126641       , l_array_reference_char_2
126642       , l_array_reference_char_3
126643       , l_array_reference_char_4
126644       , l_array_reference_date_1
126645       , l_array_reference_date_2
126646       , l_array_reference_date_3
126647       , l_array_reference_date_4
126648       , l_array_event_created_by
126649       , l_array_budgetary_control_flag 
126650       , l_array_source_1
126651       , l_array_source_2
126652       , l_array_source_3
126653       , l_array_source_3_meaning
126654       , l_array_source_4
126655       , l_array_source_4_meaning
126656       , l_array_source_5
126657       , l_array_source_8
126658       , l_array_source_11
126659       , l_array_source_12
126660       , l_array_source_12_meaning
126661       , l_array_source_13
126662       , l_array_source_14
126663       , l_array_source_15
126664       , l_array_source_16
126665       , l_array_source_18
126666       , l_array_source_18_meaning
126667       , l_array_source_21
126668       , l_array_source_22
126669       , l_array_source_27
126670       , l_array_source_30
126671       , l_array_source_30_meaning
126672       , l_array_source_31
126673       , l_array_source_38
126674       , l_array_source_49
126678       , l_array_source_60
126675       , l_array_source_54
126676       , l_array_source_55
126677       , l_array_source_56
126679       , l_array_source_60_meaning
126680       , l_array_source_102
126681       , l_array_source_102_meaning
126682       , l_array_source_110
126683       , l_array_source_110_meaning
126684       , l_array_source_111
126685       , l_array_source_113
126686       , l_array_source_114
126687       , l_array_source_115
126688       , l_array_source_116
126689       , l_array_source_158
126690       , l_array_source_159
126691       , l_array_source_160
126692       , l_array_source_175
126693       , l_array_source_175_meaning
126694       LIMIT l_rows;
126695 --
126696 IF (C_LEVEL_EVENT >= g_log_level) THEN
126697    trace
126698    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
126699    ,p_level    => C_LEVEL_EVENT
126700    ,p_module   => l_log_module);
126701 END IF;
126702 --
126703 EXIT WHEN l_array_entity_id.COUNT = 0;
126704 
126705 -- initialize arrays
126706 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
126707 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
126708 
126709 --
126710 -- Bug 4458708
126711 --
126712 XLA_AE_LINES_PKG.g_LineNumber := 0;
126713 
126714 
126715 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
126716 g_last_hdr_idx := l_array_event_id.LAST;
126717 --
126718 -- loop for the headers. Each iteration is for each header extract row
126719 -- fetched in header cursor
126720 --
126721 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
126722 
126723 --
126724 -- set event info as cache for other routines to refer event attributes
126725 --
126726 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
126727    (p_application_id           => p_application_id
126728    ,p_primary_ledger_id        => p_primary_ledger_id
126729    ,p_base_ledger_id           => p_base_ledger_id
126730    ,p_target_ledger_id         => p_target_ledger_id
126731    ,p_entity_id                => l_array_entity_id(hdr_idx)
126732    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
126733    ,p_entity_code              => l_array_entity_code(hdr_idx)
126734    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
126735    ,p_event_id                 => l_array_event_id(hdr_idx)
126736    ,p_event_class_code         => l_array_class_code(hdr_idx)
126737    ,p_event_type_code          => l_array_event_type(hdr_idx)
126738    ,p_event_number             => l_array_event_number(hdr_idx)
126739    ,p_event_date               => l_array_event_date(hdr_idx)
126740    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
126741    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
126742    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
126743    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
126744    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
126745    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
126746    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
126747    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
126748    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
126749    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
126750    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
126751    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
126752    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
126753    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
126754    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
126755 
126756 --
126757 -- set the status of entry to C_VALID (0)
126758 --
126759 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
126760 
126761 --
126762 -- initialize a row for ae header
126763 --
126764 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
126765 
126766 l_event_id := l_array_event_id(hdr_idx);
126767 
126768 --
126769 -- storing the hdr_idx for event. May be used by line cursor.
126770 --
126771 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
126772 
126773 --
126774 -- store sources from header extract. This can be improved to
126775 -- store only those sources from header extract that may be used in lines
126776 --
126777 
126778 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
126779 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
126780 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
126781 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
126782 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
126783 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
126784 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
126785 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
126786 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
126787 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
126788 g_array_event(l_event_id).array_value_char('source_12_meaning') := l_array_source_12_meaning(hdr_idx);
126789 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
126790 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
126794 g_array_event(l_event_id).array_value_char('source_18_meaning') := l_array_source_18_meaning(hdr_idx);
126791 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
126792 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
126793 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
126795 g_array_event(l_event_id).array_value_num('source_21') := l_array_source_21(hdr_idx);
126796 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
126797 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
126798 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
126799 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
126800 g_array_event(l_event_id).array_value_num('source_31') := l_array_source_31(hdr_idx);
126801 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
126802 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
126803 g_array_event(l_event_id).array_value_num('source_54') := l_array_source_54(hdr_idx);
126804 g_array_event(l_event_id).array_value_num('source_55') := l_array_source_55(hdr_idx);
126805 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
126806 g_array_event(l_event_id).array_value_char('source_60') := l_array_source_60(hdr_idx);
126807 g_array_event(l_event_id).array_value_char('source_60_meaning') := l_array_source_60_meaning(hdr_idx);
126808 g_array_event(l_event_id).array_value_char('source_102') := l_array_source_102(hdr_idx);
126809 g_array_event(l_event_id).array_value_char('source_102_meaning') := l_array_source_102_meaning(hdr_idx);
126810 g_array_event(l_event_id).array_value_char('source_110') := l_array_source_110(hdr_idx);
126811 g_array_event(l_event_id).array_value_char('source_110_meaning') := l_array_source_110_meaning(hdr_idx);
126812 g_array_event(l_event_id).array_value_date('source_111') := l_array_source_111(hdr_idx);
126813 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
126814 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
126815 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
126816 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
126817 g_array_event(l_event_id).array_value_char('source_158') := l_array_source_158(hdr_idx);
126818 g_array_event(l_event_id).array_value_num('source_159') := l_array_source_159(hdr_idx);
126819 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
126820 g_array_event(l_event_id).array_value_char('source_175') := l_array_source_175(hdr_idx);
126821 g_array_event(l_event_id).array_value_char('source_175_meaning') := l_array_source_175_meaning(hdr_idx);
126822 
126823 --
126824 -- initilaize the status of ae headers for diffrent balance types
126825 -- the status is initialised to C_NOT_CREATED (2)
126826 --
126827 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
126828 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
126829 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
126830 
126831 --
126832 -- call api to validate and store accounting attributes for header
126833 --
126834 
126835 ------------------------------------------------------------
126836 -- Accrual Reversal : to get date for Standard Source (NONE)
126837 ------------------------------------------------------------
126838 l_acc_rev_gl_date_source := NULL;
126839 
126840      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
126841       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_158');
126842      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
126843       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_159');
126844      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
126845       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_160');
126846      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
126847       l_rec_acct_attrs.array_date_value(4) := 
126848 xla_ae_sources_pkg.GetSystemSourceDate(
126849    p_source_code           => 'XLA_EVENT_DATE'
126850  , p_source_type_code      => 'Y'
126851  , p_source_application_id =>  602
126852 );
126853      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
126854       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_175');
126855 
126856 
126857 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
126858 
126859 XLA_AE_HEADER_PKG.SetJeCategoryName;
126860 
126861 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
126862 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
126863 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
126864 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
126865 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
126866 
126867 
126868 -- No header level analytical criteria
126869 
126870 --
126871 --accounting attribute enhancement, bug 3612931
126872 --
126873 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_175'), 1,30);
126874 
126875 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
126876    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
126877 
126881       ,p_token_1                 => 'ACCT_ATTR_NAME'
126878    xla_accounting_err_pkg.build_message
126879       (p_appli_s_name            => 'XLA'
126880       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
126882       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
126883       ,p_token_2                 => 'PRODUCT_NAME'
126884       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
126885       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
126886       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
126887       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
126888 
126889 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
126890    --
126891    -- following sets the accounting attributes needed to reverse
126892    -- accounting for a distributeion
126893    --
126894    xla_ae_lines_pkg.SetTrxReversalAttrs
126895       (p_event_id              => l_event_id
126896       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
126897       ,p_trx_reversal_source   => l_trx_reversal_source);
126898 
126899 END IF;
126900 
126901 
126902 ----------------------------------------------------------------
126903 -- 4262811 -  update the header statuses to invalid in need be
126904 ----------------------------------------------------------------
126905 --
126906 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
126907 
126908 
126909   -----------------------------------------------
126910   -- No accrual reversal for the event class/type
126911   -----------------------------------------------
126912 ----------------------------------------------------------------
126913 
126914 --
126915 -- this ends the header loop iteration for one bulk fetch
126916 --
126917 END LOOP;
126918 
126919 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
126920 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
126921 
126922 --
126923 -- insert dummy rows into lines gt table that were created due to
126924 -- transaction reversals
126925 --
126926 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
126927    l_result := XLA_AE_LINES_PKG.InsertLines;
126928 END IF;
126929 
126930 --
126931 -- reset the temp_line_num for each set of events fetched from header
126932 -- cursor rather than doing it for each new event in line cursor
126933 -- Bug 3939231
126934 --
126935 xla_ae_lines_pkg.g_temp_line_num := 0;
126936 
126937 
126938 
126939 --
126940 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
126941 --
126942 --
126943 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
126944 
126945       trace
126946          (p_msg      => 'SQL - FETCH line_cur'
126947          ,p_level    => C_LEVEL_STATEMENT
126948          ,p_module   => l_log_module);
126949 
126950 END IF;
126951 --
126952 --
126953 LOOP
126954   --
126955   FETCH line_cur BULK COLLECT INTO
126956         l_array_entity_id
126957       , l_array_legal_entity_id
126958       , l_array_entity_code
126959       , l_array_transaction_num
126960       , l_array_event_id
126961       , l_array_class_code
126962       , l_array_event_type
126963       , l_array_event_number
126964       , l_array_event_date
126965       , l_array_transaction_date
126966       , l_array_reference_num_1
126967       , l_array_reference_num_2
126968       , l_array_reference_num_3
126969       , l_array_reference_num_4
126970       , l_array_reference_char_1
126971       , l_array_reference_char_2
126972       , l_array_reference_char_3
126973       , l_array_reference_char_4
126974       , l_array_reference_date_1
126975       , l_array_reference_date_2
126976       , l_array_reference_date_3
126977       , l_array_reference_date_4
126978       , l_array_event_created_by
126979       , l_array_budgetary_control_flag
126980       , l_array_extract_line_num 
126981       , l_array_source_7
126982       , l_array_source_7_meaning
126983       , l_array_source_9
126984       , l_array_source_10
126985       , l_array_source_17
126986       , l_array_source_19
126987       , l_array_source_20
126988       , l_array_source_20_meaning
126989       , l_array_source_23
126990       , l_array_source_24
126991       , l_array_source_28
126992       , l_array_source_29
126993       , l_array_source_39
126994       , l_array_source_39_meaning
126995       , l_array_source_40
126996       , l_array_source_41
126997       , l_array_source_42
126998       , l_array_source_47
126999       , l_array_source_48
127000       , l_array_source_50
127001       , l_array_source_51
127002       , l_array_source_52
127003       , l_array_source_53
127004       , l_array_source_53_meaning
127005       , l_array_source_57
127006       , l_array_source_58
127007       , l_array_source_59
127008       , l_array_source_61
127009       , l_array_source_62
127010       , l_array_source_63
127011       , l_array_source_64
127012       , l_array_source_65
127013       , l_array_source_66
127014       , l_array_source_100
127015       , l_array_source_100_meaning
127016       , l_array_source_101
127017       , l_array_source_101_meaning
127018       , l_array_source_103
127019       , l_array_source_104
127020       , l_array_source_104_meaning
127024       , l_array_source_149
127021       , l_array_source_105
127022       , l_array_source_142
127023       , l_array_source_143
127025       , l_array_source_150
127026       LIMIT l_rows;
127027 
127028   --
127029   IF (C_LEVEL_EVENT >= g_log_level) THEN
127030             trace
127031                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
127032                ,p_level    => C_LEVEL_EVENT
127033                ,p_module   => l_log_module);
127034   END IF;
127035   --
127036   EXIT WHEN l_array_entity_id.count = 0;
127037 
127038   XLA_AE_LINES_PKG.g_rec_lines := null;
127039 
127040 --
127041 -- Bug 4458708
127042 --
127043 XLA_AE_LINES_PKG.g_LineNumber := 0;
127044 --
127045 --
127046 
127047 FOR Idx IN 1..l_array_event_id.count LOOP
127048    --
127049    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
127050    --
127051    l_event_id := l_array_event_id(idx);  -- 5648433
127052 
127053    --
127054    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
127055    --
127056 
127057    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
127058              (g_array_event(l_event_id).array_value_num('header_index'))
127059          ,'N'
127060          ) <> 'Y'
127061    THEN
127062       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
127063          trace
127064             (p_msg      => 'Trancaction revesal option is not Y '
127065             ,p_level    => C_LEVEL_STATEMENT
127066             ,p_module   => l_log_module);
127067       END IF;
127068 
127069 --
127070 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
127071 --
127072 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
127073 --
127074 -- set event info as cache for other routines to refer event attributes
127075 --
127076 
127077 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
127078    l_previous_event_id := l_event_id;
127079 
127080    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
127081       (p_application_id           => p_application_id
127082       ,p_primary_ledger_id        => p_primary_ledger_id
127083       ,p_base_ledger_id           => p_base_ledger_id
127084       ,p_target_ledger_id         => p_target_ledger_id
127085       ,p_entity_id                => l_array_entity_id(Idx)
127086       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
127087       ,p_entity_code              => l_array_entity_code(Idx)
127088       ,p_transaction_num          => l_array_transaction_num(Idx)
127089       ,p_event_id                 => l_array_event_id(Idx)
127090       ,p_event_class_code         => l_array_class_code(Idx)
127091       ,p_event_type_code          => l_array_event_type(Idx)
127092       ,p_event_number             => l_array_event_number(Idx)
127093       ,p_event_date               => l_array_event_date(Idx)
127094       ,p_transaction_date         => l_array_transaction_date(Idx)
127095       ,p_reference_num_1          => l_array_reference_num_1(Idx)
127096       ,p_reference_num_2          => l_array_reference_num_2(Idx)
127097       ,p_reference_num_3          => l_array_reference_num_3(Idx)
127098       ,p_reference_num_4          => l_array_reference_num_4(Idx)
127099       ,p_reference_char_1         => l_array_reference_char_1(Idx)
127100       ,p_reference_char_2         => l_array_reference_char_2(Idx)
127101       ,p_reference_char_3         => l_array_reference_char_3(Idx)
127102       ,p_reference_char_4         => l_array_reference_char_4(Idx)
127103       ,p_reference_date_1         => l_array_reference_date_1(Idx)
127104       ,p_reference_date_2         => l_array_reference_date_2(Idx)
127105       ,p_reference_date_3         => l_array_reference_date_3(Idx)
127106       ,p_reference_date_4         => l_array_reference_date_4(Idx)
127107       ,p_event_created_by         => l_array_event_created_by(Idx)
127108       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
127109        --
127110 END IF;
127111 
127112 
127113 
127114 --
127115 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
127116 
127117 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
127118 
127119 IF l_continue_with_lines THEN
127120    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
127121       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
127122 
127123       xla_accounting_err_pkg.build_message
127124          (p_appli_s_name            => 'XLA'
127125          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
127126          ,p_token_1                 => 'LINE_NUMBER'
127127          ,p_value_1                 => l_array_extract_line_num(Idx)
127128          ,p_token_2                 => 'PRODUCT_NAME'
127129          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
127130          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
127131          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
127132          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
127133 
127134    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
127135       --
127136       -- following sets the accounting attributes needed to reverse
127137       -- accounting for a distributeion
127138       --
127139 
127140       --
127141       -- 5217187
127142       --
127143       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
127147       --
127144       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
127145                                        g_array_event(l_event_id).array_value_num('header_index'));
127146       --
127148 
127149       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
127150       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_40(Idx);
127151       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
127152       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_47(Idx);
127153       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
127154       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_48(Idx);
127155       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
127156       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_56');
127157       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
127158       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_57(Idx);
127159       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
127160       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_48(Idx);
127161       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
127162       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_58(Idx);
127163       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
127164       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_66(Idx);
127165       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
127166       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_59(Idx);
127167 
127168 
127169       xla_ae_lines_pkg.SetAcctReversalAttrs
127170          (p_event_id             => l_event_id
127171          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
127172          ,p_calculate_acctd_flag => l_calculate_acctd_flag
127173          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
127174    END IF;
127175 
127176    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
127177        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
127178 
127179 --
127180 AcctLineType_39 (
127181  p_application_id  => p_application_id
127182  ,p_event_id     => l_event_id
127183  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127184  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127185  ,p_actual_flag => l_actual_flag
127186  ,p_balance_type_code => l_balance_type_code
127187  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127188  
127189  , p_source_9 => l_array_source_9(Idx)
127190  , p_source_20 => l_array_source_20(Idx)
127191  , p_source_20_meaning => l_array_source_20_meaning(Idx)
127192  , p_source_28 => l_array_source_28(Idx)
127193  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127194  , p_source_39 => l_array_source_39(Idx)
127195  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127196  , p_source_40 => l_array_source_40(Idx)
127197  , p_source_41 => l_array_source_41(Idx)
127198  , p_source_42 => l_array_source_42(Idx)
127199  , p_source_47 => l_array_source_47(Idx)
127200  , p_source_48 => l_array_source_48(Idx)
127201  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127202  , p_source_50 => l_array_source_50(Idx)
127203  , p_source_51 => l_array_source_51(Idx)
127204  , p_source_52 => l_array_source_52(Idx)
127205  , p_source_53 => l_array_source_53(Idx)
127206  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127207  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127208  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127209  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127210  , p_source_57 => l_array_source_57(Idx)
127211  , p_source_58 => l_array_source_58(Idx)
127212  , p_source_59 => l_array_source_59(Idx)
127213  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127214  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127215  , p_source_61 => l_array_source_61(Idx)
127216  , p_source_62 => l_array_source_62(Idx)
127217  , p_source_63 => l_array_source_63(Idx)
127218  , p_source_64 => l_array_source_64(Idx)
127219  , p_source_65 => l_array_source_65(Idx)
127220  , p_source_66 => l_array_source_66(Idx)
127221  );
127222 If(l_balance_type_code = 'A') THEN
127223   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127224 END IF;
127225 
127226 --
127227 
127228 
127229 --
127230 AcctLineType_44 (
127231  p_application_id  => p_application_id
127232  ,p_event_id     => l_event_id
127233  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127234  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127235  ,p_actual_flag => l_actual_flag
127236  ,p_balance_type_code => l_balance_type_code
127237  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127238  
127239  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127240  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127241  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
127242  , p_source_7 => l_array_source_7(Idx)
127243  , p_source_7_meaning => l_array_source_7_meaning(Idx)
127244  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
127245  , p_source_9 => l_array_source_9(Idx)
127246  , p_source_10 => l_array_source_10(Idx)
127247  , p_source_17 => l_array_source_17(Idx)
127248  , p_source_20 => l_array_source_20(Idx)
127249  , p_source_20_meaning => l_array_source_20_meaning(Idx)
127250  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127254  , p_source_42 => l_array_source_42(Idx)
127251  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127252  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127253  , p_source_40 => l_array_source_40(Idx)
127255  , p_source_47 => l_array_source_47(Idx)
127256  , p_source_48 => l_array_source_48(Idx)
127257  , p_source_53 => l_array_source_53(Idx)
127258  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127259  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127260  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127261  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127262  , p_source_57 => l_array_source_57(Idx)
127263  , p_source_58 => l_array_source_58(Idx)
127264  , p_source_59 => l_array_source_59(Idx)
127265  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127266  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127267  , p_source_61 => l_array_source_61(Idx)
127268  , p_source_62 => l_array_source_62(Idx)
127269  , p_source_63 => l_array_source_63(Idx)
127270  , p_source_64 => l_array_source_64(Idx)
127271  , p_source_65 => l_array_source_65(Idx)
127272  , p_source_66 => l_array_source_66(Idx)
127273  );
127274 If(l_balance_type_code = 'A') THEN
127275   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127276 END IF;
127277 
127278 --
127279 
127280 
127281 --
127282 AcctLineType_48 (
127283  p_application_id  => p_application_id
127284  ,p_event_id     => l_event_id
127285  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127286  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127287  ,p_actual_flag => l_actual_flag
127288  ,p_balance_type_code => l_balance_type_code
127289  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127290  
127291  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127292  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127293  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
127294  , p_source_7 => l_array_source_7(Idx)
127295  , p_source_7_meaning => l_array_source_7_meaning(Idx)
127296  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
127297  , p_source_9 => l_array_source_9(Idx)
127298  , p_source_10 => l_array_source_10(Idx)
127299  , p_source_17 => l_array_source_17(Idx)
127300  , p_source_20 => l_array_source_20(Idx)
127301  , p_source_20_meaning => l_array_source_20_meaning(Idx)
127302  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127303  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127304  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127305  , p_source_39 => l_array_source_39(Idx)
127306  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127307  , p_source_40 => l_array_source_40(Idx)
127308  , p_source_42 => l_array_source_42(Idx)
127309  , p_source_47 => l_array_source_47(Idx)
127310  , p_source_48 => l_array_source_48(Idx)
127311  , p_source_53 => l_array_source_53(Idx)
127312  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127313  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127314  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127315  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127316  , p_source_57 => l_array_source_57(Idx)
127317  , p_source_58 => l_array_source_58(Idx)
127318  , p_source_59 => l_array_source_59(Idx)
127319  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127320  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127321  , p_source_61 => l_array_source_61(Idx)
127322  , p_source_62 => l_array_source_62(Idx)
127323  , p_source_63 => l_array_source_63(Idx)
127324  , p_source_64 => l_array_source_64(Idx)
127325  , p_source_65 => l_array_source_65(Idx)
127326  , p_source_66 => l_array_source_66(Idx)
127327  , p_source_100 => l_array_source_100(Idx)
127328  , p_source_100_meaning => l_array_source_100_meaning(Idx)
127329  , p_source_101 => l_array_source_101(Idx)
127330  , p_source_101_meaning => l_array_source_101_meaning(Idx)
127331  );
127332 If(l_balance_type_code = 'A') THEN
127333   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127334 END IF;
127335 
127336 --
127337 
127338 
127339 --
127340 AcctLineType_52 (
127341  p_application_id  => p_application_id
127342  ,p_event_id     => l_event_id
127343  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127344  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127345  ,p_actual_flag => l_actual_flag
127346  ,p_balance_type_code => l_balance_type_code
127347  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127348  
127349  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127350  , p_source_39 => l_array_source_39(Idx)
127351  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127352  , p_source_40 => l_array_source_40(Idx)
127353  , p_source_42 => l_array_source_42(Idx)
127354  , p_source_47 => l_array_source_47(Idx)
127355  , p_source_48 => l_array_source_48(Idx)
127356  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127357  , p_source_53 => l_array_source_53(Idx)
127358  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127359  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127360  , p_source_57 => l_array_source_57(Idx)
127361  , p_source_58 => l_array_source_58(Idx)
127362  , p_source_59 => l_array_source_59(Idx)
127363  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127364  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127368  , p_source_64 => l_array_source_64(Idx)
127365  , p_source_61 => l_array_source_61(Idx)
127366  , p_source_62 => l_array_source_62(Idx)
127367  , p_source_63 => l_array_source_63(Idx)
127369  , p_source_65 => l_array_source_65(Idx)
127370  , p_source_66 => l_array_source_66(Idx)
127371  , p_source_100 => l_array_source_100(Idx)
127372  , p_source_100_meaning => l_array_source_100_meaning(Idx)
127373  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
127374  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
127375  , p_source_103 => l_array_source_103(Idx)
127376  , p_source_104 => l_array_source_104(Idx)
127377  , p_source_104_meaning => l_array_source_104_meaning(Idx)
127378  , p_source_105 => l_array_source_105(Idx)
127379  );
127380 If(l_balance_type_code = 'A') THEN
127381   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127382 END IF;
127383 
127384 --
127385 
127386 
127387 --
127388 AcctLineType_60 (
127389  p_application_id  => p_application_id
127390  ,p_event_id     => l_event_id
127391  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127392  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127393  ,p_actual_flag => l_actual_flag
127394  ,p_balance_type_code => l_balance_type_code
127395  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127396  
127397  , p_source_9 => l_array_source_9(Idx)
127398  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
127399  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127400  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127401  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127402  , p_source_39 => l_array_source_39(Idx)
127403  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127404  , p_source_40 => l_array_source_40(Idx)
127405  , p_source_41 => l_array_source_41(Idx)
127406  , p_source_42 => l_array_source_42(Idx)
127407  , p_source_47 => l_array_source_47(Idx)
127408  , p_source_48 => l_array_source_48(Idx)
127409  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127410  , p_source_53 => l_array_source_53(Idx)
127411  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127412  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127413  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127414  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127415  , p_source_57 => l_array_source_57(Idx)
127416  , p_source_58 => l_array_source_58(Idx)
127417  , p_source_59 => l_array_source_59(Idx)
127418  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127419  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127420  , p_source_61 => l_array_source_61(Idx)
127421  , p_source_62 => l_array_source_62(Idx)
127422  , p_source_63 => l_array_source_63(Idx)
127423  , p_source_64 => l_array_source_64(Idx)
127424  , p_source_65 => l_array_source_65(Idx)
127425  , p_source_66 => l_array_source_66(Idx)
127426  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127427  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127428  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127429  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127430  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127431  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127432  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127433  );
127434 If(l_balance_type_code = 'A') THEN
127435   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127436 END IF;
127437 
127438 --
127439 
127440 
127441 --
127442 AcctLineType_61 (
127443  p_application_id  => p_application_id
127444  ,p_event_id     => l_event_id
127445  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127446  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127447  ,p_actual_flag => l_actual_flag
127448  ,p_balance_type_code => l_balance_type_code
127449  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127450  
127451  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127452  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127453  , p_source_9 => l_array_source_9(Idx)
127454  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
127455  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127456  , p_source_39 => l_array_source_39(Idx)
127457  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127458  , p_source_40 => l_array_source_40(Idx)
127459  , p_source_41 => l_array_source_41(Idx)
127460  , p_source_42 => l_array_source_42(Idx)
127461  , p_source_47 => l_array_source_47(Idx)
127462  , p_source_48 => l_array_source_48(Idx)
127463  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127464  , p_source_53 => l_array_source_53(Idx)
127465  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127466  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127467  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127468  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127469  , p_source_57 => l_array_source_57(Idx)
127470  , p_source_58 => l_array_source_58(Idx)
127471  , p_source_59 => l_array_source_59(Idx)
127472  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127473  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127474  , p_source_61 => l_array_source_61(Idx)
127478  , p_source_65 => l_array_source_65(Idx)
127475  , p_source_62 => l_array_source_62(Idx)
127476  , p_source_63 => l_array_source_63(Idx)
127477  , p_source_64 => l_array_source_64(Idx)
127479  , p_source_66 => l_array_source_66(Idx)
127480  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127481  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127482  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127483  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127484  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127485  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127486  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127487  );
127488 If(l_balance_type_code = 'A') THEN
127489   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127490 END IF;
127491 
127492 --
127493 
127494 
127495 --
127496 AcctLineType_62 (
127497  p_application_id  => p_application_id
127498  ,p_event_id     => l_event_id
127499  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127500  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127501  ,p_actual_flag => l_actual_flag
127502  ,p_balance_type_code => l_balance_type_code
127503  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127504  
127505  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127506  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127507  , p_source_9 => l_array_source_9(Idx)
127508  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
127509  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127510  , p_source_39 => l_array_source_39(Idx)
127511  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127512  , p_source_40 => l_array_source_40(Idx)
127513  , p_source_41 => l_array_source_41(Idx)
127514  , p_source_42 => l_array_source_42(Idx)
127515  , p_source_47 => l_array_source_47(Idx)
127516  , p_source_48 => l_array_source_48(Idx)
127517  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127518  , p_source_53 => l_array_source_53(Idx)
127519  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127520  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127521  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127522  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127523  , p_source_57 => l_array_source_57(Idx)
127524  , p_source_58 => l_array_source_58(Idx)
127525  , p_source_59 => l_array_source_59(Idx)
127526  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127527  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127528  , p_source_61 => l_array_source_61(Idx)
127529  , p_source_62 => l_array_source_62(Idx)
127530  , p_source_63 => l_array_source_63(Idx)
127531  , p_source_64 => l_array_source_64(Idx)
127532  , p_source_65 => l_array_source_65(Idx)
127533  , p_source_66 => l_array_source_66(Idx)
127534  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127535  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127536  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127537  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127538  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127539  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127540  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127541  );
127542 If(l_balance_type_code = 'A') THEN
127543   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127544 END IF;
127545 
127546 --
127547 
127548 
127549 --
127550 AcctLineType_69 (
127551  p_application_id  => p_application_id
127552  ,p_event_id     => l_event_id
127553  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127554  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127555  ,p_actual_flag => l_actual_flag
127556  ,p_balance_type_code => l_balance_type_code
127557  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127558  
127559  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
127560  , p_source_9 => l_array_source_9(Idx)
127561  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127562  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127563  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127564  , p_source_39 => l_array_source_39(Idx)
127565  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127566  , p_source_40 => l_array_source_40(Idx)
127567  , p_source_41 => l_array_source_41(Idx)
127568  , p_source_42 => l_array_source_42(Idx)
127569  , p_source_47 => l_array_source_47(Idx)
127570  , p_source_48 => l_array_source_48(Idx)
127571  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127572  , p_source_53 => l_array_source_53(Idx)
127573  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127574  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127575  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127576  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127577  , p_source_57 => l_array_source_57(Idx)
127578  , p_source_58 => l_array_source_58(Idx)
127579  , p_source_59 => l_array_source_59(Idx)
127580  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127581  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127585  , p_source_64 => l_array_source_64(Idx)
127582  , p_source_61 => l_array_source_61(Idx)
127583  , p_source_62 => l_array_source_62(Idx)
127584  , p_source_63 => l_array_source_63(Idx)
127586  , p_source_65 => l_array_source_65(Idx)
127587  , p_source_66 => l_array_source_66(Idx)
127588  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127589  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127590  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127591  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127592  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127593  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127594  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127595  );
127596 If(l_balance_type_code = 'A') THEN
127597   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127598 END IF;
127599 
127600 --
127601 
127602 
127603 --
127604 AcctLineType_70 (
127605  p_application_id  => p_application_id
127606  ,p_event_id     => l_event_id
127607  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127608  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127609  ,p_actual_flag => l_actual_flag
127610  ,p_balance_type_code => l_balance_type_code
127611  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127612  
127613  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
127614  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127615  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127616  , p_source_9 => l_array_source_9(Idx)
127617  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127618  , p_source_39 => l_array_source_39(Idx)
127619  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127620  , p_source_40 => l_array_source_40(Idx)
127621  , p_source_41 => l_array_source_41(Idx)
127622  , p_source_42 => l_array_source_42(Idx)
127623  , p_source_47 => l_array_source_47(Idx)
127624  , p_source_48 => l_array_source_48(Idx)
127625  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127626  , p_source_53 => l_array_source_53(Idx)
127627  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127628  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127629  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127630  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127631  , p_source_57 => l_array_source_57(Idx)
127632  , p_source_58 => l_array_source_58(Idx)
127633  , p_source_59 => l_array_source_59(Idx)
127634  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127635  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127636  , p_source_61 => l_array_source_61(Idx)
127637  , p_source_62 => l_array_source_62(Idx)
127638  , p_source_63 => l_array_source_63(Idx)
127639  , p_source_64 => l_array_source_64(Idx)
127640  , p_source_65 => l_array_source_65(Idx)
127641  , p_source_66 => l_array_source_66(Idx)
127642  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127643  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127644  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127645  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127646  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127647  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127648  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127649  );
127650 If(l_balance_type_code = 'A') THEN
127651   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127652 END IF;
127653 
127654 --
127655 
127656 
127657 --
127658 AcctLineType_71 (
127659  p_application_id  => p_application_id
127660  ,p_event_id     => l_event_id
127661  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127662  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127663  ,p_actual_flag => l_actual_flag
127664  ,p_balance_type_code => l_balance_type_code
127665  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127666  
127667  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
127668  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127669  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127670  , p_source_9 => l_array_source_9(Idx)
127671  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127672  , p_source_39 => l_array_source_39(Idx)
127673  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127674  , p_source_40 => l_array_source_40(Idx)
127675  , p_source_41 => l_array_source_41(Idx)
127676  , p_source_42 => l_array_source_42(Idx)
127677  , p_source_47 => l_array_source_47(Idx)
127678  , p_source_48 => l_array_source_48(Idx)
127679  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127680  , p_source_53 => l_array_source_53(Idx)
127681  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127682  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127683  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127684  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127685  , p_source_57 => l_array_source_57(Idx)
127686  , p_source_58 => l_array_source_58(Idx)
127687  , p_source_59 => l_array_source_59(Idx)
127691  , p_source_62 => l_array_source_62(Idx)
127688  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127689  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127690  , p_source_61 => l_array_source_61(Idx)
127692  , p_source_63 => l_array_source_63(Idx)
127693  , p_source_64 => l_array_source_64(Idx)
127694  , p_source_65 => l_array_source_65(Idx)
127695  , p_source_66 => l_array_source_66(Idx)
127696  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
127697  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
127698  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
127699  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
127700  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127701  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127702  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127703  );
127704 If(l_balance_type_code = 'A') THEN
127705   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127706 END IF;
127707 
127708 --
127709 
127710 
127711 --
127712 AcctLineType_79 (
127713  p_application_id  => p_application_id
127714  ,p_event_id     => l_event_id
127715  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127716  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127717  ,p_actual_flag => l_actual_flag
127718  ,p_balance_type_code => l_balance_type_code
127719  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127720  
127721  , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
127722  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
127723  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
127724  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127725  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127726  , p_source_9 => l_array_source_9(Idx)
127727  , p_source_17 => l_array_source_17(Idx)
127728  , p_source_20 => l_array_source_20(Idx)
127729  , p_source_20_meaning => l_array_source_20_meaning(Idx)
127730  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
127731  , p_source_28 => l_array_source_28(Idx)
127732  , p_source_29 => l_array_source_29(Idx)
127733  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127734  , p_source_39 => l_array_source_39(Idx)
127735  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127736  , p_source_40 => l_array_source_40(Idx)
127737  , p_source_41 => l_array_source_41(Idx)
127738  , p_source_42 => l_array_source_42(Idx)
127739  , p_source_47 => l_array_source_47(Idx)
127740  , p_source_48 => l_array_source_48(Idx)
127741  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127742  , p_source_53 => l_array_source_53(Idx)
127743  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127744  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127745  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127746  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127747  , p_source_57 => l_array_source_57(Idx)
127748  , p_source_58 => l_array_source_58(Idx)
127749  , p_source_59 => l_array_source_59(Idx)
127750  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127751  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127752  , p_source_61 => l_array_source_61(Idx)
127753  , p_source_62 => l_array_source_62(Idx)
127754  , p_source_63 => l_array_source_63(Idx)
127755  , p_source_64 => l_array_source_64(Idx)
127756  , p_source_65 => l_array_source_65(Idx)
127757  , p_source_66 => l_array_source_66(Idx)
127758  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127759  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127760  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127761  );
127762 If(l_balance_type_code = 'A') THEN
127763   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127764 END IF;
127765 
127766 --
127767 
127768 
127769 --
127770 AcctLineType_84 (
127771  p_application_id  => p_application_id
127772  ,p_event_id     => l_event_id
127773  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127774  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127775  ,p_actual_flag => l_actual_flag
127776  ,p_balance_type_code => l_balance_type_code
127777  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127778  
127779  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127780  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127781  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
127782  , p_source_7 => l_array_source_7(Idx)
127783  , p_source_7_meaning => l_array_source_7_meaning(Idx)
127784  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
127785  , p_source_9 => l_array_source_9(Idx)
127786  , p_source_10 => l_array_source_10(Idx)
127787  , p_source_17 => l_array_source_17(Idx)
127788  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
127789  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
127790  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127791  , p_source_39 => l_array_source_39(Idx)
127792  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127793  , p_source_40 => l_array_source_40(Idx)
127794  , p_source_41 => l_array_source_41(Idx)
127795  , p_source_42 => l_array_source_42(Idx)
127799  , p_source_53 => l_array_source_53(Idx)
127796  , p_source_47 => l_array_source_47(Idx)
127797  , p_source_48 => l_array_source_48(Idx)
127798  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127800  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127801  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127802  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127803  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127804  , p_source_57 => l_array_source_57(Idx)
127805  , p_source_58 => l_array_source_58(Idx)
127806  , p_source_59 => l_array_source_59(Idx)
127807  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127808  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127809  , p_source_61 => l_array_source_61(Idx)
127810  , p_source_62 => l_array_source_62(Idx)
127811  , p_source_63 => l_array_source_63(Idx)
127812  , p_source_64 => l_array_source_64(Idx)
127813  , p_source_65 => l_array_source_65(Idx)
127814  , p_source_66 => l_array_source_66(Idx)
127815  , p_source_100 => l_array_source_100(Idx)
127816  , p_source_100_meaning => l_array_source_100_meaning(Idx)
127817  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127818  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127819  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127820  );
127821 If(l_balance_type_code = 'A') THEN
127822   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127823 END IF;
127824 
127825 --
127826 
127827 
127828 --
127829 AcctLineType_85 (
127830  p_application_id  => p_application_id
127831  ,p_event_id     => l_event_id
127832  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127833  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127834  ,p_actual_flag => l_actual_flag
127835  ,p_balance_type_code => l_balance_type_code
127836  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127837  
127838  , p_source_9 => l_array_source_9(Idx)
127839  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127840  , p_source_39 => l_array_source_39(Idx)
127841  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127842  , p_source_40 => l_array_source_40(Idx)
127843  , p_source_41 => l_array_source_41(Idx)
127844  , p_source_42 => l_array_source_42(Idx)
127845  , p_source_47 => l_array_source_47(Idx)
127846  , p_source_48 => l_array_source_48(Idx)
127847  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127848  , p_source_53 => l_array_source_53(Idx)
127849  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127850  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127851  , p_source_57 => l_array_source_57(Idx)
127852  , p_source_58 => l_array_source_58(Idx)
127853  , p_source_59 => l_array_source_59(Idx)
127854  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127855  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127856  , p_source_61 => l_array_source_61(Idx)
127857  , p_source_62 => l_array_source_62(Idx)
127858  , p_source_63 => l_array_source_63(Idx)
127859  , p_source_64 => l_array_source_64(Idx)
127860  , p_source_65 => l_array_source_65(Idx)
127861  , p_source_66 => l_array_source_66(Idx)
127862  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
127863  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
127864  , p_source_104 => l_array_source_104(Idx)
127865  , p_source_104_meaning => l_array_source_104_meaning(Idx)
127866  );
127867 If(l_balance_type_code = 'A') THEN
127868   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127869 END IF;
127870 
127871 --
127872 
127873 
127874 --
127875 AcctLineType_93 (
127876  p_application_id  => p_application_id
127877  ,p_event_id     => l_event_id
127878  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127879  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127880  ,p_actual_flag => l_actual_flag
127881  ,p_balance_type_code => l_balance_type_code
127882  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127883  
127884  , p_source_9 => l_array_source_9(Idx)
127885  , p_source_17 => l_array_source_17(Idx)
127886  , p_source_20 => l_array_source_20(Idx)
127887  , p_source_20_meaning => l_array_source_20_meaning(Idx)
127888  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127889  , p_source_39 => l_array_source_39(Idx)
127890  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127891  , p_source_40 => l_array_source_40(Idx)
127892  , p_source_41 => l_array_source_41(Idx)
127893  , p_source_42 => l_array_source_42(Idx)
127894  , p_source_47 => l_array_source_47(Idx)
127895  , p_source_48 => l_array_source_48(Idx)
127896  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127897  , p_source_53 => l_array_source_53(Idx)
127898  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127899  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
127900  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
127901  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127902  , p_source_57 => l_array_source_57(Idx)
127903  , p_source_58 => l_array_source_58(Idx)
127904  , p_source_59 => l_array_source_59(Idx)
127905  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127906  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127907  , p_source_61 => l_array_source_61(Idx)
127908  , p_source_62 => l_array_source_62(Idx)
127909  , p_source_63 => l_array_source_63(Idx)
127913  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
127910  , p_source_64 => l_array_source_64(Idx)
127911  , p_source_65 => l_array_source_65(Idx)
127912  , p_source_66 => l_array_source_66(Idx)
127914  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
127915  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
127916  );
127917 If(l_balance_type_code = 'A') THEN
127918   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127919 END IF;
127920 
127921 --
127922 
127923 
127924 --
127925 AcctLineType_94 (
127926  p_application_id  => p_application_id
127927  ,p_event_id     => l_event_id
127928  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127929  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127930  ,p_actual_flag => l_actual_flag
127931  ,p_balance_type_code => l_balance_type_code
127932  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127933  
127934  , p_source_9 => l_array_source_9(Idx)
127935  , p_source_20 => l_array_source_20(Idx)
127936  , p_source_20_meaning => l_array_source_20_meaning(Idx)
127937  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127938  , p_source_39 => l_array_source_39(Idx)
127939  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127940  , p_source_40 => l_array_source_40(Idx)
127941  , p_source_41 => l_array_source_41(Idx)
127942  , p_source_42 => l_array_source_42(Idx)
127943  , p_source_47 => l_array_source_47(Idx)
127944  , p_source_48 => l_array_source_48(Idx)
127945  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
127946  , p_source_53 => l_array_source_53(Idx)
127947  , p_source_53_meaning => l_array_source_53_meaning(Idx)
127948  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
127949  , p_source_57 => l_array_source_57(Idx)
127950  , p_source_58 => l_array_source_58(Idx)
127951  , p_source_59 => l_array_source_59(Idx)
127952  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
127953  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
127954  , p_source_61 => l_array_source_61(Idx)
127955  , p_source_62 => l_array_source_62(Idx)
127956  , p_source_63 => l_array_source_63(Idx)
127957  , p_source_64 => l_array_source_64(Idx)
127958  , p_source_65 => l_array_source_65(Idx)
127959  , p_source_66 => l_array_source_66(Idx)
127960  , p_source_101 => l_array_source_101(Idx)
127961  , p_source_101_meaning => l_array_source_101_meaning(Idx)
127962  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
127963  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
127964  , p_source_104 => l_array_source_104(Idx)
127965  , p_source_104_meaning => l_array_source_104_meaning(Idx)
127966  );
127967 If(l_balance_type_code = 'A') THEN
127968   l_actual_gain_loss_ref := l_gain_or_loss_ref;
127969 END IF;
127970 
127971 --
127972 
127973 
127974 --
127975 AcctLineType_99 (
127976  p_application_id  => p_application_id
127977  ,p_event_id     => l_event_id
127978  ,p_calculate_acctd_flag => l_calculate_acctd_flag
127979  ,p_calculate_g_l_flag => l_calculate_g_l_flag
127980  ,p_actual_flag => l_actual_flag
127981  ,p_balance_type_code => l_balance_type_code
127982  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
127983  
127984  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
127985  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
127986  , p_source_9 => l_array_source_9(Idx)
127987  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
127988  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
127989  , p_source_12_meaning => g_array_event(l_event_id).array_value_char('source_12_meaning')
127990  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
127991  , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
127992  , p_source_17 => l_array_source_17(Idx)
127993  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
127994  , p_source_39 => l_array_source_39(Idx)
127995  , p_source_39_meaning => l_array_source_39_meaning(Idx)
127996  , p_source_40 => l_array_source_40(Idx)
127997  , p_source_41 => l_array_source_41(Idx)
127998  , p_source_42 => l_array_source_42(Idx)
127999  , p_source_47 => l_array_source_47(Idx)
128000  , p_source_48 => l_array_source_48(Idx)
128001  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128002  , p_source_53 => l_array_source_53(Idx)
128003  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128004  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128005  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128006  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128007  , p_source_57 => l_array_source_57(Idx)
128008  , p_source_58 => l_array_source_58(Idx)
128009  , p_source_59 => l_array_source_59(Idx)
128010  , p_source_61 => l_array_source_61(Idx)
128011  , p_source_62 => l_array_source_62(Idx)
128012  , p_source_63 => l_array_source_63(Idx)
128013  , p_source_64 => l_array_source_64(Idx)
128014  , p_source_65 => l_array_source_65(Idx)
128015  , p_source_66 => l_array_source_66(Idx)
128016  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
128017  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
128018  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128019  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128020  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128021  );
128025 
128022 If(l_balance_type_code = 'A') THEN
128023   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128024 END IF;
128026 --
128027 
128028 
128029 --
128030 AcctLineType_108 (
128031  p_application_id  => p_application_id
128032  ,p_event_id     => l_event_id
128033  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128034  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128035  ,p_actual_flag => l_actual_flag
128036  ,p_balance_type_code => l_balance_type_code
128037  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128038  
128039  , p_source_9 => l_array_source_9(Idx)
128040  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
128041  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
128042  , p_source_17 => l_array_source_17(Idx)
128043  , p_source_20 => l_array_source_20(Idx)
128044  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128045  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128046  , p_source_39 => l_array_source_39(Idx)
128047  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128048  , p_source_40 => l_array_source_40(Idx)
128049  , p_source_41 => l_array_source_41(Idx)
128050  , p_source_42 => l_array_source_42(Idx)
128051  , p_source_47 => l_array_source_47(Idx)
128052  , p_source_48 => l_array_source_48(Idx)
128053  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128054  , p_source_53 => l_array_source_53(Idx)
128055  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128056  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128057  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128058  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128059  , p_source_57 => l_array_source_57(Idx)
128060  , p_source_58 => l_array_source_58(Idx)
128061  , p_source_59 => l_array_source_59(Idx)
128062  , p_source_61 => l_array_source_61(Idx)
128063  , p_source_62 => l_array_source_62(Idx)
128064  , p_source_63 => l_array_source_63(Idx)
128065  , p_source_64 => l_array_source_64(Idx)
128066  , p_source_65 => l_array_source_65(Idx)
128067  , p_source_66 => l_array_source_66(Idx)
128068  , p_source_101 => l_array_source_101(Idx)
128069  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128070  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
128071  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128072  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128073  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128074  );
128075 If(l_balance_type_code = 'A') THEN
128076   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128077 END IF;
128078 
128079 --
128080 
128081 
128082 --
128083 AcctLineType_111 (
128084  p_application_id  => p_application_id
128085  ,p_event_id     => l_event_id
128086  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128087  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128088  ,p_actual_flag => l_actual_flag
128089  ,p_balance_type_code => l_balance_type_code
128090  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128091  
128092  , p_source_9 => l_array_source_9(Idx)
128093  , p_source_17 => l_array_source_17(Idx)
128094  , p_source_20 => l_array_source_20(Idx)
128095  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128096  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128097  , p_source_39 => l_array_source_39(Idx)
128098  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128099  , p_source_40 => l_array_source_40(Idx)
128100  , p_source_41 => l_array_source_41(Idx)
128101  , p_source_42 => l_array_source_42(Idx)
128102  , p_source_47 => l_array_source_47(Idx)
128103  , p_source_48 => l_array_source_48(Idx)
128104  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128105  , p_source_53 => l_array_source_53(Idx)
128106  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128107  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128108  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128109  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128110  , p_source_57 => l_array_source_57(Idx)
128111  , p_source_58 => l_array_source_58(Idx)
128112  , p_source_59 => l_array_source_59(Idx)
128113  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128114  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128115  , p_source_61 => l_array_source_61(Idx)
128116  , p_source_62 => l_array_source_62(Idx)
128117  , p_source_63 => l_array_source_63(Idx)
128118  , p_source_64 => l_array_source_64(Idx)
128119  , p_source_65 => l_array_source_65(Idx)
128120  , p_source_66 => l_array_source_66(Idx)
128121  , p_source_100 => l_array_source_100(Idx)
128122  , p_source_100_meaning => l_array_source_100_meaning(Idx)
128123  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128124  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128125  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128126  );
128127 If(l_balance_type_code = 'A') THEN
128128   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128129 END IF;
128130 
128131 --
128132 
128133 
128134 --
128135 AcctLineType_112 (
128136  p_application_id  => p_application_id
128137  ,p_event_id     => l_event_id
128138  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128139  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128140  ,p_actual_flag => l_actual_flag
128141  ,p_balance_type_code => l_balance_type_code
128145  , p_source_20 => l_array_source_20(Idx)
128142  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128143  
128144  , p_source_9 => l_array_source_9(Idx)
128146  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128147  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128148  , p_source_39 => l_array_source_39(Idx)
128149  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128150  , p_source_40 => l_array_source_40(Idx)
128151  , p_source_41 => l_array_source_41(Idx)
128152  , p_source_42 => l_array_source_42(Idx)
128153  , p_source_47 => l_array_source_47(Idx)
128154  , p_source_48 => l_array_source_48(Idx)
128155  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128156  , p_source_53 => l_array_source_53(Idx)
128157  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128158  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128159  , p_source_57 => l_array_source_57(Idx)
128160  , p_source_58 => l_array_source_58(Idx)
128161  , p_source_59 => l_array_source_59(Idx)
128162  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128163  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128164  , p_source_61 => l_array_source_61(Idx)
128165  , p_source_62 => l_array_source_62(Idx)
128166  , p_source_63 => l_array_source_63(Idx)
128167  , p_source_64 => l_array_source_64(Idx)
128168  , p_source_65 => l_array_source_65(Idx)
128169  , p_source_66 => l_array_source_66(Idx)
128170  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128171  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128172  , p_source_104 => l_array_source_104(Idx)
128173  , p_source_104_meaning => l_array_source_104_meaning(Idx)
128174  );
128175 If(l_balance_type_code = 'A') THEN
128176   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128177 END IF;
128178 
128179 --
128180 
128181 
128182 --
128183 AcctLineType_119 (
128184  p_application_id  => p_application_id
128185  ,p_event_id     => l_event_id
128186  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128187  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128188  ,p_actual_flag => l_actual_flag
128189  ,p_balance_type_code => l_balance_type_code
128190  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128191  
128192  , p_source_9 => l_array_source_9(Idx)
128193  , p_source_17 => l_array_source_17(Idx)
128194  , p_source_20 => l_array_source_20(Idx)
128195  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128196  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128197  , p_source_39 => l_array_source_39(Idx)
128198  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128199  , p_source_40 => l_array_source_40(Idx)
128200  , p_source_41 => l_array_source_41(Idx)
128201  , p_source_42 => l_array_source_42(Idx)
128202  , p_source_47 => l_array_source_47(Idx)
128203  , p_source_48 => l_array_source_48(Idx)
128204  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128205  , p_source_53 => l_array_source_53(Idx)
128206  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128207  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128208  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128209  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128210  , p_source_57 => l_array_source_57(Idx)
128211  , p_source_58 => l_array_source_58(Idx)
128212  , p_source_59 => l_array_source_59(Idx)
128213  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128214  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128215  , p_source_61 => l_array_source_61(Idx)
128216  , p_source_62 => l_array_source_62(Idx)
128217  , p_source_63 => l_array_source_63(Idx)
128218  , p_source_64 => l_array_source_64(Idx)
128219  , p_source_65 => l_array_source_65(Idx)
128220  , p_source_66 => l_array_source_66(Idx)
128221  , p_source_100 => l_array_source_100(Idx)
128222  , p_source_100_meaning => l_array_source_100_meaning(Idx)
128223  , p_source_101 => l_array_source_101(Idx)
128224  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128225  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128226  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128227  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128228  );
128229 If(l_balance_type_code = 'A') THEN
128230   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128231 END IF;
128232 
128233 --
128234 
128235 
128236 --
128237 AcctLineType_120 (
128238  p_application_id  => p_application_id
128239  ,p_event_id     => l_event_id
128240  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128241  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128242  ,p_actual_flag => l_actual_flag
128243  ,p_balance_type_code => l_balance_type_code
128244  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128245  
128246  , p_source_9 => l_array_source_9(Idx)
128247  , p_source_20 => l_array_source_20(Idx)
128248  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128249  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128250  , p_source_39 => l_array_source_39(Idx)
128251  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128252  , p_source_40 => l_array_source_40(Idx)
128253  , p_source_41 => l_array_source_41(Idx)
128254  , p_source_42 => l_array_source_42(Idx)
128255  , p_source_47 => l_array_source_47(Idx)
128256  , p_source_48 => l_array_source_48(Idx)
128260  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128257  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128258  , p_source_53 => l_array_source_53(Idx)
128259  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128261  , p_source_57 => l_array_source_57(Idx)
128262  , p_source_58 => l_array_source_58(Idx)
128263  , p_source_59 => l_array_source_59(Idx)
128264  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128265  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128266  , p_source_61 => l_array_source_61(Idx)
128267  , p_source_62 => l_array_source_62(Idx)
128268  , p_source_63 => l_array_source_63(Idx)
128269  , p_source_64 => l_array_source_64(Idx)
128270  , p_source_65 => l_array_source_65(Idx)
128271  , p_source_66 => l_array_source_66(Idx)
128272  , p_source_101 => l_array_source_101(Idx)
128273  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128274  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128275  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128276  , p_source_104 => l_array_source_104(Idx)
128277  , p_source_104_meaning => l_array_source_104_meaning(Idx)
128278  );
128279 If(l_balance_type_code = 'A') THEN
128280   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128281 END IF;
128282 
128283 --
128284 
128285 
128286 --
128287 AcctLineType_130 (
128288  p_application_id  => p_application_id
128289  ,p_event_id     => l_event_id
128290  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128291  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128292  ,p_actual_flag => l_actual_flag
128293  ,p_balance_type_code => l_balance_type_code
128294  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128295  
128296  , p_source_9 => l_array_source_9(Idx)
128297  , p_source_17 => l_array_source_17(Idx)
128298  , p_source_20 => l_array_source_20(Idx)
128299  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128300  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128301  , p_source_39 => l_array_source_39(Idx)
128302  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128303  , p_source_40 => l_array_source_40(Idx)
128304  , p_source_41 => l_array_source_41(Idx)
128305  , p_source_42 => l_array_source_42(Idx)
128306  , p_source_47 => l_array_source_47(Idx)
128307  , p_source_48 => l_array_source_48(Idx)
128308  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128309  , p_source_53 => l_array_source_53(Idx)
128310  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128311  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128312  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128313  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128314  , p_source_57 => l_array_source_57(Idx)
128315  , p_source_58 => l_array_source_58(Idx)
128316  , p_source_59 => l_array_source_59(Idx)
128317  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128318  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128319  , p_source_61 => l_array_source_61(Idx)
128320  , p_source_62 => l_array_source_62(Idx)
128321  , p_source_63 => l_array_source_63(Idx)
128322  , p_source_64 => l_array_source_64(Idx)
128323  , p_source_65 => l_array_source_65(Idx)
128324  , p_source_66 => l_array_source_66(Idx)
128325  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128326  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128327  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128328  );
128329 If(l_balance_type_code = 'A') THEN
128330   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128331 END IF;
128332 
128333 --
128334 
128335 
128336 --
128337 AcctLineType_131 (
128338  p_application_id  => p_application_id
128339  ,p_event_id     => l_event_id
128340  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128341  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128342  ,p_actual_flag => l_actual_flag
128343  ,p_balance_type_code => l_balance_type_code
128344  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128345  
128346  , p_source_9 => l_array_source_9(Idx)
128347  , p_source_20 => l_array_source_20(Idx)
128348  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128349  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128350  , p_source_39 => l_array_source_39(Idx)
128351  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128352  , p_source_40 => l_array_source_40(Idx)
128353  , p_source_41 => l_array_source_41(Idx)
128354  , p_source_42 => l_array_source_42(Idx)
128355  , p_source_47 => l_array_source_47(Idx)
128356  , p_source_48 => l_array_source_48(Idx)
128357  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128358  , p_source_53 => l_array_source_53(Idx)
128359  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128360  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128361  , p_source_57 => l_array_source_57(Idx)
128362  , p_source_58 => l_array_source_58(Idx)
128363  , p_source_59 => l_array_source_59(Idx)
128364  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128365  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128366  , p_source_61 => l_array_source_61(Idx)
128367  , p_source_62 => l_array_source_62(Idx)
128368  , p_source_63 => l_array_source_63(Idx)
128369  , p_source_64 => l_array_source_64(Idx)
128370  , p_source_65 => l_array_source_65(Idx)
128374  , p_source_104 => l_array_source_104(Idx)
128371  , p_source_66 => l_array_source_66(Idx)
128372  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128373  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128375  , p_source_104_meaning => l_array_source_104_meaning(Idx)
128376  );
128377 If(l_balance_type_code = 'A') THEN
128378   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128379 END IF;
128380 
128381 --
128382 
128383 
128384 --
128385 AcctLineType_137 (
128386  p_application_id  => p_application_id
128387  ,p_event_id     => l_event_id
128388  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128389  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128390  ,p_actual_flag => l_actual_flag
128391  ,p_balance_type_code => l_balance_type_code
128392  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128393  
128394  , p_source_9 => l_array_source_9(Idx)
128395  , p_source_17 => l_array_source_17(Idx)
128396  , p_source_20 => l_array_source_20(Idx)
128397  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128398  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128399  , p_source_39 => l_array_source_39(Idx)
128400  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128401  , p_source_40 => l_array_source_40(Idx)
128402  , p_source_41 => l_array_source_41(Idx)
128403  , p_source_42 => l_array_source_42(Idx)
128404  , p_source_47 => l_array_source_47(Idx)
128405  , p_source_48 => l_array_source_48(Idx)
128406  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128407  , p_source_50 => l_array_source_50(Idx)
128408  , p_source_51 => l_array_source_51(Idx)
128409  , p_source_52 => l_array_source_52(Idx)
128410  , p_source_53 => l_array_source_53(Idx)
128411  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128412  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128413  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128414  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128415  , p_source_57 => l_array_source_57(Idx)
128416  , p_source_58 => l_array_source_58(Idx)
128417  , p_source_59 => l_array_source_59(Idx)
128418  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128419  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128420  , p_source_61 => l_array_source_61(Idx)
128421  , p_source_62 => l_array_source_62(Idx)
128422  , p_source_63 => l_array_source_63(Idx)
128423  , p_source_64 => l_array_source_64(Idx)
128424  , p_source_65 => l_array_source_65(Idx)
128425  , p_source_66 => l_array_source_66(Idx)
128426  , p_source_100 => l_array_source_100(Idx)
128427  , p_source_100_meaning => l_array_source_100_meaning(Idx)
128428  , p_source_101 => l_array_source_101(Idx)
128429  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128430  );
128431 If(l_balance_type_code = 'A') THEN
128432   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128433 END IF;
128434 
128435 --
128436 
128437 
128438 --
128439 AcctLineType_141 (
128440  p_application_id  => p_application_id
128441  ,p_event_id     => l_event_id
128442  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128443  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128444  ,p_actual_flag => l_actual_flag
128445  ,p_balance_type_code => l_balance_type_code
128446  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128447  
128448  , p_source_9 => l_array_source_9(Idx)
128449  , p_source_17 => l_array_source_17(Idx)
128450  , p_source_20 => l_array_source_20(Idx)
128451  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128452  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128453  , p_source_39 => l_array_source_39(Idx)
128454  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128455  , p_source_40 => l_array_source_40(Idx)
128456  , p_source_41 => l_array_source_41(Idx)
128457  , p_source_42 => l_array_source_42(Idx)
128458  , p_source_47 => l_array_source_47(Idx)
128459  , p_source_48 => l_array_source_48(Idx)
128460  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128461  , p_source_53 => l_array_source_53(Idx)
128462  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128463  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128464  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128465  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128466  , p_source_57 => l_array_source_57(Idx)
128467  , p_source_58 => l_array_source_58(Idx)
128468  , p_source_59 => l_array_source_59(Idx)
128469  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128470  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128471  , p_source_61 => l_array_source_61(Idx)
128472  , p_source_62 => l_array_source_62(Idx)
128473  , p_source_63 => l_array_source_63(Idx)
128474  , p_source_64 => l_array_source_64(Idx)
128475  , p_source_65 => l_array_source_65(Idx)
128476  , p_source_66 => l_array_source_66(Idx)
128477  , p_source_100 => l_array_source_100(Idx)
128478  , p_source_100_meaning => l_array_source_100_meaning(Idx)
128479  , p_source_101 => l_array_source_101(Idx)
128480  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128481  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128482  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128483  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128484  );
128485 If(l_balance_type_code = 'A') THEN
128486   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128487 END IF;
128488 
128489 --
128490 
128491 
128492 --
128496  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128493 AcctLineType_142 (
128494  p_application_id  => p_application_id
128495  ,p_event_id     => l_event_id
128497  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128498  ,p_actual_flag => l_actual_flag
128499  ,p_balance_type_code => l_balance_type_code
128500  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128501  
128502  , p_source_9 => l_array_source_9(Idx)
128503  , p_source_20 => l_array_source_20(Idx)
128504  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128505  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128506  , p_source_39 => l_array_source_39(Idx)
128507  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128508  , p_source_40 => l_array_source_40(Idx)
128509  , p_source_41 => l_array_source_41(Idx)
128510  , p_source_42 => l_array_source_42(Idx)
128511  , p_source_47 => l_array_source_47(Idx)
128512  , p_source_48 => l_array_source_48(Idx)
128513  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128514  , p_source_53 => l_array_source_53(Idx)
128515  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128516  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128517  , p_source_57 => l_array_source_57(Idx)
128518  , p_source_58 => l_array_source_58(Idx)
128519  , p_source_59 => l_array_source_59(Idx)
128520  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128521  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128522  , p_source_61 => l_array_source_61(Idx)
128523  , p_source_62 => l_array_source_62(Idx)
128524  , p_source_63 => l_array_source_63(Idx)
128525  , p_source_64 => l_array_source_64(Idx)
128526  , p_source_65 => l_array_source_65(Idx)
128527  , p_source_66 => l_array_source_66(Idx)
128528  , p_source_101 => l_array_source_101(Idx)
128529  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128530  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128531  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128532  , p_source_104 => l_array_source_104(Idx)
128533  , p_source_104_meaning => l_array_source_104_meaning(Idx)
128534  );
128535 If(l_balance_type_code = 'A') THEN
128536   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128537 END IF;
128538 
128539 --
128540 
128541 
128542 --
128543 AcctLineType_149 (
128544  p_application_id  => p_application_id
128545  ,p_event_id     => l_event_id
128546  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128547  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128548  ,p_actual_flag => l_actual_flag
128549  ,p_balance_type_code => l_balance_type_code
128550  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128551  
128552  , p_source_9 => l_array_source_9(Idx)
128553  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
128554  , p_source_40 => l_array_source_40(Idx)
128555  , p_source_41 => l_array_source_41(Idx)
128556  , p_source_42 => l_array_source_42(Idx)
128557  , p_source_47 => l_array_source_47(Idx)
128558  , p_source_48 => l_array_source_48(Idx)
128559  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128560  , p_source_53 => l_array_source_53(Idx)
128561  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128562  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128563  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128564  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128565  , p_source_57 => l_array_source_57(Idx)
128566  , p_source_58 => l_array_source_58(Idx)
128567  , p_source_59 => l_array_source_59(Idx)
128568  , p_source_61 => l_array_source_61(Idx)
128569  , p_source_62 => l_array_source_62(Idx)
128570  , p_source_63 => l_array_source_63(Idx)
128571  , p_source_64 => l_array_source_64(Idx)
128572  , p_source_65 => l_array_source_65(Idx)
128573  , p_source_66 => l_array_source_66(Idx)
128574  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
128575  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128576  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128577  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128578  );
128579 If(l_balance_type_code = 'A') THEN
128580   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128581 END IF;
128582 
128583 --
128584 
128585 
128586 --
128587 AcctLineType_151 (
128588  p_application_id  => p_application_id
128589  ,p_event_id     => l_event_id
128590  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128591  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128592  ,p_actual_flag => l_actual_flag
128593  ,p_balance_type_code => l_balance_type_code
128594  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128595  
128596  , p_source_9 => l_array_source_9(Idx)
128597  , p_source_17 => l_array_source_17(Idx)
128598  , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
128599  , p_source_18_meaning => g_array_event(l_event_id).array_value_char('source_18_meaning')
128600  , p_source_19 => l_array_source_19(Idx)
128601  , p_source_20 => l_array_source_20(Idx)
128602  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128603  , p_source_28 => l_array_source_28(Idx)
128604  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128605  , p_source_39 => l_array_source_39(Idx)
128606  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128607  , p_source_40 => l_array_source_40(Idx)
128608  , p_source_41 => l_array_source_41(Idx)
128609  , p_source_42 => l_array_source_42(Idx)
128613  , p_source_53 => l_array_source_53(Idx)
128610  , p_source_47 => l_array_source_47(Idx)
128611  , p_source_48 => l_array_source_48(Idx)
128612  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128614  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128615  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128616  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128617  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128618  , p_source_57 => l_array_source_57(Idx)
128619  , p_source_58 => l_array_source_58(Idx)
128620  , p_source_59 => l_array_source_59(Idx)
128621  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128622  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128623  , p_source_61 => l_array_source_61(Idx)
128624  , p_source_62 => l_array_source_62(Idx)
128625  , p_source_63 => l_array_source_63(Idx)
128626  , p_source_64 => l_array_source_64(Idx)
128627  , p_source_65 => l_array_source_65(Idx)
128628  , p_source_66 => l_array_source_66(Idx)
128629  , p_source_101 => l_array_source_101(Idx)
128630  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128631  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128632  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128633  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128634  );
128635 If(l_balance_type_code = 'A') THEN
128636   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128637 END IF;
128638 
128639 --
128640 
128641 
128642 --
128643 AcctLineType_157 (
128644  p_application_id  => p_application_id
128645  ,p_event_id     => l_event_id
128646  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128647  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128648  ,p_actual_flag => l_actual_flag
128649  ,p_balance_type_code => l_balance_type_code
128650  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128651  
128652  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128653  , p_source_39 => l_array_source_39(Idx)
128654  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128655  , p_source_40 => l_array_source_40(Idx)
128656  , p_source_42 => l_array_source_42(Idx)
128657  , p_source_47 => l_array_source_47(Idx)
128658  , p_source_48 => l_array_source_48(Idx)
128659  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128660  , p_source_53 => l_array_source_53(Idx)
128661  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128662  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128663  , p_source_57 => l_array_source_57(Idx)
128664  , p_source_58 => l_array_source_58(Idx)
128665  , p_source_59 => l_array_source_59(Idx)
128666  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128667  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128668  , p_source_61 => l_array_source_61(Idx)
128669  , p_source_62 => l_array_source_62(Idx)
128670  , p_source_63 => l_array_source_63(Idx)
128671  , p_source_64 => l_array_source_64(Idx)
128672  , p_source_65 => l_array_source_65(Idx)
128673  , p_source_66 => l_array_source_66(Idx)
128674  , p_source_100 => l_array_source_100(Idx)
128675  , p_source_100_meaning => l_array_source_100_meaning(Idx)
128676  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128677  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128678  , p_source_104 => l_array_source_104(Idx)
128679  , p_source_104_meaning => l_array_source_104_meaning(Idx)
128680  , p_source_142 => l_array_source_142(Idx)
128681  , p_source_143 => l_array_source_143(Idx)
128682  );
128683 If(l_balance_type_code = 'A') THEN
128684   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128685 END IF;
128686 
128687 --
128688 
128689 
128690 --
128691 AcctLineType_162 (
128692  p_application_id  => p_application_id
128693  ,p_event_id     => l_event_id
128694  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128695  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128696  ,p_actual_flag => l_actual_flag
128697  ,p_balance_type_code => l_balance_type_code
128698  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128699  
128700  , p_source_9 => l_array_source_9(Idx)
128701  , p_source_17 => l_array_source_17(Idx)
128702  , p_source_20 => l_array_source_20(Idx)
128703  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128704  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128705  , p_source_39 => l_array_source_39(Idx)
128706  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128707  , p_source_40 => l_array_source_40(Idx)
128708  , p_source_41 => l_array_source_41(Idx)
128709  , p_source_42 => l_array_source_42(Idx)
128710  , p_source_47 => l_array_source_47(Idx)
128711  , p_source_48 => l_array_source_48(Idx)
128712  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128713  , p_source_53 => l_array_source_53(Idx)
128714  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128715  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128716  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128717  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128718  , p_source_57 => l_array_source_57(Idx)
128719  , p_source_58 => l_array_source_58(Idx)
128720  , p_source_59 => l_array_source_59(Idx)
128721  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128722  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128726  , p_source_64 => l_array_source_64(Idx)
128723  , p_source_61 => l_array_source_61(Idx)
128724  , p_source_62 => l_array_source_62(Idx)
128725  , p_source_63 => l_array_source_63(Idx)
128727  , p_source_65 => l_array_source_65(Idx)
128728  , p_source_66 => l_array_source_66(Idx)
128729  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128730  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128731  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128732  );
128733 If(l_balance_type_code = 'A') THEN
128734   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128735 END IF;
128736 
128737 --
128738 
128739 
128740 --
128741 AcctLineType_165 (
128742  p_application_id  => p_application_id
128743  ,p_event_id     => l_event_id
128744  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128745  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128746  ,p_actual_flag => l_actual_flag
128747  ,p_balance_type_code => l_balance_type_code
128748  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128749  
128750  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
128751  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
128752  , p_source_9 => l_array_source_9(Idx)
128753  , p_source_17 => l_array_source_17(Idx)
128754  , p_source_20 => l_array_source_20(Idx)
128755  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128756  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
128757  , p_source_23 => l_array_source_23(Idx)
128758  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128759  , p_source_40 => l_array_source_40(Idx)
128760  , p_source_41 => l_array_source_41(Idx)
128761  , p_source_42 => l_array_source_42(Idx)
128762  , p_source_47 => l_array_source_47(Idx)
128763  , p_source_48 => l_array_source_48(Idx)
128764  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128765  , p_source_53 => l_array_source_53(Idx)
128766  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128767  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128768  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128769  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128770  , p_source_57 => l_array_source_57(Idx)
128771  , p_source_58 => l_array_source_58(Idx)
128772  , p_source_59 => l_array_source_59(Idx)
128773  , p_source_61 => l_array_source_61(Idx)
128774  , p_source_62 => l_array_source_62(Idx)
128775  , p_source_63 => l_array_source_63(Idx)
128776  , p_source_64 => l_array_source_64(Idx)
128777  , p_source_65 => l_array_source_65(Idx)
128778  , p_source_66 => l_array_source_66(Idx)
128779  , p_source_101 => l_array_source_101(Idx)
128780  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128781  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128782  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128783  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128784  );
128785 If(l_balance_type_code = 'A') THEN
128786   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128787 END IF;
128788 
128789 --
128790 
128791 
128792 --
128793 AcctLineType_171 (
128794  p_application_id  => p_application_id
128795  ,p_event_id     => l_event_id
128796  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128797  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128798  ,p_actual_flag => l_actual_flag
128799  ,p_balance_type_code => l_balance_type_code
128800  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128801  
128802  , p_source_9 => l_array_source_9(Idx)
128803  , p_source_20 => l_array_source_20(Idx)
128804  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128805  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128806  , p_source_40 => l_array_source_40(Idx)
128807  , p_source_41 => l_array_source_41(Idx)
128808  , p_source_42 => l_array_source_42(Idx)
128809  , p_source_47 => l_array_source_47(Idx)
128810  , p_source_48 => l_array_source_48(Idx)
128811  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128812  , p_source_53 => l_array_source_53(Idx)
128813  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128814  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128815  , p_source_57 => l_array_source_57(Idx)
128816  , p_source_58 => l_array_source_58(Idx)
128817  , p_source_59 => l_array_source_59(Idx)
128818  , p_source_61 => l_array_source_61(Idx)
128819  , p_source_62 => l_array_source_62(Idx)
128820  , p_source_63 => l_array_source_63(Idx)
128821  , p_source_66 => l_array_source_66(Idx)
128822  , p_source_101 => l_array_source_101(Idx)
128823  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128824  , p_source_149 => l_array_source_149(Idx)
128825  , p_source_150 => l_array_source_150(Idx)
128826  );
128827 If(l_balance_type_code = 'A') THEN
128828   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128829 END IF;
128830 
128831 --
128832 
128833 
128834 --
128835 AcctLineType_173 (
128836  p_application_id  => p_application_id
128837  ,p_event_id     => l_event_id
128838  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128839  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128840  ,p_actual_flag => l_actual_flag
128841  ,p_balance_type_code => l_balance_type_code
128842  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128843  
128844  , p_source_20 => l_array_source_20(Idx)
128845  , p_source_20_meaning => l_array_source_20_meaning(Idx)
128849  , p_source_40 => l_array_source_40(Idx)
128846  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128847  , p_source_39 => l_array_source_39(Idx)
128848  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128850  , p_source_42 => l_array_source_42(Idx)
128851  , p_source_47 => l_array_source_47(Idx)
128852  , p_source_48 => l_array_source_48(Idx)
128853  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128854  , p_source_53 => l_array_source_53(Idx)
128855  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128856  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128857  , p_source_57 => l_array_source_57(Idx)
128858  , p_source_58 => l_array_source_58(Idx)
128859  , p_source_59 => l_array_source_59(Idx)
128860  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128861  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128862  , p_source_61 => l_array_source_61(Idx)
128863  , p_source_62 => l_array_source_62(Idx)
128864  , p_source_63 => l_array_source_63(Idx)
128865  , p_source_64 => l_array_source_64(Idx)
128866  , p_source_65 => l_array_source_65(Idx)
128867  , p_source_66 => l_array_source_66(Idx)
128868  , p_source_100 => l_array_source_100(Idx)
128869  , p_source_100_meaning => l_array_source_100_meaning(Idx)
128870  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128871  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128872  , p_source_103 => l_array_source_103(Idx)
128873  , p_source_104 => l_array_source_104(Idx)
128874  , p_source_104_meaning => l_array_source_104_meaning(Idx)
128875  , p_source_105 => l_array_source_105(Idx)
128876  );
128877 If(l_balance_type_code = 'A') THEN
128878   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128879 END IF;
128880 
128881 --
128882 
128883 
128884 --
128885 AcctLineType_176 (
128886  p_application_id  => p_application_id
128887  ,p_event_id     => l_event_id
128888  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128889  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128890  ,p_actual_flag => l_actual_flag
128891  ,p_balance_type_code => l_balance_type_code
128892  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128893  
128894  , p_source_9 => l_array_source_9(Idx)
128895  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128896  , p_source_39 => l_array_source_39(Idx)
128897  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128898  , p_source_40 => l_array_source_40(Idx)
128899  , p_source_41 => l_array_source_41(Idx)
128900  , p_source_42 => l_array_source_42(Idx)
128901  , p_source_47 => l_array_source_47(Idx)
128902  , p_source_48 => l_array_source_48(Idx)
128903  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128904  , p_source_53 => l_array_source_53(Idx)
128905  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128906  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128907  , p_source_57 => l_array_source_57(Idx)
128908  , p_source_58 => l_array_source_58(Idx)
128909  , p_source_59 => l_array_source_59(Idx)
128910  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128911  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128912  , p_source_61 => l_array_source_61(Idx)
128913  , p_source_62 => l_array_source_62(Idx)
128914  , p_source_63 => l_array_source_63(Idx)
128915  , p_source_64 => l_array_source_64(Idx)
128916  , p_source_65 => l_array_source_65(Idx)
128917  , p_source_66 => l_array_source_66(Idx)
128918  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
128919  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
128920  , p_source_104 => l_array_source_104(Idx)
128921  , p_source_104_meaning => l_array_source_104_meaning(Idx)
128922  );
128923 If(l_balance_type_code = 'A') THEN
128924   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128925 END IF;
128926 
128927 --
128928 
128929 
128930 --
128931 AcctLineType_179 (
128932  p_application_id  => p_application_id
128933  ,p_event_id     => l_event_id
128934  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128935  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128936  ,p_actual_flag => l_actual_flag
128937  ,p_balance_type_code => l_balance_type_code
128938  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
128939  
128940  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
128941  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
128942  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
128943  , p_source_7 => l_array_source_7(Idx)
128944  , p_source_7_meaning => l_array_source_7_meaning(Idx)
128945  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
128946  , p_source_9 => l_array_source_9(Idx)
128947  , p_source_10 => l_array_source_10(Idx)
128948  , p_source_17 => l_array_source_17(Idx)
128949  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
128950  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
128951  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
128952  , p_source_39 => l_array_source_39(Idx)
128953  , p_source_39_meaning => l_array_source_39_meaning(Idx)
128954  , p_source_40 => l_array_source_40(Idx)
128955  , p_source_41 => l_array_source_41(Idx)
128956  , p_source_42 => l_array_source_42(Idx)
128957  , p_source_47 => l_array_source_47(Idx)
128958  , p_source_48 => l_array_source_48(Idx)
128962  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
128959  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
128960  , p_source_53 => l_array_source_53(Idx)
128961  , p_source_53_meaning => l_array_source_53_meaning(Idx)
128963  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
128964  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
128965  , p_source_57 => l_array_source_57(Idx)
128966  , p_source_58 => l_array_source_58(Idx)
128967  , p_source_59 => l_array_source_59(Idx)
128968  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
128969  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
128970  , p_source_61 => l_array_source_61(Idx)
128971  , p_source_62 => l_array_source_62(Idx)
128972  , p_source_63 => l_array_source_63(Idx)
128973  , p_source_64 => l_array_source_64(Idx)
128974  , p_source_65 => l_array_source_65(Idx)
128975  , p_source_66 => l_array_source_66(Idx)
128976  , p_source_100 => l_array_source_100(Idx)
128977  , p_source_100_meaning => l_array_source_100_meaning(Idx)
128978  , p_source_101 => l_array_source_101(Idx)
128979  , p_source_101_meaning => l_array_source_101_meaning(Idx)
128980  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
128981  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
128982  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
128983  );
128984 If(l_balance_type_code = 'A') THEN
128985   l_actual_gain_loss_ref := l_gain_or_loss_ref;
128986 END IF;
128987 
128988 --
128989 
128990 
128991 --
128992 AcctLineType_183 (
128993  p_application_id  => p_application_id
128994  ,p_event_id     => l_event_id
128995  ,p_calculate_acctd_flag => l_calculate_acctd_flag
128996  ,p_calculate_g_l_flag => l_calculate_g_l_flag
128997  ,p_actual_flag => l_actual_flag
128998  ,p_balance_type_code => l_balance_type_code
128999  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129000  
129001  , p_source_9 => l_array_source_9(Idx)
129002  , p_source_17 => l_array_source_17(Idx)
129003  , p_source_20 => l_array_source_20(Idx)
129004  , p_source_20_meaning => l_array_source_20_meaning(Idx)
129005  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129006  , p_source_39 => l_array_source_39(Idx)
129007  , p_source_39_meaning => l_array_source_39_meaning(Idx)
129008  , p_source_40 => l_array_source_40(Idx)
129009  , p_source_41 => l_array_source_41(Idx)
129010  , p_source_42 => l_array_source_42(Idx)
129011  , p_source_47 => l_array_source_47(Idx)
129012  , p_source_48 => l_array_source_48(Idx)
129013  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129014  , p_source_53 => l_array_source_53(Idx)
129015  , p_source_53_meaning => l_array_source_53_meaning(Idx)
129016  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
129017  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
129018  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129019  , p_source_57 => l_array_source_57(Idx)
129020  , p_source_58 => l_array_source_58(Idx)
129021  , p_source_59 => l_array_source_59(Idx)
129022  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129023  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129024  , p_source_61 => l_array_source_61(Idx)
129025  , p_source_62 => l_array_source_62(Idx)
129026  , p_source_63 => l_array_source_63(Idx)
129027  , p_source_64 => l_array_source_64(Idx)
129028  , p_source_65 => l_array_source_65(Idx)
129029  , p_source_66 => l_array_source_66(Idx)
129030  , p_source_100 => l_array_source_100(Idx)
129031  , p_source_100_meaning => l_array_source_100_meaning(Idx)
129032  , p_source_101 => l_array_source_101(Idx)
129033  , p_source_101_meaning => l_array_source_101_meaning(Idx)
129034  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
129035  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
129036  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
129037  );
129038 If(l_balance_type_code = 'A') THEN
129039   l_actual_gain_loss_ref := l_gain_or_loss_ref;
129040 END IF;
129041 
129042 --
129043 
129044 
129045 --
129046 AcctLineType_184 (
129047  p_application_id  => p_application_id
129048  ,p_event_id     => l_event_id
129049  ,p_calculate_acctd_flag => l_calculate_acctd_flag
129050  ,p_calculate_g_l_flag => l_calculate_g_l_flag
129051  ,p_actual_flag => l_actual_flag
129052  ,p_balance_type_code => l_balance_type_code
129053  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129054  
129055  , p_source_9 => l_array_source_9(Idx)
129056  , p_source_20 => l_array_source_20(Idx)
129057  , p_source_20_meaning => l_array_source_20_meaning(Idx)
129058  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129059  , p_source_39 => l_array_source_39(Idx)
129060  , p_source_39_meaning => l_array_source_39_meaning(Idx)
129061  , p_source_40 => l_array_source_40(Idx)
129062  , p_source_41 => l_array_source_41(Idx)
129063  , p_source_42 => l_array_source_42(Idx)
129064  , p_source_47 => l_array_source_47(Idx)
129065  , p_source_48 => l_array_source_48(Idx)
129066  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129067  , p_source_53 => l_array_source_53(Idx)
129068  , p_source_53_meaning => l_array_source_53_meaning(Idx)
129069  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129070  , p_source_57 => l_array_source_57(Idx)
129071  , p_source_58 => l_array_source_58(Idx)
129075  , p_source_61 => l_array_source_61(Idx)
129072  , p_source_59 => l_array_source_59(Idx)
129073  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129074  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129076  , p_source_62 => l_array_source_62(Idx)
129077  , p_source_63 => l_array_source_63(Idx)
129078  , p_source_64 => l_array_source_64(Idx)
129079  , p_source_65 => l_array_source_65(Idx)
129080  , p_source_66 => l_array_source_66(Idx)
129081  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
129082  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
129083  , p_source_104 => l_array_source_104(Idx)
129084  , p_source_104_meaning => l_array_source_104_meaning(Idx)
129085  );
129086 If(l_balance_type_code = 'A') THEN
129087   l_actual_gain_loss_ref := l_gain_or_loss_ref;
129088 END IF;
129089 
129090 --
129091 
129092 
129093 --
129094 AcctLineType_188 (
129095  p_application_id  => p_application_id
129096  ,p_event_id     => l_event_id
129097  ,p_calculate_acctd_flag => l_calculate_acctd_flag
129098  ,p_calculate_g_l_flag => l_calculate_g_l_flag
129099  ,p_actual_flag => l_actual_flag
129100  ,p_balance_type_code => l_balance_type_code
129101  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129102  
129103  , p_source_20 => l_array_source_20(Idx)
129104  , p_source_20_meaning => l_array_source_20_meaning(Idx)
129105  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129106  , p_source_39 => l_array_source_39(Idx)
129107  , p_source_39_meaning => l_array_source_39_meaning(Idx)
129108  , p_source_40 => l_array_source_40(Idx)
129109  , p_source_42 => l_array_source_42(Idx)
129110  , p_source_47 => l_array_source_47(Idx)
129111  , p_source_48 => l_array_source_48(Idx)
129112  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129113  , p_source_53 => l_array_source_53(Idx)
129114  , p_source_53_meaning => l_array_source_53_meaning(Idx)
129115  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129116  , p_source_57 => l_array_source_57(Idx)
129117  , p_source_58 => l_array_source_58(Idx)
129118  , p_source_59 => l_array_source_59(Idx)
129119  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129120  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129121  , p_source_61 => l_array_source_61(Idx)
129122  , p_source_62 => l_array_source_62(Idx)
129123  , p_source_63 => l_array_source_63(Idx)
129124  , p_source_64 => l_array_source_64(Idx)
129125  , p_source_65 => l_array_source_65(Idx)
129126  , p_source_66 => l_array_source_66(Idx)
129127  , p_source_100 => l_array_source_100(Idx)
129128  , p_source_100_meaning => l_array_source_100_meaning(Idx)
129129  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
129130  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
129131  , p_source_104 => l_array_source_104(Idx)
129132  , p_source_104_meaning => l_array_source_104_meaning(Idx)
129133  , p_source_142 => l_array_source_142(Idx)
129134  , p_source_143 => l_array_source_143(Idx)
129135  );
129136 If(l_balance_type_code = 'A') THEN
129137   l_actual_gain_loss_ref := l_gain_or_loss_ref;
129138 END IF;
129139 
129140 --
129141 
129142 
129143 --
129144 AcctLineType_192 (
129145  p_application_id  => p_application_id
129146  ,p_event_id     => l_event_id
129147  ,p_calculate_acctd_flag => l_calculate_acctd_flag
129148  ,p_calculate_g_l_flag => l_calculate_g_l_flag
129149  ,p_actual_flag => l_actual_flag
129150  ,p_balance_type_code => l_balance_type_code
129151  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129152  
129153  , p_source_9 => l_array_source_9(Idx)
129154  , p_source_17 => l_array_source_17(Idx)
129155  , p_source_20 => l_array_source_20(Idx)
129156  , p_source_20_meaning => l_array_source_20_meaning(Idx)
129157  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129158  , p_source_39 => l_array_source_39(Idx)
129159  , p_source_39_meaning => l_array_source_39_meaning(Idx)
129160  , p_source_40 => l_array_source_40(Idx)
129161  , p_source_41 => l_array_source_41(Idx)
129162  , p_source_42 => l_array_source_42(Idx)
129163  , p_source_47 => l_array_source_47(Idx)
129164  , p_source_48 => l_array_source_48(Idx)
129165  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129166  , p_source_53 => l_array_source_53(Idx)
129167  , p_source_53_meaning => l_array_source_53_meaning(Idx)
129168  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
129169  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
129170  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129171  , p_source_57 => l_array_source_57(Idx)
129172  , p_source_58 => l_array_source_58(Idx)
129173  , p_source_59 => l_array_source_59(Idx)
129174  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129175  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129176  , p_source_61 => l_array_source_61(Idx)
129177  , p_source_62 => l_array_source_62(Idx)
129178  , p_source_63 => l_array_source_63(Idx)
129179  , p_source_64 => l_array_source_64(Idx)
129180  , p_source_65 => l_array_source_65(Idx)
129181  , p_source_66 => l_array_source_66(Idx)
129182  , p_source_100 => l_array_source_100(Idx)
129183  , p_source_100_meaning => l_array_source_100_meaning(Idx)
129184  , p_source_101 => l_array_source_101(Idx)
129185  , p_source_101_meaning => l_array_source_101_meaning(Idx)
129189  );
129186  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
129187  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
129188  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
129190 If(l_balance_type_code = 'A') THEN
129191   l_actual_gain_loss_ref := l_gain_or_loss_ref;
129192 END IF;
129193 
129194 --
129195 
129196 
129197 --
129198 AcctLineType_193 (
129199  p_application_id  => p_application_id
129200  ,p_event_id     => l_event_id
129201  ,p_calculate_acctd_flag => l_calculate_acctd_flag
129202  ,p_calculate_g_l_flag => l_calculate_g_l_flag
129203  ,p_actual_flag => l_actual_flag
129204  ,p_balance_type_code => l_balance_type_code
129205  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129206  
129207  , p_source_9 => l_array_source_9(Idx)
129208  , p_source_20 => l_array_source_20(Idx)
129209  , p_source_20_meaning => l_array_source_20_meaning(Idx)
129210  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129211  , p_source_39 => l_array_source_39(Idx)
129212  , p_source_39_meaning => l_array_source_39_meaning(Idx)
129213  , p_source_40 => l_array_source_40(Idx)
129214  , p_source_41 => l_array_source_41(Idx)
129215  , p_source_42 => l_array_source_42(Idx)
129216  , p_source_47 => l_array_source_47(Idx)
129217  , p_source_48 => l_array_source_48(Idx)
129218  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129219  , p_source_53 => l_array_source_53(Idx)
129220  , p_source_53_meaning => l_array_source_53_meaning(Idx)
129221  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129222  , p_source_57 => l_array_source_57(Idx)
129223  , p_source_58 => l_array_source_58(Idx)
129224  , p_source_59 => l_array_source_59(Idx)
129225  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129226  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129227  , p_source_61 => l_array_source_61(Idx)
129228  , p_source_62 => l_array_source_62(Idx)
129229  , p_source_63 => l_array_source_63(Idx)
129230  , p_source_64 => l_array_source_64(Idx)
129231  , p_source_65 => l_array_source_65(Idx)
129232  , p_source_66 => l_array_source_66(Idx)
129233  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
129234  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
129235  , p_source_104 => l_array_source_104(Idx)
129236  , p_source_104_meaning => l_array_source_104_meaning(Idx)
129237  );
129238 If(l_balance_type_code = 'A') THEN
129239   l_actual_gain_loss_ref := l_gain_or_loss_ref;
129240 END IF;
129241 
129242 --
129243 
129244 
129245 --
129246 AcctLineType_203 (
129247  p_application_id  => p_application_id
129248  ,p_event_id     => l_event_id
129249  ,p_calculate_acctd_flag => l_calculate_acctd_flag
129250  ,p_calculate_g_l_flag => l_calculate_g_l_flag
129251  ,p_actual_flag => l_actual_flag
129252  ,p_balance_type_code => l_balance_type_code
129253  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
129254  
129255  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
129256  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
129257  , p_source_9 => l_array_source_9(Idx)
129258  , p_source_17 => l_array_source_17(Idx)
129259  , p_source_24 => l_array_source_24(Idx)
129260  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
129261  , p_source_39 => l_array_source_39(Idx)
129262  , p_source_39_meaning => l_array_source_39_meaning(Idx)
129263  , p_source_40 => l_array_source_40(Idx)
129264  , p_source_41 => l_array_source_41(Idx)
129265  , p_source_42 => l_array_source_42(Idx)
129266  , p_source_47 => l_array_source_47(Idx)
129267  , p_source_48 => l_array_source_48(Idx)
129268  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
129269  , p_source_53 => l_array_source_53(Idx)
129270  , p_source_53_meaning => l_array_source_53_meaning(Idx)
129271  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
129272  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
129273  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
129274  , p_source_57 => l_array_source_57(Idx)
129275  , p_source_58 => l_array_source_58(Idx)
129276  , p_source_59 => l_array_source_59(Idx)
129277  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
129278  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
129279  , p_source_61 => l_array_source_61(Idx)
129280  , p_source_62 => l_array_source_62(Idx)
129281  , p_source_63 => l_array_source_63(Idx)
129282  , p_source_64 => l_array_source_64(Idx)
129283  , p_source_65 => l_array_source_65(Idx)
129284  , p_source_66 => l_array_source_66(Idx)
129285  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
129286  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
129287  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
129288  );
129289 If(l_balance_type_code = 'A') THEN
129290   l_actual_gain_loss_ref := l_gain_or_loss_ref;
129291 END IF;
129292 
129293 --
129294 
129295       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
129296       -- or secondary ledger that has different currency with primary
129297       -- or alc that is calculated by sla
129298       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
129302 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
129299             (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'))
129300 
129301 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
129303           AND (l_actual_flag = 'A')) THEN
129304         XLA_AE_LINES_PKG.CreateGainOrLossLines(
129305           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
129306          ,p_application_id   => p_application_id
129307          ,p_amb_context_code => 'DEFAULT'
129308          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
129309          ,p_event_class_code => C_EVENT_CLASS_CODE
129310          ,p_event_type_code  => C_EVENT_TYPE_CODE
129311          
129312          ,p_gain_ccid        => -1
129313          ,p_loss_ccid        => -1
129314 
129315          ,p_actual_flag      => l_actual_flag
129316          ,p_enc_flag         => null
129317          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
129318          ,p_enc_g_l_ref      => null
129319          );
129320       END IF;
129321    END IF;
129322 END IF;
129323 
129324    ELSE
129325       --
129326       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
129327       --
129328       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
129329          trace
129330             (p_msg      => 'Trancaction revesal option is Y'
129331             ,p_level    => C_LEVEL_STATEMENT
129332             ,p_module   => l_log_module);
129333       END IF;
129334    END IF;
129335 
129336 END LOOP;
129337 l_result := XLA_AE_LINES_PKG.InsertLines ;
129338 end loop;
129339 close line_cur;
129340 
129341 
129342 --
129343 -- insert headers into xla_ae_headers_gt table
129344 --
129345 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
129346 
129347 -- insert into errors table here.
129348 
129349 END LOOP;
129350 
129351 --
129352 -- 4865292
129353 --
129354 -- Compare g_hdr_extract_count with event count in
129355 -- CreateHeadersAndLines.
129356 --
129357 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
129358 
129359 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
129360    trace (p_msg     => '# rows extracted from header extract objects '
129361                     || ' (running total): '
129362                     || g_hdr_extract_count
129363          ,p_level   => C_LEVEL_STATEMENT
129364          ,p_module  => l_log_module);
129365 END IF;
129366 
129367 CLOSE header_cur;
129368 --
129369 
129370 --
129371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129372    trace
129373       (p_msg      => 'END of EventClass_209'
129374       ,p_level    => C_LEVEL_PROCEDURE
129375       ,p_module   => l_log_module);
129376 END IF;
129377 --
129378 RETURN l_result;
129379 EXCEPTION
129380 WHEN xla_exceptions_pkg.application_exception THEN
129381    
129382 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
129383 
129384    
129385 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
129386 
129387    RAISE;
129388 
129389 WHEN NO_DATA_FOUND THEN
129390 
129391 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
129392 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
129393 
129394 FOR header_record IN header_cur
129395 LOOP
129396     l_array_header_events(header_record.event_id) := header_record.event_id;
129397 END LOOP;
129398 
129399 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
129400 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
129401 
129402 fnd_file.put_line(fnd_file.LOG, '                    ');
129403 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
129404 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
129405 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
129406 
129407 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
129408 LOOP
129409 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
129410 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
129411         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
129412 	END IF;
129413 END LOOP;
129414 
129415 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
129416 fnd_file.put_line(fnd_file.LOG, '                    ');
129417 
129418 
129419 xla_exceptions_pkg.raise_message
129420       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_209');
129421 
129422 
129423 WHEN OTHERS THEN
129424    xla_exceptions_pkg.raise_message
129425       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_209');
129426 END EventClass_209;
129427 --
129428 
129429 ---------------------------------------
129430 --
129431 -- PRIVATE PROCEDURE
129432 --         insert_sources_210
129433 --
129434 ----------------------------------------
129435 --
129436 PROCEDURE insert_sources_210(
129437                                 p_target_ledger_id       IN NUMBER
129438                               , p_language               IN VARCHAR2
129439                               , p_sla_ledger_id          IN NUMBER
129443 IS
129440                               , p_pad_start_date         IN DATE
129441                               , p_pad_end_date           IN DATE
129442                          )
129444 
129445 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
129446 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
129447 p_apps_owner                   VARCHAR2(30);
129448 l_log_module                   VARCHAR2(240);
129449 BEGIN
129450 IF g_log_enabled THEN
129451       l_log_module := C_DEFAULT_MODULE||'.insert_sources_210';
129452 END IF;
129453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129454 
129455       trace
129456          (p_msg      => 'BEGIN of insert_sources_210'
129457          ,p_level    => C_LEVEL_PROCEDURE
129458          ,p_module   => l_log_module);
129459 
129460 END IF;
129461 
129462 -- select APPS owner
129463 SELECT oracle_username
129464   INTO p_apps_owner
129465   FROM fnd_oracle_userid
129466  WHERE read_only_flag = 'U'
129467 ;
129468 
129469 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
129470       trace
129471          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
129472                         ' - p_language = '||p_language||
129473                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
129474                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
129475                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
129476                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
129477          ,p_level    => C_LEVEL_STATEMENT
129478          ,p_module   => l_log_module);
129479 END IF;
129480 
129481 
129482 --
129483 INSERT INTO xla_diag_sources --hdr2
129484 (
129485         event_id
129486       , ledger_id
129487       , sla_ledger_id
129488       , description_language
129489       , object_name
129490       , object_type_code
129491       , line_number
129492       , source_application_id
129493       , source_type_code
129494       , source_code
129495       , source_value
129496       , source_meaning
129497       , created_by
129498       , creation_date
129499       , last_update_date
129500       , last_updated_by
129501       , last_update_login
129502       , program_update_date
129503       , program_application_id
129504       , program_id
129505       , request_id
129506 )
129507 SELECT
129508         event_id
129509       , p_target_ledger_id
129510       , p_sla_ledger_id
129511       , p_language
129512       , object_name
129513       , object_type_code
129514       , line_number
129515       , source_application_id
129516       , source_type_code
129517       , source_code
129518       , SUBSTR(source_value ,1,1996)
129519       , SUBSTR(source_meaning ,1,200)
129520       , xla_environment_pkg.g_Usr_Id
129521       , TRUNC(SYSDATE)
129522       , TRUNC(SYSDATE)
129523       , xla_environment_pkg.g_Usr_Id
129524       , xla_environment_pkg.g_Login_Id
129525       , TRUNC(SYSDATE)
129526       , xla_environment_pkg.g_Prog_Appl_Id
129527       , xla_environment_pkg.g_Prog_Id
129528       , xla_environment_pkg.g_Req_Id
129529   FROM (
129530        SELECT xet.event_id                  event_id
129531             , 0                          line_number
129532             , CASE r
129533                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
129534                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
129535                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
129536                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
129537                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
129538                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
129539                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
129540                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129541                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129542                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129543                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129544                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129545                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
129546                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129547                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129548                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129549                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129550                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129551                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
129552                 
129553                ELSE null
129554               END                           object_name
129555             , CASE r
129556                 WHEN 1 THEN 'HEADER' 
129557                 WHEN 2 THEN 'HEADER' 
129558                 WHEN 3 THEN 'HEADER' 
129559                 WHEN 4 THEN 'HEADER' 
129560                 WHEN 5 THEN 'HEADER' 
129561                 WHEN 6 THEN 'HEADER' 
129562                 WHEN 7 THEN 'HEADER' 
129563                 WHEN 8 THEN 'HEADER' 
129564                 WHEN 9 THEN 'HEADER' 
129565                 WHEN 10 THEN 'HEADER' 
129566                 WHEN 11 THEN 'HEADER' 
129567                 WHEN 12 THEN 'HEADER' 
129568                 WHEN 13 THEN 'HEADER' 
129569                 WHEN 14 THEN 'HEADER' 
129570                 WHEN 15 THEN 'HEADER' 
129571                 WHEN 16 THEN 'HEADER' 
129572                 WHEN 17 THEN 'HEADER' 
129573                 WHEN 18 THEN 'HEADER' 
129577               END                           object_type_code
129574                 WHEN 19 THEN 'HEADER' 
129575                 
129576                 ELSE null
129578             , CASE r
129579                 WHEN 1 THEN '200' 
129580                 WHEN 2 THEN '200' 
129581                 WHEN 3 THEN '200' 
129582                 WHEN 4 THEN '200' 
129583                 WHEN 5 THEN '200' 
129584                 WHEN 6 THEN '200' 
129585                 WHEN 7 THEN '200' 
129586                 WHEN 8 THEN '200' 
129587                 WHEN 9 THEN '200' 
129588                 WHEN 10 THEN '200' 
129589                 WHEN 11 THEN '200' 
129590                 WHEN 12 THEN '200' 
129591                 WHEN 13 THEN '200' 
129592                 WHEN 14 THEN '200' 
129593                 WHEN 15 THEN '200' 
129594                 WHEN 16 THEN '200' 
129595                 WHEN 17 THEN '200' 
129596                 WHEN 18 THEN '200' 
129597                 WHEN 19 THEN '200' 
129598                 
129599                 ELSE null
129600               END                           source_application_id
129601             , 'S'             source_type_code
129602             , CASE r
129603                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
129604                 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID' 
129605                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
129606                 WHEN 4 THEN 'FSP_RETAINAGE_ACCOUNT' 
129607                 WHEN 5 THEN 'ASP_AUTO_OFFSET_FLAG' 
129608                 WHEN 6 THEN 'ASP_ROUNDING_ERROR_CCID' 
129609                 WHEN 7 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
129610                 WHEN 8 THEN 'THIRD_PARTY_TYPE' 
129611                 WHEN 9 THEN 'AI_INVOICE_ID' 
129612                 WHEN 10 THEN 'AI_INVOICE_CURRENCY_CODE' 
129613                 WHEN 11 THEN 'AI_VENDOR_ID' 
129614                 WHEN 12 THEN 'AI_VENDOR_SITE_ID' 
129615                 WHEN 13 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
129616                 WHEN 14 THEN 'INV_EXCHANGE_DATE' 
129617                 WHEN 15 THEN 'INV_EXCHANGE_RATE' 
129618                 WHEN 16 THEN 'INV_EXCHANGE_RATE_TYPE' 
129619                 WHEN 17 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
129620                 WHEN 18 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
129621                 WHEN 19 THEN 'INV_DOC_SEQUENCE_VALUE' 
129622                 
129623                 ELSE null
129624               END                           source_code
129625             , CASE r
129626                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
129627                 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
129628                 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
129629                 WHEN 4 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
129630                 WHEN 5 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
129631                 WHEN 6 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
129632                 WHEN 7 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
129633                 WHEN 8 THEN TO_CHAR(h1.THIRD_PARTY_TYPE)
129634                 WHEN 9 THEN TO_CHAR(h1.AI_INVOICE_ID)
129635                 WHEN 10 THEN TO_CHAR(h1.AI_INVOICE_CURRENCY_CODE)
129636                 WHEN 11 THEN TO_CHAR(h1.AI_VENDOR_ID)
129637                 WHEN 12 THEN TO_CHAR(h1.AI_VENDOR_SITE_ID)
129638                 WHEN 13 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
129639                 WHEN 14 THEN TO_CHAR(h1.INV_EXCHANGE_DATE)
129640                 WHEN 15 THEN TO_CHAR(h1.INV_EXCHANGE_RATE)
129641                 WHEN 16 THEN TO_CHAR(h1.INV_EXCHANGE_RATE_TYPE)
129642                 WHEN 17 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_CATEGORY)
129643                 WHEN 18 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_IDENTIFIER)
129644                 WHEN 19 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_VALUE)
129645                 
129646                 ELSE null
129647               END                           source_value
129648             , CASE r
129649                 WHEN 1 THEN fvl4.meaning
129650                 WHEN 5 THEN fvl30.meaning
129651                 WHEN 13 THEN fvl102.meaning
129652                 
129653                 ELSE null
129654               END               source_meaning
129655          FROM xla_events_gt     xet  
129656       , AP_INVOICE_EXTRACT_HEADER_V  h1
129657       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
129658   , fnd_lookup_values    fvl4
129659   , fnd_lookup_values    fvl30
129660   , fnd_lookup_values    fvl102
129661              ,(select rownum r from all_objects where rownum <= 19 and owner = p_apps_owner)
129662          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
129663            AND xet.event_class_code = C_EVENT_CLASS_CODE
129664               AND h1.event_id = xet.event_id
129665  AND h4.asp_org_id = h1.ai_org_id   AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
129666   AND fvl4.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
129667   AND fvl4.view_application_id(+) = 200
129668   AND fvl4.language(+)            = USERENV('LANG')
129669      AND fvl30.lookup_type(+)         = 'YES_NO'
129670   AND fvl30.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
129671   AND fvl30.view_application_id(+) = 0
129672   AND fvl30.language(+)            = USERENV('LANG')
129673      AND fvl102.lookup_type(+)         = 'YES_NO'
129674   AND fvl102.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
129675   AND fvl102.view_application_id(+) = 0
129676   AND fvl102.language(+)            = USERENV('LANG')
129677   
129678 )
129679 ;
129680 --
129681 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
129682 
129683       trace
129687 
129684          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
129685          ,p_level    => C_LEVEL_STATEMENT
129686          ,p_module   => l_log_module);
129688 END IF;
129689 --
129690 
129691 
129692 
129693 --
129694 INSERT INTO xla_diag_sources  --line2
129695 (
129696         event_id
129697       , ledger_id
129698       , sla_ledger_id
129699       , description_language
129700       , object_name
129701       , object_type_code
129702       , line_number
129703       , source_application_id
129704       , source_type_code
129705       , source_code
129706       , source_value
129707       , source_meaning
129708       , created_by
129709       , creation_date
129710       , last_update_date
129711       , last_updated_by
129712       , last_update_login
129713       , program_update_date
129714       , program_application_id
129715       , program_id
129716       , request_id
129717 )
129718 SELECT  event_id
129719       , p_target_ledger_id
129720       , p_sla_ledger_id
129721       , p_language
129722       , object_name
129723       , object_type_code
129724       , line_number
129725       , source_application_id
129726       , source_type_code
129727       , source_code
129728       , SUBSTR(source_value,1,1996)
129729       , SUBSTR(source_meaning ,1,200)
129730       , xla_environment_pkg.g_Usr_Id
129731       , TRUNC(SYSDATE)
129732       , TRUNC(SYSDATE)
129733       , xla_environment_pkg.g_Usr_Id
129734       , xla_environment_pkg.g_Login_Id
129735       , TRUNC(SYSDATE)
129736       , xla_environment_pkg.g_Prog_Appl_Id
129737       , xla_environment_pkg.g_Prog_Id
129738       , xla_environment_pkg.g_Req_Id
129739   FROM (
129740        SELECT xet.event_id                  event_id
129741             , l3.line_number                 line_number
129742             , CASE r
129743                WHEN 1 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129744                 WHEN 2 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129745                 WHEN 3 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129746                 WHEN 4 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129747                 WHEN 5 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129748                 WHEN 6 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129749                 WHEN 7 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129750                 WHEN 8 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129751                 WHEN 9 THEN 'AP_PO_HEADERS_EXTRACT_V' 
129752                 WHEN 10 THEN 'AP_PO_HEADERS_EXTRACT_V' 
129753                 WHEN 11 THEN 'AP_PO_HEADERS_EXTRACT_V' 
129754                 WHEN 12 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129755                 WHEN 13 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
129756                 WHEN 14 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129757                 WHEN 15 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129758                 WHEN 16 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129759                 WHEN 17 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
129760                 WHEN 18 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129761                 WHEN 19 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129762                 WHEN 20 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129763                 WHEN 21 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129764                 WHEN 22 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129765                 WHEN 23 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129766                 WHEN 24 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129767                 WHEN 25 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129768                 WHEN 26 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129769                 WHEN 27 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129770                 WHEN 28 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129771                 WHEN 29 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129772                 WHEN 30 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129773                 WHEN 31 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129774                 WHEN 32 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129775                 WHEN 33 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129776                 WHEN 34 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129777                 WHEN 35 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129778                 WHEN 36 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129779                 WHEN 37 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129780                 WHEN 38 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129781                 WHEN 39 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129782                 WHEN 40 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129783                 WHEN 41 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129784                 WHEN 42 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129785                 WHEN 43 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129786                 WHEN 44 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129787                 WHEN 45 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129788                 WHEN 46 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129789                 WHEN 47 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129790                 WHEN 48 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129791                 WHEN 49 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129792                 WHEN 50 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129793                 WHEN 51 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129794                 WHEN 52 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129795                 WHEN 53 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129796                 WHEN 54 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129797                 WHEN 55 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129801                 WHEN 59 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129798                 WHEN 56 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129799                 WHEN 57 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129800                 WHEN 58 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129802                 WHEN 60 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129803                 WHEN 61 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129804                 WHEN 62 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129805                 WHEN 63 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
129806                 
129807                ELSE null
129808               END                           object_name
129809             , CASE r
129810                 WHEN 1 THEN 'LINE' 
129811                 WHEN 2 THEN 'LINE' 
129812                 WHEN 3 THEN 'LINE' 
129813                 WHEN 4 THEN 'LINE' 
129814                 WHEN 5 THEN 'LINE' 
129815                 WHEN 6 THEN 'LINE' 
129816                 WHEN 7 THEN 'LINE' 
129817                 WHEN 8 THEN 'LINE' 
129818                 WHEN 9 THEN 'LINE' 
129819                 WHEN 10 THEN 'LINE' 
129820                 WHEN 11 THEN 'LINE' 
129821                 WHEN 12 THEN 'LINE' 
129822                 WHEN 13 THEN 'LINE' 
129823                 WHEN 14 THEN 'LINE' 
129824                 WHEN 15 THEN 'LINE' 
129825                 WHEN 16 THEN 'LINE' 
129826                 WHEN 17 THEN 'LINE' 
129827                 WHEN 18 THEN 'LINE' 
129828                 WHEN 19 THEN 'LINE' 
129829                 WHEN 20 THEN 'LINE' 
129830                 WHEN 21 THEN 'LINE' 
129831                 WHEN 22 THEN 'LINE' 
129832                 WHEN 23 THEN 'LINE' 
129833                 WHEN 24 THEN 'LINE' 
129834                 WHEN 25 THEN 'LINE' 
129835                 WHEN 26 THEN 'LINE' 
129836                 WHEN 27 THEN 'LINE' 
129837                 WHEN 28 THEN 'LINE' 
129838                 WHEN 29 THEN 'LINE' 
129839                 WHEN 30 THEN 'LINE' 
129840                 WHEN 31 THEN 'LINE' 
129841                 WHEN 32 THEN 'LINE' 
129842                 WHEN 33 THEN 'LINE' 
129843                 WHEN 34 THEN 'LINE' 
129844                 WHEN 35 THEN 'LINE' 
129845                 WHEN 36 THEN 'LINE' 
129846                 WHEN 37 THEN 'LINE' 
129847                 WHEN 38 THEN 'LINE' 
129848                 WHEN 39 THEN 'LINE' 
129849                 WHEN 40 THEN 'LINE' 
129850                 WHEN 41 THEN 'LINE' 
129851                 WHEN 42 THEN 'LINE' 
129852                 WHEN 43 THEN 'LINE' 
129853                 WHEN 44 THEN 'LINE' 
129854                 WHEN 45 THEN 'LINE' 
129855                 WHEN 46 THEN 'LINE' 
129856                 WHEN 47 THEN 'LINE' 
129857                 WHEN 48 THEN 'LINE' 
129858                 WHEN 49 THEN 'LINE' 
129859                 WHEN 50 THEN 'LINE' 
129860                 WHEN 51 THEN 'LINE' 
129861                 WHEN 52 THEN 'LINE' 
129862                 WHEN 53 THEN 'LINE' 
129863                 WHEN 54 THEN 'LINE' 
129864                 WHEN 55 THEN 'LINE' 
129865                 WHEN 56 THEN 'LINE' 
129866                 WHEN 57 THEN 'LINE' 
129867                 WHEN 58 THEN 'LINE' 
129868                 WHEN 59 THEN 'LINE' 
129869                 WHEN 60 THEN 'LINE' 
129870                 WHEN 61 THEN 'LINE' 
129871                 WHEN 62 THEN 'LINE' 
129872                 WHEN 63 THEN 'LINE' 
129873                 
129874                 ELSE null
129875               END                           object_type_code
129876             , CASE r
129877                 WHEN 1 THEN '200' 
129878                 WHEN 2 THEN '200' 
129879                 WHEN 3 THEN '200' 
129880                 WHEN 4 THEN '200' 
129881                 WHEN 5 THEN '200' 
129882                 WHEN 6 THEN '200' 
129883                 WHEN 7 THEN '200' 
129884                 WHEN 8 THEN '200' 
129885                 WHEN 9 THEN '200' 
129886                 WHEN 10 THEN '200' 
129887                 WHEN 11 THEN '200' 
129888                 WHEN 12 THEN '200' 
129889                 WHEN 13 THEN '200' 
129890                 WHEN 14 THEN '200' 
129891                 WHEN 15 THEN '200' 
129892                 WHEN 16 THEN '200' 
129893                 WHEN 17 THEN '200' 
129894                 WHEN 18 THEN '200' 
129895                 WHEN 19 THEN '200' 
129896                 WHEN 20 THEN '200' 
129897                 WHEN 21 THEN '200' 
129898                 WHEN 22 THEN '200' 
129899                 WHEN 23 THEN '200' 
129900                 WHEN 24 THEN '200' 
129901                 WHEN 25 THEN '200' 
129902                 WHEN 26 THEN '200' 
129903                 WHEN 27 THEN '200' 
129904                 WHEN 28 THEN '200' 
129905                 WHEN 29 THEN '200' 
129906                 WHEN 30 THEN '200' 
129907                 WHEN 31 THEN '200' 
129908                 WHEN 32 THEN '200' 
129909                 WHEN 33 THEN '200' 
129910                 WHEN 34 THEN '200' 
129911                 WHEN 35 THEN '200' 
129912                 WHEN 36 THEN '200' 
129913                 WHEN 37 THEN '200' 
129914                 WHEN 38 THEN '200' 
129915                 WHEN 39 THEN '200' 
129916                 WHEN 40 THEN '200' 
129917                 WHEN 41 THEN '200' 
129918                 WHEN 42 THEN '200' 
129919                 WHEN 43 THEN '200' 
129920                 WHEN 44 THEN '200' 
129921                 WHEN 45 THEN '200' 
129922                 WHEN 46 THEN '200' 
129923                 WHEN 47 THEN '200' 
129927                 WHEN 51 THEN '200' 
129924                 WHEN 48 THEN '200' 
129925                 WHEN 49 THEN '200' 
129926                 WHEN 50 THEN '200' 
129928                 WHEN 52 THEN '200' 
129929                 WHEN 53 THEN '200' 
129930                 WHEN 54 THEN '200' 
129931                 WHEN 55 THEN '200' 
129932                 WHEN 56 THEN '200' 
129933                 WHEN 57 THEN '200' 
129934                 WHEN 58 THEN '200' 
129935                 WHEN 59 THEN '200' 
129936                 WHEN 60 THEN '200' 
129937                 WHEN 61 THEN '200' 
129938                 WHEN 62 THEN '200' 
129939                 WHEN 63 THEN '200' 
129940                 
129941                 ELSE null
129942               END                           source_application_id
129943             , 'S'             source_type_code
129944             , CASE r
129945                 WHEN 1 THEN 'INV_DIST_BASE_AMOUNT' 
129946                 WHEN 2 THEN 'RELATED_INV_DIST_DEST_TYPE' 
129947                 WHEN 3 THEN 'AID_DIST_CCID' 
129948                 WHEN 4 THEN 'AID_RET_RELATED_DIST_CCID' 
129949                 WHEN 5 THEN 'RECP_INV_DIST_CCID' 
129950                 WHEN 6 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
129951                 WHEN 7 THEN 'BUS_FLOW_AP_APP_ID' 
129952                 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE' 
129953                 WHEN 9 THEN 'POH_RATE_DATE' 
129954                 WHEN 10 THEN 'POH_RATE' 
129955                 WHEN 11 THEN 'POH_RATE_TYPE' 
129956                 WHEN 12 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
129957                 WHEN 13 THEN 'TAX_LINE_ID' 
129958                 WHEN 14 THEN 'SUMMARY_TAX_LINE_ID' 
129959                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_TYPE' 
129960                 WHEN 16 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
129961                 WHEN 17 THEN 'REC_NREC_TAX_DIST_ID' 
129962                 WHEN 18 THEN 'APAD_DIST_LOOKUP_CODE' 
129963                 WHEN 19 THEN 'RECP_INV_DIST_TYPE' 
129964                 WHEN 20 THEN 'APAD_DISTRIBUTION_IDENTIFIER' 
129965                 WHEN 21 THEN 'BF_ACCRUAL_PREPAY_DIST_TYPE' 
129966                 WHEN 22 THEN 'BF_ACCRUAL_PREPAY_ENTITY_CODE' 
129967                 WHEN 23 THEN 'BF_ACCRUAL_PP_DIST_ID' 
129968                 WHEN 24 THEN 'BF_ACCRUAL_PP_INV' 
129969                 WHEN 25 THEN 'UPG_ENC_CR_ACCT_CLASS' 
129970                 WHEN 26 THEN 'UPG_ENC_CR_CCID' 
129971                 WHEN 27 THEN 'UPG_ENC_CR_AMT' 
129972                 WHEN 28 THEN 'UPG_ENC_CR_BASE_AMT' 
129973                 WHEN 29 THEN 'UPG_ENC_DR_ACCT_CLASS' 
129974                 WHEN 30 THEN 'UPG_ENC_DR_CCID' 
129975                 WHEN 31 THEN 'UPG_ENC_DR_AMT' 
129976                 WHEN 32 THEN 'UPG_ENC_DR_BASE_AMT' 
129977                 WHEN 33 THEN 'UPG_AP_ENCUM_OPTION' 
129978                 WHEN 34 THEN 'APAD_AMOUNT' 
129979                 WHEN 35 THEN 'PREPAY_CLEAR_CURRENCY_CODE' 
129980                 WHEN 36 THEN 'BASE_AMT_AT_PP_CLR_XRATE' 
129981                 WHEN 37 THEN 'DEFERRED_END_DATE' 
129982                 WHEN 38 THEN 'DEFERRED_OPTION' 
129983                 WHEN 39 THEN 'DEFERRED_START_DATE' 
129984                 WHEN 40 THEN 'REVERSED_PREPAY_APP_DIST_ID' 
129985                 WHEN 41 THEN 'UPG_CR_ENC_TYPE_ID' 
129986                 WHEN 42 THEN 'UPG_DR_ENC_TYPE_ID' 
129987                 WHEN 43 THEN 'PREPAY_PAY_CURRENCY_CODE' 
129988                 WHEN 44 THEN 'BASE_AMT_AT_PP_PAY_XRATE' 
129989                 WHEN 45 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
129990                 WHEN 46 THEN 'AID_ENCUMBERED_FLAG' 
129991                 WHEN 47 THEN 'APAD_PREPAY_CLR_XDATE' 
129992                 WHEN 48 THEN 'APAD_PREPAY_CLR_XRATE' 
129993                 WHEN 49 THEN 'APAD_PREPAY_CLR_XRATE_TYPE' 
129994                 WHEN 50 THEN 'APAD_PREPAY_PAY_XDATE' 
129995                 WHEN 51 THEN 'APAD_PREPAY_PAY_XRATE' 
129996                 WHEN 52 THEN 'APAD_PREPAY_PAY_XRATE_TYPE' 
129997                 WHEN 53 THEN 'BF_CASHCLEARONLY_PP_DIST_TYPE' 
129998                 WHEN 54 THEN 'BF_CASHCLEARONLY_PREPAY_ENTITY' 
129999                 WHEN 55 THEN 'BF_CASHCLEAR_PP_CLEAR_DIST_ID' 
130000                 WHEN 56 THEN 'BF_CASHALWAYS_PP_PMT_ID' 
130001                 WHEN 57 THEN 'BF_CASH_ALWAYS_PP_DIST_TYPE' 
130002                 WHEN 58 THEN 'BF_CASH_ALWAYS_PREPAY_ENTITY' 
130003                 WHEN 59 THEN 'BF_CASHALWAYS_PP_PMT_DIST_ID' 
130004                 WHEN 60 THEN 'APAD_BASE_AMOUNT' 
130005                 WHEN 61 THEN 'AI_RECIPIENT_INV_TYPE' 
130006                 WHEN 62 THEN 'BF_RET_DIST_ASSOC_TO_PP_RECIP' 
130007                 WHEN 63 THEN 'BF_RET_INV_ASSOC_TO_PP_RECIP' 
130008                 
130009                 ELSE null
130010               END                           source_code
130011             , CASE r
130012                 WHEN 1 THEN TO_CHAR(l3.INV_DIST_BASE_AMOUNT)
130013                 WHEN 2 THEN TO_CHAR(l3.RELATED_INV_DIST_DEST_TYPE)
130014                 WHEN 3 THEN TO_CHAR(l3.AID_DIST_CCID)
130015                 WHEN 4 THEN TO_CHAR(l3.AID_RET_RELATED_DIST_CCID)
130016                 WHEN 5 THEN TO_CHAR(l3.RECP_INV_DIST_CCID)
130017                 WHEN 6 THEN TO_CHAR(l3.DIST_ACCOUNT_REVERSAL_OPTION)
130018                 WHEN 7 THEN TO_CHAR(l3.BUS_FLOW_AP_APP_ID)
130019                 WHEN 8 THEN TO_CHAR(l3.DISTRIBUTION_LINK_TYPE)
130020                 WHEN 9 THEN TO_CHAR(l2.POH_RATE_DATE)
130021                 WHEN 10 THEN TO_CHAR(l2.POH_RATE)
130022                 WHEN 11 THEN TO_CHAR(l2.POH_RATE_TYPE)
130023                 WHEN 12 THEN TO_CHAR(l3.OVERRIDE_ACCTD_AMT_FLAG)
130024                 WHEN 13 THEN TO_CHAR(l5.TAX_LINE_ID)
130025                 WHEN 14 THEN TO_CHAR(l3.SUMMARY_TAX_LINE_ID)
130029                 WHEN 18 THEN TO_CHAR(l3.APAD_DIST_LOOKUP_CODE)
130026                 WHEN 15 THEN TO_CHAR(l3.BUS_FLOW_INV_DIST_TYPE)
130027                 WHEN 16 THEN TO_CHAR(l3.BUS_FLOW_INV_ENTITY_CODE)
130028                 WHEN 17 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
130030                 WHEN 19 THEN TO_CHAR(l3.RECP_INV_DIST_TYPE)
130031                 WHEN 20 THEN TO_CHAR(l3.APAD_DISTRIBUTION_IDENTIFIER)
130032                 WHEN 21 THEN TO_CHAR(l3.BF_ACCRUAL_PREPAY_DIST_TYPE)
130033                 WHEN 22 THEN TO_CHAR(l3.BF_ACCRUAL_PREPAY_ENTITY_CODE)
130034                 WHEN 23 THEN TO_CHAR(l3.BF_ACCRUAL_PP_DIST_ID)
130035                 WHEN 24 THEN TO_CHAR(l3.BF_ACCRUAL_PP_INV)
130036                 WHEN 25 THEN TO_CHAR(l3.UPG_ENC_CR_ACCT_CLASS)
130037                 WHEN 26 THEN TO_CHAR(l3.UPG_ENC_CR_CCID)
130038                 WHEN 27 THEN TO_CHAR(l3.UPG_ENC_CR_AMT)
130039                 WHEN 28 THEN TO_CHAR(l3.UPG_ENC_CR_BASE_AMT)
130040                 WHEN 29 THEN TO_CHAR(l3.UPG_ENC_DR_ACCT_CLASS)
130041                 WHEN 30 THEN TO_CHAR(l3.UPG_ENC_DR_CCID)
130042                 WHEN 31 THEN TO_CHAR(l3.UPG_ENC_DR_AMT)
130043                 WHEN 32 THEN TO_CHAR(l3.UPG_ENC_DR_BASE_AMT)
130044                 WHEN 33 THEN TO_CHAR(l3.UPG_AP_ENCUM_OPTION)
130045                 WHEN 34 THEN TO_CHAR(l3.APAD_AMOUNT)
130046                 WHEN 35 THEN TO_CHAR(l3.PREPAY_CLEAR_CURRENCY_CODE)
130047                 WHEN 36 THEN TO_CHAR(l3.BASE_AMT_AT_PP_CLR_XRATE)
130048                 WHEN 37 THEN TO_CHAR(l3.DEFERRED_END_DATE)
130049                 WHEN 38 THEN TO_CHAR(l3.DEFERRED_OPTION)
130050                 WHEN 39 THEN TO_CHAR(l3.DEFERRED_START_DATE)
130051                 WHEN 40 THEN TO_CHAR(l3.REVERSED_PREPAY_APP_DIST_ID)
130052                 WHEN 41 THEN TO_CHAR(l3.UPG_CR_ENC_TYPE_ID)
130053                 WHEN 42 THEN TO_CHAR(l3.UPG_DR_ENC_TYPE_ID)
130054                 WHEN 43 THEN TO_CHAR(l3.PREPAY_PAY_CURRENCY_CODE)
130055                 WHEN 44 THEN TO_CHAR(l3.BASE_AMT_AT_PP_PAY_XRATE)
130056                 WHEN 45 THEN TO_CHAR(l3.POD_ACCRUE_ON_RECEIPT_FLAG)
130057                 WHEN 46 THEN TO_CHAR(l3.AID_ENCUMBERED_FLAG)
130058                 WHEN 47 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XDATE)
130059                 WHEN 48 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XRATE)
130060                 WHEN 49 THEN TO_CHAR(l3.APAD_PREPAY_CLR_XRATE_TYPE)
130061                 WHEN 50 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XDATE)
130062                 WHEN 51 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XRATE)
130063                 WHEN 52 THEN TO_CHAR(l3.APAD_PREPAY_PAY_XRATE_TYPE)
130064                 WHEN 53 THEN TO_CHAR(l3.BF_CASHCLEARONLY_PP_DIST_TYPE)
130065                 WHEN 54 THEN TO_CHAR(l3.BF_CASHCLEARONLY_PREPAY_ENTITY)
130066                 WHEN 55 THEN TO_CHAR(l3.BF_CASHCLEAR_PP_CLEAR_DIST_ID)
130067                 WHEN 56 THEN TO_CHAR(l3.BF_CASHALWAYS_PP_PMT_ID)
130068                 WHEN 57 THEN TO_CHAR(l3.BF_CASH_ALWAYS_PP_DIST_TYPE)
130069                 WHEN 58 THEN TO_CHAR(l3.BF_CASH_ALWAYS_PREPAY_ENTITY)
130070                 WHEN 59 THEN TO_CHAR(l3.BF_CASHALWAYS_PP_PMT_DIST_ID)
130071                 WHEN 60 THEN TO_CHAR(l3.APAD_BASE_AMOUNT)
130072                 WHEN 61 THEN TO_CHAR(l3.AI_RECIPIENT_INV_TYPE)
130073                 WHEN 62 THEN TO_CHAR(l3.BF_RET_DIST_ASSOC_TO_PP_RECIP)
130074                 WHEN 63 THEN TO_CHAR(l3.BF_RET_INV_ASSOC_TO_PP_RECIP)
130075                 
130076                 ELSE null
130077               END                           source_value
130078             , CASE r
130079                 WHEN 2 THEN fvl7.meaning
130080                 WHEN 12 THEN fvl53.meaning
130081                 WHEN 19 THEN fvl68.meaning
130082                 WHEN 45 THEN fvl100.meaning
130083                 WHEN 46 THEN fvl104.meaning
130084                 WHEN 61 THEN fvl144.meaning
130085                 
130086                 ELSE null
130087               END               source_meaning
130088          FROM  xla_events_gt     xet  
130089         , AP_PO_HEADERS_EXTRACT_V  l2
130090         , AP_PREPAYAPP_EXTRACT_DETAILS_V  l3
130091         , ZX_AP_DEF_TAX_EXTRACT_V  l5
130092         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
130093   , fnd_lookup_values    fvl7
130094   , fnd_lookup_values    fvl53
130095   , fnd_lookup_values    fvl68
130096   , fnd_lookup_values    fvl100
130097   , fnd_lookup_values    fvl104
130098   , fnd_lookup_values    fvl144
130099             , (select rownum r from all_objects where rownum <= 63 and owner = p_apps_owner)
130100         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
130101           AND xet.event_class_code = C_EVENT_CLASS_CODE
130102             AND l3.event_id          = xet.event_id
130103  AND l3.pod_po_header_id  = l2.po_header_id (+)  AND l3.recp_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l3.recp_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl7.lookup_type(+)         = 'DESTINATION TYPE'
130104   AND fvl7.lookup_code(+)         = l3.RELATED_INV_DIST_DEST_TYPE
130105   AND fvl7.view_application_id(+) = 201
130106   AND fvl7.language(+)            = USERENV('LANG')
130107      AND fvl53.lookup_type(+)         = 'YES_NO'
130108   AND fvl53.lookup_code(+)         = l3.OVERRIDE_ACCTD_AMT_FLAG
130109   AND fvl53.view_application_id(+) = 0
130110   AND fvl53.language(+)            = USERENV('LANG')
130111      AND fvl68.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
130112   AND fvl68.lookup_code(+)         = l3.RECP_INV_DIST_TYPE
130113   AND fvl68.view_application_id(+) = 200
130114   AND fvl68.language(+)            = USERENV('LANG')
130115      AND fvl100.lookup_type(+)         = 'YES_NO'
130116   AND fvl100.lookup_code(+)         = l3.POD_ACCRUE_ON_RECEIPT_FLAG
130120   AND fvl104.lookup_code(+)         = l3.AID_ENCUMBERED_FLAG
130117   AND fvl100.view_application_id(+) = 0
130118   AND fvl100.language(+)            = USERENV('LANG')
130119      AND fvl104.lookup_type(+)         = 'YES_NO'
130121   AND fvl104.view_application_id(+) = 0
130122   AND fvl104.language(+)            = USERENV('LANG')
130123      AND fvl144.lookup_type(+)         = 'INVOICE TYPE'
130124   AND fvl144.lookup_code(+)         = l3.AI_RECIPIENT_INV_TYPE
130125   AND fvl144.view_application_id(+) = 200
130126   AND fvl144.language(+)            = USERENV('LANG')
130127   
130128 )
130129 ;
130130 --
130131 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
130132 
130133       trace
130134          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
130135          ,p_level    => C_LEVEL_STATEMENT
130136          ,p_module   => l_log_module);
130137 
130138 END IF;
130139 
130140 
130141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130142       trace
130143          (p_msg      => 'END of insert_sources_210'
130144          ,p_level    => C_LEVEL_PROCEDURE
130145          ,p_module   => l_log_module);
130146 END IF;
130147 EXCEPTION
130148   WHEN xla_exceptions_pkg.application_exception THEN
130149       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
130150             trace
130151                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
130152                ,p_level    => C_LEVEL_EXCEPTION
130153                ,p_module   => l_log_module);
130154       END IF;
130155       RAISE;
130156   WHEN OTHERS THEN
130157       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
130158             trace
130159                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
130160                ,p_level    => C_LEVEL_EXCEPTION
130161                ,p_module   => l_log_module);
130162        END IF;
130163        xla_exceptions_pkg.raise_message
130164            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_210');
130165 END insert_sources_210;
130166 --
130167 
130168 ---------------------------------------
130169 --
130170 -- PRIVATE FUNCTION
130171 --         EventClass_210
130172 --
130173 ----------------------------------------
130174 --
130175 FUNCTION EventClass_210
130176        (p_application_id         IN NUMBER
130177        ,p_base_ledger_id         IN NUMBER
130178        ,p_target_ledger_id       IN NUMBER
130179        ,p_language               IN VARCHAR2
130180        ,p_currency_code          IN VARCHAR2
130181        ,p_sla_ledger_id          IN NUMBER
130182        ,p_pad_start_date         IN DATE
130183        ,p_pad_end_date           IN DATE
130184        ,p_primary_ledger_id      IN NUMBER)
130185 RETURN BOOLEAN IS
130186 --
130187 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
130188 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
130189 
130190 l_calculate_acctd_flag   VARCHAR2(1) :='N';
130191 l_calculate_g_l_flag     VARCHAR2(1) :='N';
130192 --
130193 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130194 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130195 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
130196 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130197 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130198 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
130199 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
130200 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130201 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130202 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130203 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130204 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130205 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130206 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
130207 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130208 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130209 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130210 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
130211 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130212 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130213 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130214 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
130215 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
130216 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
130217 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
130218 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
130219 
130220 l_event_id                             NUMBER;
130221 l_previous_event_id                    NUMBER;
130222 l_first_event_id                       NUMBER;
130223 l_last_event_id                        NUMBER;
130224 
130225 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
130226 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
130227 --
130228 --
130229 l_result                    BOOLEAN := TRUE;
130233 l_description               VARCHAR2(4000);
130230 l_rows                      NUMBER  := 1000;
130231 l_event_type_name           VARCHAR2(80) := 'All';
130232 l_event_class_name          VARCHAR2(80) := 'Prepayment Applications';
130234 l_transaction_reversal      NUMBER;
130235 l_ae_header_id              NUMBER;
130236 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
130237 l_log_module                VARCHAR2(240);
130238 --
130239 l_acct_reversal_source      VARCHAR2(30);
130240 l_trx_reversal_source       VARCHAR2(30);
130241 
130242 l_continue_with_lines       BOOLEAN := TRUE;
130243 --
130244 l_acc_rev_gl_date_source    DATE;                      -- 4262811
130245 --
130246 type t_array_event_id is table of number index by binary_integer;
130247 
130248 l_rec_array_event                    t_rec_array_event;
130249 l_null_rec_array_event               t_rec_array_event;
130250 l_array_ae_header_id                 xla_number_array_type;
130251 l_actual_flag                        VARCHAR2(1) := NULL;
130252 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
130253 l_balance_type_code                  VARCHAR2(1) :=NULL;
130254 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
130255 
130256 --
130257 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
130258 --
130259 
130260 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
130261 TYPE t_array_source_5 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
130262 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
130263 TYPE t_array_source_22 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
130264 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
130265 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
130266 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
130267 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
130268 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
130269 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
130270 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
130271 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
130272 TYPE t_array_source_102 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
130273 TYPE t_array_source_124 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
130274 TYPE t_array_source_125 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
130275 TYPE t_array_source_126 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
130276 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
130277 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
130278 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
130279 
130280 TYPE t_array_source_6 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
130281 TYPE t_array_source_7 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130282 TYPE t_array_source_17 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
130283 TYPE t_array_source_23 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
130284 TYPE t_array_source_36 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RECP_INV_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
130285 TYPE t_array_source_40 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
130286 TYPE t_array_source_42 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
130287 TYPE t_array_source_48 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
130288 TYPE t_array_source_50 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
130289 TYPE t_array_source_51 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
130290 TYPE t_array_source_52 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
130291 TYPE t_array_source_53 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
130292 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
130293 TYPE t_array_source_59 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
130294 TYPE t_array_source_62 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130295 TYPE t_array_source_63 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
130296 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130297 TYPE t_array_source_67 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
130301 TYPE t_array_source_74 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
130298 TYPE t_array_source_68 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.RECP_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130299 TYPE t_array_source_71 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
130300 TYPE t_array_source_73 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130302 TYPE t_array_source_75 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130303 TYPE t_array_source_76 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_INV%TYPE INDEX BY BINARY_INTEGER;
130304 TYPE t_array_source_77 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
130305 TYPE t_array_source_78 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
130306 TYPE t_array_source_79 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
130307 TYPE t_array_source_81 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
130308 TYPE t_array_source_82 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
130309 TYPE t_array_source_83 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
130310 TYPE t_array_source_84 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
130311 TYPE t_array_source_85 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
130312 TYPE t_array_source_86 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
130313 TYPE t_array_source_87 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
130314 TYPE t_array_source_88 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.PREPAY_CLEAR_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
130315 TYPE t_array_source_89 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_CLR_XRATE%TYPE INDEX BY BINARY_INTEGER;
130316 TYPE t_array_source_90 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
130317 TYPE t_array_source_91 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
130318 TYPE t_array_source_92 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
130319 TYPE t_array_source_95 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.REVERSED_PREPAY_APP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130320 TYPE t_array_source_96 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
130321 TYPE t_array_source_97 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
130322 TYPE t_array_source_98 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.PREPAY_PAY_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
130323 TYPE t_array_source_99 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
130324 TYPE t_array_source_100 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
130325 TYPE t_array_source_104 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
130326 TYPE t_array_source_118 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XDATE%TYPE INDEX BY BINARY_INTEGER;
130327 TYPE t_array_source_119 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XRATE%TYPE INDEX BY BINARY_INTEGER;
130328 TYPE t_array_source_120 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_CLR_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
130329 TYPE t_array_source_121 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XDATE%TYPE INDEX BY BINARY_INTEGER;
130330 TYPE t_array_source_122 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
130331 TYPE t_array_source_123 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_PREPAY_PAY_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
130332 TYPE t_array_source_134 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEARONLY_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130333 TYPE t_array_source_135 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEARONLY_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
130334 TYPE t_array_source_136 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHCLEAR_PP_CLEAR_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130335 TYPE t_array_source_137 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_ID%TYPE INDEX BY BINARY_INTEGER;
130336 TYPE t_array_source_138 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
130337 TYPE t_array_source_139 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
130338 TYPE t_array_source_140 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
130339 TYPE t_array_source_141 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
130340 TYPE t_array_source_144 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AI_RECIPIENT_INV_TYPE%TYPE INDEX BY BINARY_INTEGER;
130341 TYPE t_array_source_145 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_RET_DIST_ASSOC_TO_PP_RECIP%TYPE INDEX BY BINARY_INTEGER;
130342 TYPE t_array_source_146 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_RET_INV_ASSOC_TO_PP_RECIP%TYPE INDEX BY BINARY_INTEGER;
130343 
130344 l_array_source_4              t_array_source_4;
130345 l_array_source_4_meaning      t_array_lookup_meaning;
130346 l_array_source_5              t_array_source_5;
130347 l_array_source_8              t_array_source_8;
130348 l_array_source_22              t_array_source_22;
130349 l_array_source_30              t_array_source_30;
130350 l_array_source_30_meaning      t_array_lookup_meaning;
130354 l_array_source_72              t_array_source_72;
130351 l_array_source_37              t_array_source_37;
130352 l_array_source_38              t_array_source_38;
130353 l_array_source_56              t_array_source_56;
130355 l_array_source_80              t_array_source_80;
130356 l_array_source_93              t_array_source_93;
130357 l_array_source_94              t_array_source_94;
130358 l_array_source_102              t_array_source_102;
130359 l_array_source_102_meaning      t_array_lookup_meaning;
130360 l_array_source_124              t_array_source_124;
130361 l_array_source_125              t_array_source_125;
130362 l_array_source_126              t_array_source_126;
130363 l_array_source_152              t_array_source_152;
130364 l_array_source_153              t_array_source_153;
130365 l_array_source_154              t_array_source_154;
130366 
130367 l_array_source_6      t_array_source_6;
130368 l_array_source_7      t_array_source_7;
130369 l_array_source_7_meaning      t_array_lookup_meaning;
130370 l_array_source_17      t_array_source_17;
130371 l_array_source_23      t_array_source_23;
130372 l_array_source_36      t_array_source_36;
130373 l_array_source_40      t_array_source_40;
130374 l_array_source_42      t_array_source_42;
130375 l_array_source_48      t_array_source_48;
130376 l_array_source_50      t_array_source_50;
130377 l_array_source_51      t_array_source_51;
130378 l_array_source_52      t_array_source_52;
130379 l_array_source_53      t_array_source_53;
130380 l_array_source_53_meaning      t_array_lookup_meaning;
130381 l_array_source_58      t_array_source_58;
130382 l_array_source_59      t_array_source_59;
130383 l_array_source_62      t_array_source_62;
130384 l_array_source_63      t_array_source_63;
130385 l_array_source_66      t_array_source_66;
130386 l_array_source_67      t_array_source_67;
130387 l_array_source_68      t_array_source_68;
130388 l_array_source_68_meaning      t_array_lookup_meaning;
130389 l_array_source_71      t_array_source_71;
130390 l_array_source_73      t_array_source_73;
130391 l_array_source_74      t_array_source_74;
130392 l_array_source_75      t_array_source_75;
130393 l_array_source_76      t_array_source_76;
130394 l_array_source_77      t_array_source_77;
130395 l_array_source_78      t_array_source_78;
130396 l_array_source_79      t_array_source_79;
130397 l_array_source_81      t_array_source_81;
130398 l_array_source_82      t_array_source_82;
130399 l_array_source_83      t_array_source_83;
130400 l_array_source_84      t_array_source_84;
130401 l_array_source_85      t_array_source_85;
130402 l_array_source_86      t_array_source_86;
130403 l_array_source_87      t_array_source_87;
130404 l_array_source_88      t_array_source_88;
130405 l_array_source_89      t_array_source_89;
130406 l_array_source_90      t_array_source_90;
130407 l_array_source_91      t_array_source_91;
130408 l_array_source_92      t_array_source_92;
130409 l_array_source_95      t_array_source_95;
130410 l_array_source_96      t_array_source_96;
130411 l_array_source_97      t_array_source_97;
130412 l_array_source_98      t_array_source_98;
130413 l_array_source_99      t_array_source_99;
130414 l_array_source_100      t_array_source_100;
130415 l_array_source_100_meaning      t_array_lookup_meaning;
130416 l_array_source_104      t_array_source_104;
130417 l_array_source_104_meaning      t_array_lookup_meaning;
130418 l_array_source_118      t_array_source_118;
130419 l_array_source_119      t_array_source_119;
130420 l_array_source_120      t_array_source_120;
130421 l_array_source_121      t_array_source_121;
130422 l_array_source_122      t_array_source_122;
130423 l_array_source_123      t_array_source_123;
130424 l_array_source_134      t_array_source_134;
130425 l_array_source_135      t_array_source_135;
130426 l_array_source_136      t_array_source_136;
130427 l_array_source_137      t_array_source_137;
130428 l_array_source_138      t_array_source_138;
130429 l_array_source_139      t_array_source_139;
130430 l_array_source_140      t_array_source_140;
130431 l_array_source_141      t_array_source_141;
130432 l_array_source_144      t_array_source_144;
130433 l_array_source_144_meaning      t_array_lookup_meaning;
130434 l_array_source_145      t_array_source_145;
130435 l_array_source_146      t_array_source_146;
130436 
130437 --
130438 CURSOR header_cur
130439 IS
130440 SELECT /*+ leading(xet) cardinality(xet,1) */
130441 -- Event Class Code: PREPAYMENT APPLICATIONS
130442     xet.entity_id
130443    ,xet.legal_entity_id
130444    ,xet.entity_code
130445    ,xet.transaction_number
130446    ,xet.event_id
130447    ,xet.event_class_code
130448    ,xet.event_type_code
130449    ,xet.event_number
130450    ,xet.event_date
130451    ,xet.transaction_date
130452    ,xet.reference_num_1
130453    ,xet.reference_num_2
130454    ,xet.reference_num_3
130455    ,xet.reference_num_4
130456    ,xet.reference_char_1
130457    ,xet.reference_char_2
130458    ,xet.reference_char_3
130459    ,xet.reference_char_4
130460    ,xet.reference_date_1
130461    ,xet.reference_date_2
130462    ,xet.reference_date_3
130463    ,xet.reference_date_4
130464    ,xet.event_created_by
130465    ,xet.budgetary_control_flag 
130466   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_4
130467   , fvl4.meaning   source_4_meaning
130468   , h4.ASP_RATE_VAR_GAIN_CCID    source_5
130469   , h4.ASP_RATE_VAR_LOSS_CCID    source_8
130470   , h4.FSP_RETAINAGE_ACCOUNT    source_22
130471   , h4.ASP_AUTO_OFFSET_FLAG    source_30
130472   , fvl30.meaning   source_30_meaning
130473   , h4.ASP_ROUNDING_ERROR_CCID    source_37
130477   , h1.AI_INVOICE_CURRENCY_CODE    source_80
130474   , h4.ASP_WHEN_TO_ACCOUNT_PMT    source_38
130475   , h1.THIRD_PARTY_TYPE    source_56
130476   , h1.AI_INVOICE_ID    source_72
130478   , h1.AI_VENDOR_ID    source_93
130479   , h1.AI_VENDOR_SITE_ID    source_94
130480   , h4.FSP_PURCH_ENCUMBRANCE_FLAG    source_102
130481   , fvl102.meaning   source_102_meaning
130482   , h1.INV_EXCHANGE_DATE    source_124
130483   , h1.INV_EXCHANGE_RATE    source_125
130484   , h1.INV_EXCHANGE_RATE_TYPE    source_126
130485   , h1.INV_DOC_SEQUENCE_CATEGORY    source_152
130486   , h1.INV_DOC_SEQUENCE_IDENTIFIER    source_153
130487   , h1.INV_DOC_SEQUENCE_VALUE    source_154
130488   FROM xla_events_gt     xet 
130489   , AP_INVOICE_EXTRACT_HEADER_V  h1
130490   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
130491   , fnd_lookup_values    fvl4
130492   , fnd_lookup_values    fvl30
130493   , fnd_lookup_values    fvl102
130494  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
130495    and xet.event_class_code = C_EVENT_CLASS_CODE
130496    and xet.event_status_code <> 'N'  AND h1.event_id = xet.event_id
130497  AND h4.asp_org_id = h1.ai_org_id   AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
130498   AND fvl4.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
130499   AND fvl4.view_application_id(+) = 200
130500   AND fvl4.language(+)            = USERENV('LANG')
130501      AND fvl30.lookup_type(+)         = 'YES_NO'
130502   AND fvl30.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
130503   AND fvl30.view_application_id(+) = 0
130504   AND fvl30.language(+)            = USERENV('LANG')
130505      AND fvl102.lookup_type(+)         = 'YES_NO'
130506   AND fvl102.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
130507   AND fvl102.view_application_id(+) = 0
130508   AND fvl102.language(+)            = USERENV('LANG')
130509   
130510  ORDER BY event_id
130511 ;
130512 
130513 
130514 --
130515 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
130516 IS
130517 SELECT  /*+ leading(xet) cardinality(xet,1) */
130518 -- Event Class Code: PREPAYMENT APPLICATIONS
130519     xet.entity_id
130520    ,xet.legal_entity_id
130521    ,xet.entity_code
130522    ,xet.transaction_number
130523    ,xet.event_id
130524    ,xet.event_class_code
130525    ,xet.event_type_code
130526    ,xet.event_number
130527    ,xet.event_date
130528    ,xet.transaction_date
130529    ,xet.reference_num_1
130530    ,xet.reference_num_2
130531    ,xet.reference_num_3
130532    ,xet.reference_num_4
130533    ,xet.reference_char_1
130534    ,xet.reference_char_2
130535    ,xet.reference_char_3
130536    ,xet.reference_char_4
130537    ,xet.reference_date_1
130538    ,xet.reference_date_2
130539    ,xet.reference_date_3
130540    ,xet.reference_date_4
130541    ,xet.event_created_by
130542    ,xet.budgetary_control_flag
130543  , l3.LINE_NUMBER  
130544   , l3.INV_DIST_BASE_AMOUNT    source_6
130545   , l3.RELATED_INV_DIST_DEST_TYPE    source_7
130546   , fvl7.meaning   source_7_meaning
130547   , l3.AID_DIST_CCID    source_17
130548   , l3.AID_RET_RELATED_DIST_CCID    source_23
130549   , l3.RECP_INV_DIST_CCID    source_36
130550   , l3.DIST_ACCOUNT_REVERSAL_OPTION    source_40
130551   , l3.BUS_FLOW_AP_APP_ID    source_42
130552   , l3.DISTRIBUTION_LINK_TYPE    source_48
130553   , l2.POH_RATE_DATE    source_50
130554   , l2.POH_RATE    source_51
130555   , l2.POH_RATE_TYPE    source_52
130556   , l3.OVERRIDE_ACCTD_AMT_FLAG    source_53
130557   , fvl53.meaning   source_53_meaning
130558   , l5.TAX_LINE_ID    source_58
130559   , l3.SUMMARY_TAX_LINE_ID    source_59
130560   , l3.BUS_FLOW_INV_DIST_TYPE    source_62
130561   , l3.BUS_FLOW_INV_ENTITY_CODE    source_63
130562   , l6.REC_NREC_TAX_DIST_ID    source_66
130563   , l3.APAD_DIST_LOOKUP_CODE    source_67
130564   , l3.RECP_INV_DIST_TYPE    source_68
130565   , fvl68.meaning   source_68_meaning
130566   , l3.APAD_DISTRIBUTION_IDENTIFIER    source_71
130567   , l3.BF_ACCRUAL_PREPAY_DIST_TYPE    source_73
130568   , l3.BF_ACCRUAL_PREPAY_ENTITY_CODE    source_74
130569   , l3.BF_ACCRUAL_PP_DIST_ID    source_75
130570   , l3.BF_ACCRUAL_PP_INV    source_76
130571   , l3.UPG_ENC_CR_ACCT_CLASS    source_77
130572   , l3.UPG_ENC_CR_CCID    source_78
130573   , l3.UPG_ENC_CR_AMT    source_79
130574   , l3.UPG_ENC_CR_BASE_AMT    source_81
130575   , l3.UPG_ENC_DR_ACCT_CLASS    source_82
130576   , l3.UPG_ENC_DR_CCID    source_83
130577   , l3.UPG_ENC_DR_AMT    source_84
130578   , l3.UPG_ENC_DR_BASE_AMT    source_85
130579   , l3.UPG_AP_ENCUM_OPTION    source_86
130580   , l3.APAD_AMOUNT    source_87
130581   , l3.PREPAY_CLEAR_CURRENCY_CODE    source_88
130582   , l3.BASE_AMT_AT_PP_CLR_XRATE    source_89
130583   , l3.DEFERRED_END_DATE    source_90
130584   , l3.DEFERRED_OPTION    source_91
130585   , l3.DEFERRED_START_DATE    source_92
130586   , l3.REVERSED_PREPAY_APP_DIST_ID    source_95
130587   , l3.UPG_CR_ENC_TYPE_ID    source_96
130588   , l3.UPG_DR_ENC_TYPE_ID    source_97
130589   , l3.PREPAY_PAY_CURRENCY_CODE    source_98
130590   , l3.BASE_AMT_AT_PP_PAY_XRATE    source_99
130591   , l3.POD_ACCRUE_ON_RECEIPT_FLAG    source_100
130592   , fvl100.meaning   source_100_meaning
130593   , l3.AID_ENCUMBERED_FLAG    source_104
130594   , fvl104.meaning   source_104_meaning
130595   , l3.APAD_PREPAY_CLR_XDATE    source_118
130596   , l3.APAD_PREPAY_CLR_XRATE    source_119
130597   , l3.APAD_PREPAY_CLR_XRATE_TYPE    source_120
130598   , l3.APAD_PREPAY_PAY_XDATE    source_121
130599   , l3.APAD_PREPAY_PAY_XRATE    source_122
130603   , l3.BF_CASHCLEAR_PP_CLEAR_DIST_ID    source_136
130600   , l3.APAD_PREPAY_PAY_XRATE_TYPE    source_123
130601   , l3.BF_CASHCLEARONLY_PP_DIST_TYPE    source_134
130602   , l3.BF_CASHCLEARONLY_PREPAY_ENTITY    source_135
130604   , l3.BF_CASHALWAYS_PP_PMT_ID    source_137
130605   , l3.BF_CASH_ALWAYS_PP_DIST_TYPE    source_138
130606   , l3.BF_CASH_ALWAYS_PREPAY_ENTITY    source_139
130607   , l3.BF_CASHALWAYS_PP_PMT_DIST_ID    source_140
130608   , l3.APAD_BASE_AMOUNT    source_141
130609   , l3.AI_RECIPIENT_INV_TYPE    source_144
130610   , fvl144.meaning   source_144_meaning
130611   , l3.BF_RET_DIST_ASSOC_TO_PP_RECIP    source_145
130612   , l3.BF_RET_INV_ASSOC_TO_PP_RECIP    source_146
130613   FROM xla_events_gt     xet 
130614   , AP_PO_HEADERS_EXTRACT_V  l2
130615   , AP_PREPAYAPP_EXTRACT_DETAILS_V  l3
130616   , ZX_AP_DEF_TAX_EXTRACT_V  l5
130617   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
130618   , fnd_lookup_values    fvl7
130619   , fnd_lookup_values    fvl53
130620   , fnd_lookup_values    fvl68
130621   , fnd_lookup_values    fvl100
130622   , fnd_lookup_values    fvl104
130623   , fnd_lookup_values    fvl144
130624  WHERE xet.event_id between x_first_event_id and x_last_event_id
130625    and xet.event_date between p_pad_start_date and p_pad_end_date
130626    and xet.event_class_code = C_EVENT_CLASS_CODE
130627    and xet.event_status_code <> 'N'   AND l3.event_id      = xet.event_id
130628  AND l3.POD_PO_Header_Id  = l2.PO_Header_Id (+)  AND l3.RECP_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)  AND l3.RECP_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl7.lookup_type(+)         = 'DESTINATION TYPE'
130629   AND fvl7.lookup_code(+)         = l3.RELATED_INV_DIST_DEST_TYPE
130630   AND fvl7.view_application_id(+) = 201
130631   AND fvl7.language(+)            = USERENV('LANG')
130632      AND fvl53.lookup_type(+)         = 'YES_NO'
130633   AND fvl53.lookup_code(+)         = l3.OVERRIDE_ACCTD_AMT_FLAG
130634   AND fvl53.view_application_id(+) = 0
130635   AND fvl53.language(+)            = USERENV('LANG')
130636      AND fvl68.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
130637   AND fvl68.lookup_code(+)         = l3.RECP_INV_DIST_TYPE
130638   AND fvl68.view_application_id(+) = 200
130639   AND fvl68.language(+)            = USERENV('LANG')
130640      AND fvl100.lookup_type(+)         = 'YES_NO'
130641   AND fvl100.lookup_code(+)         = l3.POD_ACCRUE_ON_RECEIPT_FLAG
130642   AND fvl100.view_application_id(+) = 0
130643   AND fvl100.language(+)            = USERENV('LANG')
130644      AND fvl104.lookup_type(+)         = 'YES_NO'
130645   AND fvl104.lookup_code(+)         = l3.AID_ENCUMBERED_FLAG
130646   AND fvl104.view_application_id(+) = 0
130647   AND fvl104.language(+)            = USERENV('LANG')
130648      AND fvl144.lookup_type(+)         = 'INVOICE TYPE'
130649   AND fvl144.lookup_code(+)         = l3.AI_RECIPIENT_INV_TYPE
130650   AND fvl144.view_application_id(+) = 200
130651   AND fvl144.language(+)            = USERENV('LANG')
130652   ;
130653 
130654 --
130655 BEGIN
130656 IF g_log_enabled THEN
130657    l_log_module := C_DEFAULT_MODULE||'.EventClass_210';
130658 END IF;
130659 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130660    trace
130661       (p_msg      => 'BEGIN of EventClass_210'
130662       ,p_level    => C_LEVEL_PROCEDURE
130663       ,p_module   => l_log_module);
130664 END IF;
130665 
130666 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
130667    trace
130668       (p_msg      => 'p_application_id = '||p_application_id||
130669                      ' - p_base_ledger_id = '||p_base_ledger_id||
130670                      ' - p_target_ledger_id  = '||p_target_ledger_id||
130671                      ' - p_language = '||p_language||
130672                      ' - p_currency_code = '||p_currency_code||
130673                      ' - p_sla_ledger_id = '||p_sla_ledger_id
130674       ,p_level    => C_LEVEL_STATEMENT
130675       ,p_module   => l_log_module);
130676 END IF;
130677 --
130678 -- initialze arrays
130679 --
130680 g_array_event.DELETE;
130681 l_rec_array_event := l_null_rec_array_event;
130682 --
130683 --------------------------------------
130684 -- 4262811 Initialze MPA Line Number
130685 --------------------------------------
130686 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
130687 
130688 --
130689 
130690 --
130691 OPEN header_cur;
130692 --
130693 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
130694    trace
130695    (p_msg      => 'SQL - FETCH header_cur'
130696    ,p_level    => C_LEVEL_STATEMENT
130697    ,p_module   => l_log_module);
130698 END IF;
130699 --
130700 LOOP
130701 FETCH header_cur BULK COLLECT INTO
130702         l_array_entity_id
130703       , l_array_legal_entity_id
130704       , l_array_entity_code
130705       , l_array_transaction_num
130706       , l_array_event_id
130707       , l_array_class_code
130708       , l_array_event_type
130709       , l_array_event_number
130710       , l_array_event_date
130711       , l_array_transaction_date
130712       , l_array_reference_num_1
130713       , l_array_reference_num_2
130714       , l_array_reference_num_3
130715       , l_array_reference_num_4
130716       , l_array_reference_char_1
130717       , l_array_reference_char_2
130718       , l_array_reference_char_3
130719       , l_array_reference_char_4
130720       , l_array_reference_date_1
130721       , l_array_reference_date_2
130722       , l_array_reference_date_3
130723       , l_array_reference_date_4
130727       , l_array_source_4_meaning
130724       , l_array_event_created_by
130725       , l_array_budgetary_control_flag 
130726       , l_array_source_4
130728       , l_array_source_5
130729       , l_array_source_8
130730       , l_array_source_22
130731       , l_array_source_30
130732       , l_array_source_30_meaning
130733       , l_array_source_37
130734       , l_array_source_38
130735       , l_array_source_56
130736       , l_array_source_72
130737       , l_array_source_80
130738       , l_array_source_93
130739       , l_array_source_94
130740       , l_array_source_102
130741       , l_array_source_102_meaning
130742       , l_array_source_124
130743       , l_array_source_125
130744       , l_array_source_126
130745       , l_array_source_152
130746       , l_array_source_153
130747       , l_array_source_154
130748       LIMIT l_rows;
130749 --
130750 IF (C_LEVEL_EVENT >= g_log_level) THEN
130751    trace
130752    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
130753    ,p_level    => C_LEVEL_EVENT
130754    ,p_module   => l_log_module);
130755 END IF;
130756 --
130757 EXIT WHEN l_array_entity_id.COUNT = 0;
130758 
130759 -- initialize arrays
130760 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
130761 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
130762 
130763 --
130764 -- Bug 4458708
130765 --
130766 XLA_AE_LINES_PKG.g_LineNumber := 0;
130767 
130768 
130769 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
130770 g_last_hdr_idx := l_array_event_id.LAST;
130771 --
130772 -- loop for the headers. Each iteration is for each header extract row
130773 -- fetched in header cursor
130774 --
130775 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
130776 
130777 --
130778 -- set event info as cache for other routines to refer event attributes
130779 --
130780 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
130781    (p_application_id           => p_application_id
130782    ,p_primary_ledger_id        => p_primary_ledger_id
130783    ,p_base_ledger_id           => p_base_ledger_id
130784    ,p_target_ledger_id         => p_target_ledger_id
130785    ,p_entity_id                => l_array_entity_id(hdr_idx)
130786    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
130787    ,p_entity_code              => l_array_entity_code(hdr_idx)
130788    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
130789    ,p_event_id                 => l_array_event_id(hdr_idx)
130790    ,p_event_class_code         => l_array_class_code(hdr_idx)
130791    ,p_event_type_code          => l_array_event_type(hdr_idx)
130792    ,p_event_number             => l_array_event_number(hdr_idx)
130793    ,p_event_date               => l_array_event_date(hdr_idx)
130794    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
130795    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
130796    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
130797    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
130798    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
130799    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
130800    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
130801    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
130802    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
130803    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
130804    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
130805    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
130806    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
130807    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
130808    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
130809 
130810 --
130811 -- set the status of entry to C_VALID (0)
130812 --
130813 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
130814 
130815 --
130816 -- initialize a row for ae header
130817 --
130818 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
130819 
130820 l_event_id := l_array_event_id(hdr_idx);
130821 
130822 --
130823 -- storing the hdr_idx for event. May be used by line cursor.
130824 --
130825 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
130826 
130827 --
130828 -- store sources from header extract. This can be improved to
130829 -- store only those sources from header extract that may be used in lines
130830 --
130831 
130832 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
130833 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
130834 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
130835 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
130836 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
130837 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
130838 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
130839 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
130840 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
130841 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
130845 g_array_event(l_event_id).array_value_num('source_94') := l_array_source_94(hdr_idx);
130842 g_array_event(l_event_id).array_value_num('source_72') := l_array_source_72(hdr_idx);
130843 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
130844 g_array_event(l_event_id).array_value_num('source_93') := l_array_source_93(hdr_idx);
130846 g_array_event(l_event_id).array_value_char('source_102') := l_array_source_102(hdr_idx);
130847 g_array_event(l_event_id).array_value_char('source_102_meaning') := l_array_source_102_meaning(hdr_idx);
130848 g_array_event(l_event_id).array_value_date('source_124') := l_array_source_124(hdr_idx);
130849 g_array_event(l_event_id).array_value_num('source_125') := l_array_source_125(hdr_idx);
130850 g_array_event(l_event_id).array_value_char('source_126') := l_array_source_126(hdr_idx);
130851 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
130852 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
130853 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
130854 
130855 --
130856 -- initilaize the status of ae headers for diffrent balance types
130857 -- the status is initialised to C_NOT_CREATED (2)
130858 --
130859 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
130860 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
130861 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
130862 
130863 --
130864 -- call api to validate and store accounting attributes for header
130865 --
130866 
130867 ------------------------------------------------------------
130868 -- Accrual Reversal : to get date for Standard Source (NONE)
130869 ------------------------------------------------------------
130870 l_acc_rev_gl_date_source := NULL;
130871 
130872      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
130873       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
130874      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
130875       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
130876      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
130877       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
130878      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
130879       l_rec_acct_attrs.array_date_value(4) := 
130880 xla_ae_sources_pkg.GetSystemSourceDate(
130881    p_source_code           => 'XLA_EVENT_DATE'
130882  , p_source_type_code      => 'Y'
130883  , p_source_application_id =>  602
130884 );
130885 
130886 
130887 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
130888 
130889 XLA_AE_HEADER_PKG.SetJeCategoryName;
130890 
130891 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
130892 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
130893 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
130894 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
130895 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
130896 
130897 
130898 -- No header level analytical criteria
130899 
130900 --
130901 --accounting attribute enhancement, bug 3612931
130902 --
130903 l_trx_reversal_source := SUBSTR(NULL, 1,30);
130904 
130905 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
130906    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
130907 
130908    xla_accounting_err_pkg.build_message
130909       (p_appli_s_name            => 'XLA'
130910       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
130911       ,p_token_1                 => 'ACCT_ATTR_NAME'
130912       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
130913       ,p_token_2                 => 'PRODUCT_NAME'
130914       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
130915       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
130916       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
130917       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
130918 
130919 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
130920    --
130921    -- following sets the accounting attributes needed to reverse
130922    -- accounting for a distributeion
130923    --
130924    xla_ae_lines_pkg.SetTrxReversalAttrs
130925       (p_event_id              => l_event_id
130926       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
130927       ,p_trx_reversal_source   => l_trx_reversal_source);
130928 
130929 END IF;
130930 
130931 
130932 ----------------------------------------------------------------
130933 -- 4262811 -  update the header statuses to invalid in need be
130934 ----------------------------------------------------------------
130935 --
130936 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
130937 
130938 
130939   -----------------------------------------------
130940   -- No accrual reversal for the event class/type
130941   -----------------------------------------------
130942 ----------------------------------------------------------------
130943 
130947 END LOOP;
130944 --
130945 -- this ends the header loop iteration for one bulk fetch
130946 --
130948 
130949 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
130950 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
130951 
130952 --
130953 -- insert dummy rows into lines gt table that were created due to
130954 -- transaction reversals
130955 --
130956 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
130957    l_result := XLA_AE_LINES_PKG.InsertLines;
130958 END IF;
130959 
130960 --
130961 -- reset the temp_line_num for each set of events fetched from header
130962 -- cursor rather than doing it for each new event in line cursor
130963 -- Bug 3939231
130964 --
130965 xla_ae_lines_pkg.g_temp_line_num := 0;
130966 
130967 
130968 
130969 --
130970 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
130971 --
130972 --
130973 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
130974 
130975       trace
130976          (p_msg      => 'SQL - FETCH line_cur'
130977          ,p_level    => C_LEVEL_STATEMENT
130978          ,p_module   => l_log_module);
130979 
130980 END IF;
130981 --
130982 --
130983 LOOP
130984   --
130985   FETCH line_cur BULK COLLECT INTO
130986         l_array_entity_id
130987       , l_array_legal_entity_id
130988       , l_array_entity_code
130989       , l_array_transaction_num
130990       , l_array_event_id
130991       , l_array_class_code
130992       , l_array_event_type
130993       , l_array_event_number
130994       , l_array_event_date
130995       , l_array_transaction_date
130996       , l_array_reference_num_1
130997       , l_array_reference_num_2
130998       , l_array_reference_num_3
130999       , l_array_reference_num_4
131000       , l_array_reference_char_1
131001       , l_array_reference_char_2
131002       , l_array_reference_char_3
131003       , l_array_reference_char_4
131004       , l_array_reference_date_1
131005       , l_array_reference_date_2
131006       , l_array_reference_date_3
131007       , l_array_reference_date_4
131008       , l_array_event_created_by
131009       , l_array_budgetary_control_flag
131010       , l_array_extract_line_num 
131011       , l_array_source_6
131012       , l_array_source_7
131013       , l_array_source_7_meaning
131014       , l_array_source_17
131015       , l_array_source_23
131016       , l_array_source_36
131017       , l_array_source_40
131018       , l_array_source_42
131019       , l_array_source_48
131020       , l_array_source_50
131021       , l_array_source_51
131022       , l_array_source_52
131023       , l_array_source_53
131024       , l_array_source_53_meaning
131025       , l_array_source_58
131026       , l_array_source_59
131027       , l_array_source_62
131028       , l_array_source_63
131029       , l_array_source_66
131030       , l_array_source_67
131031       , l_array_source_68
131032       , l_array_source_68_meaning
131033       , l_array_source_71
131034       , l_array_source_73
131035       , l_array_source_74
131036       , l_array_source_75
131037       , l_array_source_76
131038       , l_array_source_77
131039       , l_array_source_78
131040       , l_array_source_79
131041       , l_array_source_81
131042       , l_array_source_82
131043       , l_array_source_83
131044       , l_array_source_84
131045       , l_array_source_85
131046       , l_array_source_86
131047       , l_array_source_87
131048       , l_array_source_88
131049       , l_array_source_89
131050       , l_array_source_90
131051       , l_array_source_91
131052       , l_array_source_92
131053       , l_array_source_95
131054       , l_array_source_96
131055       , l_array_source_97
131056       , l_array_source_98
131057       , l_array_source_99
131058       , l_array_source_100
131059       , l_array_source_100_meaning
131060       , l_array_source_104
131061       , l_array_source_104_meaning
131062       , l_array_source_118
131063       , l_array_source_119
131064       , l_array_source_120
131065       , l_array_source_121
131066       , l_array_source_122
131067       , l_array_source_123
131068       , l_array_source_134
131069       , l_array_source_135
131070       , l_array_source_136
131071       , l_array_source_137
131072       , l_array_source_138
131073       , l_array_source_139
131074       , l_array_source_140
131075       , l_array_source_141
131076       , l_array_source_144
131077       , l_array_source_144_meaning
131078       , l_array_source_145
131079       , l_array_source_146
131080       LIMIT l_rows;
131081 
131082   --
131083   IF (C_LEVEL_EVENT >= g_log_level) THEN
131084             trace
131085                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
131086                ,p_level    => C_LEVEL_EVENT
131087                ,p_module   => l_log_module);
131088   END IF;
131089   --
131090   EXIT WHEN l_array_entity_id.count = 0;
131091 
131092   XLA_AE_LINES_PKG.g_rec_lines := null;
131093 
131094 --
131095 -- Bug 4458708
131096 --
131097 XLA_AE_LINES_PKG.g_LineNumber := 0;
131098 --
131099 --
131100 
131101 FOR Idx IN 1..l_array_event_id.count LOOP
131102    --
131103    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
131104    --
131108    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
131105    l_event_id := l_array_event_id(idx);  -- 5648433
131106 
131107    --
131109    --
131110 
131111    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
131112              (g_array_event(l_event_id).array_value_num('header_index'))
131113          ,'N'
131114          ) <> 'Y'
131115    THEN
131116       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
131117          trace
131118             (p_msg      => 'Trancaction revesal option is not Y '
131119             ,p_level    => C_LEVEL_STATEMENT
131120             ,p_module   => l_log_module);
131121       END IF;
131122 
131123 --
131124 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
131125 --
131126 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
131127 --
131128 -- set event info as cache for other routines to refer event attributes
131129 --
131130 
131131 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
131132    l_previous_event_id := l_event_id;
131133 
131134    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
131135       (p_application_id           => p_application_id
131136       ,p_primary_ledger_id        => p_primary_ledger_id
131137       ,p_base_ledger_id           => p_base_ledger_id
131138       ,p_target_ledger_id         => p_target_ledger_id
131139       ,p_entity_id                => l_array_entity_id(Idx)
131140       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
131141       ,p_entity_code              => l_array_entity_code(Idx)
131142       ,p_transaction_num          => l_array_transaction_num(Idx)
131143       ,p_event_id                 => l_array_event_id(Idx)
131144       ,p_event_class_code         => l_array_class_code(Idx)
131145       ,p_event_type_code          => l_array_event_type(Idx)
131146       ,p_event_number             => l_array_event_number(Idx)
131147       ,p_event_date               => l_array_event_date(Idx)
131148       ,p_transaction_date         => l_array_transaction_date(Idx)
131149       ,p_reference_num_1          => l_array_reference_num_1(Idx)
131150       ,p_reference_num_2          => l_array_reference_num_2(Idx)
131151       ,p_reference_num_3          => l_array_reference_num_3(Idx)
131152       ,p_reference_num_4          => l_array_reference_num_4(Idx)
131153       ,p_reference_char_1         => l_array_reference_char_1(Idx)
131154       ,p_reference_char_2         => l_array_reference_char_2(Idx)
131155       ,p_reference_char_3         => l_array_reference_char_3(Idx)
131156       ,p_reference_char_4         => l_array_reference_char_4(Idx)
131157       ,p_reference_date_1         => l_array_reference_date_1(Idx)
131158       ,p_reference_date_2         => l_array_reference_date_2(Idx)
131159       ,p_reference_date_3         => l_array_reference_date_3(Idx)
131160       ,p_reference_date_4         => l_array_reference_date_4(Idx)
131161       ,p_event_created_by         => l_array_event_created_by(Idx)
131162       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
131163        --
131164 END IF;
131165 
131166 
131167 
131168 --
131169 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
131170 
131171 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
131172 
131173 IF l_continue_with_lines THEN
131174    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
131175       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
131176 
131177       xla_accounting_err_pkg.build_message
131178          (p_appli_s_name            => 'XLA'
131179          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
131180          ,p_token_1                 => 'LINE_NUMBER'
131181          ,p_value_1                 => l_array_extract_line_num(Idx)
131182          ,p_token_2                 => 'PRODUCT_NAME'
131183          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
131184          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
131185          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
131186          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
131187 
131188    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
131189       --
131190       -- following sets the accounting attributes needed to reverse
131191       -- accounting for a distributeion
131192       --
131193 
131194       --
131195       -- 5217187
131196       --
131197       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
131198       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
131199                                        g_array_event(l_event_id).array_value_num('header_index'));
131200       --
131201       --
131202 
131203       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
131204       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_40(Idx);
131205       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
131206       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_71(Idx);
131207       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
131208       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_48(Idx);
131209       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_ACCT_CLASS';
131210       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_77(Idx);
131211       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_CCID';
131215       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_CURR';
131212       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_78(Idx);
131213       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_AMT';
131214       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_79(Idx);
131216       l_rec_rev_acct_attrs.array_char_value(8)  := g_array_event(l_event_id).array_value_char('source_80');
131217       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_LEDGER_AMT';
131218       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_81(Idx);
131219       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ACCT_CLASS';
131220       l_rec_rev_acct_attrs.array_char_value(10)  := l_array_source_82(Idx);
131221       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_CCID';
131222       l_rec_rev_acct_attrs.array_num_value(11)  := l_array_source_83(Idx);
131223       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_ENTERED_AMT';
131224       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_84(Idx);
131225       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_CURR';
131226       l_rec_rev_acct_attrs.array_char_value(13)  := g_array_event(l_event_id).array_value_char('source_80');
131227       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_LEDGER_AMT';
131228       l_rec_rev_acct_attrs.array_num_value(14)  := l_array_source_85(Idx);
131229       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_OPTION';
131230       l_rec_rev_acct_attrs.array_char_value(15)  := l_array_source_86(Idx);
131231       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
131232       l_rec_rev_acct_attrs.array_char_value(16)  := g_array_event(l_event_id).array_value_char('source_56');
131233       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
131234       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_95(Idx);
131235       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_TYPE';
131236       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_48(Idx);
131237       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_LINE_REF_ID';
131238       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_58(Idx);
131239       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'TAX_REC_NREC_DIST_REF_ID';
131240       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_66(Idx);
131241       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'TAX_SUMMARY_LINE_REF_ID';
131242       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_59(Idx);
131243       l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'UPG_CR_ENC_TYPE_ID';
131244       l_rec_rev_acct_attrs.array_num_value(22)  := l_array_source_96(Idx);
131245       l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'UPG_DR_ENC_TYPE_ID';
131246       l_rec_rev_acct_attrs.array_num_value(23)  := l_array_source_97(Idx);
131247 
131248 
131249       xla_ae_lines_pkg.SetAcctReversalAttrs
131250          (p_event_id             => l_event_id
131251          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
131252          ,p_calculate_acctd_flag => l_calculate_acctd_flag
131253          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
131254    END IF;
131255 
131256    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
131257        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
131258 
131259 --
131260 AcctLineType_41 (
131261  p_application_id  => p_application_id
131262  ,p_event_id     => l_event_id
131263  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131264  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131265  ,p_actual_flag => l_actual_flag
131266  ,p_balance_type_code => l_balance_type_code
131267  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131268  
131269  , p_source_17 => l_array_source_17(Idx)
131270  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131271  , p_source_40 => l_array_source_40(Idx)
131272  , p_source_42 => l_array_source_42(Idx)
131273  , p_source_48 => l_array_source_48(Idx)
131274  , p_source_50 => l_array_source_50(Idx)
131275  , p_source_51 => l_array_source_51(Idx)
131276  , p_source_52 => l_array_source_52(Idx)
131277  , p_source_53 => l_array_source_53(Idx)
131278  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131279  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131280  , p_source_58 => l_array_source_58(Idx)
131281  , p_source_59 => l_array_source_59(Idx)
131282  , p_source_66 => l_array_source_66(Idx)
131283  , p_source_67 => l_array_source_67(Idx)
131284  , p_source_68 => l_array_source_68(Idx)
131285  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131286  , p_source_71 => l_array_source_71(Idx)
131287  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131288  , p_source_73 => l_array_source_73(Idx)
131289  , p_source_74 => l_array_source_74(Idx)
131290  , p_source_75 => l_array_source_75(Idx)
131291  , p_source_76 => l_array_source_76(Idx)
131292  , p_source_77 => l_array_source_77(Idx)
131293  , p_source_78 => l_array_source_78(Idx)
131294  , p_source_79 => l_array_source_79(Idx)
131295  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131296  , p_source_81 => l_array_source_81(Idx)
131297  , p_source_82 => l_array_source_82(Idx)
131298  , p_source_83 => l_array_source_83(Idx)
131299  , p_source_84 => l_array_source_84(Idx)
131300  , p_source_85 => l_array_source_85(Idx)
131301  , p_source_86 => l_array_source_86(Idx)
131302  , p_source_87 => l_array_source_87(Idx)
131303  , p_source_88 => l_array_source_88(Idx)
131304  , p_source_89 => l_array_source_89(Idx)
131308  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131305  , p_source_90 => l_array_source_90(Idx)
131306  , p_source_91 => l_array_source_91(Idx)
131307  , p_source_92 => l_array_source_92(Idx)
131309  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131310  , p_source_95 => l_array_source_95(Idx)
131311  , p_source_96 => l_array_source_96(Idx)
131312  , p_source_97 => l_array_source_97(Idx)
131313  );
131314 If(l_balance_type_code = 'A') THEN
131315   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131316 END IF;
131317 
131318 --
131319 
131320 
131321 --
131322 AcctLineType_42 (
131323  p_application_id  => p_application_id
131324  ,p_event_id     => l_event_id
131325  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131326  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131327  ,p_actual_flag => l_actual_flag
131328  ,p_balance_type_code => l_balance_type_code
131329  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131330  
131331  , p_source_17 => l_array_source_17(Idx)
131332  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131333  , p_source_40 => l_array_source_40(Idx)
131334  , p_source_42 => l_array_source_42(Idx)
131335  , p_source_48 => l_array_source_48(Idx)
131336  , p_source_50 => l_array_source_50(Idx)
131337  , p_source_51 => l_array_source_51(Idx)
131338  , p_source_52 => l_array_source_52(Idx)
131339  , p_source_53 => l_array_source_53(Idx)
131340  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131341  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131342  , p_source_58 => l_array_source_58(Idx)
131343  , p_source_59 => l_array_source_59(Idx)
131344  , p_source_66 => l_array_source_66(Idx)
131345  , p_source_67 => l_array_source_67(Idx)
131346  , p_source_68 => l_array_source_68(Idx)
131347  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131348  , p_source_71 => l_array_source_71(Idx)
131349  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131350  , p_source_73 => l_array_source_73(Idx)
131351  , p_source_74 => l_array_source_74(Idx)
131352  , p_source_75 => l_array_source_75(Idx)
131353  , p_source_76 => l_array_source_76(Idx)
131354  , p_source_77 => l_array_source_77(Idx)
131355  , p_source_78 => l_array_source_78(Idx)
131356  , p_source_79 => l_array_source_79(Idx)
131357  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131358  , p_source_81 => l_array_source_81(Idx)
131359  , p_source_82 => l_array_source_82(Idx)
131360  , p_source_83 => l_array_source_83(Idx)
131361  , p_source_84 => l_array_source_84(Idx)
131362  , p_source_85 => l_array_source_85(Idx)
131363  , p_source_86 => l_array_source_86(Idx)
131364  , p_source_87 => l_array_source_87(Idx)
131365  , p_source_90 => l_array_source_90(Idx)
131366  , p_source_91 => l_array_source_91(Idx)
131367  , p_source_92 => l_array_source_92(Idx)
131368  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131369  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131370  , p_source_95 => l_array_source_95(Idx)
131371  , p_source_96 => l_array_source_96(Idx)
131372  , p_source_97 => l_array_source_97(Idx)
131373  , p_source_98 => l_array_source_98(Idx)
131374  , p_source_99 => l_array_source_99(Idx)
131375  );
131376 If(l_balance_type_code = 'A') THEN
131377   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131378 END IF;
131379 
131380 --
131381 
131382 
131383 --
131384 AcctLineType_45 (
131385  p_application_id  => p_application_id
131386  ,p_event_id     => l_event_id
131387  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131388  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131389  ,p_actual_flag => l_actual_flag
131390  ,p_balance_type_code => l_balance_type_code
131391  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131392  
131393  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131394  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131395  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
131396  , p_source_6 => l_array_source_6(Idx)
131397  , p_source_7 => l_array_source_7(Idx)
131398  , p_source_7_meaning => l_array_source_7_meaning(Idx)
131399  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
131400  , p_source_17 => l_array_source_17(Idx)
131401  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
131402  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
131403  , p_source_40 => l_array_source_40(Idx)
131404  , p_source_42 => l_array_source_42(Idx)
131405  , p_source_48 => l_array_source_48(Idx)
131406  , p_source_53 => l_array_source_53(Idx)
131407  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131408  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131409  , p_source_58 => l_array_source_58(Idx)
131410  , p_source_59 => l_array_source_59(Idx)
131411  , p_source_66 => l_array_source_66(Idx)
131412  , p_source_67 => l_array_source_67(Idx)
131413  , p_source_68 => l_array_source_68(Idx)
131414  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131415  , p_source_71 => l_array_source_71(Idx)
131416  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131417  , p_source_73 => l_array_source_73(Idx)
131418  , p_source_74 => l_array_source_74(Idx)
131419  , p_source_75 => l_array_source_75(Idx)
131420  , p_source_76 => l_array_source_76(Idx)
131421  , p_source_77 => l_array_source_77(Idx)
131422  , p_source_78 => l_array_source_78(Idx)
131423  , p_source_79 => l_array_source_79(Idx)
131427  , p_source_83 => l_array_source_83(Idx)
131424  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131425  , p_source_81 => l_array_source_81(Idx)
131426  , p_source_82 => l_array_source_82(Idx)
131428  , p_source_84 => l_array_source_84(Idx)
131429  , p_source_85 => l_array_source_85(Idx)
131430  , p_source_86 => l_array_source_86(Idx)
131431  , p_source_89 => l_array_source_89(Idx)
131432  , p_source_90 => l_array_source_90(Idx)
131433  , p_source_91 => l_array_source_91(Idx)
131434  , p_source_92 => l_array_source_92(Idx)
131435  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131436  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131437  , p_source_95 => l_array_source_95(Idx)
131438  , p_source_96 => l_array_source_96(Idx)
131439  , p_source_97 => l_array_source_97(Idx)
131440  );
131441 If(l_balance_type_code = 'A') THEN
131442   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131443 END IF;
131444 
131445 --
131446 
131447 
131448 --
131449 AcctLineType_50 (
131450  p_application_id  => p_application_id
131451  ,p_event_id     => l_event_id
131452  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131453  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131454  ,p_actual_flag => l_actual_flag
131455  ,p_balance_type_code => l_balance_type_code
131456  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131457  
131458  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131459  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131460  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
131461  , p_source_6 => l_array_source_6(Idx)
131462  , p_source_7 => l_array_source_7(Idx)
131463  , p_source_7_meaning => l_array_source_7_meaning(Idx)
131464  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
131465  , p_source_17 => l_array_source_17(Idx)
131466  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
131467  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
131468  , p_source_40 => l_array_source_40(Idx)
131469  , p_source_42 => l_array_source_42(Idx)
131470  , p_source_48 => l_array_source_48(Idx)
131471  , p_source_53 => l_array_source_53(Idx)
131472  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131473  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131474  , p_source_58 => l_array_source_58(Idx)
131475  , p_source_59 => l_array_source_59(Idx)
131476  , p_source_66 => l_array_source_66(Idx)
131477  , p_source_67 => l_array_source_67(Idx)
131478  , p_source_68 => l_array_source_68(Idx)
131479  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131480  , p_source_71 => l_array_source_71(Idx)
131481  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131482  , p_source_73 => l_array_source_73(Idx)
131483  , p_source_74 => l_array_source_74(Idx)
131484  , p_source_75 => l_array_source_75(Idx)
131485  , p_source_76 => l_array_source_76(Idx)
131486  , p_source_77 => l_array_source_77(Idx)
131487  , p_source_78 => l_array_source_78(Idx)
131488  , p_source_79 => l_array_source_79(Idx)
131489  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131490  , p_source_81 => l_array_source_81(Idx)
131491  , p_source_82 => l_array_source_82(Idx)
131492  , p_source_83 => l_array_source_83(Idx)
131493  , p_source_84 => l_array_source_84(Idx)
131494  , p_source_85 => l_array_source_85(Idx)
131495  , p_source_86 => l_array_source_86(Idx)
131496  , p_source_89 => l_array_source_89(Idx)
131497  , p_source_90 => l_array_source_90(Idx)
131498  , p_source_91 => l_array_source_91(Idx)
131499  , p_source_92 => l_array_source_92(Idx)
131500  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131501  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131502  , p_source_95 => l_array_source_95(Idx)
131503  , p_source_96 => l_array_source_96(Idx)
131504  , p_source_97 => l_array_source_97(Idx)
131505  , p_source_100 => l_array_source_100(Idx)
131506  , p_source_100_meaning => l_array_source_100_meaning(Idx)
131507  );
131508 If(l_balance_type_code = 'A') THEN
131509   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131510 END IF;
131511 
131512 --
131513 
131514 
131515 --
131516 AcctLineType_83 (
131517  p_application_id  => p_application_id
131518  ,p_event_id     => l_event_id
131519  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131520  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131521  ,p_actual_flag => l_actual_flag
131522  ,p_balance_type_code => l_balance_type_code
131523  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131524  
131525  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131526  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131527  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
131528  , p_source_6 => l_array_source_6(Idx)
131529  , p_source_7 => l_array_source_7(Idx)
131530  , p_source_7_meaning => l_array_source_7_meaning(Idx)
131531  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
131532  , p_source_17 => l_array_source_17(Idx)
131533  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
131534  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
131535  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131536  , p_source_40 => l_array_source_40(Idx)
131537  , p_source_42 => l_array_source_42(Idx)
131538  , p_source_48 => l_array_source_48(Idx)
131539  , p_source_53 => l_array_source_53(Idx)
131543  , p_source_59 => l_array_source_59(Idx)
131540  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131541  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131542  , p_source_58 => l_array_source_58(Idx)
131544  , p_source_66 => l_array_source_66(Idx)
131545  , p_source_67 => l_array_source_67(Idx)
131546  , p_source_68 => l_array_source_68(Idx)
131547  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131548  , p_source_71 => l_array_source_71(Idx)
131549  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131550  , p_source_73 => l_array_source_73(Idx)
131551  , p_source_74 => l_array_source_74(Idx)
131552  , p_source_75 => l_array_source_75(Idx)
131553  , p_source_76 => l_array_source_76(Idx)
131554  , p_source_77 => l_array_source_77(Idx)
131555  , p_source_78 => l_array_source_78(Idx)
131556  , p_source_79 => l_array_source_79(Idx)
131557  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131558  , p_source_81 => l_array_source_81(Idx)
131559  , p_source_82 => l_array_source_82(Idx)
131560  , p_source_83 => l_array_source_83(Idx)
131561  , p_source_84 => l_array_source_84(Idx)
131562  , p_source_85 => l_array_source_85(Idx)
131563  , p_source_86 => l_array_source_86(Idx)
131564  , p_source_87 => l_array_source_87(Idx)
131565  , p_source_88 => l_array_source_88(Idx)
131566  , p_source_89 => l_array_source_89(Idx)
131567  , p_source_90 => l_array_source_90(Idx)
131568  , p_source_91 => l_array_source_91(Idx)
131569  , p_source_92 => l_array_source_92(Idx)
131570  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131571  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131572  , p_source_95 => l_array_source_95(Idx)
131573  , p_source_96 => l_array_source_96(Idx)
131574  , p_source_97 => l_array_source_97(Idx)
131575  , p_source_100 => l_array_source_100(Idx)
131576  , p_source_100_meaning => l_array_source_100_meaning(Idx)
131577  , p_source_118 => l_array_source_118(Idx)
131578  , p_source_119 => l_array_source_119(Idx)
131579  , p_source_120 => l_array_source_120(Idx)
131580  );
131581 If(l_balance_type_code = 'A') THEN
131582   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131583 END IF;
131584 
131585 --
131586 
131587 
131588 --
131589 AcctLineType_86 (
131590  p_application_id  => p_application_id
131591  ,p_event_id     => l_event_id
131592  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131593  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131594  ,p_actual_flag => l_actual_flag
131595  ,p_balance_type_code => l_balance_type_code
131596  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131597  
131598  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131599  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131600  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
131601  , p_source_6 => l_array_source_6(Idx)
131602  , p_source_7 => l_array_source_7(Idx)
131603  , p_source_7_meaning => l_array_source_7_meaning(Idx)
131604  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
131605  , p_source_17 => l_array_source_17(Idx)
131606  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
131607  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
131608  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131609  , p_source_40 => l_array_source_40(Idx)
131610  , p_source_42 => l_array_source_42(Idx)
131611  , p_source_48 => l_array_source_48(Idx)
131612  , p_source_53 => l_array_source_53(Idx)
131613  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131614  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131615  , p_source_58 => l_array_source_58(Idx)
131616  , p_source_59 => l_array_source_59(Idx)
131617  , p_source_66 => l_array_source_66(Idx)
131618  , p_source_67 => l_array_source_67(Idx)
131619  , p_source_68 => l_array_source_68(Idx)
131620  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131621  , p_source_71 => l_array_source_71(Idx)
131622  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131623  , p_source_73 => l_array_source_73(Idx)
131624  , p_source_74 => l_array_source_74(Idx)
131625  , p_source_75 => l_array_source_75(Idx)
131626  , p_source_76 => l_array_source_76(Idx)
131627  , p_source_77 => l_array_source_77(Idx)
131628  , p_source_78 => l_array_source_78(Idx)
131629  , p_source_79 => l_array_source_79(Idx)
131630  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131631  , p_source_81 => l_array_source_81(Idx)
131632  , p_source_82 => l_array_source_82(Idx)
131633  , p_source_83 => l_array_source_83(Idx)
131634  , p_source_84 => l_array_source_84(Idx)
131635  , p_source_85 => l_array_source_85(Idx)
131636  , p_source_86 => l_array_source_86(Idx)
131637  , p_source_87 => l_array_source_87(Idx)
131638  , p_source_90 => l_array_source_90(Idx)
131639  , p_source_91 => l_array_source_91(Idx)
131640  , p_source_92 => l_array_source_92(Idx)
131641  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131642  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131643  , p_source_95 => l_array_source_95(Idx)
131644  , p_source_96 => l_array_source_96(Idx)
131645  , p_source_97 => l_array_source_97(Idx)
131646  , p_source_98 => l_array_source_98(Idx)
131647  , p_source_99 => l_array_source_99(Idx)
131648  , p_source_100 => l_array_source_100(Idx)
131649  , p_source_100_meaning => l_array_source_100_meaning(Idx)
131650  , p_source_121 => l_array_source_121(Idx)
131651  , p_source_122 => l_array_source_122(Idx)
131655   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131652  , p_source_123 => l_array_source_123(Idx)
131653  );
131654 If(l_balance_type_code = 'A') THEN
131656 END IF;
131657 
131658 --
131659 
131660 
131661 --
131662 AcctLineType_89 (
131663  p_application_id  => p_application_id
131664  ,p_event_id     => l_event_id
131665  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131666  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131667  ,p_actual_flag => l_actual_flag
131668  ,p_balance_type_code => l_balance_type_code
131669  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131670  
131671  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131672  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131673  , p_source_17 => l_array_source_17(Idx)
131674  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
131675  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131676  , p_source_40 => l_array_source_40(Idx)
131677  , p_source_42 => l_array_source_42(Idx)
131678  , p_source_48 => l_array_source_48(Idx)
131679  , p_source_53 => l_array_source_53(Idx)
131680  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131681  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131682  , p_source_58 => l_array_source_58(Idx)
131683  , p_source_59 => l_array_source_59(Idx)
131684  , p_source_66 => l_array_source_66(Idx)
131685  , p_source_67 => l_array_source_67(Idx)
131686  , p_source_71 => l_array_source_71(Idx)
131687  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131688  , p_source_73 => l_array_source_73(Idx)
131689  , p_source_74 => l_array_source_74(Idx)
131690  , p_source_75 => l_array_source_75(Idx)
131691  , p_source_76 => l_array_source_76(Idx)
131692  , p_source_77 => l_array_source_77(Idx)
131693  , p_source_78 => l_array_source_78(Idx)
131694  , p_source_79 => l_array_source_79(Idx)
131695  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131696  , p_source_81 => l_array_source_81(Idx)
131697  , p_source_82 => l_array_source_82(Idx)
131698  , p_source_83 => l_array_source_83(Idx)
131699  , p_source_84 => l_array_source_84(Idx)
131700  , p_source_85 => l_array_source_85(Idx)
131701  , p_source_86 => l_array_source_86(Idx)
131702  , p_source_87 => l_array_source_87(Idx)
131703  , p_source_89 => l_array_source_89(Idx)
131704  , p_source_90 => l_array_source_90(Idx)
131705  , p_source_91 => l_array_source_91(Idx)
131706  , p_source_92 => l_array_source_92(Idx)
131707  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131708  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131709  , p_source_95 => l_array_source_95(Idx)
131710  , p_source_96 => l_array_source_96(Idx)
131711  , p_source_97 => l_array_source_97(Idx)
131712  , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
131713  , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
131714  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
131715  );
131716 If(l_balance_type_code = 'A') THEN
131717   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131718 END IF;
131719 
131720 --
131721 
131722 
131723 --
131724 AcctLineType_90 (
131725  p_application_id  => p_application_id
131726  ,p_event_id     => l_event_id
131727  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131728  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131729  ,p_actual_flag => l_actual_flag
131730  ,p_balance_type_code => l_balance_type_code
131731  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131732  
131733  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
131734  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
131735  , p_source_17 => l_array_source_17(Idx)
131736  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
131737  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131738  , p_source_40 => l_array_source_40(Idx)
131739  , p_source_42 => l_array_source_42(Idx)
131740  , p_source_48 => l_array_source_48(Idx)
131741  , p_source_53 => l_array_source_53(Idx)
131742  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131743  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131744  , p_source_58 => l_array_source_58(Idx)
131745  , p_source_59 => l_array_source_59(Idx)
131746  , p_source_66 => l_array_source_66(Idx)
131747  , p_source_67 => l_array_source_67(Idx)
131748  , p_source_71 => l_array_source_71(Idx)
131749  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131750  , p_source_73 => l_array_source_73(Idx)
131751  , p_source_74 => l_array_source_74(Idx)
131752  , p_source_75 => l_array_source_75(Idx)
131753  , p_source_76 => l_array_source_76(Idx)
131754  , p_source_77 => l_array_source_77(Idx)
131755  , p_source_78 => l_array_source_78(Idx)
131756  , p_source_79 => l_array_source_79(Idx)
131757  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131758  , p_source_81 => l_array_source_81(Idx)
131759  , p_source_82 => l_array_source_82(Idx)
131760  , p_source_83 => l_array_source_83(Idx)
131761  , p_source_84 => l_array_source_84(Idx)
131762  , p_source_85 => l_array_source_85(Idx)
131763  , p_source_86 => l_array_source_86(Idx)
131764  , p_source_87 => l_array_source_87(Idx)
131765  , p_source_90 => l_array_source_90(Idx)
131766  , p_source_91 => l_array_source_91(Idx)
131767  , p_source_92 => l_array_source_92(Idx)
131768  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131772  , p_source_97 => l_array_source_97(Idx)
131769  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131770  , p_source_95 => l_array_source_95(Idx)
131771  , p_source_96 => l_array_source_96(Idx)
131773  , p_source_99 => l_array_source_99(Idx)
131774  , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
131775  , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
131776  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
131777  );
131778 If(l_balance_type_code = 'A') THEN
131779   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131780 END IF;
131781 
131782 --
131783 
131784 
131785 --
131786 AcctLineType_97 (
131787  p_application_id  => p_application_id
131788  ,p_event_id     => l_event_id
131789  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131790  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131791  ,p_actual_flag => l_actual_flag
131792  ,p_balance_type_code => l_balance_type_code
131793  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131794  
131795  , p_source_36 => l_array_source_36(Idx)
131796  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131797  , p_source_40 => l_array_source_40(Idx)
131798  , p_source_42 => l_array_source_42(Idx)
131799  , p_source_48 => l_array_source_48(Idx)
131800  , p_source_53 => l_array_source_53(Idx)
131801  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131802  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131803  , p_source_58 => l_array_source_58(Idx)
131804  , p_source_59 => l_array_source_59(Idx)
131805  , p_source_66 => l_array_source_66(Idx)
131806  , p_source_67 => l_array_source_67(Idx)
131807  , p_source_68 => l_array_source_68(Idx)
131808  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131809  , p_source_71 => l_array_source_71(Idx)
131810  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131811  , p_source_73 => l_array_source_73(Idx)
131812  , p_source_74 => l_array_source_74(Idx)
131813  , p_source_75 => l_array_source_75(Idx)
131814  , p_source_76 => l_array_source_76(Idx)
131815  , p_source_77 => l_array_source_77(Idx)
131816  , p_source_78 => l_array_source_78(Idx)
131817  , p_source_79 => l_array_source_79(Idx)
131818  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131819  , p_source_81 => l_array_source_81(Idx)
131820  , p_source_82 => l_array_source_82(Idx)
131821  , p_source_83 => l_array_source_83(Idx)
131822  , p_source_84 => l_array_source_84(Idx)
131823  , p_source_85 => l_array_source_85(Idx)
131824  , p_source_86 => l_array_source_86(Idx)
131825  , p_source_87 => l_array_source_87(Idx)
131826  , p_source_88 => l_array_source_88(Idx)
131827  , p_source_89 => l_array_source_89(Idx)
131828  , p_source_90 => l_array_source_90(Idx)
131829  , p_source_91 => l_array_source_91(Idx)
131830  , p_source_92 => l_array_source_92(Idx)
131831  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131832  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131833  , p_source_95 => l_array_source_95(Idx)
131834  , p_source_96 => l_array_source_96(Idx)
131835  , p_source_97 => l_array_source_97(Idx)
131836  , p_source_118 => l_array_source_118(Idx)
131837  , p_source_119 => l_array_source_119(Idx)
131838  , p_source_120 => l_array_source_120(Idx)
131839  );
131840 If(l_balance_type_code = 'A') THEN
131841   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131842 END IF;
131843 
131844 --
131845 
131846 
131847 --
131848 AcctLineType_98 (
131849  p_application_id  => p_application_id
131850  ,p_event_id     => l_event_id
131851  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131852  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131853  ,p_actual_flag => l_actual_flag
131854  ,p_balance_type_code => l_balance_type_code
131855  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131856  
131857  , p_source_36 => l_array_source_36(Idx)
131858  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131859  , p_source_40 => l_array_source_40(Idx)
131860  , p_source_42 => l_array_source_42(Idx)
131861  , p_source_48 => l_array_source_48(Idx)
131862  , p_source_53 => l_array_source_53(Idx)
131863  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131864  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131865  , p_source_58 => l_array_source_58(Idx)
131866  , p_source_59 => l_array_source_59(Idx)
131867  , p_source_66 => l_array_source_66(Idx)
131868  , p_source_67 => l_array_source_67(Idx)
131869  , p_source_68 => l_array_source_68(Idx)
131870  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131871  , p_source_71 => l_array_source_71(Idx)
131872  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131873  , p_source_73 => l_array_source_73(Idx)
131874  , p_source_74 => l_array_source_74(Idx)
131875  , p_source_75 => l_array_source_75(Idx)
131876  , p_source_76 => l_array_source_76(Idx)
131877  , p_source_77 => l_array_source_77(Idx)
131878  , p_source_78 => l_array_source_78(Idx)
131879  , p_source_79 => l_array_source_79(Idx)
131880  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131881  , p_source_81 => l_array_source_81(Idx)
131882  , p_source_82 => l_array_source_82(Idx)
131883  , p_source_83 => l_array_source_83(Idx)
131884  , p_source_84 => l_array_source_84(Idx)
131885  , p_source_85 => l_array_source_85(Idx)
131886  , p_source_86 => l_array_source_86(Idx)
131887  , p_source_87 => l_array_source_87(Idx)
131888  , p_source_90 => l_array_source_90(Idx)
131889  , p_source_91 => l_array_source_91(Idx)
131893  , p_source_95 => l_array_source_95(Idx)
131890  , p_source_92 => l_array_source_92(Idx)
131891  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131892  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131894  , p_source_96 => l_array_source_96(Idx)
131895  , p_source_97 => l_array_source_97(Idx)
131896  , p_source_98 => l_array_source_98(Idx)
131897  , p_source_99 => l_array_source_99(Idx)
131898  , p_source_121 => l_array_source_121(Idx)
131899  , p_source_122 => l_array_source_122(Idx)
131900  , p_source_123 => l_array_source_123(Idx)
131901  );
131902 If(l_balance_type_code = 'A') THEN
131903   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131904 END IF;
131905 
131906 --
131907 
131908 
131909 --
131910 AcctLineType_115 (
131911  p_application_id  => p_application_id
131912  ,p_event_id     => l_event_id
131913  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131914  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131915  ,p_actual_flag => l_actual_flag
131916  ,p_balance_type_code => l_balance_type_code
131917  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131918  
131919  , p_source_36 => l_array_source_36(Idx)
131920  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131921  , p_source_40 => l_array_source_40(Idx)
131922  , p_source_42 => l_array_source_42(Idx)
131923  , p_source_48 => l_array_source_48(Idx)
131924  , p_source_53 => l_array_source_53(Idx)
131925  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131926  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131927  , p_source_58 => l_array_source_58(Idx)
131928  , p_source_59 => l_array_source_59(Idx)
131929  , p_source_66 => l_array_source_66(Idx)
131930  , p_source_67 => l_array_source_67(Idx)
131931  , p_source_68 => l_array_source_68(Idx)
131932  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131933  , p_source_71 => l_array_source_71(Idx)
131934  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131935  , p_source_73 => l_array_source_73(Idx)
131936  , p_source_74 => l_array_source_74(Idx)
131937  , p_source_75 => l_array_source_75(Idx)
131938  , p_source_76 => l_array_source_76(Idx)
131939  , p_source_77 => l_array_source_77(Idx)
131940  , p_source_78 => l_array_source_78(Idx)
131941  , p_source_79 => l_array_source_79(Idx)
131942  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
131943  , p_source_81 => l_array_source_81(Idx)
131944  , p_source_82 => l_array_source_82(Idx)
131945  , p_source_83 => l_array_source_83(Idx)
131946  , p_source_84 => l_array_source_84(Idx)
131947  , p_source_85 => l_array_source_85(Idx)
131948  , p_source_86 => l_array_source_86(Idx)
131949  , p_source_87 => l_array_source_87(Idx)
131950  , p_source_88 => l_array_source_88(Idx)
131951  , p_source_89 => l_array_source_89(Idx)
131952  , p_source_90 => l_array_source_90(Idx)
131953  , p_source_91 => l_array_source_91(Idx)
131954  , p_source_92 => l_array_source_92(Idx)
131955  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
131956  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
131957  , p_source_95 => l_array_source_95(Idx)
131958  , p_source_96 => l_array_source_96(Idx)
131959  , p_source_97 => l_array_source_97(Idx)
131960  , p_source_100 => l_array_source_100(Idx)
131961  , p_source_100_meaning => l_array_source_100_meaning(Idx)
131962  , p_source_118 => l_array_source_118(Idx)
131963  , p_source_119 => l_array_source_119(Idx)
131964  , p_source_120 => l_array_source_120(Idx)
131965  );
131966 If(l_balance_type_code = 'A') THEN
131967   l_actual_gain_loss_ref := l_gain_or_loss_ref;
131968 END IF;
131969 
131970 --
131971 
131972 
131973 --
131974 AcctLineType_116 (
131975  p_application_id  => p_application_id
131976  ,p_event_id     => l_event_id
131977  ,p_calculate_acctd_flag => l_calculate_acctd_flag
131978  ,p_calculate_g_l_flag => l_calculate_g_l_flag
131979  ,p_actual_flag => l_actual_flag
131980  ,p_balance_type_code => l_balance_type_code
131981  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
131982  
131983  , p_source_36 => l_array_source_36(Idx)
131984  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
131985  , p_source_40 => l_array_source_40(Idx)
131986  , p_source_42 => l_array_source_42(Idx)
131987  , p_source_48 => l_array_source_48(Idx)
131988  , p_source_53 => l_array_source_53(Idx)
131989  , p_source_53_meaning => l_array_source_53_meaning(Idx)
131990  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
131991  , p_source_58 => l_array_source_58(Idx)
131992  , p_source_59 => l_array_source_59(Idx)
131993  , p_source_66 => l_array_source_66(Idx)
131994  , p_source_67 => l_array_source_67(Idx)
131995  , p_source_68 => l_array_source_68(Idx)
131996  , p_source_68_meaning => l_array_source_68_meaning(Idx)
131997  , p_source_71 => l_array_source_71(Idx)
131998  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
131999  , p_source_73 => l_array_source_73(Idx)
132000  , p_source_74 => l_array_source_74(Idx)
132001  , p_source_75 => l_array_source_75(Idx)
132002  , p_source_76 => l_array_source_76(Idx)
132003  , p_source_77 => l_array_source_77(Idx)
132004  , p_source_78 => l_array_source_78(Idx)
132005  , p_source_79 => l_array_source_79(Idx)
132006  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132007  , p_source_81 => l_array_source_81(Idx)
132008  , p_source_82 => l_array_source_82(Idx)
132009  , p_source_83 => l_array_source_83(Idx)
132010  , p_source_84 => l_array_source_84(Idx)
132011  , p_source_85 => l_array_source_85(Idx)
132015  , p_source_91 => l_array_source_91(Idx)
132012  , p_source_86 => l_array_source_86(Idx)
132013  , p_source_87 => l_array_source_87(Idx)
132014  , p_source_90 => l_array_source_90(Idx)
132016  , p_source_92 => l_array_source_92(Idx)
132017  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132018  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132019  , p_source_95 => l_array_source_95(Idx)
132020  , p_source_96 => l_array_source_96(Idx)
132021  , p_source_97 => l_array_source_97(Idx)
132022  , p_source_98 => l_array_source_98(Idx)
132023  , p_source_99 => l_array_source_99(Idx)
132024  , p_source_100 => l_array_source_100(Idx)
132025  , p_source_100_meaning => l_array_source_100_meaning(Idx)
132026  , p_source_118 => l_array_source_118(Idx)
132027  , p_source_122 => l_array_source_122(Idx)
132028  , p_source_123 => l_array_source_123(Idx)
132029  );
132030 If(l_balance_type_code = 'A') THEN
132031   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132032 END IF;
132033 
132034 --
132035 
132036 
132037 --
132038 AcctLineType_123 (
132039  p_application_id  => p_application_id
132040  ,p_event_id     => l_event_id
132041  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132042  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132043  ,p_actual_flag => l_actual_flag
132044  ,p_balance_type_code => l_balance_type_code
132045  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132046  
132047  , p_source_36 => l_array_source_36(Idx)
132048  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132049  , p_source_40 => l_array_source_40(Idx)
132050  , p_source_42 => l_array_source_42(Idx)
132051  , p_source_48 => l_array_source_48(Idx)
132052  , p_source_53 => l_array_source_53(Idx)
132053  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132054  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132055  , p_source_58 => l_array_source_58(Idx)
132056  , p_source_59 => l_array_source_59(Idx)
132057  , p_source_66 => l_array_source_66(Idx)
132058  , p_source_67 => l_array_source_67(Idx)
132059  , p_source_68 => l_array_source_68(Idx)
132060  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132061  , p_source_71 => l_array_source_71(Idx)
132062  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132063  , p_source_73 => l_array_source_73(Idx)
132064  , p_source_74 => l_array_source_74(Idx)
132065  , p_source_75 => l_array_source_75(Idx)
132066  , p_source_76 => l_array_source_76(Idx)
132067  , p_source_77 => l_array_source_77(Idx)
132068  , p_source_78 => l_array_source_78(Idx)
132069  , p_source_79 => l_array_source_79(Idx)
132070  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132071  , p_source_81 => l_array_source_81(Idx)
132072  , p_source_82 => l_array_source_82(Idx)
132073  , p_source_83 => l_array_source_83(Idx)
132074  , p_source_84 => l_array_source_84(Idx)
132075  , p_source_85 => l_array_source_85(Idx)
132076  , p_source_86 => l_array_source_86(Idx)
132077  , p_source_87 => l_array_source_87(Idx)
132078  , p_source_88 => l_array_source_88(Idx)
132079  , p_source_89 => l_array_source_89(Idx)
132080  , p_source_90 => l_array_source_90(Idx)
132081  , p_source_91 => l_array_source_91(Idx)
132082  , p_source_92 => l_array_source_92(Idx)
132083  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132084  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132085  , p_source_95 => l_array_source_95(Idx)
132086  , p_source_96 => l_array_source_96(Idx)
132087  , p_source_97 => l_array_source_97(Idx)
132088  , p_source_100 => l_array_source_100(Idx)
132089  , p_source_100_meaning => l_array_source_100_meaning(Idx)
132090  , p_source_118 => l_array_source_118(Idx)
132091  , p_source_119 => l_array_source_119(Idx)
132092  , p_source_120 => l_array_source_120(Idx)
132093  );
132094 If(l_balance_type_code = 'A') THEN
132095   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132096 END IF;
132097 
132098 --
132099 
132100 
132101 --
132102 AcctLineType_124 (
132103  p_application_id  => p_application_id
132104  ,p_event_id     => l_event_id
132105  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132106  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132107  ,p_actual_flag => l_actual_flag
132108  ,p_balance_type_code => l_balance_type_code
132109  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132110  
132111  , p_source_36 => l_array_source_36(Idx)
132112  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132113  , p_source_40 => l_array_source_40(Idx)
132114  , p_source_42 => l_array_source_42(Idx)
132115  , p_source_48 => l_array_source_48(Idx)
132116  , p_source_53 => l_array_source_53(Idx)
132117  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132118  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132119  , p_source_58 => l_array_source_58(Idx)
132120  , p_source_59 => l_array_source_59(Idx)
132121  , p_source_66 => l_array_source_66(Idx)
132122  , p_source_67 => l_array_source_67(Idx)
132123  , p_source_68 => l_array_source_68(Idx)
132124  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132125  , p_source_71 => l_array_source_71(Idx)
132126  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132127  , p_source_73 => l_array_source_73(Idx)
132128  , p_source_74 => l_array_source_74(Idx)
132129  , p_source_75 => l_array_source_75(Idx)
132130  , p_source_76 => l_array_source_76(Idx)
132131  , p_source_77 => l_array_source_77(Idx)
132132  , p_source_78 => l_array_source_78(Idx)
132136  , p_source_82 => l_array_source_82(Idx)
132133  , p_source_79 => l_array_source_79(Idx)
132134  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132135  , p_source_81 => l_array_source_81(Idx)
132137  , p_source_83 => l_array_source_83(Idx)
132138  , p_source_84 => l_array_source_84(Idx)
132139  , p_source_85 => l_array_source_85(Idx)
132140  , p_source_86 => l_array_source_86(Idx)
132141  , p_source_87 => l_array_source_87(Idx)
132142  , p_source_90 => l_array_source_90(Idx)
132143  , p_source_91 => l_array_source_91(Idx)
132144  , p_source_92 => l_array_source_92(Idx)
132145  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132146  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132147  , p_source_95 => l_array_source_95(Idx)
132148  , p_source_96 => l_array_source_96(Idx)
132149  , p_source_97 => l_array_source_97(Idx)
132150  , p_source_98 => l_array_source_98(Idx)
132151  , p_source_99 => l_array_source_99(Idx)
132152  , p_source_100 => l_array_source_100(Idx)
132153  , p_source_100_meaning => l_array_source_100_meaning(Idx)
132154  , p_source_121 => l_array_source_121(Idx)
132155  , p_source_122 => l_array_source_122(Idx)
132156  , p_source_123 => l_array_source_123(Idx)
132157  );
132158 If(l_balance_type_code = 'A') THEN
132159   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132160 END IF;
132161 
132162 --
132163 
132164 
132165 --
132166 AcctLineType_134 (
132167  p_application_id  => p_application_id
132168  ,p_event_id     => l_event_id
132169  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132170  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132171  ,p_actual_flag => l_actual_flag
132172  ,p_balance_type_code => l_balance_type_code
132173  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132174  
132175  , p_source_36 => l_array_source_36(Idx)
132176  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132177  , p_source_40 => l_array_source_40(Idx)
132178  , p_source_42 => l_array_source_42(Idx)
132179  , p_source_48 => l_array_source_48(Idx)
132180  , p_source_53 => l_array_source_53(Idx)
132181  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132182  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132183  , p_source_58 => l_array_source_58(Idx)
132184  , p_source_59 => l_array_source_59(Idx)
132185  , p_source_66 => l_array_source_66(Idx)
132186  , p_source_67 => l_array_source_67(Idx)
132187  , p_source_68 => l_array_source_68(Idx)
132188  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132189  , p_source_71 => l_array_source_71(Idx)
132190  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132191  , p_source_73 => l_array_source_73(Idx)
132192  , p_source_74 => l_array_source_74(Idx)
132193  , p_source_75 => l_array_source_75(Idx)
132194  , p_source_76 => l_array_source_76(Idx)
132195  , p_source_77 => l_array_source_77(Idx)
132196  , p_source_78 => l_array_source_78(Idx)
132197  , p_source_79 => l_array_source_79(Idx)
132198  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132199  , p_source_81 => l_array_source_81(Idx)
132200  , p_source_82 => l_array_source_82(Idx)
132201  , p_source_83 => l_array_source_83(Idx)
132202  , p_source_84 => l_array_source_84(Idx)
132203  , p_source_85 => l_array_source_85(Idx)
132204  , p_source_86 => l_array_source_86(Idx)
132205  , p_source_87 => l_array_source_87(Idx)
132206  , p_source_88 => l_array_source_88(Idx)
132207  , p_source_89 => l_array_source_89(Idx)
132208  , p_source_90 => l_array_source_90(Idx)
132209  , p_source_91 => l_array_source_91(Idx)
132210  , p_source_92 => l_array_source_92(Idx)
132211  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132212  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132213  , p_source_95 => l_array_source_95(Idx)
132214  , p_source_96 => l_array_source_96(Idx)
132215  , p_source_97 => l_array_source_97(Idx)
132216  , p_source_118 => l_array_source_118(Idx)
132217  , p_source_119 => l_array_source_119(Idx)
132218  , p_source_120 => l_array_source_120(Idx)
132219  );
132220 If(l_balance_type_code = 'A') THEN
132221   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132222 END IF;
132223 
132224 --
132225 
132226 
132227 --
132228 AcctLineType_135 (
132229  p_application_id  => p_application_id
132230  ,p_event_id     => l_event_id
132231  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132232  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132233  ,p_actual_flag => l_actual_flag
132234  ,p_balance_type_code => l_balance_type_code
132235  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132236  
132237  , p_source_36 => l_array_source_36(Idx)
132238  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132239  , p_source_40 => l_array_source_40(Idx)
132240  , p_source_42 => l_array_source_42(Idx)
132241  , p_source_48 => l_array_source_48(Idx)
132242  , p_source_53 => l_array_source_53(Idx)
132243  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132244  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132245  , p_source_58 => l_array_source_58(Idx)
132246  , p_source_59 => l_array_source_59(Idx)
132247  , p_source_66 => l_array_source_66(Idx)
132248  , p_source_67 => l_array_source_67(Idx)
132249  , p_source_68 => l_array_source_68(Idx)
132250  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132251  , p_source_71 => l_array_source_71(Idx)
132252  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132253  , p_source_73 => l_array_source_73(Idx)
132257  , p_source_77 => l_array_source_77(Idx)
132254  , p_source_74 => l_array_source_74(Idx)
132255  , p_source_75 => l_array_source_75(Idx)
132256  , p_source_76 => l_array_source_76(Idx)
132258  , p_source_78 => l_array_source_78(Idx)
132259  , p_source_79 => l_array_source_79(Idx)
132260  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132261  , p_source_81 => l_array_source_81(Idx)
132262  , p_source_82 => l_array_source_82(Idx)
132263  , p_source_83 => l_array_source_83(Idx)
132264  , p_source_84 => l_array_source_84(Idx)
132265  , p_source_85 => l_array_source_85(Idx)
132266  , p_source_86 => l_array_source_86(Idx)
132267  , p_source_87 => l_array_source_87(Idx)
132268  , p_source_90 => l_array_source_90(Idx)
132269  , p_source_91 => l_array_source_91(Idx)
132270  , p_source_92 => l_array_source_92(Idx)
132271  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132272  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132273  , p_source_95 => l_array_source_95(Idx)
132274  , p_source_96 => l_array_source_96(Idx)
132275  , p_source_97 => l_array_source_97(Idx)
132276  , p_source_98 => l_array_source_98(Idx)
132277  , p_source_99 => l_array_source_99(Idx)
132278  , p_source_121 => l_array_source_121(Idx)
132279  , p_source_122 => l_array_source_122(Idx)
132280  , p_source_123 => l_array_source_123(Idx)
132281  );
132282 If(l_balance_type_code = 'A') THEN
132283   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132284 END IF;
132285 
132286 --
132287 
132288 
132289 --
132290 AcctLineType_145 (
132291  p_application_id  => p_application_id
132292  ,p_event_id     => l_event_id
132293  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132294  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132295  ,p_actual_flag => l_actual_flag
132296  ,p_balance_type_code => l_balance_type_code
132297  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132298  
132299  , p_source_17 => l_array_source_17(Idx)
132300  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132301  , p_source_40 => l_array_source_40(Idx)
132302  , p_source_42 => l_array_source_42(Idx)
132303  , p_source_48 => l_array_source_48(Idx)
132304  , p_source_50 => l_array_source_50(Idx)
132305  , p_source_51 => l_array_source_51(Idx)
132306  , p_source_52 => l_array_source_52(Idx)
132307  , p_source_53 => l_array_source_53(Idx)
132308  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132309  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132310  , p_source_58 => l_array_source_58(Idx)
132311  , p_source_59 => l_array_source_59(Idx)
132312  , p_source_66 => l_array_source_66(Idx)
132313  , p_source_67 => l_array_source_67(Idx)
132314  , p_source_68 => l_array_source_68(Idx)
132315  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132316  , p_source_71 => l_array_source_71(Idx)
132317  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132318  , p_source_73 => l_array_source_73(Idx)
132319  , p_source_74 => l_array_source_74(Idx)
132320  , p_source_75 => l_array_source_75(Idx)
132321  , p_source_76 => l_array_source_76(Idx)
132322  , p_source_77 => l_array_source_77(Idx)
132323  , p_source_78 => l_array_source_78(Idx)
132324  , p_source_79 => l_array_source_79(Idx)
132325  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132326  , p_source_81 => l_array_source_81(Idx)
132327  , p_source_82 => l_array_source_82(Idx)
132328  , p_source_83 => l_array_source_83(Idx)
132329  , p_source_84 => l_array_source_84(Idx)
132330  , p_source_85 => l_array_source_85(Idx)
132331  , p_source_86 => l_array_source_86(Idx)
132332  , p_source_87 => l_array_source_87(Idx)
132333  , p_source_88 => l_array_source_88(Idx)
132334  , p_source_89 => l_array_source_89(Idx)
132335  , p_source_90 => l_array_source_90(Idx)
132336  , p_source_91 => l_array_source_91(Idx)
132337  , p_source_92 => l_array_source_92(Idx)
132338  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132339  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132340  , p_source_95 => l_array_source_95(Idx)
132341  , p_source_96 => l_array_source_96(Idx)
132342  , p_source_97 => l_array_source_97(Idx)
132343  , p_source_100 => l_array_source_100(Idx)
132344  , p_source_100_meaning => l_array_source_100_meaning(Idx)
132345  );
132346 If(l_balance_type_code = 'A') THEN
132347   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132348 END IF;
132349 
132350 --
132351 
132352 
132353 --
132354 AcctLineType_146 (
132355  p_application_id  => p_application_id
132356  ,p_event_id     => l_event_id
132357  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132358  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132359  ,p_actual_flag => l_actual_flag
132360  ,p_balance_type_code => l_balance_type_code
132361  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132362  
132363  , p_source_17 => l_array_source_17(Idx)
132364  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132365  , p_source_40 => l_array_source_40(Idx)
132366  , p_source_42 => l_array_source_42(Idx)
132367  , p_source_48 => l_array_source_48(Idx)
132368  , p_source_50 => l_array_source_50(Idx)
132369  , p_source_51 => l_array_source_51(Idx)
132370  , p_source_52 => l_array_source_52(Idx)
132371  , p_source_53 => l_array_source_53(Idx)
132372  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132373  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132374  , p_source_58 => l_array_source_58(Idx)
132375  , p_source_59 => l_array_source_59(Idx)
132379  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132376  , p_source_66 => l_array_source_66(Idx)
132377  , p_source_67 => l_array_source_67(Idx)
132378  , p_source_68 => l_array_source_68(Idx)
132380  , p_source_71 => l_array_source_71(Idx)
132381  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132382  , p_source_73 => l_array_source_73(Idx)
132383  , p_source_74 => l_array_source_74(Idx)
132384  , p_source_75 => l_array_source_75(Idx)
132385  , p_source_76 => l_array_source_76(Idx)
132386  , p_source_77 => l_array_source_77(Idx)
132387  , p_source_78 => l_array_source_78(Idx)
132388  , p_source_79 => l_array_source_79(Idx)
132389  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132390  , p_source_81 => l_array_source_81(Idx)
132391  , p_source_82 => l_array_source_82(Idx)
132392  , p_source_83 => l_array_source_83(Idx)
132393  , p_source_84 => l_array_source_84(Idx)
132394  , p_source_85 => l_array_source_85(Idx)
132395  , p_source_86 => l_array_source_86(Idx)
132396  , p_source_87 => l_array_source_87(Idx)
132397  , p_source_90 => l_array_source_90(Idx)
132398  , p_source_91 => l_array_source_91(Idx)
132399  , p_source_92 => l_array_source_92(Idx)
132400  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132401  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132402  , p_source_95 => l_array_source_95(Idx)
132403  , p_source_96 => l_array_source_96(Idx)
132404  , p_source_97 => l_array_source_97(Idx)
132405  , p_source_98 => l_array_source_98(Idx)
132406  , p_source_99 => l_array_source_99(Idx)
132407  , p_source_100 => l_array_source_100(Idx)
132408  , p_source_100_meaning => l_array_source_100_meaning(Idx)
132409  );
132410 If(l_balance_type_code = 'A') THEN
132411   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132412 END IF;
132413 
132414 --
132415 
132416 
132417 --
132418 AcctLineType_147 (
132419  p_application_id  => p_application_id
132420  ,p_event_id     => l_event_id
132421  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132422  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132423  ,p_actual_flag => l_actual_flag
132424  ,p_balance_type_code => l_balance_type_code
132425  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132426  
132427  , p_source_36 => l_array_source_36(Idx)
132428  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132429  , p_source_40 => l_array_source_40(Idx)
132430  , p_source_42 => l_array_source_42(Idx)
132431  , p_source_48 => l_array_source_48(Idx)
132432  , p_source_53 => l_array_source_53(Idx)
132433  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132434  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132435  , p_source_58 => l_array_source_58(Idx)
132436  , p_source_59 => l_array_source_59(Idx)
132437  , p_source_66 => l_array_source_66(Idx)
132438  , p_source_67 => l_array_source_67(Idx)
132439  , p_source_68 => l_array_source_68(Idx)
132440  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132441  , p_source_71 => l_array_source_71(Idx)
132442  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132443  , p_source_73 => l_array_source_73(Idx)
132444  , p_source_74 => l_array_source_74(Idx)
132445  , p_source_75 => l_array_source_75(Idx)
132446  , p_source_76 => l_array_source_76(Idx)
132447  , p_source_77 => l_array_source_77(Idx)
132448  , p_source_78 => l_array_source_78(Idx)
132449  , p_source_79 => l_array_source_79(Idx)
132450  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132451  , p_source_81 => l_array_source_81(Idx)
132452  , p_source_82 => l_array_source_82(Idx)
132453  , p_source_83 => l_array_source_83(Idx)
132454  , p_source_84 => l_array_source_84(Idx)
132455  , p_source_85 => l_array_source_85(Idx)
132456  , p_source_86 => l_array_source_86(Idx)
132457  , p_source_87 => l_array_source_87(Idx)
132458  , p_source_88 => l_array_source_88(Idx)
132459  , p_source_89 => l_array_source_89(Idx)
132460  , p_source_90 => l_array_source_90(Idx)
132461  , p_source_91 => l_array_source_91(Idx)
132462  , p_source_92 => l_array_source_92(Idx)
132463  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132464  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132465  , p_source_95 => l_array_source_95(Idx)
132466  , p_source_96 => l_array_source_96(Idx)
132467  , p_source_97 => l_array_source_97(Idx)
132468  , p_source_100 => l_array_source_100(Idx)
132469  , p_source_100_meaning => l_array_source_100_meaning(Idx)
132470  , p_source_118 => l_array_source_118(Idx)
132471  , p_source_119 => l_array_source_119(Idx)
132472  , p_source_120 => l_array_source_120(Idx)
132473  );
132474 If(l_balance_type_code = 'A') THEN
132475   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132476 END IF;
132477 
132478 --
132479 
132480 
132481 --
132482 AcctLineType_148 (
132483  p_application_id  => p_application_id
132484  ,p_event_id     => l_event_id
132485  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132486  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132487  ,p_actual_flag => l_actual_flag
132488  ,p_balance_type_code => l_balance_type_code
132489  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132490  
132491  , p_source_36 => l_array_source_36(Idx)
132492  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132493  , p_source_40 => l_array_source_40(Idx)
132494  , p_source_42 => l_array_source_42(Idx)
132495  , p_source_48 => l_array_source_48(Idx)
132499  , p_source_58 => l_array_source_58(Idx)
132496  , p_source_53 => l_array_source_53(Idx)
132497  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132498  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132500  , p_source_59 => l_array_source_59(Idx)
132501  , p_source_66 => l_array_source_66(Idx)
132502  , p_source_67 => l_array_source_67(Idx)
132503  , p_source_68 => l_array_source_68(Idx)
132504  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132505  , p_source_71 => l_array_source_71(Idx)
132506  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132507  , p_source_73 => l_array_source_73(Idx)
132508  , p_source_74 => l_array_source_74(Idx)
132509  , p_source_75 => l_array_source_75(Idx)
132510  , p_source_76 => l_array_source_76(Idx)
132511  , p_source_77 => l_array_source_77(Idx)
132512  , p_source_78 => l_array_source_78(Idx)
132513  , p_source_79 => l_array_source_79(Idx)
132514  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132515  , p_source_81 => l_array_source_81(Idx)
132516  , p_source_82 => l_array_source_82(Idx)
132517  , p_source_83 => l_array_source_83(Idx)
132518  , p_source_84 => l_array_source_84(Idx)
132519  , p_source_85 => l_array_source_85(Idx)
132520  , p_source_86 => l_array_source_86(Idx)
132521  , p_source_87 => l_array_source_87(Idx)
132522  , p_source_90 => l_array_source_90(Idx)
132523  , p_source_91 => l_array_source_91(Idx)
132524  , p_source_92 => l_array_source_92(Idx)
132525  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132526  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132527  , p_source_95 => l_array_source_95(Idx)
132528  , p_source_96 => l_array_source_96(Idx)
132529  , p_source_97 => l_array_source_97(Idx)
132530  , p_source_98 => l_array_source_98(Idx)
132531  , p_source_99 => l_array_source_99(Idx)
132532  , p_source_100 => l_array_source_100(Idx)
132533  , p_source_100_meaning => l_array_source_100_meaning(Idx)
132534  , p_source_121 => l_array_source_121(Idx)
132535  , p_source_122 => l_array_source_122(Idx)
132536  , p_source_123 => l_array_source_123(Idx)
132537  );
132538 If(l_balance_type_code = 'A') THEN
132539   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132540 END IF;
132541 
132542 --
132543 
132544 
132545 --
132546 AcctLineType_153 (
132547  p_application_id  => p_application_id
132548  ,p_event_id     => l_event_id
132549  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132550  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132551  ,p_actual_flag => l_actual_flag
132552  ,p_balance_type_code => l_balance_type_code
132553  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132554  
132555  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132556  , p_source_40 => l_array_source_40(Idx)
132557  , p_source_42 => l_array_source_42(Idx)
132558  , p_source_48 => l_array_source_48(Idx)
132559  , p_source_53 => l_array_source_53(Idx)
132560  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132561  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132562  , p_source_58 => l_array_source_58(Idx)
132563  , p_source_59 => l_array_source_59(Idx)
132564  , p_source_66 => l_array_source_66(Idx)
132565  , p_source_67 => l_array_source_67(Idx)
132566  , p_source_71 => l_array_source_71(Idx)
132567  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132568  , p_source_77 => l_array_source_77(Idx)
132569  , p_source_78 => l_array_source_78(Idx)
132570  , p_source_79 => l_array_source_79(Idx)
132571  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132572  , p_source_81 => l_array_source_81(Idx)
132573  , p_source_82 => l_array_source_82(Idx)
132574  , p_source_83 => l_array_source_83(Idx)
132575  , p_source_84 => l_array_source_84(Idx)
132576  , p_source_85 => l_array_source_85(Idx)
132577  , p_source_86 => l_array_source_86(Idx)
132578  , p_source_87 => l_array_source_87(Idx)
132579  , p_source_89 => l_array_source_89(Idx)
132580  , p_source_90 => l_array_source_90(Idx)
132581  , p_source_91 => l_array_source_91(Idx)
132582  , p_source_92 => l_array_source_92(Idx)
132583  , p_source_95 => l_array_source_95(Idx)
132584  , p_source_96 => l_array_source_96(Idx)
132585  , p_source_97 => l_array_source_97(Idx)
132586  , p_source_134 => l_array_source_134(Idx)
132587  , p_source_135 => l_array_source_135(Idx)
132588  , p_source_136 => l_array_source_136(Idx)
132589  , p_source_137 => l_array_source_137(Idx)
132590  );
132591 If(l_balance_type_code = 'A') THEN
132592   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132593 END IF;
132594 
132595 --
132596 
132597 
132598 --
132599 AcctLineType_154 (
132600  p_application_id  => p_application_id
132601  ,p_event_id     => l_event_id
132602  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132603  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132604  ,p_actual_flag => l_actual_flag
132605  ,p_balance_type_code => l_balance_type_code
132606  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132607  
132608  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132609  , p_source_40 => l_array_source_40(Idx)
132610  , p_source_42 => l_array_source_42(Idx)
132611  , p_source_48 => l_array_source_48(Idx)
132612  , p_source_53 => l_array_source_53(Idx)
132613  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132614  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132615  , p_source_58 => l_array_source_58(Idx)
132616  , p_source_59 => l_array_source_59(Idx)
132617  , p_source_66 => l_array_source_66(Idx)
132621  , p_source_77 => l_array_source_77(Idx)
132618  , p_source_67 => l_array_source_67(Idx)
132619  , p_source_71 => l_array_source_71(Idx)
132620  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132622  , p_source_78 => l_array_source_78(Idx)
132623  , p_source_79 => l_array_source_79(Idx)
132624  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132625  , p_source_81 => l_array_source_81(Idx)
132626  , p_source_82 => l_array_source_82(Idx)
132627  , p_source_83 => l_array_source_83(Idx)
132628  , p_source_84 => l_array_source_84(Idx)
132629  , p_source_85 => l_array_source_85(Idx)
132630  , p_source_86 => l_array_source_86(Idx)
132631  , p_source_87 => l_array_source_87(Idx)
132632  , p_source_90 => l_array_source_90(Idx)
132633  , p_source_91 => l_array_source_91(Idx)
132634  , p_source_92 => l_array_source_92(Idx)
132635  , p_source_95 => l_array_source_95(Idx)
132636  , p_source_96 => l_array_source_96(Idx)
132637  , p_source_97 => l_array_source_97(Idx)
132638  , p_source_99 => l_array_source_99(Idx)
132639  , p_source_137 => l_array_source_137(Idx)
132640  , p_source_138 => l_array_source_138(Idx)
132641  , p_source_139 => l_array_source_139(Idx)
132642  , p_source_140 => l_array_source_140(Idx)
132643  );
132644 If(l_balance_type_code = 'A') THEN
132645   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132646 END IF;
132647 
132648 --
132649 
132650 
132651 --
132652 AcctLineType_155 (
132653  p_application_id  => p_application_id
132654  ,p_event_id     => l_event_id
132655  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132656  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132657  ,p_actual_flag => l_actual_flag
132658  ,p_balance_type_code => l_balance_type_code
132659  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132660  
132661  , p_source_17 => l_array_source_17(Idx)
132662  , p_source_40 => l_array_source_40(Idx)
132663  , p_source_42 => l_array_source_42(Idx)
132664  , p_source_48 => l_array_source_48(Idx)
132665  , p_source_53 => l_array_source_53(Idx)
132666  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132667  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132668  , p_source_58 => l_array_source_58(Idx)
132669  , p_source_59 => l_array_source_59(Idx)
132670  , p_source_66 => l_array_source_66(Idx)
132671  , p_source_67 => l_array_source_67(Idx)
132672  , p_source_71 => l_array_source_71(Idx)
132673  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132674  , p_source_73 => l_array_source_73(Idx)
132675  , p_source_74 => l_array_source_74(Idx)
132676  , p_source_75 => l_array_source_75(Idx)
132677  , p_source_76 => l_array_source_76(Idx)
132678  , p_source_77 => l_array_source_77(Idx)
132679  , p_source_78 => l_array_source_78(Idx)
132680  , p_source_79 => l_array_source_79(Idx)
132681  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132682  , p_source_81 => l_array_source_81(Idx)
132683  , p_source_82 => l_array_source_82(Idx)
132684  , p_source_83 => l_array_source_83(Idx)
132685  , p_source_84 => l_array_source_84(Idx)
132686  , p_source_85 => l_array_source_85(Idx)
132687  , p_source_86 => l_array_source_86(Idx)
132688  , p_source_87 => l_array_source_87(Idx)
132689  , p_source_90 => l_array_source_90(Idx)
132690  , p_source_91 => l_array_source_91(Idx)
132691  , p_source_92 => l_array_source_92(Idx)
132692  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132693  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132694  , p_source_95 => l_array_source_95(Idx)
132695  , p_source_96 => l_array_source_96(Idx)
132696  , p_source_97 => l_array_source_97(Idx)
132697  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
132698  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
132699  , p_source_104 => l_array_source_104(Idx)
132700  , p_source_104_meaning => l_array_source_104_meaning(Idx)
132701  , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
132702  , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
132703  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
132704  , p_source_141 => l_array_source_141(Idx)
132705  );
132706 If(l_balance_type_code = 'A') THEN
132707   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132708 END IF;
132709 
132710 --
132711 
132712 
132713 --
132714 AcctLineType_159 (
132715  p_application_id  => p_application_id
132716  ,p_event_id     => l_event_id
132717  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132718  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132719  ,p_actual_flag => l_actual_flag
132720  ,p_balance_type_code => l_balance_type_code
132721  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132722  
132723  , p_source_36 => l_array_source_36(Idx)
132724  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132725  , p_source_40 => l_array_source_40(Idx)
132726  , p_source_42 => l_array_source_42(Idx)
132727  , p_source_48 => l_array_source_48(Idx)
132728  , p_source_53 => l_array_source_53(Idx)
132729  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132730  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132731  , p_source_58 => l_array_source_58(Idx)
132732  , p_source_59 => l_array_source_59(Idx)
132733  , p_source_66 => l_array_source_66(Idx)
132734  , p_source_67 => l_array_source_67(Idx)
132735  , p_source_68 => l_array_source_68(Idx)
132736  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132737  , p_source_71 => l_array_source_71(Idx)
132741  , p_source_75 => l_array_source_75(Idx)
132738  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132739  , p_source_73 => l_array_source_73(Idx)
132740  , p_source_74 => l_array_source_74(Idx)
132742  , p_source_76 => l_array_source_76(Idx)
132743  , p_source_77 => l_array_source_77(Idx)
132744  , p_source_78 => l_array_source_78(Idx)
132745  , p_source_79 => l_array_source_79(Idx)
132746  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132747  , p_source_81 => l_array_source_81(Idx)
132748  , p_source_82 => l_array_source_82(Idx)
132749  , p_source_83 => l_array_source_83(Idx)
132750  , p_source_84 => l_array_source_84(Idx)
132751  , p_source_85 => l_array_source_85(Idx)
132752  , p_source_86 => l_array_source_86(Idx)
132753  , p_source_87 => l_array_source_87(Idx)
132754  , p_source_88 => l_array_source_88(Idx)
132755  , p_source_89 => l_array_source_89(Idx)
132756  , p_source_90 => l_array_source_90(Idx)
132757  , p_source_91 => l_array_source_91(Idx)
132758  , p_source_92 => l_array_source_92(Idx)
132759  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132760  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132761  , p_source_95 => l_array_source_95(Idx)
132762  , p_source_96 => l_array_source_96(Idx)
132763  , p_source_97 => l_array_source_97(Idx)
132764  , p_source_118 => l_array_source_118(Idx)
132765  , p_source_119 => l_array_source_119(Idx)
132766  , p_source_120 => l_array_source_120(Idx)
132767  );
132768 If(l_balance_type_code = 'A') THEN
132769   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132770 END IF;
132771 
132772 --
132773 
132774 
132775 --
132776 AcctLineType_160 (
132777  p_application_id  => p_application_id
132778  ,p_event_id     => l_event_id
132779  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132780  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132781  ,p_actual_flag => l_actual_flag
132782  ,p_balance_type_code => l_balance_type_code
132783  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132784  
132785  , p_source_36 => l_array_source_36(Idx)
132786  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132787  , p_source_40 => l_array_source_40(Idx)
132788  , p_source_42 => l_array_source_42(Idx)
132789  , p_source_48 => l_array_source_48(Idx)
132790  , p_source_53 => l_array_source_53(Idx)
132791  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132792  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132793  , p_source_58 => l_array_source_58(Idx)
132794  , p_source_59 => l_array_source_59(Idx)
132795  , p_source_66 => l_array_source_66(Idx)
132796  , p_source_67 => l_array_source_67(Idx)
132797  , p_source_68 => l_array_source_68(Idx)
132798  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132799  , p_source_71 => l_array_source_71(Idx)
132800  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132801  , p_source_73 => l_array_source_73(Idx)
132802  , p_source_74 => l_array_source_74(Idx)
132803  , p_source_75 => l_array_source_75(Idx)
132804  , p_source_76 => l_array_source_76(Idx)
132805  , p_source_77 => l_array_source_77(Idx)
132806  , p_source_78 => l_array_source_78(Idx)
132807  , p_source_79 => l_array_source_79(Idx)
132808  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132809  , p_source_81 => l_array_source_81(Idx)
132810  , p_source_82 => l_array_source_82(Idx)
132811  , p_source_83 => l_array_source_83(Idx)
132812  , p_source_84 => l_array_source_84(Idx)
132813  , p_source_85 => l_array_source_85(Idx)
132814  , p_source_86 => l_array_source_86(Idx)
132815  , p_source_87 => l_array_source_87(Idx)
132816  , p_source_90 => l_array_source_90(Idx)
132817  , p_source_91 => l_array_source_91(Idx)
132818  , p_source_92 => l_array_source_92(Idx)
132819  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132820  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132821  , p_source_95 => l_array_source_95(Idx)
132822  , p_source_96 => l_array_source_96(Idx)
132823  , p_source_97 => l_array_source_97(Idx)
132824  , p_source_98 => l_array_source_98(Idx)
132825  , p_source_99 => l_array_source_99(Idx)
132826  , p_source_121 => l_array_source_121(Idx)
132827  , p_source_122 => l_array_source_122(Idx)
132828  , p_source_123 => l_array_source_123(Idx)
132829  );
132830 If(l_balance_type_code = 'A') THEN
132831   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132832 END IF;
132833 
132834 --
132835 
132836 
132837 --
132838 AcctLineType_166 (
132839  p_application_id  => p_application_id
132840  ,p_event_id     => l_event_id
132841  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132842  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132843  ,p_actual_flag => l_actual_flag
132844  ,p_balance_type_code => l_balance_type_code
132845  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132846  
132847  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
132848  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
132849  , p_source_17 => l_array_source_17(Idx)
132850  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
132851  , p_source_23 => l_array_source_23(Idx)
132852  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132853  , p_source_40 => l_array_source_40(Idx)
132854  , p_source_42 => l_array_source_42(Idx)
132855  , p_source_48 => l_array_source_48(Idx)
132856  , p_source_53 => l_array_source_53(Idx)
132857  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132861  , p_source_62 => l_array_source_62(Idx)
132858  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132859  , p_source_58 => l_array_source_58(Idx)
132860  , p_source_59 => l_array_source_59(Idx)
132862  , p_source_63 => l_array_source_63(Idx)
132863  , p_source_66 => l_array_source_66(Idx)
132864  , p_source_67 => l_array_source_67(Idx)
132865  , p_source_68 => l_array_source_68(Idx)
132866  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132867  , p_source_71 => l_array_source_71(Idx)
132868  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132869  , p_source_77 => l_array_source_77(Idx)
132870  , p_source_78 => l_array_source_78(Idx)
132871  , p_source_79 => l_array_source_79(Idx)
132872  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132873  , p_source_81 => l_array_source_81(Idx)
132874  , p_source_82 => l_array_source_82(Idx)
132875  , p_source_83 => l_array_source_83(Idx)
132876  , p_source_84 => l_array_source_84(Idx)
132877  , p_source_85 => l_array_source_85(Idx)
132878  , p_source_86 => l_array_source_86(Idx)
132879  , p_source_87 => l_array_source_87(Idx)
132880  , p_source_89 => l_array_source_89(Idx)
132881  , p_source_90 => l_array_source_90(Idx)
132882  , p_source_91 => l_array_source_91(Idx)
132883  , p_source_92 => l_array_source_92(Idx)
132884  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132885  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132886  , p_source_95 => l_array_source_95(Idx)
132887  , p_source_96 => l_array_source_96(Idx)
132888  , p_source_97 => l_array_source_97(Idx)
132889  , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
132890  , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
132891  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
132892  , p_source_144 => l_array_source_144(Idx)
132893  , p_source_144_meaning => l_array_source_144_meaning(Idx)
132894  , p_source_145 => l_array_source_145(Idx)
132895  , p_source_146 => l_array_source_146(Idx)
132896  );
132897 If(l_balance_type_code = 'A') THEN
132898   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132899 END IF;
132900 
132901 --
132902 
132903 
132904 --
132905 AcctLineType_167 (
132906  p_application_id  => p_application_id
132907  ,p_event_id     => l_event_id
132908  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132909  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132910  ,p_actual_flag => l_actual_flag
132911  ,p_balance_type_code => l_balance_type_code
132912  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132913  
132914  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
132915  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
132916  , p_source_17 => l_array_source_17(Idx)
132917  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
132918  , p_source_23 => l_array_source_23(Idx)
132919  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132920  , p_source_40 => l_array_source_40(Idx)
132921  , p_source_42 => l_array_source_42(Idx)
132922  , p_source_48 => l_array_source_48(Idx)
132923  , p_source_53 => l_array_source_53(Idx)
132924  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132925  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132926  , p_source_58 => l_array_source_58(Idx)
132927  , p_source_59 => l_array_source_59(Idx)
132928  , p_source_62 => l_array_source_62(Idx)
132929  , p_source_63 => l_array_source_63(Idx)
132930  , p_source_66 => l_array_source_66(Idx)
132931  , p_source_67 => l_array_source_67(Idx)
132932  , p_source_68 => l_array_source_68(Idx)
132933  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132934  , p_source_71 => l_array_source_71(Idx)
132935  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132936  , p_source_77 => l_array_source_77(Idx)
132937  , p_source_78 => l_array_source_78(Idx)
132938  , p_source_79 => l_array_source_79(Idx)
132939  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
132940  , p_source_81 => l_array_source_81(Idx)
132941  , p_source_82 => l_array_source_82(Idx)
132942  , p_source_83 => l_array_source_83(Idx)
132943  , p_source_84 => l_array_source_84(Idx)
132944  , p_source_85 => l_array_source_85(Idx)
132945  , p_source_86 => l_array_source_86(Idx)
132946  , p_source_87 => l_array_source_87(Idx)
132947  , p_source_90 => l_array_source_90(Idx)
132948  , p_source_91 => l_array_source_91(Idx)
132949  , p_source_92 => l_array_source_92(Idx)
132950  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
132951  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
132952  , p_source_95 => l_array_source_95(Idx)
132953  , p_source_96 => l_array_source_96(Idx)
132954  , p_source_97 => l_array_source_97(Idx)
132955  , p_source_99 => l_array_source_99(Idx)
132956  , p_source_124 => g_array_event(l_event_id).array_value_date('source_124')
132957  , p_source_125 => g_array_event(l_event_id).array_value_num('source_125')
132958  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
132959  , p_source_144 => l_array_source_144(Idx)
132960  , p_source_144_meaning => l_array_source_144_meaning(Idx)
132961  , p_source_145 => l_array_source_145(Idx)
132962  , p_source_146 => l_array_source_146(Idx)
132963  );
132964 If(l_balance_type_code = 'A') THEN
132965   l_actual_gain_loss_ref := l_gain_or_loss_ref;
132966 END IF;
132967 
132968 --
132969 
132970 
132971 --
132972 AcctLineType_168 (
132976  ,p_calculate_g_l_flag => l_calculate_g_l_flag
132973  p_application_id  => p_application_id
132974  ,p_event_id     => l_event_id
132975  ,p_calculate_acctd_flag => l_calculate_acctd_flag
132977  ,p_actual_flag => l_actual_flag
132978  ,p_balance_type_code => l_balance_type_code
132979  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
132980  
132981  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
132982  , p_source_40 => l_array_source_40(Idx)
132983  , p_source_42 => l_array_source_42(Idx)
132984  , p_source_48 => l_array_source_48(Idx)
132985  , p_source_53 => l_array_source_53(Idx)
132986  , p_source_53_meaning => l_array_source_53_meaning(Idx)
132987  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
132988  , p_source_58 => l_array_source_58(Idx)
132989  , p_source_59 => l_array_source_59(Idx)
132990  , p_source_62 => l_array_source_62(Idx)
132991  , p_source_63 => l_array_source_63(Idx)
132992  , p_source_66 => l_array_source_66(Idx)
132993  , p_source_67 => l_array_source_67(Idx)
132994  , p_source_68 => l_array_source_68(Idx)
132995  , p_source_68_meaning => l_array_source_68_meaning(Idx)
132996  , p_source_71 => l_array_source_71(Idx)
132997  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
132998  , p_source_77 => l_array_source_77(Idx)
132999  , p_source_78 => l_array_source_78(Idx)
133000  , p_source_79 => l_array_source_79(Idx)
133001  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133002  , p_source_81 => l_array_source_81(Idx)
133003  , p_source_82 => l_array_source_82(Idx)
133004  , p_source_83 => l_array_source_83(Idx)
133005  , p_source_84 => l_array_source_84(Idx)
133006  , p_source_85 => l_array_source_85(Idx)
133007  , p_source_86 => l_array_source_86(Idx)
133008  , p_source_87 => l_array_source_87(Idx)
133009  , p_source_89 => l_array_source_89(Idx)
133010  , p_source_90 => l_array_source_90(Idx)
133011  , p_source_91 => l_array_source_91(Idx)
133012  , p_source_92 => l_array_source_92(Idx)
133013  , p_source_95 => l_array_source_95(Idx)
133014  , p_source_96 => l_array_source_96(Idx)
133015  , p_source_97 => l_array_source_97(Idx)
133016  , p_source_144 => l_array_source_144(Idx)
133017  , p_source_144_meaning => l_array_source_144_meaning(Idx)
133018  , p_source_145 => l_array_source_145(Idx)
133019  , p_source_146 => l_array_source_146(Idx)
133020  );
133021 If(l_balance_type_code = 'A') THEN
133022   l_actual_gain_loss_ref := l_gain_or_loss_ref;
133023 END IF;
133024 
133025 --
133026 
133027 
133028 --
133029 AcctLineType_169 (
133030  p_application_id  => p_application_id
133031  ,p_event_id     => l_event_id
133032  ,p_calculate_acctd_flag => l_calculate_acctd_flag
133033  ,p_calculate_g_l_flag => l_calculate_g_l_flag
133034  ,p_actual_flag => l_actual_flag
133035  ,p_balance_type_code => l_balance_type_code
133036  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133037  
133038  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133039  , p_source_40 => l_array_source_40(Idx)
133040  , p_source_42 => l_array_source_42(Idx)
133041  , p_source_48 => l_array_source_48(Idx)
133042  , p_source_53 => l_array_source_53(Idx)
133043  , p_source_53_meaning => l_array_source_53_meaning(Idx)
133044  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133045  , p_source_58 => l_array_source_58(Idx)
133046  , p_source_59 => l_array_source_59(Idx)
133047  , p_source_62 => l_array_source_62(Idx)
133048  , p_source_63 => l_array_source_63(Idx)
133049  , p_source_66 => l_array_source_66(Idx)
133050  , p_source_67 => l_array_source_67(Idx)
133051  , p_source_68 => l_array_source_68(Idx)
133052  , p_source_68_meaning => l_array_source_68_meaning(Idx)
133053  , p_source_71 => l_array_source_71(Idx)
133054  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133055  , p_source_77 => l_array_source_77(Idx)
133056  , p_source_78 => l_array_source_78(Idx)
133057  , p_source_79 => l_array_source_79(Idx)
133058  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133059  , p_source_81 => l_array_source_81(Idx)
133060  , p_source_82 => l_array_source_82(Idx)
133061  , p_source_83 => l_array_source_83(Idx)
133062  , p_source_84 => l_array_source_84(Idx)
133063  , p_source_85 => l_array_source_85(Idx)
133064  , p_source_86 => l_array_source_86(Idx)
133065  , p_source_87 => l_array_source_87(Idx)
133066  , p_source_90 => l_array_source_90(Idx)
133067  , p_source_91 => l_array_source_91(Idx)
133068  , p_source_92 => l_array_source_92(Idx)
133069  , p_source_95 => l_array_source_95(Idx)
133070  , p_source_96 => l_array_source_96(Idx)
133071  , p_source_97 => l_array_source_97(Idx)
133072  , p_source_99 => l_array_source_99(Idx)
133073  , p_source_144 => l_array_source_144(Idx)
133074  , p_source_144_meaning => l_array_source_144_meaning(Idx)
133075  , p_source_145 => l_array_source_145(Idx)
133076  , p_source_146 => l_array_source_146(Idx)
133077  );
133078 If(l_balance_type_code = 'A') THEN
133079   l_actual_gain_loss_ref := l_gain_or_loss_ref;
133080 END IF;
133081 
133082 --
133083 
133084 
133085 --
133086 AcctLineType_196 (
133087  p_application_id  => p_application_id
133088  ,p_event_id     => l_event_id
133089  ,p_calculate_acctd_flag => l_calculate_acctd_flag
133090  ,p_calculate_g_l_flag => l_calculate_g_l_flag
133091  ,p_actual_flag => l_actual_flag
133092  ,p_balance_type_code => l_balance_type_code
133093  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133094  
133098  , p_source_6 => l_array_source_6(Idx)
133095  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
133096  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
133097  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
133099  , p_source_7 => l_array_source_7(Idx)
133100  , p_source_7_meaning => l_array_source_7_meaning(Idx)
133101  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
133102  , p_source_17 => l_array_source_17(Idx)
133103  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
133104  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
133105  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133106  , p_source_40 => l_array_source_40(Idx)
133107  , p_source_42 => l_array_source_42(Idx)
133108  , p_source_48 => l_array_source_48(Idx)
133109  , p_source_53 => l_array_source_53(Idx)
133110  , p_source_53_meaning => l_array_source_53_meaning(Idx)
133111  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133112  , p_source_58 => l_array_source_58(Idx)
133113  , p_source_59 => l_array_source_59(Idx)
133114  , p_source_66 => l_array_source_66(Idx)
133115  , p_source_67 => l_array_source_67(Idx)
133116  , p_source_68 => l_array_source_68(Idx)
133117  , p_source_68_meaning => l_array_source_68_meaning(Idx)
133118  , p_source_71 => l_array_source_71(Idx)
133119  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133120  , p_source_73 => l_array_source_73(Idx)
133121  , p_source_74 => l_array_source_74(Idx)
133122  , p_source_75 => l_array_source_75(Idx)
133123  , p_source_76 => l_array_source_76(Idx)
133124  , p_source_77 => l_array_source_77(Idx)
133125  , p_source_78 => l_array_source_78(Idx)
133126  , p_source_79 => l_array_source_79(Idx)
133127  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133128  , p_source_81 => l_array_source_81(Idx)
133129  , p_source_82 => l_array_source_82(Idx)
133130  , p_source_83 => l_array_source_83(Idx)
133131  , p_source_84 => l_array_source_84(Idx)
133132  , p_source_85 => l_array_source_85(Idx)
133133  , p_source_86 => l_array_source_86(Idx)
133134  , p_source_87 => l_array_source_87(Idx)
133135  , p_source_88 => l_array_source_88(Idx)
133136  , p_source_89 => l_array_source_89(Idx)
133137  , p_source_90 => l_array_source_90(Idx)
133138  , p_source_91 => l_array_source_91(Idx)
133139  , p_source_92 => l_array_source_92(Idx)
133140  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133141  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133142  , p_source_95 => l_array_source_95(Idx)
133143  , p_source_96 => l_array_source_96(Idx)
133144  , p_source_97 => l_array_source_97(Idx)
133145  , p_source_100 => l_array_source_100(Idx)
133146  , p_source_100_meaning => l_array_source_100_meaning(Idx)
133147  , p_source_118 => l_array_source_118(Idx)
133148  , p_source_119 => l_array_source_119(Idx)
133149  , p_source_120 => l_array_source_120(Idx)
133150  );
133151 If(l_balance_type_code = 'A') THEN
133152   l_actual_gain_loss_ref := l_gain_or_loss_ref;
133153 END IF;
133154 
133155 --
133156 
133157 
133158 --
133159 AcctLineType_197 (
133160  p_application_id  => p_application_id
133161  ,p_event_id     => l_event_id
133162  ,p_calculate_acctd_flag => l_calculate_acctd_flag
133163  ,p_calculate_g_l_flag => l_calculate_g_l_flag
133164  ,p_actual_flag => l_actual_flag
133165  ,p_balance_type_code => l_balance_type_code
133166  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133167  
133168  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
133169  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
133170  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
133171  , p_source_6 => l_array_source_6(Idx)
133172  , p_source_7 => l_array_source_7(Idx)
133173  , p_source_7_meaning => l_array_source_7_meaning(Idx)
133174  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
133175  , p_source_17 => l_array_source_17(Idx)
133176  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
133177  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
133178  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133179  , p_source_40 => l_array_source_40(Idx)
133180  , p_source_42 => l_array_source_42(Idx)
133181  , p_source_48 => l_array_source_48(Idx)
133182  , p_source_53 => l_array_source_53(Idx)
133183  , p_source_53_meaning => l_array_source_53_meaning(Idx)
133184  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133185  , p_source_58 => l_array_source_58(Idx)
133186  , p_source_59 => l_array_source_59(Idx)
133187  , p_source_66 => l_array_source_66(Idx)
133188  , p_source_67 => l_array_source_67(Idx)
133189  , p_source_68 => l_array_source_68(Idx)
133190  , p_source_68_meaning => l_array_source_68_meaning(Idx)
133191  , p_source_71 => l_array_source_71(Idx)
133192  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133193  , p_source_73 => l_array_source_73(Idx)
133194  , p_source_74 => l_array_source_74(Idx)
133195  , p_source_75 => l_array_source_75(Idx)
133196  , p_source_76 => l_array_source_76(Idx)
133197  , p_source_77 => l_array_source_77(Idx)
133198  , p_source_78 => l_array_source_78(Idx)
133199  , p_source_79 => l_array_source_79(Idx)
133200  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133201  , p_source_81 => l_array_source_81(Idx)
133205  , p_source_85 => l_array_source_85(Idx)
133202  , p_source_82 => l_array_source_82(Idx)
133203  , p_source_83 => l_array_source_83(Idx)
133204  , p_source_84 => l_array_source_84(Idx)
133206  , p_source_86 => l_array_source_86(Idx)
133207  , p_source_87 => l_array_source_87(Idx)
133208  , p_source_90 => l_array_source_90(Idx)
133209  , p_source_91 => l_array_source_91(Idx)
133210  , p_source_92 => l_array_source_92(Idx)
133211  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133212  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133213  , p_source_95 => l_array_source_95(Idx)
133214  , p_source_96 => l_array_source_96(Idx)
133215  , p_source_97 => l_array_source_97(Idx)
133216  , p_source_98 => l_array_source_98(Idx)
133217  , p_source_99 => l_array_source_99(Idx)
133218  , p_source_100 => l_array_source_100(Idx)
133219  , p_source_100_meaning => l_array_source_100_meaning(Idx)
133220  , p_source_121 => l_array_source_121(Idx)
133221  , p_source_122 => l_array_source_122(Idx)
133222  , p_source_123 => l_array_source_123(Idx)
133223  );
133224 If(l_balance_type_code = 'A') THEN
133225   l_actual_gain_loss_ref := l_gain_or_loss_ref;
133226 END IF;
133227 
133228 --
133229 
133230 
133231 --
133232 AcctLineType_198 (
133233  p_application_id  => p_application_id
133234  ,p_event_id     => l_event_id
133235  ,p_calculate_acctd_flag => l_calculate_acctd_flag
133236  ,p_calculate_g_l_flag => l_calculate_g_l_flag
133237  ,p_actual_flag => l_actual_flag
133238  ,p_balance_type_code => l_balance_type_code
133239  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133240  
133241  , p_source_36 => l_array_source_36(Idx)
133242  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133243  , p_source_40 => l_array_source_40(Idx)
133244  , p_source_42 => l_array_source_42(Idx)
133245  , p_source_48 => l_array_source_48(Idx)
133246  , p_source_53 => l_array_source_53(Idx)
133247  , p_source_53_meaning => l_array_source_53_meaning(Idx)
133248  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133249  , p_source_58 => l_array_source_58(Idx)
133250  , p_source_59 => l_array_source_59(Idx)
133251  , p_source_66 => l_array_source_66(Idx)
133252  , p_source_67 => l_array_source_67(Idx)
133253  , p_source_68 => l_array_source_68(Idx)
133254  , p_source_68_meaning => l_array_source_68_meaning(Idx)
133255  , p_source_71 => l_array_source_71(Idx)
133256  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133257  , p_source_73 => l_array_source_73(Idx)
133258  , p_source_74 => l_array_source_74(Idx)
133259  , p_source_75 => l_array_source_75(Idx)
133260  , p_source_76 => l_array_source_76(Idx)
133261  , p_source_77 => l_array_source_77(Idx)
133262  , p_source_78 => l_array_source_78(Idx)
133263  , p_source_79 => l_array_source_79(Idx)
133264  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133265  , p_source_81 => l_array_source_81(Idx)
133266  , p_source_82 => l_array_source_82(Idx)
133267  , p_source_83 => l_array_source_83(Idx)
133268  , p_source_84 => l_array_source_84(Idx)
133269  , p_source_85 => l_array_source_85(Idx)
133270  , p_source_86 => l_array_source_86(Idx)
133271  , p_source_87 => l_array_source_87(Idx)
133272  , p_source_88 => l_array_source_88(Idx)
133273  , p_source_89 => l_array_source_89(Idx)
133274  , p_source_90 => l_array_source_90(Idx)
133275  , p_source_91 => l_array_source_91(Idx)
133276  , p_source_92 => l_array_source_92(Idx)
133277  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133278  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133279  , p_source_95 => l_array_source_95(Idx)
133280  , p_source_96 => l_array_source_96(Idx)
133281  , p_source_97 => l_array_source_97(Idx)
133282  , p_source_100 => l_array_source_100(Idx)
133283  , p_source_100_meaning => l_array_source_100_meaning(Idx)
133284  , p_source_118 => l_array_source_118(Idx)
133285  , p_source_119 => l_array_source_119(Idx)
133286  , p_source_120 => l_array_source_120(Idx)
133287  );
133288 If(l_balance_type_code = 'A') THEN
133289   l_actual_gain_loss_ref := l_gain_or_loss_ref;
133290 END IF;
133291 
133292 --
133293 
133294 
133295 --
133296 AcctLineType_199 (
133297  p_application_id  => p_application_id
133298  ,p_event_id     => l_event_id
133299  ,p_calculate_acctd_flag => l_calculate_acctd_flag
133300  ,p_calculate_g_l_flag => l_calculate_g_l_flag
133301  ,p_actual_flag => l_actual_flag
133302  ,p_balance_type_code => l_balance_type_code
133303  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133304  
133305  , p_source_36 => l_array_source_36(Idx)
133306  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133307  , p_source_40 => l_array_source_40(Idx)
133308  , p_source_42 => l_array_source_42(Idx)
133309  , p_source_48 => l_array_source_48(Idx)
133310  , p_source_53 => l_array_source_53(Idx)
133311  , p_source_53_meaning => l_array_source_53_meaning(Idx)
133312  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133313  , p_source_58 => l_array_source_58(Idx)
133314  , p_source_59 => l_array_source_59(Idx)
133315  , p_source_66 => l_array_source_66(Idx)
133316  , p_source_67 => l_array_source_67(Idx)
133317  , p_source_68 => l_array_source_68(Idx)
133318  , p_source_68_meaning => l_array_source_68_meaning(Idx)
133319  , p_source_71 => l_array_source_71(Idx)
133320  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133321  , p_source_73 => l_array_source_73(Idx)
133322  , p_source_74 => l_array_source_74(Idx)
133326  , p_source_78 => l_array_source_78(Idx)
133323  , p_source_75 => l_array_source_75(Idx)
133324  , p_source_76 => l_array_source_76(Idx)
133325  , p_source_77 => l_array_source_77(Idx)
133327  , p_source_79 => l_array_source_79(Idx)
133328  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133329  , p_source_81 => l_array_source_81(Idx)
133330  , p_source_82 => l_array_source_82(Idx)
133331  , p_source_83 => l_array_source_83(Idx)
133332  , p_source_84 => l_array_source_84(Idx)
133333  , p_source_85 => l_array_source_85(Idx)
133334  , p_source_86 => l_array_source_86(Idx)
133335  , p_source_87 => l_array_source_87(Idx)
133336  , p_source_90 => l_array_source_90(Idx)
133337  , p_source_91 => l_array_source_91(Idx)
133338  , p_source_92 => l_array_source_92(Idx)
133339  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133340  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133341  , p_source_95 => l_array_source_95(Idx)
133342  , p_source_96 => l_array_source_96(Idx)
133343  , p_source_97 => l_array_source_97(Idx)
133344  , p_source_98 => l_array_source_98(Idx)
133345  , p_source_99 => l_array_source_99(Idx)
133346  , p_source_100 => l_array_source_100(Idx)
133347  , p_source_100_meaning => l_array_source_100_meaning(Idx)
133348  , p_source_121 => l_array_source_121(Idx)
133349  , p_source_122 => l_array_source_122(Idx)
133350  , p_source_123 => l_array_source_123(Idx)
133351  );
133352 If(l_balance_type_code = 'A') THEN
133353   l_actual_gain_loss_ref := l_gain_or_loss_ref;
133354 END IF;
133355 
133356 --
133357 
133358 
133359 --
133360 AcctLineType_200 (
133361  p_application_id  => p_application_id
133362  ,p_event_id     => l_event_id
133363  ,p_calculate_acctd_flag => l_calculate_acctd_flag
133364  ,p_calculate_g_l_flag => l_calculate_g_l_flag
133365  ,p_actual_flag => l_actual_flag
133366  ,p_balance_type_code => l_balance_type_code
133367  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133368  
133369  , p_source_36 => l_array_source_36(Idx)
133370  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133371  , p_source_40 => l_array_source_40(Idx)
133372  , p_source_42 => l_array_source_42(Idx)
133373  , p_source_48 => l_array_source_48(Idx)
133374  , p_source_53 => l_array_source_53(Idx)
133375  , p_source_53_meaning => l_array_source_53_meaning(Idx)
133376  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133377  , p_source_58 => l_array_source_58(Idx)
133378  , p_source_59 => l_array_source_59(Idx)
133379  , p_source_66 => l_array_source_66(Idx)
133380  , p_source_67 => l_array_source_67(Idx)
133381  , p_source_68 => l_array_source_68(Idx)
133382  , p_source_68_meaning => l_array_source_68_meaning(Idx)
133383  , p_source_71 => l_array_source_71(Idx)
133384  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133385  , p_source_73 => l_array_source_73(Idx)
133386  , p_source_74 => l_array_source_74(Idx)
133387  , p_source_75 => l_array_source_75(Idx)
133388  , p_source_76 => l_array_source_76(Idx)
133389  , p_source_77 => l_array_source_77(Idx)
133390  , p_source_78 => l_array_source_78(Idx)
133391  , p_source_79 => l_array_source_79(Idx)
133392  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133393  , p_source_81 => l_array_source_81(Idx)
133394  , p_source_82 => l_array_source_82(Idx)
133395  , p_source_83 => l_array_source_83(Idx)
133396  , p_source_84 => l_array_source_84(Idx)
133397  , p_source_85 => l_array_source_85(Idx)
133398  , p_source_86 => l_array_source_86(Idx)
133399  , p_source_87 => l_array_source_87(Idx)
133400  , p_source_88 => l_array_source_88(Idx)
133401  , p_source_89 => l_array_source_89(Idx)
133402  , p_source_90 => l_array_source_90(Idx)
133403  , p_source_91 => l_array_source_91(Idx)
133404  , p_source_92 => l_array_source_92(Idx)
133405  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133406  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133407  , p_source_95 => l_array_source_95(Idx)
133408  , p_source_96 => l_array_source_96(Idx)
133409  , p_source_97 => l_array_source_97(Idx)
133410  , p_source_100 => l_array_source_100(Idx)
133411  , p_source_100_meaning => l_array_source_100_meaning(Idx)
133412  , p_source_118 => l_array_source_118(Idx)
133413  , p_source_119 => l_array_source_119(Idx)
133414  , p_source_120 => l_array_source_120(Idx)
133415  );
133416 If(l_balance_type_code = 'A') THEN
133417   l_actual_gain_loss_ref := l_gain_or_loss_ref;
133418 END IF;
133419 
133420 --
133421 
133422 
133423 --
133424 AcctLineType_201 (
133425  p_application_id  => p_application_id
133426  ,p_event_id     => l_event_id
133427  ,p_calculate_acctd_flag => l_calculate_acctd_flag
133428  ,p_calculate_g_l_flag => l_calculate_g_l_flag
133429  ,p_actual_flag => l_actual_flag
133430  ,p_balance_type_code => l_balance_type_code
133431  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
133432  
133433  , p_source_36 => l_array_source_36(Idx)
133434  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
133435  , p_source_40 => l_array_source_40(Idx)
133436  , p_source_42 => l_array_source_42(Idx)
133437  , p_source_48 => l_array_source_48(Idx)
133438  , p_source_53 => l_array_source_53(Idx)
133439  , p_source_53_meaning => l_array_source_53_meaning(Idx)
133440  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
133441  , p_source_58 => l_array_source_58(Idx)
133442  , p_source_59 => l_array_source_59(Idx)
133443  , p_source_66 => l_array_source_66(Idx)
133447  , p_source_71 => l_array_source_71(Idx)
133444  , p_source_67 => l_array_source_67(Idx)
133445  , p_source_68 => l_array_source_68(Idx)
133446  , p_source_68_meaning => l_array_source_68_meaning(Idx)
133448  , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
133449  , p_source_73 => l_array_source_73(Idx)
133450  , p_source_74 => l_array_source_74(Idx)
133451  , p_source_75 => l_array_source_75(Idx)
133452  , p_source_76 => l_array_source_76(Idx)
133453  , p_source_77 => l_array_source_77(Idx)
133454  , p_source_78 => l_array_source_78(Idx)
133455  , p_source_79 => l_array_source_79(Idx)
133456  , p_source_80 => g_array_event(l_event_id).array_value_char('source_80')
133457  , p_source_81 => l_array_source_81(Idx)
133458  , p_source_82 => l_array_source_82(Idx)
133459  , p_source_83 => l_array_source_83(Idx)
133460  , p_source_84 => l_array_source_84(Idx)
133461  , p_source_85 => l_array_source_85(Idx)
133462  , p_source_86 => l_array_source_86(Idx)
133463  , p_source_87 => l_array_source_87(Idx)
133464  , p_source_90 => l_array_source_90(Idx)
133465  , p_source_91 => l_array_source_91(Idx)
133466  , p_source_92 => l_array_source_92(Idx)
133467  , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
133468  , p_source_94 => g_array_event(l_event_id).array_value_num('source_94')
133469  , p_source_95 => l_array_source_95(Idx)
133470  , p_source_96 => l_array_source_96(Idx)
133471  , p_source_97 => l_array_source_97(Idx)
133472  , p_source_98 => l_array_source_98(Idx)
133473  , p_source_99 => l_array_source_99(Idx)
133474  , p_source_100 => l_array_source_100(Idx)
133475  , p_source_100_meaning => l_array_source_100_meaning(Idx)
133476  , p_source_121 => l_array_source_121(Idx)
133477  , p_source_122 => l_array_source_122(Idx)
133478  , p_source_123 => l_array_source_123(Idx)
133479  );
133480 If(l_balance_type_code = 'A') THEN
133481   l_actual_gain_loss_ref := l_gain_or_loss_ref;
133482 END IF;
133483 
133484 --
133485 
133486       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
133487       -- or secondary ledger that has different currency with primary
133488       -- or alc that is calculated by sla
133489       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
133490             (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'))
133491 
133492 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
133493 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
133494           AND (l_actual_flag = 'A')) THEN
133495         XLA_AE_LINES_PKG.CreateGainOrLossLines(
133496           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
133497          ,p_application_id   => p_application_id
133498          ,p_amb_context_code => 'DEFAULT'
133499          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
133500          ,p_event_class_code => C_EVENT_CLASS_CODE
133501          ,p_event_type_code  => C_EVENT_TYPE_CODE
133502          
133503          ,p_gain_ccid        => -1
133504          ,p_loss_ccid        => -1
133505 
133506          ,p_actual_flag      => l_actual_flag
133507          ,p_enc_flag         => null
133508          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
133509          ,p_enc_g_l_ref      => null
133510          );
133511       END IF;
133512    END IF;
133513 END IF;
133514 
133515    ELSE
133516       --
133517       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
133518       --
133519       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133520          trace
133521             (p_msg      => 'Trancaction revesal option is Y'
133522             ,p_level    => C_LEVEL_STATEMENT
133523             ,p_module   => l_log_module);
133524       END IF;
133525    END IF;
133526 
133527 END LOOP;
133528 l_result := XLA_AE_LINES_PKG.InsertLines ;
133529 end loop;
133530 close line_cur;
133531 
133532 
133533 --
133534 -- insert headers into xla_ae_headers_gt table
133535 --
133536 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
133537 
133538 -- insert into errors table here.
133539 
133540 END LOOP;
133541 
133542 --
133543 -- 4865292
133544 --
133545 -- Compare g_hdr_extract_count with event count in
133546 -- CreateHeadersAndLines.
133547 --
133548 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
133549 
133550 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133551    trace (p_msg     => '# rows extracted from header extract objects '
133552                     || ' (running total): '
133553                     || g_hdr_extract_count
133554          ,p_level   => C_LEVEL_STATEMENT
133555          ,p_module  => l_log_module);
133556 END IF;
133557 
133558 CLOSE header_cur;
133559 --
133560 
133561 --
133562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133563    trace
133564       (p_msg      => 'END of EventClass_210'
133565       ,p_level    => C_LEVEL_PROCEDURE
133566       ,p_module   => l_log_module);
133567 END IF;
133568 --
133569 RETURN l_result;
133570 EXCEPTION
133571 WHEN xla_exceptions_pkg.application_exception THEN
133572    
133573 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
133574 
133575    
133576 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
133577 
133578    RAISE;
133579 
133580 WHEN NO_DATA_FOUND THEN
133581 
133582 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
133583 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
133584 
133585 FOR header_record IN header_cur
133586 LOOP
133587     l_array_header_events(header_record.event_id) := header_record.event_id;
133588 END LOOP;
133589 
133590 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
133591 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
133592 
133593 fnd_file.put_line(fnd_file.LOG, '                    ');
133594 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
133595 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
133596 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
133597 
133598 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
133599 LOOP
133600 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
133601 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
133602         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
133603 	END IF;
133604 END LOOP;
133605 
133606 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
133607 fnd_file.put_line(fnd_file.LOG, '                    ');
133608 
133609 
133610 xla_exceptions_pkg.raise_message
133611       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_210');
133612 
133613 
133614 WHEN OTHERS THEN
133615    xla_exceptions_pkg.raise_message
133619 
133616       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_210');
133617 END EventClass_210;
133618 --
133620 ---------------------------------------
133621 --
133622 -- PRIVATE PROCEDURE
133623 --         insert_sources_211
133624 --
133625 ----------------------------------------
133626 --
133627 PROCEDURE insert_sources_211(
133628                                 p_target_ledger_id       IN NUMBER
133629                               , p_language               IN VARCHAR2
133630                               , p_sla_ledger_id          IN NUMBER
133631                               , p_pad_start_date         IN DATE
133632                               , p_pad_end_date           IN DATE
133633                          )
133634 IS
133635 
133636 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
133637 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
133638 p_apps_owner                   VARCHAR2(30);
133639 l_log_module                   VARCHAR2(240);
133640 BEGIN
133641 IF g_log_enabled THEN
133642       l_log_module := C_DEFAULT_MODULE||'.insert_sources_211';
133643 END IF;
133644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133645 
133646       trace
133647          (p_msg      => 'BEGIN of insert_sources_211'
133648          ,p_level    => C_LEVEL_PROCEDURE
133649          ,p_module   => l_log_module);
133650 
133651 END IF;
133652 
133653 -- select APPS owner
133654 SELECT oracle_username
133655   INTO p_apps_owner
133656   FROM fnd_oracle_userid
133657  WHERE read_only_flag = 'U'
133658 ;
133659 
133660 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133661       trace
133662          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
133663                         ' - p_language = '||p_language||
133664                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
133665                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
133666                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
133667                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
133668          ,p_level    => C_LEVEL_STATEMENT
133669          ,p_module   => l_log_module);
133670 END IF;
133671 
133672 
133673 --
133674 INSERT INTO xla_diag_sources --hdr2
133675 (
133676         event_id
133677       , ledger_id
133678       , sla_ledger_id
133679       , description_language
133680       , object_name
133681       , object_type_code
133682       , line_number
133683       , source_application_id
133684       , source_type_code
133685       , source_code
133686       , source_value
133687       , source_meaning
133688       , created_by
133689       , creation_date
133690       , last_update_date
133691       , last_updated_by
133692       , last_update_login
133693       , program_update_date
133694       , program_application_id
133695       , program_id
133696       , request_id
133697 )
133698 SELECT
133699         event_id
133700       , p_target_ledger_id
133701       , p_sla_ledger_id
133702       , p_language
133703       , object_name
133704       , object_type_code
133705       , line_number
133706       , source_application_id
133707       , source_type_code
133708       , source_code
133709       , SUBSTR(source_value ,1,1996)
133710       , SUBSTR(source_meaning ,1,200)
133711       , xla_environment_pkg.g_Usr_Id
133712       , TRUNC(SYSDATE)
133713       , TRUNC(SYSDATE)
133714       , xla_environment_pkg.g_Usr_Id
133715       , xla_environment_pkg.g_Login_Id
133716       , TRUNC(SYSDATE)
133717       , xla_environment_pkg.g_Prog_Appl_Id
133718       , xla_environment_pkg.g_Prog_Id
133719       , xla_environment_pkg.g_Req_Id
133720   FROM (
133721        SELECT xet.event_id                  event_id
133722             , 0                          line_number
133723             , CASE r
133724                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
133725                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
133726                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
133727                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
133728                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
133729                 
133730                ELSE null
133731               END                           object_name
133732             , CASE r
133733                 WHEN 1 THEN 'HEADER' 
133734                 WHEN 2 THEN 'HEADER' 
133735                 WHEN 3 THEN 'HEADER' 
133736                 WHEN 4 THEN 'HEADER' 
133737                 WHEN 5 THEN 'HEADER' 
133738                 
133739                 ELSE null
133740               END                           object_type_code
133741             , CASE r
133742                 WHEN 1 THEN '200' 
133743                 WHEN 2 THEN '200' 
133744                 WHEN 3 THEN '200' 
133745                 WHEN 4 THEN '200' 
133746                 WHEN 5 THEN '200' 
133747                 
133748                 ELSE null
133749               END                           source_application_id
133750             , 'S'             source_type_code
133751             , CASE r
133752                 WHEN 1 THEN 'THIRD_PARTY_TYPE' 
133753                 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE' 
133754                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
133755                 WHEN 4 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
133756                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
133757                 
133758                 ELSE null
133759               END                           source_code
133760             , CASE r
133761                 WHEN 1 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
133762                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
133763                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
133764                 WHEN 4 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
133765                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
133769             , null              source_meaning
133766                 
133767                 ELSE null
133768               END                           source_value
133770          FROM xla_events_gt     xet  
133771       , AP_INVOICE_EXTRACT_HEADER_V  h2
133772              ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
133773          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
133774            AND xet.event_class_code = C_EVENT_CLASS_CODE
133775               AND h2.event_id = xet.event_id
133776 
133777 )
133778 ;
133779 --
133780 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133781 
133782       trace
133783          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
133784          ,p_level    => C_LEVEL_STATEMENT
133785          ,p_module   => l_log_module);
133786 
133787 END IF;
133788 --
133789 
133790 
133791 
133792 --
133793 INSERT INTO xla_diag_sources  --line2
133794 (
133795         event_id
133796       , ledger_id
133797       , sla_ledger_id
133798       , description_language
133799       , object_name
133800       , object_type_code
133801       , line_number
133802       , source_application_id
133803       , source_type_code
133804       , source_code
133805       , source_value
133806       , source_meaning
133807       , created_by
133808       , creation_date
133809       , last_update_date
133810       , last_updated_by
133811       , last_update_login
133812       , program_update_date
133813       , program_application_id
133814       , program_id
133815       , request_id
133816 )
133817 SELECT  event_id
133818       , p_target_ledger_id
133819       , p_sla_ledger_id
133820       , p_language
133821       , object_name
133822       , object_type_code
133823       , line_number
133824       , source_application_id
133825       , source_type_code
133826       , source_code
133827       , SUBSTR(source_value,1,1996)
133828       , SUBSTR(source_meaning ,1,200)
133829       , xla_environment_pkg.g_Usr_Id
133830       , TRUNC(SYSDATE)
133831       , TRUNC(SYSDATE)
133832       , xla_environment_pkg.g_Usr_Id
133833       , xla_environment_pkg.g_Login_Id
133834       , TRUNC(SYSDATE)
133835       , xla_environment_pkg.g_Prog_Appl_Id
133836       , xla_environment_pkg.g_Prog_Id
133837       , xla_environment_pkg.g_Req_Id
133838   FROM (
133839        SELECT xet.event_id                  event_id
133840             , l1.line_number                 line_number
133841             , CASE r
133842                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133843                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133844                 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
133845                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133846                 WHEN 5 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
133847                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133848                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133849                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133850                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133851                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133852                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133853                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133854                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133855                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133856                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133857                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
133858                 
133859                ELSE null
133860               END                           object_name
133861             , CASE r
133862                 WHEN 1 THEN 'LINE' 
133863                 WHEN 2 THEN 'LINE' 
133864                 WHEN 3 THEN 'LINE' 
133865                 WHEN 4 THEN 'LINE' 
133866                 WHEN 5 THEN 'LINE' 
133867                 WHEN 6 THEN 'LINE' 
133868                 WHEN 7 THEN 'LINE' 
133869                 WHEN 8 THEN 'LINE' 
133870                 WHEN 9 THEN 'LINE' 
133871                 WHEN 10 THEN 'LINE' 
133872                 WHEN 11 THEN 'LINE' 
133873                 WHEN 12 THEN 'LINE' 
133874                 WHEN 13 THEN 'LINE' 
133875                 WHEN 14 THEN 'LINE' 
133876                 WHEN 15 THEN 'LINE' 
133877                 WHEN 16 THEN 'LINE' 
133878                 
133879                 ELSE null
133880               END                           object_type_code
133881             , CASE r
133882                 WHEN 1 THEN '200' 
133883                 WHEN 2 THEN '200' 
133884                 WHEN 3 THEN '200' 
133885                 WHEN 4 THEN '200' 
133886                 WHEN 5 THEN '200' 
133887                 WHEN 6 THEN '200' 
133888                 WHEN 7 THEN '200' 
133889                 WHEN 8 THEN '200' 
133890                 WHEN 9 THEN '200' 
133891                 WHEN 10 THEN '200' 
133892                 WHEN 11 THEN '200' 
133893                 WHEN 12 THEN '200' 
133894                 WHEN 13 THEN '200' 
133895                 WHEN 14 THEN '200' 
133896                 WHEN 15 THEN '200' 
133897                 WHEN 16 THEN '200' 
133898                 
133899                 ELSE null
133900               END                           source_application_id
133901             , 'S'             source_type_code
133902             , CASE r
133903                 WHEN 1 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
133904                 WHEN 2 THEN 'DISTRIBUTION_LINK_TYPE' 
133905                 WHEN 3 THEN 'TAX_LINE_ID' 
133906                 WHEN 4 THEN 'SUMMARY_TAX_LINE_ID' 
133907                 WHEN 5 THEN 'REC_NREC_TAX_DIST_ID' 
133908                 WHEN 6 THEN 'UPG_ENC_CR_CCID' 
133909                 WHEN 7 THEN 'UPG_ENC_CR_AMT' 
133910                 WHEN 8 THEN 'UPG_ENC_CR_BASE_AMT' 
133914                 WHEN 12 THEN 'UPG_AP_ENCUM_OPTION' 
133911                 WHEN 9 THEN 'UPG_ENC_DR_CCID' 
133912                 WHEN 10 THEN 'UPG_ENC_DR_AMT' 
133913                 WHEN 11 THEN 'UPG_ENC_DR_BASE_AMT' 
133915                 WHEN 13 THEN 'UPG_CR_ENC_TYPE_ID' 
133916                 WHEN 14 THEN 'UPG_DR_ENC_TYPE_ID' 
133917                 WHEN 15 THEN 'AID_INVOICE_DIST_ID' 
133918                 WHEN 16 THEN 'AID_PARENT_REVERSAL_ID' 
133919                 
133920                 ELSE null
133921               END                           source_code
133922             , CASE r
133923                 WHEN 1 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
133924                 WHEN 2 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
133925                 WHEN 3 THEN TO_CHAR(l3.TAX_LINE_ID)
133926                 WHEN 4 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
133927                 WHEN 5 THEN TO_CHAR(l4.REC_NREC_TAX_DIST_ID)
133928                 WHEN 6 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
133929                 WHEN 7 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
133930                 WHEN 8 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
133931                 WHEN 9 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
133932                 WHEN 10 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
133933                 WHEN 11 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
133934                 WHEN 12 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
133935                 WHEN 13 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
133936                 WHEN 14 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
133937                 WHEN 15 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
133938                 WHEN 16 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
133939                 
133940                 ELSE null
133941               END                           source_value
133942             , null              source_meaning
133943          FROM  xla_events_gt     xet  
133944         , AP_INVOICE_EXTRACT_DETAILS_V  l1
133945         , ZX_AP_DEF_TAX_EXTRACT_V  l3
133946         , ZX_AP_TAX_JRNL_LINE_DESC_V  l4
133947             , (select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
133948         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
133949           AND xet.event_class_code = C_EVENT_CLASS_CODE
133950             AND l1.event_id          = xet.event_id
133951  AND l1.zrnd_tax_dist_id = l3.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l4.rec_nrec_tax_dist_id (+) 
133952 )
133953 ;
133954 --
133955 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
133956 
133957       trace
133958          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
133959          ,p_level    => C_LEVEL_STATEMENT
133960          ,p_module   => l_log_module);
133961 
133962 END IF;
133963 
133964 
133965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133966       trace
133967          (p_msg      => 'END of insert_sources_211'
133968          ,p_level    => C_LEVEL_PROCEDURE
133969          ,p_module   => l_log_module);
133970 END IF;
133971 EXCEPTION
133972   WHEN xla_exceptions_pkg.application_exception THEN
133973       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
133974             trace
133975                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
133976                ,p_level    => C_LEVEL_EXCEPTION
133977                ,p_module   => l_log_module);
133978       END IF;
133979       RAISE;
133980   WHEN OTHERS THEN
133981       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
133982             trace
133983                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
133984                ,p_level    => C_LEVEL_EXCEPTION
133985                ,p_module   => l_log_module);
133986        END IF;
133987        xla_exceptions_pkg.raise_message
133988            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_211');
133989 END insert_sources_211;
133990 --
133991 
133992 ---------------------------------------
133993 --
133994 -- PRIVATE FUNCTION
133995 --         EventClass_211
133996 --
133997 ----------------------------------------
133998 --
133999 FUNCTION EventClass_211
134000        (p_application_id         IN NUMBER
134001        ,p_base_ledger_id         IN NUMBER
134002        ,p_target_ledger_id       IN NUMBER
134003        ,p_language               IN VARCHAR2
134004        ,p_currency_code          IN VARCHAR2
134005        ,p_sla_ledger_id          IN NUMBER
134006        ,p_pad_start_date         IN DATE
134007        ,p_pad_end_date           IN DATE
134008        ,p_primary_ledger_id      IN NUMBER)
134009 RETURN BOOLEAN IS
134010 --
134011 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
134012 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
134013 
134014 l_calculate_acctd_flag   VARCHAR2(1) :='N';
134015 l_calculate_g_l_flag     VARCHAR2(1) :='N';
134016 --
134017 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134018 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134019 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
134020 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134021 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134022 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
134023 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
134024 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134025 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134026 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134027 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134028 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134029 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134030 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
134031 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134035 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134032 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134033 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134034 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
134036 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134037 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134038 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
134039 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
134040 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
134041 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
134042 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
134043 
134044 l_event_id                             NUMBER;
134045 l_previous_event_id                    NUMBER;
134046 l_first_event_id                       NUMBER;
134047 l_last_event_id                        NUMBER;
134048 
134049 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
134050 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
134051 --
134052 --
134053 l_result                    BOOLEAN := TRUE;
134054 l_rows                      NUMBER  := 1000;
134055 l_event_type_name           VARCHAR2(80) := 'All';
134056 l_event_class_name          VARCHAR2(80) := 'Prepayments';
134057 l_description               VARCHAR2(4000);
134058 l_transaction_reversal      NUMBER;
134059 l_ae_header_id              NUMBER;
134060 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
134061 l_log_module                VARCHAR2(240);
134062 --
134063 l_acct_reversal_source      VARCHAR2(30);
134064 l_trx_reversal_source       VARCHAR2(30);
134065 
134066 l_continue_with_lines       BOOLEAN := TRUE;
134067 --
134068 l_acc_rev_gl_date_source    DATE;                      -- 4262811
134069 --
134070 type t_array_event_id is table of number index by binary_integer;
134071 
134072 l_rec_array_event                    t_rec_array_event;
134073 l_null_rec_array_event               t_rec_array_event;
134074 l_array_ae_header_id                 xla_number_array_type;
134075 l_actual_flag                        VARCHAR2(1) := NULL;
134076 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
134077 l_balance_type_code                  VARCHAR2(1) :=NULL;
134078 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
134079 
134080 --
134081 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
134082 --
134083 
134084 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
134085 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
134086 TYPE t_array_source_152 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
134087 TYPE t_array_source_153 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
134088 TYPE t_array_source_154 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
134089 
134090 TYPE t_array_source_40 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
134091 TYPE t_array_source_48 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
134092 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
134093 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
134094 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
134095 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
134096 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
134097 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
134098 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
134099 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
134100 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
134101 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
134102 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
134103 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
134104 TYPE t_array_source_156 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
134105 TYPE t_array_source_157 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
134106 
134107 l_array_source_56              t_array_source_56;
134108 l_array_source_80              t_array_source_80;
134109 l_array_source_152              t_array_source_152;
134110 l_array_source_153              t_array_source_153;
134111 l_array_source_154              t_array_source_154;
134112 
134113 l_array_source_40      t_array_source_40;
134114 l_array_source_48      t_array_source_48;
134115 l_array_source_58      t_array_source_58;
134116 l_array_source_59      t_array_source_59;
134117 l_array_source_66      t_array_source_66;
134118 l_array_source_78      t_array_source_78;
134119 l_array_source_79      t_array_source_79;
134120 l_array_source_81      t_array_source_81;
134121 l_array_source_83      t_array_source_83;
134122 l_array_source_84      t_array_source_84;
134123 l_array_source_85      t_array_source_85;
134124 l_array_source_86      t_array_source_86;
134125 l_array_source_96      t_array_source_96;
134126 l_array_source_97      t_array_source_97;
134127 l_array_source_156      t_array_source_156;
134131 CURSOR header_cur
134128 l_array_source_157      t_array_source_157;
134129 
134130 --
134132 IS
134133 SELECT /*+ leading(xet) cardinality(xet,1) */
134134 -- Event Class Code: PREPAYMENTS
134135     xet.entity_id
134136    ,xet.legal_entity_id
134137    ,xet.entity_code
134138    ,xet.transaction_number
134139    ,xet.event_id
134140    ,xet.event_class_code
134141    ,xet.event_type_code
134142    ,xet.event_number
134143    ,xet.event_date
134144    ,xet.transaction_date
134145    ,xet.reference_num_1
134146    ,xet.reference_num_2
134147    ,xet.reference_num_3
134148    ,xet.reference_num_4
134149    ,xet.reference_char_1
134150    ,xet.reference_char_2
134151    ,xet.reference_char_3
134152    ,xet.reference_char_4
134153    ,xet.reference_date_1
134154    ,xet.reference_date_2
134155    ,xet.reference_date_3
134156    ,xet.reference_date_4
134157    ,xet.event_created_by
134158    ,xet.budgetary_control_flag 
134159   , h2.THIRD_PARTY_TYPE    source_56
134160   , h2.AI_INVOICE_CURRENCY_CODE    source_80
134161   , h2.INV_DOC_SEQUENCE_CATEGORY    source_152
134162   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_153
134163   , h2.INV_DOC_SEQUENCE_VALUE    source_154
134164   FROM xla_events_gt     xet 
134165   , AP_INVOICE_EXTRACT_HEADER_V  h2
134166  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
134167    and xet.event_class_code = C_EVENT_CLASS_CODE
134168    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
134169 
134170  ORDER BY event_id
134171 ;
134172 
134173 
134174 --
134175 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
134176 IS
134177 SELECT  /*+ leading(xet) cardinality(xet,1) */
134178 -- Event Class Code: PREPAYMENTS
134179     xet.entity_id
134180    ,xet.legal_entity_id
134181    ,xet.entity_code
134182    ,xet.transaction_number
134183    ,xet.event_id
134184    ,xet.event_class_code
134185    ,xet.event_type_code
134186    ,xet.event_number
134187    ,xet.event_date
134188    ,xet.transaction_date
134189    ,xet.reference_num_1
134190    ,xet.reference_num_2
134191    ,xet.reference_num_3
134192    ,xet.reference_num_4
134193    ,xet.reference_char_1
134194    ,xet.reference_char_2
134195    ,xet.reference_char_3
134196    ,xet.reference_char_4
134197    ,xet.reference_date_1
134198    ,xet.reference_date_2
134199    ,xet.reference_date_3
134200    ,xet.reference_date_4
134201    ,xet.event_created_by
134202    ,xet.budgetary_control_flag
134203  , l1.LINE_NUMBER  
134204   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_40
134205   , l1.DISTRIBUTION_LINK_TYPE    source_48
134206   , l3.TAX_LINE_ID    source_58
134207   , l1.SUMMARY_TAX_LINE_ID    source_59
134208   , l4.REC_NREC_TAX_DIST_ID    source_66
134209   , l1.UPG_ENC_CR_CCID    source_78
134210   , l1.UPG_ENC_CR_AMT    source_79
134211   , l1.UPG_ENC_CR_BASE_AMT    source_81
134212   , l1.UPG_ENC_DR_CCID    source_83
134213   , l1.UPG_ENC_DR_AMT    source_84
134214   , l1.UPG_ENC_DR_BASE_AMT    source_85
134215   , l1.UPG_AP_ENCUM_OPTION    source_86
134216   , l1.UPG_CR_ENC_TYPE_ID    source_96
134217   , l1.UPG_DR_ENC_TYPE_ID    source_97
134218   , l1.AID_INVOICE_DIST_ID    source_156
134219   , l1.AID_PARENT_REVERSAL_ID    source_157
134220   FROM xla_events_gt     xet 
134221   , AP_INVOICE_EXTRACT_DETAILS_V  l1
134222   , ZX_AP_DEF_TAX_EXTRACT_V  l3
134223   , ZX_AP_TAX_JRNL_LINE_DESC_V  l4
134224  WHERE xet.event_id between x_first_event_id and x_last_event_id
134225    and xet.event_date between p_pad_start_date and p_pad_end_date
134226    and xet.event_class_code = C_EVENT_CLASS_CODE
134227    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
134228  AND l1.ZRND_tax_dist_id = l3.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l4.REC_NREC_TAX_DIST_ID (+) ;
134229 
134230 --
134231 BEGIN
134232 IF g_log_enabled THEN
134233    l_log_module := C_DEFAULT_MODULE||'.EventClass_211';
134234 END IF;
134235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134236    trace
134237       (p_msg      => 'BEGIN of EventClass_211'
134238       ,p_level    => C_LEVEL_PROCEDURE
134239       ,p_module   => l_log_module);
134240 END IF;
134241 
134242 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134243    trace
134244       (p_msg      => 'p_application_id = '||p_application_id||
134245                      ' - p_base_ledger_id = '||p_base_ledger_id||
134246                      ' - p_target_ledger_id  = '||p_target_ledger_id||
134247                      ' - p_language = '||p_language||
134248                      ' - p_currency_code = '||p_currency_code||
134249                      ' - p_sla_ledger_id = '||p_sla_ledger_id
134250       ,p_level    => C_LEVEL_STATEMENT
134251       ,p_module   => l_log_module);
134252 END IF;
134253 --
134254 -- initialze arrays
134255 --
134256 g_array_event.DELETE;
134257 l_rec_array_event := l_null_rec_array_event;
134258 --
134259 --------------------------------------
134260 -- 4262811 Initialze MPA Line Number
134261 --------------------------------------
134262 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
134263 
134264 --
134265 
134266 --
134267 OPEN header_cur;
134268 --
134269 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134270    trace
134271    (p_msg      => 'SQL - FETCH header_cur'
134272    ,p_level    => C_LEVEL_STATEMENT
134273    ,p_module   => l_log_module);
134274 END IF;
134275 --
134276 LOOP
134277 FETCH header_cur BULK COLLECT INTO
134278         l_array_entity_id
134279       , l_array_legal_entity_id
134280       , l_array_entity_code
134281       , l_array_transaction_num
134282       , l_array_event_id
134283       , l_array_class_code
134284       , l_array_event_type
134285       , l_array_event_number
134286       , l_array_event_date
134287       , l_array_transaction_date
134288       , l_array_reference_num_1
134292       , l_array_reference_char_1
134289       , l_array_reference_num_2
134290       , l_array_reference_num_3
134291       , l_array_reference_num_4
134293       , l_array_reference_char_2
134294       , l_array_reference_char_3
134295       , l_array_reference_char_4
134296       , l_array_reference_date_1
134297       , l_array_reference_date_2
134298       , l_array_reference_date_3
134299       , l_array_reference_date_4
134300       , l_array_event_created_by
134301       , l_array_budgetary_control_flag 
134302       , l_array_source_56
134303       , l_array_source_80
134304       , l_array_source_152
134305       , l_array_source_153
134306       , l_array_source_154
134307       LIMIT l_rows;
134308 --
134309 IF (C_LEVEL_EVENT >= g_log_level) THEN
134310    trace
134311    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
134312    ,p_level    => C_LEVEL_EVENT
134313    ,p_module   => l_log_module);
134314 END IF;
134315 --
134316 EXIT WHEN l_array_entity_id.COUNT = 0;
134317 
134318 -- initialize arrays
134319 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
134320 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
134321 
134322 --
134323 -- Bug 4458708
134324 --
134325 XLA_AE_LINES_PKG.g_LineNumber := 0;
134326 
134327 
134328 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
134329 g_last_hdr_idx := l_array_event_id.LAST;
134330 --
134331 -- loop for the headers. Each iteration is for each header extract row
134332 -- fetched in header cursor
134333 --
134334 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
134335 
134336 --
134337 -- set event info as cache for other routines to refer event attributes
134338 --
134339 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
134340    (p_application_id           => p_application_id
134341    ,p_primary_ledger_id        => p_primary_ledger_id
134342    ,p_base_ledger_id           => p_base_ledger_id
134343    ,p_target_ledger_id         => p_target_ledger_id
134344    ,p_entity_id                => l_array_entity_id(hdr_idx)
134345    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
134346    ,p_entity_code              => l_array_entity_code(hdr_idx)
134347    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
134348    ,p_event_id                 => l_array_event_id(hdr_idx)
134349    ,p_event_class_code         => l_array_class_code(hdr_idx)
134350    ,p_event_type_code          => l_array_event_type(hdr_idx)
134351    ,p_event_number             => l_array_event_number(hdr_idx)
134352    ,p_event_date               => l_array_event_date(hdr_idx)
134353    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
134354    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
134355    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
134356    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
134357    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
134358    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
134359    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
134360    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
134361    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
134362    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
134363    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
134364    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
134365    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
134366    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
134367    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
134368 
134369 --
134370 -- set the status of entry to C_VALID (0)
134371 --
134372 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
134373 
134374 --
134375 -- initialize a row for ae header
134376 --
134377 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
134378 
134379 l_event_id := l_array_event_id(hdr_idx);
134380 
134381 --
134382 -- storing the hdr_idx for event. May be used by line cursor.
134383 --
134384 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
134385 
134386 --
134387 -- store sources from header extract. This can be improved to
134388 -- store only those sources from header extract that may be used in lines
134389 --
134390 
134391 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
134392 g_array_event(l_event_id).array_value_char('source_80') := l_array_source_80(hdr_idx);
134393 g_array_event(l_event_id).array_value_char('source_152') := l_array_source_152(hdr_idx);
134394 g_array_event(l_event_id).array_value_num('source_153') := l_array_source_153(hdr_idx);
134395 g_array_event(l_event_id).array_value_num('source_154') := l_array_source_154(hdr_idx);
134396 
134397 --
134398 -- initilaize the status of ae headers for diffrent balance types
134399 -- the status is initialised to C_NOT_CREATED (2)
134400 --
134401 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
134402 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
134403 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
134404 
134405 --
134406 -- call api to validate and store accounting attributes for header
134407 --
134408 
134409 ------------------------------------------------------------
134410 -- Accrual Reversal : to get date for Standard Source (NONE)
134411 ------------------------------------------------------------
134412 l_acc_rev_gl_date_source := NULL;
134413 
134414      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
134415       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_152');
134416      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
134420      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
134417       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_153');
134418      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
134419       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_154');
134421       l_rec_acct_attrs.array_date_value(4) := 
134422 xla_ae_sources_pkg.GetSystemSourceDate(
134423    p_source_code           => 'XLA_EVENT_DATE'
134424  , p_source_type_code      => 'Y'
134425  , p_source_application_id =>  602
134426 );
134427 
134428 
134429 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
134430 
134431 XLA_AE_HEADER_PKG.SetJeCategoryName;
134432 
134433 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
134434 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
134435 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
134436 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
134437 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
134438 
134439 
134440 -- No header level analytical criteria
134441 
134442 --
134443 --accounting attribute enhancement, bug 3612931
134444 --
134445 l_trx_reversal_source := SUBSTR(NULL, 1,30);
134446 
134447 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
134448    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
134449 
134450    xla_accounting_err_pkg.build_message
134451       (p_appli_s_name            => 'XLA'
134452       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
134453       ,p_token_1                 => 'ACCT_ATTR_NAME'
134454       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
134455       ,p_token_2                 => 'PRODUCT_NAME'
134456       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
134457       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
134458       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
134459       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
134460 
134461 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
134462    --
134463    -- following sets the accounting attributes needed to reverse
134464    -- accounting for a distributeion
134465    --
134466    xla_ae_lines_pkg.SetTrxReversalAttrs
134467       (p_event_id              => l_event_id
134468       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
134469       ,p_trx_reversal_source   => l_trx_reversal_source);
134470 
134471 END IF;
134472 
134473 
134474 ----------------------------------------------------------------
134475 -- 4262811 -  update the header statuses to invalid in need be
134476 ----------------------------------------------------------------
134477 --
134478 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
134479 
134480 
134481   -----------------------------------------------
134482   -- No accrual reversal for the event class/type
134483   -----------------------------------------------
134484 ----------------------------------------------------------------
134485 
134486 --
134487 -- this ends the header loop iteration for one bulk fetch
134488 --
134489 END LOOP;
134490 
134491 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
134492 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
134493 
134494 --
134495 -- insert dummy rows into lines gt table that were created due to
134496 -- transaction reversals
134497 --
134498 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
134499    l_result := XLA_AE_LINES_PKG.InsertLines;
134500 END IF;
134501 
134502 --
134503 -- reset the temp_line_num for each set of events fetched from header
134504 -- cursor rather than doing it for each new event in line cursor
134505 -- Bug 3939231
134506 --
134507 xla_ae_lines_pkg.g_temp_line_num := 0;
134508 
134509 
134510 
134511 --
134512 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
134513 --
134514 --
134515 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134516 
134517       trace
134518          (p_msg      => 'SQL - FETCH line_cur'
134519          ,p_level    => C_LEVEL_STATEMENT
134520          ,p_module   => l_log_module);
134521 
134522 END IF;
134523 --
134524 --
134525 LOOP
134526   --
134527   FETCH line_cur BULK COLLECT INTO
134528         l_array_entity_id
134529       , l_array_legal_entity_id
134530       , l_array_entity_code
134531       , l_array_transaction_num
134532       , l_array_event_id
134533       , l_array_class_code
134534       , l_array_event_type
134535       , l_array_event_number
134536       , l_array_event_date
134537       , l_array_transaction_date
134538       , l_array_reference_num_1
134539       , l_array_reference_num_2
134540       , l_array_reference_num_3
134541       , l_array_reference_num_4
134542       , l_array_reference_char_1
134543       , l_array_reference_char_2
134544       , l_array_reference_char_3
134545       , l_array_reference_char_4
134546       , l_array_reference_date_1
134547       , l_array_reference_date_2
134548       , l_array_reference_date_3
134549       , l_array_reference_date_4
134550       , l_array_event_created_by
134551       , l_array_budgetary_control_flag
134552       , l_array_extract_line_num 
134553       , l_array_source_40
134554       , l_array_source_48
134555       , l_array_source_58
134556       , l_array_source_59
134557       , l_array_source_66
134558       , l_array_source_78
134559       , l_array_source_79
134560       , l_array_source_81
134564       , l_array_source_86
134561       , l_array_source_83
134562       , l_array_source_84
134563       , l_array_source_85
134565       , l_array_source_96
134566       , l_array_source_97
134567       , l_array_source_156
134568       , l_array_source_157
134569       LIMIT l_rows;
134570 
134571   --
134572   IF (C_LEVEL_EVENT >= g_log_level) THEN
134573             trace
134574                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
134575                ,p_level    => C_LEVEL_EVENT
134576                ,p_module   => l_log_module);
134577   END IF;
134578   --
134579   EXIT WHEN l_array_entity_id.count = 0;
134580 
134581   XLA_AE_LINES_PKG.g_rec_lines := null;
134582 
134583 --
134584 -- Bug 4458708
134585 --
134586 XLA_AE_LINES_PKG.g_LineNumber := 0;
134587 --
134588 --
134589 
134590 FOR Idx IN 1..l_array_event_id.count LOOP
134591    --
134592    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
134593    --
134594    l_event_id := l_array_event_id(idx);  -- 5648433
134595 
134596    --
134597    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
134598    --
134599 
134600    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
134601              (g_array_event(l_event_id).array_value_num('header_index'))
134602          ,'N'
134603          ) <> 'Y'
134604    THEN
134605       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134606          trace
134607             (p_msg      => 'Trancaction revesal option is not Y '
134608             ,p_level    => C_LEVEL_STATEMENT
134609             ,p_module   => l_log_module);
134610       END IF;
134611 
134612 --
134613 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
134614 --
134615 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
134616 --
134617 -- set event info as cache for other routines to refer event attributes
134618 --
134619 
134620 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
134621    l_previous_event_id := l_event_id;
134622 
134623    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
134624       (p_application_id           => p_application_id
134625       ,p_primary_ledger_id        => p_primary_ledger_id
134626       ,p_base_ledger_id           => p_base_ledger_id
134627       ,p_target_ledger_id         => p_target_ledger_id
134628       ,p_entity_id                => l_array_entity_id(Idx)
134629       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
134630       ,p_entity_code              => l_array_entity_code(Idx)
134631       ,p_transaction_num          => l_array_transaction_num(Idx)
134632       ,p_event_id                 => l_array_event_id(Idx)
134633       ,p_event_class_code         => l_array_class_code(Idx)
134634       ,p_event_type_code          => l_array_event_type(Idx)
134635       ,p_event_number             => l_array_event_number(Idx)
134636       ,p_event_date               => l_array_event_date(Idx)
134637       ,p_transaction_date         => l_array_transaction_date(Idx)
134638       ,p_reference_num_1          => l_array_reference_num_1(Idx)
134639       ,p_reference_num_2          => l_array_reference_num_2(Idx)
134640       ,p_reference_num_3          => l_array_reference_num_3(Idx)
134641       ,p_reference_num_4          => l_array_reference_num_4(Idx)
134642       ,p_reference_char_1         => l_array_reference_char_1(Idx)
134643       ,p_reference_char_2         => l_array_reference_char_2(Idx)
134644       ,p_reference_char_3         => l_array_reference_char_3(Idx)
134645       ,p_reference_char_4         => l_array_reference_char_4(Idx)
134646       ,p_reference_date_1         => l_array_reference_date_1(Idx)
134647       ,p_reference_date_2         => l_array_reference_date_2(Idx)
134648       ,p_reference_date_3         => l_array_reference_date_3(Idx)
134649       ,p_reference_date_4         => l_array_reference_date_4(Idx)
134650       ,p_event_created_by         => l_array_event_created_by(Idx)
134651       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
134652        --
134653 END IF;
134654 
134655 
134656 
134657 --
134658 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
134659 
134660 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
134661 
134662 IF l_continue_with_lines THEN
134663    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
134664       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
134665 
134666       xla_accounting_err_pkg.build_message
134667          (p_appli_s_name            => 'XLA'
134668          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
134669          ,p_token_1                 => 'LINE_NUMBER'
134670          ,p_value_1                 => l_array_extract_line_num(Idx)
134671          ,p_token_2                 => 'PRODUCT_NAME'
134672          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
134673          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
134674          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
134675          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
134676 
134677    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
134678       --
134679       -- following sets the accounting attributes needed to reverse
134680       -- accounting for a distributeion
134681       --
134682 
134683       --
134684       -- 5217187
134685       --
134686       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
134687       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
134688                                        g_array_event(l_event_id).array_value_num('header_index'));
134689       --
134690       --
134691 
134692       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
134696       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
134693       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_40(Idx);
134694       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
134695       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_156(Idx);
134697       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_48(Idx);
134698       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
134699       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_78(Idx);
134700       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
134701       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_79(Idx);
134702       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
134703       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_80');
134704       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
134705       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_81(Idx);
134706       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
134707       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_83(Idx);
134708       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
134709       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_84(Idx);
134710       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
134711       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_80');
134712       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
134713       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_85(Idx);
134714       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
134715       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_86(Idx);
134716       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
134717       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_56');
134718       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
134719       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_157(Idx);
134720       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
134721       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_48(Idx);
134722       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
134723       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_58(Idx);
134724       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
134725       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_66(Idx);
134726       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
134727       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_59(Idx);
134728       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
134729       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_96(Idx);
134730       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
134731       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_97(Idx);
134732 
134733 
134734       xla_ae_lines_pkg.SetAcctReversalAttrs
134735          (p_event_id             => l_event_id
134736          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
134737          ,p_calculate_acctd_flag => l_calculate_acctd_flag
134738          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
134739    END IF;
134740 
134741    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
134742        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
134743       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
134744       -- or secondary ledger that has different currency with primary
134745       -- or alc that is calculated by sla
134746       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
134747             (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'))
134748 
134749 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
134750 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
134751           AND (l_actual_flag = 'A')) THEN
134752         XLA_AE_LINES_PKG.CreateGainOrLossLines(
134753           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
134754          ,p_application_id   => p_application_id
134755          ,p_amb_context_code => 'DEFAULT'
134756          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
134757          ,p_event_class_code => C_EVENT_CLASS_CODE
134758          ,p_event_type_code  => C_EVENT_TYPE_CODE
134759          
134760          ,p_gain_ccid        => -1
134761          ,p_loss_ccid        => -1
134762 
134763          ,p_actual_flag      => l_actual_flag
134764          ,p_enc_flag         => null
134765          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
134766          ,p_enc_g_l_ref      => null
134767          );
134768       END IF;
134769    END IF;
134770 END IF;
134771 
134772    ELSE
134773       --
134774       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
134775       --
134776       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134777          trace
134778             (p_msg      => 'Trancaction revesal option is Y'
134779             ,p_level    => C_LEVEL_STATEMENT
134780             ,p_module   => l_log_module);
134781       END IF;
134782    END IF;
134783 
134784 END LOOP;
134785 l_result := XLA_AE_LINES_PKG.InsertLines ;
134786 end loop;
134787 close line_cur;
134788 
134789 
134790 --
134791 -- insert headers into xla_ae_headers_gt table
134792 --
134793 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
134794 
134795 -- insert into errors table here.
134796 
134797 END LOOP;
134798 
134799 --
134800 -- 4865292
134801 --
134805 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
134802 -- Compare g_hdr_extract_count with event count in
134803 -- CreateHeadersAndLines.
134804 --
134806 
134807 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134808    trace (p_msg     => '# rows extracted from header extract objects '
134809                     || ' (running total): '
134810                     || g_hdr_extract_count
134811          ,p_level   => C_LEVEL_STATEMENT
134812          ,p_module  => l_log_module);
134813 END IF;
134814 
134815 CLOSE header_cur;
134816 --
134817 
134818 --
134819 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134820    trace
134821       (p_msg      => 'END of EventClass_211'
134822       ,p_level    => C_LEVEL_PROCEDURE
134823       ,p_module   => l_log_module);
134824 END IF;
134825 --
134826 RETURN l_result;
134827 EXCEPTION
134828 WHEN xla_exceptions_pkg.application_exception THEN
134829    
134830 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
134831 
134832    
134833 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
134834 
134835    RAISE;
134836 
134837 WHEN NO_DATA_FOUND THEN
134838 
134839 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
134840 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
134841 
134842 FOR header_record IN header_cur
134843 LOOP
134844     l_array_header_events(header_record.event_id) := header_record.event_id;
134845 END LOOP;
134846 
134847 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
134848 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
134849 
134850 fnd_file.put_line(fnd_file.LOG, '                    ');
134851 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
134852 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
134853 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
134854 
134855 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
134856 LOOP
134857 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
134858 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
134859         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
134860 	END IF;
134861 END LOOP;
134862 
134863 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
134864 fnd_file.put_line(fnd_file.LOG, '                    ');
134865 
134866 
134867 xla_exceptions_pkg.raise_message
134868       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_211');
134869 
134870 
134871 WHEN OTHERS THEN
134872    xla_exceptions_pkg.raise_message
134873       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_211');
134874 END EventClass_211;
134875 --
134876 
134877 ---------------------------------------
134878 --
134879 -- PRIVATE PROCEDURE
134880 --         insert_sources_212
134881 --
134882 ----------------------------------------
134883 --
134884 PROCEDURE insert_sources_212(
134885                                 p_target_ledger_id       IN NUMBER
134886                               , p_language               IN VARCHAR2
134887                               , p_sla_ledger_id          IN NUMBER
134888                               , p_pad_start_date         IN DATE
134889                               , p_pad_end_date           IN DATE
134890                          )
134891 IS
134892 
134893 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT_BURDEN_ALL';
134894 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT_BURDEN';
134895 p_apps_owner                   VARCHAR2(30);
134896 l_log_module                   VARCHAR2(240);
134897 BEGIN
134898 IF g_log_enabled THEN
134899       l_log_module := C_DEFAULT_MODULE||'.insert_sources_212';
134900 END IF;
134901 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134902 
134903       trace
134904          (p_msg      => 'BEGIN of insert_sources_212'
134905          ,p_level    => C_LEVEL_PROCEDURE
134906          ,p_module   => l_log_module);
134907 
134908 END IF;
134909 
134910 -- select APPS owner
134911 SELECT oracle_username
134912   INTO p_apps_owner
134913   FROM fnd_oracle_userid
134914  WHERE read_only_flag = 'U'
134915 ;
134916 
134917 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
134918       trace
134919          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
134920                         ' - p_language = '||p_language||
134921                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
134922                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
134923                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
134924                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
134925          ,p_level    => C_LEVEL_STATEMENT
134926          ,p_module   => l_log_module);
134927 END IF;
134928 
134929  
134930 
134931 
134932 --
134933 INSERT INTO xla_diag_sources  --line2
134934 (
134935         event_id
134936       , ledger_id
134937       , sla_ledger_id
134938       , description_language
134939       , object_name
134940       , object_type_code
134941       , line_number
134942       , source_application_id
134943       , source_type_code
134944       , source_code
134945       , source_value
134946       , source_meaning
134947       , created_by
134948       , creation_date
134949       , last_update_date
134950       , last_updated_by
134951       , last_update_login
134952       , program_update_date
134953       , program_application_id
134954       , program_id
134955       , request_id
134956 )
134957 SELECT  event_id
134958       , p_target_ledger_id
134959       , p_sla_ledger_id
134963       , line_number
134960       , p_language
134961       , object_name
134962       , object_type_code
134964       , source_application_id
134965       , source_type_code
134966       , source_code
134967       , SUBSTR(source_value,1,1996)
134968       , SUBSTR(source_meaning ,1,200)
134969       , xla_environment_pkg.g_Usr_Id
134970       , TRUNC(SYSDATE)
134971       , TRUNC(SYSDATE)
134972       , xla_environment_pkg.g_Usr_Id
134973       , xla_environment_pkg.g_Login_Id
134974       , TRUNC(SYSDATE)
134975       , xla_environment_pkg.g_Prog_Appl_Id
134976       , xla_environment_pkg.g_Prog_Id
134977       , xla_environment_pkg.g_Req_Id
134978   FROM (
134979        SELECT xet.event_id                  event_id
134980             , l1.line_number                 line_number
134981             , CASE r
134982                WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134983                 WHEN 2 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134984                 WHEN 3 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134985                 WHEN 4 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134986                 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134987                 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134988                 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134989                 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134990                 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134991                 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134992                 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134993                 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134994                 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134995                 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134996                 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134997                 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134998                 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
134999                 
135000                ELSE null
135001               END                           object_name
135002             , CASE r
135003                 WHEN 1 THEN 'LINE' 
135004                 WHEN 2 THEN 'LINE' 
135005                 WHEN 3 THEN 'LINE' 
135006                 WHEN 4 THEN 'LINE' 
135007                 WHEN 5 THEN 'LINE' 
135008                 WHEN 6 THEN 'LINE' 
135009                 WHEN 7 THEN 'LINE' 
135010                 WHEN 8 THEN 'LINE' 
135011                 WHEN 9 THEN 'LINE' 
135012                 WHEN 10 THEN 'LINE' 
135013                 WHEN 11 THEN 'LINE' 
135014                 WHEN 12 THEN 'LINE' 
135015                 WHEN 13 THEN 'LINE' 
135016                 WHEN 14 THEN 'LINE' 
135017                 WHEN 15 THEN 'LINE' 
135018                 WHEN 16 THEN 'LINE' 
135019                 WHEN 17 THEN 'LINE' 
135020                 
135021                 ELSE null
135022               END                           object_type_code
135023             , CASE r
135024                 WHEN 1 THEN '200' 
135025                 WHEN 2 THEN '200' 
135026                 WHEN 3 THEN '200' 
135027                 WHEN 4 THEN '200' 
135028                 WHEN 5 THEN '200' 
135029                 WHEN 6 THEN '200' 
135030                 WHEN 7 THEN '200' 
135031                 WHEN 8 THEN '200' 
135032                 WHEN 9 THEN '200' 
135033                 WHEN 10 THEN '200' 
135034                 WHEN 11 THEN '200' 
135035                 WHEN 12 THEN '200' 
135036                 WHEN 13 THEN '200' 
135037                 WHEN 14 THEN '200' 
135038                 WHEN 15 THEN '200' 
135039                 WHEN 16 THEN '200' 
135040                 WHEN 17 THEN '200' 
135041                 
135042                 ELSE null
135043               END                           source_application_id
135044             , 'S'             source_type_code
135045             , CASE r
135046                 WHEN 1 THEN 'DISTRIBUTION_LINK_TYPE' 
135047                 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE' 
135048                 WHEN 3 THEN 'AID_INVOICE_DIST_ID' 
135049                 WHEN 4 THEN 'ACCT_REVERSAL_INDICATOR' 
135050                 WHEN 5 THEN 'AID_EXPENDITURE_TYPE' 
135051                 WHEN 6 THEN 'ENC_UPG_CR_ACCT_CLASS' 
135052                 WHEN 7 THEN 'ENC_UPG_CR_ACCOUNT' 
135053                 WHEN 8 THEN 'AID_AMOUNT' 
135054                 WHEN 9 THEN 'AID_BASE_AMT_NO_ROUND' 
135055                 WHEN 10 THEN 'ENC_UPG_DR_ACCT_CLASS' 
135056                 WHEN 11 THEN 'ENC_UPG_DR_ACCOUNT' 
135057                 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG' 
135058                 WHEN 13 THEN 'ACCT_REVERSAL_FIRST_DIST_ID' 
135059                 WHEN 14 THEN 'AP_SECOND_DIST_ID' 
135060                 WHEN 15 THEN 'ACCT_REV_DISTRIBUTION_TYPE' 
135061                 WHEN 16 THEN 'ENC_UPG_CR_ENC_TYPE_ID' 
135062                 WHEN 17 THEN 'ENC_UPG_DR_ENC_TYPE_ID' 
135063                 
135064                 ELSE null
135065               END                           source_code
135066             , CASE r
135067                 WHEN 1 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
135068                 WHEN 2 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
135069                 WHEN 3 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
135070                 WHEN 4 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
135071                 WHEN 5 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
135072                 WHEN 6 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
135073                 WHEN 7 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
135074                 WHEN 8 THEN TO_CHAR(l1.AID_AMOUNT)
135075                 WHEN 9 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
135076                 WHEN 10 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
135077                 WHEN 11 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
135078                 WHEN 12 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
135079                 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
135080                 WHEN 14 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
135081                 WHEN 15 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
135082                 WHEN 16 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
135086               END                           source_value
135083                 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
135084                 
135085                 ELSE null
135087             , null              source_meaning
135088          FROM  xla_events_gt     xet  
135089         , PA_XLA_BC_PKT_AP_DETAIL_V  l1
135090             , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
135091         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
135092           AND xet.event_class_code = C_EVENT_CLASS_CODE
135093             AND l1.event_id          = xet.event_id
135094 
135095 )
135096 ;
135097 --
135098 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135099 
135100       trace
135101          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
135102          ,p_level    => C_LEVEL_STATEMENT
135103          ,p_module   => l_log_module);
135104 
135105 END IF;
135106 
135107 
135108 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135109       trace
135110          (p_msg      => 'END of insert_sources_212'
135111          ,p_level    => C_LEVEL_PROCEDURE
135112          ,p_module   => l_log_module);
135113 END IF;
135114 EXCEPTION
135115   WHEN xla_exceptions_pkg.application_exception THEN
135116       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
135117             trace
135118                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
135119                ,p_level    => C_LEVEL_EXCEPTION
135120                ,p_module   => l_log_module);
135121       END IF;
135122       RAISE;
135123   WHEN OTHERS THEN
135124       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
135125             trace
135126                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
135127                ,p_level    => C_LEVEL_EXCEPTION
135128                ,p_module   => l_log_module);
135129        END IF;
135130        xla_exceptions_pkg.raise_message
135131            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_212');
135132 END insert_sources_212;
135133 --
135134 
135135 ---------------------------------------
135136 --
135137 -- PRIVATE FUNCTION
135138 --         EventClass_212
135139 --
135140 ----------------------------------------
135141 --
135142 FUNCTION EventClass_212
135143        (p_application_id         IN NUMBER
135144        ,p_base_ledger_id         IN NUMBER
135145        ,p_target_ledger_id       IN NUMBER
135146        ,p_language               IN VARCHAR2
135147        ,p_currency_code          IN VARCHAR2
135148        ,p_sla_ledger_id          IN NUMBER
135149        ,p_pad_start_date         IN DATE
135150        ,p_pad_end_date           IN DATE
135151        ,p_primary_ledger_id      IN NUMBER)
135152 RETURN BOOLEAN IS
135153 --
135154 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT_BURDEN_ALL';
135155 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT_BURDEN';
135156 
135157 l_calculate_acctd_flag   VARCHAR2(1) :='N';
135158 l_calculate_g_l_flag     VARCHAR2(1) :='N';
135159 --
135160 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135161 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135162 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
135163 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135164 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135165 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
135166 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
135167 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135168 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135169 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135170 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135171 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135172 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135173 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
135174 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135175 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135176 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135177 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
135178 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135179 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135180 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135181 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
135182 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
135183 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
135184 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
135185 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
135186 
135187 l_event_id                             NUMBER;
135188 l_previous_event_id                    NUMBER;
135189 l_first_event_id                       NUMBER;
135190 l_last_event_id                        NUMBER;
135191 
135192 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
135193 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
135194 --
135195 --
135196 l_result                    BOOLEAN := TRUE;
135197 l_rows                      NUMBER  := 1000;
135198 l_event_type_name           VARCHAR2(80) := 'All';
135199 l_event_class_name          VARCHAR2(80) := 'Burden for Prepayments';
135200 l_description               VARCHAR2(4000);
135201 l_transaction_reversal      NUMBER;
135202 l_ae_header_id              NUMBER;
135203 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
135207 l_trx_reversal_source       VARCHAR2(30);
135204 l_log_module                VARCHAR2(240);
135205 --
135206 l_acct_reversal_source      VARCHAR2(30);
135208 
135209 l_continue_with_lines       BOOLEAN := TRUE;
135210 --
135211 l_acc_rev_gl_date_source    DATE;                      -- 4262811
135212 --
135213 type t_array_event_id is table of number index by binary_integer;
135214 
135215 l_rec_array_event                    t_rec_array_event;
135216 l_null_rec_array_event               t_rec_array_event;
135217 l_array_ae_header_id                 xla_number_array_type;
135218 l_actual_flag                        VARCHAR2(1) := NULL;
135219 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
135220 l_balance_type_code                  VARCHAR2(1) :=NULL;
135221 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
135222 
135223 --
135224 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
135225 --
135226 
135227 
135228 TYPE t_array_source_48 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
135229 TYPE t_array_source_80 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
135230 TYPE t_array_source_156 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
135231 TYPE t_array_source_161 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
135232 TYPE t_array_source_162 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
135233 TYPE t_array_source_163 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
135234 TYPE t_array_source_164 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
135235 TYPE t_array_source_165 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
135236 TYPE t_array_source_166 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
135237 TYPE t_array_source_167 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
135238 TYPE t_array_source_168 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
135239 TYPE t_array_source_169 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
135240 TYPE t_array_source_170 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
135241 TYPE t_array_source_171 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
135242 TYPE t_array_source_172 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
135243 TYPE t_array_source_173 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
135244 TYPE t_array_source_174 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
135245 
135246 
135247 l_array_source_48      t_array_source_48;
135248 l_array_source_80      t_array_source_80;
135249 l_array_source_156      t_array_source_156;
135250 l_array_source_161      t_array_source_161;
135251 l_array_source_162      t_array_source_162;
135252 l_array_source_163      t_array_source_163;
135253 l_array_source_164      t_array_source_164;
135254 l_array_source_165      t_array_source_165;
135255 l_array_source_166      t_array_source_166;
135256 l_array_source_167      t_array_source_167;
135257 l_array_source_168      t_array_source_168;
135258 l_array_source_169      t_array_source_169;
135259 l_array_source_170      t_array_source_170;
135260 l_array_source_171      t_array_source_171;
135261 l_array_source_172      t_array_source_172;
135262 l_array_source_173      t_array_source_173;
135263 l_array_source_174      t_array_source_174;
135264 
135265 --
135266 CURSOR header_cur
135267 IS
135268 SELECT /*+ leading(xet) cardinality(xet,1) */
135269 -- Event Class Code: PREPAYMENT_BURDEN
135270     xet.entity_id
135271    ,xet.legal_entity_id
135272    ,xet.entity_code
135273    ,xet.transaction_number
135274    ,xet.event_id
135275    ,xet.event_class_code
135276    ,xet.event_type_code
135277    ,xet.event_number
135278    ,xet.event_date
135279    ,xet.transaction_date
135280    ,xet.reference_num_1
135281    ,xet.reference_num_2
135282    ,xet.reference_num_3
135283    ,xet.reference_num_4
135284    ,xet.reference_char_1
135285    ,xet.reference_char_2
135286    ,xet.reference_char_3
135287    ,xet.reference_char_4
135288    ,xet.reference_date_1
135289    ,xet.reference_date_2
135290    ,xet.reference_date_3
135291    ,xet.reference_date_4
135292    ,xet.event_created_by
135293    ,xet.budgetary_control_flag  
135294   FROM xla_events_gt     xet  
135295  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
135296    and xet.event_class_code = C_EVENT_CLASS_CODE
135297    and xet.event_status_code <> 'N'  
135298  ORDER BY event_id
135299 ;
135300 
135301 
135302 --
135303 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
135304 IS
135305 SELECT  /*+ leading(xet) cardinality(xet,1) */
135306 -- Event Class Code: PREPAYMENT_BURDEN
135307     xet.entity_id
135308    ,xet.legal_entity_id
135309    ,xet.entity_code
135310    ,xet.transaction_number
135311    ,xet.event_id
135312    ,xet.event_class_code
135313    ,xet.event_type_code
135314    ,xet.event_number
135315    ,xet.event_date
135316    ,xet.transaction_date
135317    ,xet.reference_num_1
135318    ,xet.reference_num_2
135319    ,xet.reference_num_3
135320    ,xet.reference_num_4
135321    ,xet.reference_char_1
135322    ,xet.reference_char_2
135323    ,xet.reference_char_3
135324    ,xet.reference_char_4
135325    ,xet.reference_date_1
135326    ,xet.reference_date_2
135327    ,xet.reference_date_3
135328    ,xet.reference_date_4
135329    ,xet.event_created_by
135330    ,xet.budgetary_control_flag
135331  , l1.LINE_NUMBER  
135332   , l1.DISTRIBUTION_LINK_TYPE    source_48
135336   , l1.AID_EXPENDITURE_TYPE    source_162
135333   , l1.AI_INVOICE_CURRENCY_CODE    source_80
135334   , l1.AID_INVOICE_DIST_ID    source_156
135335   , l1.ACCT_REVERSAL_INDICATOR    source_161
135337   , l1.ENC_UPG_CR_ACCT_CLASS    source_163
135338   , l1.ENC_UPG_CR_ACCOUNT    source_164
135339   , l1.AID_AMOUNT    source_165
135340   , l1.AID_BASE_AMT_NO_ROUND    source_166
135341   , l1.ENC_UPG_DR_ACCT_CLASS    source_167
135342   , l1.ENC_UPG_DR_ACCOUNT    source_168
135343   , l1.USE_ENC_UPG_ATTRIB_FLAG    source_169
135344   , l1.ACCT_REVERSAL_FIRST_DIST_ID    source_170
135345   , l1.AP_SECOND_DIST_ID    source_171
135346   , l1.ACCT_REV_DISTRIBUTION_TYPE    source_172
135347   , l1.ENC_UPG_CR_ENC_TYPE_ID    source_173
135348   , l1.ENC_UPG_DR_ENC_TYPE_ID    source_174
135349   FROM xla_events_gt     xet 
135350   , PA_XLA_BC_PKT_AP_DETAIL_V  l1
135351  WHERE xet.event_id between x_first_event_id and x_last_event_id
135352    and xet.event_date between p_pad_start_date and p_pad_end_date
135353    and xet.event_class_code = C_EVENT_CLASS_CODE
135354    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
135355 ;
135356 
135357 --
135358 BEGIN
135359 IF g_log_enabled THEN
135360    l_log_module := C_DEFAULT_MODULE||'.EventClass_212';
135361 END IF;
135362 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135363    trace
135364       (p_msg      => 'BEGIN of EventClass_212'
135365       ,p_level    => C_LEVEL_PROCEDURE
135366       ,p_module   => l_log_module);
135367 END IF;
135368 
135369 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135370    trace
135371       (p_msg      => 'p_application_id = '||p_application_id||
135372                      ' - p_base_ledger_id = '||p_base_ledger_id||
135373                      ' - p_target_ledger_id  = '||p_target_ledger_id||
135374                      ' - p_language = '||p_language||
135375                      ' - p_currency_code = '||p_currency_code||
135376                      ' - p_sla_ledger_id = '||p_sla_ledger_id
135377       ,p_level    => C_LEVEL_STATEMENT
135378       ,p_module   => l_log_module);
135379 END IF;
135380 --
135381 -- initialze arrays
135382 --
135383 g_array_event.DELETE;
135384 l_rec_array_event := l_null_rec_array_event;
135385 --
135386 --------------------------------------
135387 -- 4262811 Initialze MPA Line Number
135388 --------------------------------------
135389 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
135390 
135391 --
135392 
135393 --
135394 OPEN header_cur;
135395 --
135396 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135397    trace
135398    (p_msg      => 'SQL - FETCH header_cur'
135399    ,p_level    => C_LEVEL_STATEMENT
135400    ,p_module   => l_log_module);
135401 END IF;
135402 --
135403 LOOP
135404 FETCH header_cur BULK COLLECT INTO
135405         l_array_entity_id
135406       , l_array_legal_entity_id
135407       , l_array_entity_code
135408       , l_array_transaction_num
135409       , l_array_event_id
135410       , l_array_class_code
135411       , l_array_event_type
135412       , l_array_event_number
135413       , l_array_event_date
135414       , l_array_transaction_date
135415       , l_array_reference_num_1
135416       , l_array_reference_num_2
135417       , l_array_reference_num_3
135418       , l_array_reference_num_4
135419       , l_array_reference_char_1
135420       , l_array_reference_char_2
135421       , l_array_reference_char_3
135422       , l_array_reference_char_4
135423       , l_array_reference_date_1
135424       , l_array_reference_date_2
135425       , l_array_reference_date_3
135426       , l_array_reference_date_4
135427       , l_array_event_created_by
135428       , l_array_budgetary_control_flag 
135429       LIMIT l_rows;
135430 --
135431 IF (C_LEVEL_EVENT >= g_log_level) THEN
135432    trace
135433    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
135434    ,p_level    => C_LEVEL_EVENT
135435    ,p_module   => l_log_module);
135436 END IF;
135437 --
135438 EXIT WHEN l_array_entity_id.COUNT = 0;
135439 
135440 -- initialize arrays
135441 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
135442 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
135443 
135444 --
135445 -- Bug 4458708
135446 --
135447 XLA_AE_LINES_PKG.g_LineNumber := 0;
135448 
135449 
135450 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
135451 g_last_hdr_idx := l_array_event_id.LAST;
135452 --
135453 -- loop for the headers. Each iteration is for each header extract row
135454 -- fetched in header cursor
135455 --
135456 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
135457 
135458 --
135459 -- set event info as cache for other routines to refer event attributes
135460 --
135461 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
135462    (p_application_id           => p_application_id
135463    ,p_primary_ledger_id        => p_primary_ledger_id
135464    ,p_base_ledger_id           => p_base_ledger_id
135465    ,p_target_ledger_id         => p_target_ledger_id
135466    ,p_entity_id                => l_array_entity_id(hdr_idx)
135467    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
135468    ,p_entity_code              => l_array_entity_code(hdr_idx)
135469    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
135470    ,p_event_id                 => l_array_event_id(hdr_idx)
135471    ,p_event_class_code         => l_array_class_code(hdr_idx)
135472    ,p_event_type_code          => l_array_event_type(hdr_idx)
135473    ,p_event_number             => l_array_event_number(hdr_idx)
135474    ,p_event_date               => l_array_event_date(hdr_idx)
135475    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
135476    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
135477    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
135481    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
135478    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
135479    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
135480    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
135482    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
135483    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
135484    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
135485    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
135486    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
135487    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
135488    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
135489    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
135490 
135491 --
135492 -- set the status of entry to C_VALID (0)
135493 --
135494 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
135495 
135496 --
135497 -- initialize a row for ae header
135498 --
135499 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
135500 
135501 l_event_id := l_array_event_id(hdr_idx);
135502 
135503 --
135504 -- storing the hdr_idx for event. May be used by line cursor.
135505 --
135506 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
135507 
135508 --
135509 -- store sources from header extract. This can be improved to
135510 -- store only those sources from header extract that may be used in lines
135511 --
135512 
135513 
135514 --
135515 -- initilaize the status of ae headers for diffrent balance types
135516 -- the status is initialised to C_NOT_CREATED (2)
135517 --
135518 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
135519 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
135520 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
135521 
135522 --
135523 -- call api to validate and store accounting attributes for header
135524 --
135525 
135526 ------------------------------------------------------------
135527 -- Accrual Reversal : to get date for Standard Source (NONE)
135528 ------------------------------------------------------------
135529 l_acc_rev_gl_date_source := NULL;
135530 
135531      l_rec_acct_attrs.array_acct_attr_code(1)   := 'GL_DATE';
135532       l_rec_acct_attrs.array_date_value(1) := 
135533 xla_ae_sources_pkg.GetSystemSourceDate(
135534    p_source_code           => 'XLA_EVENT_DATE'
135535  , p_source_type_code      => 'Y'
135536  , p_source_application_id =>  602
135537 );
135538 
135539 
135540 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
135541 
135542 XLA_AE_HEADER_PKG.SetJeCategoryName;
135543 
135544 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
135545 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
135546 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
135547 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
135548 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
135549 
135550 
135551 -- No header level analytical criteria
135552 
135553 --
135554 --accounting attribute enhancement, bug 3612931
135555 --
135556 l_trx_reversal_source := SUBSTR(NULL, 1,30);
135557 
135558 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
135559    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
135560 
135561    xla_accounting_err_pkg.build_message
135562       (p_appli_s_name            => 'XLA'
135563       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
135564       ,p_token_1                 => 'ACCT_ATTR_NAME'
135565       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
135566       ,p_token_2                 => 'PRODUCT_NAME'
135567       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
135568       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
135569       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
135570       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
135571 
135572 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
135573    --
135574    -- following sets the accounting attributes needed to reverse
135575    -- accounting for a distributeion
135576    --
135577    xla_ae_lines_pkg.SetTrxReversalAttrs
135578       (p_event_id              => l_event_id
135579       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
135580       ,p_trx_reversal_source   => l_trx_reversal_source);
135581 
135582 END IF;
135583 
135584 
135585 ----------------------------------------------------------------
135586 -- 4262811 -  update the header statuses to invalid in need be
135587 ----------------------------------------------------------------
135588 --
135589 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
135590 
135591 
135592   -----------------------------------------------
135593   -- No accrual reversal for the event class/type
135594   -----------------------------------------------
135595 ----------------------------------------------------------------
135596 
135597 --
135598 -- this ends the header loop iteration for one bulk fetch
135599 --
135600 END LOOP;
135601 
135602 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
135603 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
135604 
135605 --
135606 -- insert dummy rows into lines gt table that were created due to
135607 -- transaction reversals
135608 --
135612 
135609 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
135610    l_result := XLA_AE_LINES_PKG.InsertLines;
135611 END IF;
135613 --
135614 -- reset the temp_line_num for each set of events fetched from header
135615 -- cursor rather than doing it for each new event in line cursor
135616 -- Bug 3939231
135617 --
135618 xla_ae_lines_pkg.g_temp_line_num := 0;
135619 
135620 
135621 
135622 --
135623 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
135624 --
135625 --
135626 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135627 
135628       trace
135629          (p_msg      => 'SQL - FETCH line_cur'
135630          ,p_level    => C_LEVEL_STATEMENT
135631          ,p_module   => l_log_module);
135632 
135633 END IF;
135634 --
135635 --
135636 LOOP
135637   --
135638   FETCH line_cur BULK COLLECT INTO
135639         l_array_entity_id
135640       , l_array_legal_entity_id
135641       , l_array_entity_code
135642       , l_array_transaction_num
135643       , l_array_event_id
135644       , l_array_class_code
135645       , l_array_event_type
135646       , l_array_event_number
135647       , l_array_event_date
135648       , l_array_transaction_date
135649       , l_array_reference_num_1
135650       , l_array_reference_num_2
135651       , l_array_reference_num_3
135652       , l_array_reference_num_4
135653       , l_array_reference_char_1
135654       , l_array_reference_char_2
135655       , l_array_reference_char_3
135656       , l_array_reference_char_4
135657       , l_array_reference_date_1
135658       , l_array_reference_date_2
135659       , l_array_reference_date_3
135660       , l_array_reference_date_4
135661       , l_array_event_created_by
135662       , l_array_budgetary_control_flag
135663       , l_array_extract_line_num 
135664       , l_array_source_48
135665       , l_array_source_80
135666       , l_array_source_156
135667       , l_array_source_161
135668       , l_array_source_162
135669       , l_array_source_163
135670       , l_array_source_164
135671       , l_array_source_165
135672       , l_array_source_166
135673       , l_array_source_167
135674       , l_array_source_168
135675       , l_array_source_169
135676       , l_array_source_170
135677       , l_array_source_171
135678       , l_array_source_172
135679       , l_array_source_173
135680       , l_array_source_174
135681       LIMIT l_rows;
135682 
135683   --
135684   IF (C_LEVEL_EVENT >= g_log_level) THEN
135685             trace
135686                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
135687                ,p_level    => C_LEVEL_EVENT
135688                ,p_module   => l_log_module);
135689   END IF;
135690   --
135691   EXIT WHEN l_array_entity_id.count = 0;
135692 
135693   XLA_AE_LINES_PKG.g_rec_lines := null;
135694 
135695 --
135696 -- Bug 4458708
135697 --
135698 XLA_AE_LINES_PKG.g_LineNumber := 0;
135699 --
135700 --
135701 
135702 FOR Idx IN 1..l_array_event_id.count LOOP
135703    --
135704    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
135705    --
135706    l_event_id := l_array_event_id(idx);  -- 5648433
135707 
135708    --
135709    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
135710    --
135711 
135712    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
135713              (g_array_event(l_event_id).array_value_num('header_index'))
135714          ,'N'
135715          ) <> 'Y'
135716    THEN
135717       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135718          trace
135719             (p_msg      => 'Trancaction revesal option is not Y '
135720             ,p_level    => C_LEVEL_STATEMENT
135721             ,p_module   => l_log_module);
135722       END IF;
135723 
135724 --
135725 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
135726 --
135727 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
135728 --
135729 -- set event info as cache for other routines to refer event attributes
135730 --
135731 
135732 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
135733    l_previous_event_id := l_event_id;
135734 
135735    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
135736       (p_application_id           => p_application_id
135737       ,p_primary_ledger_id        => p_primary_ledger_id
135738       ,p_base_ledger_id           => p_base_ledger_id
135739       ,p_target_ledger_id         => p_target_ledger_id
135740       ,p_entity_id                => l_array_entity_id(Idx)
135741       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
135742       ,p_entity_code              => l_array_entity_code(Idx)
135743       ,p_transaction_num          => l_array_transaction_num(Idx)
135744       ,p_event_id                 => l_array_event_id(Idx)
135745       ,p_event_class_code         => l_array_class_code(Idx)
135746       ,p_event_type_code          => l_array_event_type(Idx)
135747       ,p_event_number             => l_array_event_number(Idx)
135748       ,p_event_date               => l_array_event_date(Idx)
135749       ,p_transaction_date         => l_array_transaction_date(Idx)
135750       ,p_reference_num_1          => l_array_reference_num_1(Idx)
135751       ,p_reference_num_2          => l_array_reference_num_2(Idx)
135752       ,p_reference_num_3          => l_array_reference_num_3(Idx)
135753       ,p_reference_num_4          => l_array_reference_num_4(Idx)
135754       ,p_reference_char_1         => l_array_reference_char_1(Idx)
135755       ,p_reference_char_2         => l_array_reference_char_2(Idx)
135756       ,p_reference_char_3         => l_array_reference_char_3(Idx)
135757       ,p_reference_char_4         => l_array_reference_char_4(Idx)
135758       ,p_reference_date_1         => l_array_reference_date_1(Idx)
135762       ,p_event_created_by         => l_array_event_created_by(Idx)
135759       ,p_reference_date_2         => l_array_reference_date_2(Idx)
135760       ,p_reference_date_3         => l_array_reference_date_3(Idx)
135761       ,p_reference_date_4         => l_array_reference_date_4(Idx)
135763       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
135764        --
135765 END IF;
135766 
135767 
135768 
135769 --
135770 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
135771 
135772 l_acct_reversal_source := SUBSTR(l_array_source_161(Idx), 1,30);
135773 
135774 IF l_continue_with_lines THEN
135775    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
135776       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
135777 
135778       xla_accounting_err_pkg.build_message
135779          (p_appli_s_name            => 'XLA'
135780          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
135781          ,p_token_1                 => 'LINE_NUMBER'
135782          ,p_value_1                 => l_array_extract_line_num(Idx)
135783          ,p_token_2                 => 'PRODUCT_NAME'
135784          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
135785          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
135786          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
135787          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
135788 
135789    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
135790       --
135791       -- following sets the accounting attributes needed to reverse
135792       -- accounting for a distributeion
135793       --
135794 
135795       --
135796       -- 5217187
135797       --
135798       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
135799       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
135800                                        g_array_event(l_event_id).array_value_num('header_index'));
135801       --
135802       --
135803 
135804       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
135805       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_161(Idx);
135806       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
135807       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_156(Idx);
135808       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
135809       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_162(Idx);
135810       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
135811       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_48(Idx);
135812       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
135813       l_rec_rev_acct_attrs.array_char_value(6)  := l_array_source_163(Idx);
135814       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
135815       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_164(Idx);
135816       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
135817       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_165(Idx);
135818       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
135819       l_rec_rev_acct_attrs.array_char_value(9)  := l_array_source_80(Idx);
135820       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
135821       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_166(Idx);
135822       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
135823       l_rec_rev_acct_attrs.array_char_value(11)  := l_array_source_167(Idx);
135824       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
135825       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_168(Idx);
135826       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
135827       l_rec_rev_acct_attrs.array_num_value(13)  := l_array_source_165(Idx);
135828       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
135829       l_rec_rev_acct_attrs.array_char_value(14)  := l_array_source_80(Idx);
135830       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
135831       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_166(Idx);
135832       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
135833       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_169(Idx);
135834       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
135835       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_170(Idx);
135836       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
135837       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_171(Idx);
135838       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
135839       l_rec_rev_acct_attrs.array_char_value(19)  := l_array_source_172(Idx);
135840       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
135841       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_173(Idx);
135842       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
135843       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_174(Idx);
135844 
135845 
135846       xla_ae_lines_pkg.SetAcctReversalAttrs
135847          (p_event_id             => l_event_id
135848          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
135849          ,p_calculate_acctd_flag => l_calculate_acctd_flag
135850          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
135851    END IF;
135852 
135853    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
135854        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
135855       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
135856       -- or secondary ledger that has different currency with primary
135857       -- or alc that is calculated by sla
135861 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
135858       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
135859             (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'))
135860 
135862 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
135863           AND (l_actual_flag = 'A')) THEN
135864         XLA_AE_LINES_PKG.CreateGainOrLossLines(
135865           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
135866          ,p_application_id   => p_application_id
135867          ,p_amb_context_code => 'DEFAULT'
135868          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
135869          ,p_event_class_code => C_EVENT_CLASS_CODE
135870          ,p_event_type_code  => C_EVENT_TYPE_CODE
135871          
135872          ,p_gain_ccid        => -1
135873          ,p_loss_ccid        => -1
135874 
135875          ,p_actual_flag      => l_actual_flag
135876          ,p_enc_flag         => null
135877          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
135878          ,p_enc_g_l_ref      => null
135879          );
135880       END IF;
135881    END IF;
135882 END IF;
135883 
135884    ELSE
135885       --
135886       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
135887       --
135888       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135889          trace
135890             (p_msg      => 'Trancaction revesal option is Y'
135891             ,p_level    => C_LEVEL_STATEMENT
135892             ,p_module   => l_log_module);
135893       END IF;
135894    END IF;
135895 
135896 END LOOP;
135897 l_result := XLA_AE_LINES_PKG.InsertLines ;
135898 end loop;
135899 close line_cur;
135900 
135901 
135902 --
135903 -- insert headers into xla_ae_headers_gt table
135904 --
135905 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
135906 
135907 -- insert into errors table here.
135908 
135909 END LOOP;
135910 
135911 --
135912 -- 4865292
135913 --
135914 -- Compare g_hdr_extract_count with event count in
135915 -- CreateHeadersAndLines.
135916 --
135917 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
135918 
135919 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
135920    trace (p_msg     => '# rows extracted from header extract objects '
135921                     || ' (running total): '
135922                     || g_hdr_extract_count
135923          ,p_level   => C_LEVEL_STATEMENT
135924          ,p_module  => l_log_module);
135925 END IF;
135926 
135927 CLOSE header_cur;
135928 --
135929 
135930 --
135931 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135932    trace
135933       (p_msg      => 'END of EventClass_212'
135934       ,p_level    => C_LEVEL_PROCEDURE
135935       ,p_module   => l_log_module);
135936 END IF;
135937 --
135938 RETURN l_result;
135939 EXCEPTION
135940 WHEN xla_exceptions_pkg.application_exception THEN
135941    
135942 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
135943 
135944    
135945 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
135946 
135947    RAISE;
135948 
135949 WHEN NO_DATA_FOUND THEN
135950 
135951 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
135952 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
135953 
135954 FOR header_record IN header_cur
135955 LOOP
135956     l_array_header_events(header_record.event_id) := header_record.event_id;
135957 END LOOP;
135958 
135959 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
135960 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
135961 
135962 fnd_file.put_line(fnd_file.LOG, '                    ');
135963 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
135964 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
135965 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
135966 
135967 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
135968 LOOP
135969 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
135970 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
135971         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
135972 	END IF;
135973 END LOOP;
135974 
135975 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
135976 fnd_file.put_line(fnd_file.LOG, '                    ');
135977 
135978 
135979 xla_exceptions_pkg.raise_message
135980       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_212');
135981 
135982 
135983 WHEN OTHERS THEN
135984    xla_exceptions_pkg.raise_message
135985       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_212');
135986 END EventClass_212;
135987 --
135988 
135989 ---------------------------------------
135990 --
135991 -- PRIVATE PROCEDURE
135992 --         insert_sources_213
135993 --
135994 ----------------------------------------
135995 --
135996 PROCEDURE insert_sources_213(
135997                                 p_target_ledger_id       IN NUMBER
135998                               , p_language               IN VARCHAR2
135999                               , p_sla_ledger_id          IN NUMBER
136000                               , p_pad_start_date         IN DATE
136001                               , p_pad_end_date           IN DATE
136002                          )
136003 IS
136004 
136005 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAY_APPLICATION_BURDEN_ALL';
136009 BEGIN
136006 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN';
136007 p_apps_owner                   VARCHAR2(30);
136008 l_log_module                   VARCHAR2(240);
136010 IF g_log_enabled THEN
136011       l_log_module := C_DEFAULT_MODULE||'.insert_sources_213';
136012 END IF;
136013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136014 
136015       trace
136016          (p_msg      => 'BEGIN of insert_sources_213'
136017          ,p_level    => C_LEVEL_PROCEDURE
136018          ,p_module   => l_log_module);
136019 
136020 END IF;
136021 
136022 -- select APPS owner
136023 SELECT oracle_username
136024   INTO p_apps_owner
136025   FROM fnd_oracle_userid
136026  WHERE read_only_flag = 'U'
136027 ;
136028 
136029 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136030       trace
136031          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
136032                         ' - p_language = '||p_language||
136033                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
136034                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
136035                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
136036                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
136037          ,p_level    => C_LEVEL_STATEMENT
136038          ,p_module   => l_log_module);
136039 END IF;
136040 
136041  
136042 
136043 
136044 --
136045 INSERT INTO xla_diag_sources  --line2
136046 (
136047         event_id
136048       , ledger_id
136049       , sla_ledger_id
136050       , description_language
136051       , object_name
136052       , object_type_code
136053       , line_number
136054       , source_application_id
136055       , source_type_code
136056       , source_code
136057       , source_value
136058       , source_meaning
136059       , created_by
136060       , creation_date
136061       , last_update_date
136062       , last_updated_by
136063       , last_update_login
136064       , program_update_date
136065       , program_application_id
136066       , program_id
136067       , request_id
136068 )
136069 SELECT  event_id
136070       , p_target_ledger_id
136071       , p_sla_ledger_id
136072       , p_language
136073       , object_name
136074       , object_type_code
136075       , line_number
136076       , source_application_id
136077       , source_type_code
136078       , source_code
136079       , SUBSTR(source_value,1,1996)
136080       , SUBSTR(source_meaning ,1,200)
136081       , xla_environment_pkg.g_Usr_Id
136082       , TRUNC(SYSDATE)
136083       , TRUNC(SYSDATE)
136084       , xla_environment_pkg.g_Usr_Id
136085       , xla_environment_pkg.g_Login_Id
136086       , TRUNC(SYSDATE)
136087       , xla_environment_pkg.g_Prog_Appl_Id
136088       , xla_environment_pkg.g_Prog_Id
136089       , xla_environment_pkg.g_Req_Id
136090   FROM (
136091        SELECT xet.event_id                  event_id
136092             , l1.line_number                 line_number
136093             , CASE r
136094                WHEN 1 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136095                 WHEN 2 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136096                 WHEN 3 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136097                 WHEN 4 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136098                 WHEN 5 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136099                 WHEN 6 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136100                 WHEN 7 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136101                 WHEN 8 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136102                 WHEN 9 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136103                 WHEN 10 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136104                 WHEN 11 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136105                 WHEN 12 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136106                 WHEN 13 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136107                 WHEN 14 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136108                 WHEN 15 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136109                 WHEN 16 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136110                 WHEN 17 THEN 'PA_XLA_BC_PKT_AP_DETAIL_V' 
136111                 
136112                ELSE null
136113               END                           object_name
136114             , CASE r
136115                 WHEN 1 THEN 'LINE' 
136116                 WHEN 2 THEN 'LINE' 
136117                 WHEN 3 THEN 'LINE' 
136118                 WHEN 4 THEN 'LINE' 
136119                 WHEN 5 THEN 'LINE' 
136120                 WHEN 6 THEN 'LINE' 
136121                 WHEN 7 THEN 'LINE' 
136122                 WHEN 8 THEN 'LINE' 
136123                 WHEN 9 THEN 'LINE' 
136124                 WHEN 10 THEN 'LINE' 
136125                 WHEN 11 THEN 'LINE' 
136126                 WHEN 12 THEN 'LINE' 
136127                 WHEN 13 THEN 'LINE' 
136128                 WHEN 14 THEN 'LINE' 
136129                 WHEN 15 THEN 'LINE' 
136130                 WHEN 16 THEN 'LINE' 
136131                 WHEN 17 THEN 'LINE' 
136132                 
136133                 ELSE null
136134               END                           object_type_code
136135             , CASE r
136136                 WHEN 1 THEN '200' 
136137                 WHEN 2 THEN '200' 
136138                 WHEN 3 THEN '200' 
136139                 WHEN 4 THEN '200' 
136140                 WHEN 5 THEN '200' 
136141                 WHEN 6 THEN '200' 
136142                 WHEN 7 THEN '200' 
136143                 WHEN 8 THEN '200' 
136144                 WHEN 9 THEN '200' 
136145                 WHEN 10 THEN '200' 
136146                 WHEN 11 THEN '200' 
136147                 WHEN 12 THEN '200' 
136148                 WHEN 13 THEN '200' 
136149                 WHEN 14 THEN '200' 
136150                 WHEN 15 THEN '200' 
136151                 WHEN 16 THEN '200' 
136152                 WHEN 17 THEN '200' 
136153                 
136154                 ELSE null
136158                 WHEN 1 THEN 'DISTRIBUTION_LINK_TYPE' 
136155               END                           source_application_id
136156             , 'S'             source_type_code
136157             , CASE r
136159                 WHEN 2 THEN 'AI_INVOICE_CURRENCY_CODE' 
136160                 WHEN 3 THEN 'AID_INVOICE_DIST_ID' 
136161                 WHEN 4 THEN 'ACCT_REVERSAL_INDICATOR' 
136162                 WHEN 5 THEN 'AID_EXPENDITURE_TYPE' 
136163                 WHEN 6 THEN 'ENC_UPG_CR_ACCT_CLASS' 
136164                 WHEN 7 THEN 'ENC_UPG_CR_ACCOUNT' 
136165                 WHEN 8 THEN 'AID_AMOUNT' 
136166                 WHEN 9 THEN 'AID_BASE_AMT_NO_ROUND' 
136167                 WHEN 10 THEN 'ENC_UPG_DR_ACCT_CLASS' 
136168                 WHEN 11 THEN 'ENC_UPG_DR_ACCOUNT' 
136169                 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG' 
136170                 WHEN 13 THEN 'ACCT_REVERSAL_FIRST_DIST_ID' 
136171                 WHEN 14 THEN 'AP_SECOND_DIST_ID' 
136172                 WHEN 15 THEN 'ACCT_REV_DISTRIBUTION_TYPE' 
136173                 WHEN 16 THEN 'ENC_UPG_CR_ENC_TYPE_ID' 
136174                 WHEN 17 THEN 'ENC_UPG_DR_ENC_TYPE_ID' 
136175                 
136176                 ELSE null
136177               END                           source_code
136178             , CASE r
136179                 WHEN 1 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
136180                 WHEN 2 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
136181                 WHEN 3 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
136182                 WHEN 4 THEN TO_CHAR(l1.ACCT_REVERSAL_INDICATOR)
136183                 WHEN 5 THEN TO_CHAR(l1.AID_EXPENDITURE_TYPE)
136184                 WHEN 6 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
136185                 WHEN 7 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
136186                 WHEN 8 THEN TO_CHAR(l1.AID_AMOUNT)
136187                 WHEN 9 THEN TO_CHAR(l1.AID_BASE_AMT_NO_ROUND)
136188                 WHEN 10 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
136189                 WHEN 11 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
136190                 WHEN 12 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
136191                 WHEN 13 THEN TO_CHAR(l1.ACCT_REVERSAL_FIRST_DIST_ID)
136192                 WHEN 14 THEN TO_CHAR(l1.AP_SECOND_DIST_ID)
136193                 WHEN 15 THEN TO_CHAR(l1.ACCT_REV_DISTRIBUTION_TYPE)
136194                 WHEN 16 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
136195                 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
136196                 
136197                 ELSE null
136198               END                           source_value
136199             , null              source_meaning
136200          FROM  xla_events_gt     xet  
136201         , PA_XLA_BC_PKT_AP_DETAIL_V  l1
136202             , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
136203         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
136204           AND xet.event_class_code = C_EVENT_CLASS_CODE
136205             AND l1.event_id          = xet.event_id
136206 
136207 )
136208 ;
136209 --
136210 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136211 
136212       trace
136213          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
136214          ,p_level    => C_LEVEL_STATEMENT
136215          ,p_module   => l_log_module);
136216 
136217 END IF;
136218 
136219 
136220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136221       trace
136222          (p_msg      => 'END of insert_sources_213'
136223          ,p_level    => C_LEVEL_PROCEDURE
136224          ,p_module   => l_log_module);
136225 END IF;
136226 EXCEPTION
136227   WHEN xla_exceptions_pkg.application_exception THEN
136228       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
136229             trace
136230                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
136231                ,p_level    => C_LEVEL_EXCEPTION
136232                ,p_module   => l_log_module);
136233       END IF;
136234       RAISE;
136235   WHEN OTHERS THEN
136236       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
136237             trace
136238                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
136239                ,p_level    => C_LEVEL_EXCEPTION
136240                ,p_module   => l_log_module);
136241        END IF;
136242        xla_exceptions_pkg.raise_message
136243            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_213');
136244 END insert_sources_213;
136245 --
136246 
136247 ---------------------------------------
136248 --
136249 -- PRIVATE FUNCTION
136250 --         EventClass_213
136251 --
136252 ----------------------------------------
136253 --
136254 FUNCTION EventClass_213
136255        (p_application_id         IN NUMBER
136256        ,p_base_ledger_id         IN NUMBER
136257        ,p_target_ledger_id       IN NUMBER
136258        ,p_language               IN VARCHAR2
136259        ,p_currency_code          IN VARCHAR2
136260        ,p_sla_ledger_id          IN NUMBER
136261        ,p_pad_start_date         IN DATE
136262        ,p_pad_end_date           IN DATE
136263        ,p_primary_ledger_id      IN NUMBER)
136264 RETURN BOOLEAN IS
136265 --
136266 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAY_APPLICATION_BURDEN_ALL';
136267 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAY_APPLICATION_BURDEN';
136268 
136269 l_calculate_acctd_flag   VARCHAR2(1) :='N';
136270 l_calculate_g_l_flag     VARCHAR2(1) :='N';
136271 --
136272 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136273 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136274 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
136275 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136276 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136277 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
136278 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
136282 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136279 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136280 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136281 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136283 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136284 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136285 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
136286 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136287 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136288 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136289 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
136290 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136291 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136292 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136293 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
136294 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
136295 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
136296 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
136297 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
136298 
136299 l_event_id                             NUMBER;
136300 l_previous_event_id                    NUMBER;
136301 l_first_event_id                       NUMBER;
136302 l_last_event_id                        NUMBER;
136303 
136304 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
136305 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
136306 --
136307 --
136308 l_result                    BOOLEAN := TRUE;
136309 l_rows                      NUMBER  := 1000;
136310 l_event_type_name           VARCHAR2(80) := 'All';
136311 l_event_class_name          VARCHAR2(80) := 'Burden for Prepayment Applications';
136312 l_description               VARCHAR2(4000);
136313 l_transaction_reversal      NUMBER;
136314 l_ae_header_id              NUMBER;
136315 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
136316 l_log_module                VARCHAR2(240);
136317 --
136318 l_acct_reversal_source      VARCHAR2(30);
136319 l_trx_reversal_source       VARCHAR2(30);
136320 
136321 l_continue_with_lines       BOOLEAN := TRUE;
136322 --
136323 l_acc_rev_gl_date_source    DATE;                      -- 4262811
136324 --
136325 type t_array_event_id is table of number index by binary_integer;
136326 
136327 l_rec_array_event                    t_rec_array_event;
136328 l_null_rec_array_event               t_rec_array_event;
136329 l_array_ae_header_id                 xla_number_array_type;
136330 l_actual_flag                        VARCHAR2(1) := NULL;
136331 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
136332 l_balance_type_code                  VARCHAR2(1) :=NULL;
136333 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
136334 
136335 --
136336 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
136337 --
136338 
136339 
136340 TYPE t_array_source_48 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
136341 TYPE t_array_source_80 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
136342 TYPE t_array_source_156 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
136343 TYPE t_array_source_161 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
136344 TYPE t_array_source_162 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
136345 TYPE t_array_source_163 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
136346 TYPE t_array_source_164 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
136347 TYPE t_array_source_165 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
136348 TYPE t_array_source_166 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AID_BASE_AMT_NO_ROUND%TYPE INDEX BY BINARY_INTEGER;
136349 TYPE t_array_source_167 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
136350 TYPE t_array_source_168 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
136351 TYPE t_array_source_169 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
136352 TYPE t_array_source_170 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REVERSAL_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
136353 TYPE t_array_source_171 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.AP_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
136354 TYPE t_array_source_172 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ACCT_REV_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
136355 TYPE t_array_source_173 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
136356 TYPE t_array_source_174 IS TABLE OF PA_XLA_BC_PKT_AP_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
136357 
136358 
136359 l_array_source_48      t_array_source_48;
136360 l_array_source_80      t_array_source_80;
136361 l_array_source_156      t_array_source_156;
136362 l_array_source_161      t_array_source_161;
136363 l_array_source_162      t_array_source_162;
136364 l_array_source_163      t_array_source_163;
136365 l_array_source_164      t_array_source_164;
136366 l_array_source_165      t_array_source_165;
136367 l_array_source_166      t_array_source_166;
136368 l_array_source_167      t_array_source_167;
136369 l_array_source_168      t_array_source_168;
136370 l_array_source_169      t_array_source_169;
136371 l_array_source_170      t_array_source_170;
136372 l_array_source_171      t_array_source_171;
136373 l_array_source_172      t_array_source_172;
136374 l_array_source_173      t_array_source_173;
136378 CURSOR header_cur
136375 l_array_source_174      t_array_source_174;
136376 
136377 --
136379 IS
136380 SELECT /*+ leading(xet) cardinality(xet,1) */
136381 -- Event Class Code: PREPAY_APPLICATION_BURDEN
136382     xet.entity_id
136383    ,xet.legal_entity_id
136384    ,xet.entity_code
136385    ,xet.transaction_number
136386    ,xet.event_id
136387    ,xet.event_class_code
136388    ,xet.event_type_code
136389    ,xet.event_number
136390    ,xet.event_date
136391    ,xet.transaction_date
136392    ,xet.reference_num_1
136393    ,xet.reference_num_2
136394    ,xet.reference_num_3
136395    ,xet.reference_num_4
136396    ,xet.reference_char_1
136397    ,xet.reference_char_2
136398    ,xet.reference_char_3
136399    ,xet.reference_char_4
136400    ,xet.reference_date_1
136401    ,xet.reference_date_2
136402    ,xet.reference_date_3
136403    ,xet.reference_date_4
136404    ,xet.event_created_by
136405    ,xet.budgetary_control_flag  
136406   FROM xla_events_gt     xet  
136407  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
136408    and xet.event_class_code = C_EVENT_CLASS_CODE
136409    and xet.event_status_code <> 'N'  
136410  ORDER BY event_id
136411 ;
136412 
136413 
136414 --
136415 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
136416 IS
136417 SELECT  /*+ leading(xet) cardinality(xet,1) */
136418 -- Event Class Code: PREPAY_APPLICATION_BURDEN
136419     xet.entity_id
136420    ,xet.legal_entity_id
136421    ,xet.entity_code
136422    ,xet.transaction_number
136423    ,xet.event_id
136424    ,xet.event_class_code
136425    ,xet.event_type_code
136426    ,xet.event_number
136427    ,xet.event_date
136428    ,xet.transaction_date
136429    ,xet.reference_num_1
136430    ,xet.reference_num_2
136431    ,xet.reference_num_3
136432    ,xet.reference_num_4
136433    ,xet.reference_char_1
136434    ,xet.reference_char_2
136435    ,xet.reference_char_3
136436    ,xet.reference_char_4
136437    ,xet.reference_date_1
136438    ,xet.reference_date_2
136439    ,xet.reference_date_3
136440    ,xet.reference_date_4
136441    ,xet.event_created_by
136442    ,xet.budgetary_control_flag
136443  , l1.LINE_NUMBER  
136444   , l1.DISTRIBUTION_LINK_TYPE    source_48
136445   , l1.AI_INVOICE_CURRENCY_CODE    source_80
136446   , l1.AID_INVOICE_DIST_ID    source_156
136447   , l1.ACCT_REVERSAL_INDICATOR    source_161
136448   , l1.AID_EXPENDITURE_TYPE    source_162
136449   , l1.ENC_UPG_CR_ACCT_CLASS    source_163
136450   , l1.ENC_UPG_CR_ACCOUNT    source_164
136451   , l1.AID_AMOUNT    source_165
136452   , l1.AID_BASE_AMT_NO_ROUND    source_166
136453   , l1.ENC_UPG_DR_ACCT_CLASS    source_167
136454   , l1.ENC_UPG_DR_ACCOUNT    source_168
136455   , l1.USE_ENC_UPG_ATTRIB_FLAG    source_169
136456   , l1.ACCT_REVERSAL_FIRST_DIST_ID    source_170
136457   , l1.AP_SECOND_DIST_ID    source_171
136458   , l1.ACCT_REV_DISTRIBUTION_TYPE    source_172
136459   , l1.ENC_UPG_CR_ENC_TYPE_ID    source_173
136460   , l1.ENC_UPG_DR_ENC_TYPE_ID    source_174
136461   FROM xla_events_gt     xet 
136462   , PA_XLA_BC_PKT_AP_DETAIL_V  l1
136463  WHERE xet.event_id between x_first_event_id and x_last_event_id
136464    and xet.event_date between p_pad_start_date and p_pad_end_date
136465    and xet.event_class_code = C_EVENT_CLASS_CODE
136466    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
136467 ;
136468 
136469 --
136470 BEGIN
136471 IF g_log_enabled THEN
136472    l_log_module := C_DEFAULT_MODULE||'.EventClass_213';
136473 END IF;
136474 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136475    trace
136476       (p_msg      => 'BEGIN of EventClass_213'
136477       ,p_level    => C_LEVEL_PROCEDURE
136478       ,p_module   => l_log_module);
136479 END IF;
136480 
136481 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136482    trace
136483       (p_msg      => 'p_application_id = '||p_application_id||
136484                      ' - p_base_ledger_id = '||p_base_ledger_id||
136485                      ' - p_target_ledger_id  = '||p_target_ledger_id||
136486                      ' - p_language = '||p_language||
136487                      ' - p_currency_code = '||p_currency_code||
136488                      ' - p_sla_ledger_id = '||p_sla_ledger_id
136489       ,p_level    => C_LEVEL_STATEMENT
136490       ,p_module   => l_log_module);
136491 END IF;
136492 --
136493 -- initialze arrays
136494 --
136495 g_array_event.DELETE;
136496 l_rec_array_event := l_null_rec_array_event;
136497 --
136498 --------------------------------------
136499 -- 4262811 Initialze MPA Line Number
136500 --------------------------------------
136501 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
136502 
136503 --
136504 
136505 --
136506 OPEN header_cur;
136507 --
136508 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136509    trace
136510    (p_msg      => 'SQL - FETCH header_cur'
136511    ,p_level    => C_LEVEL_STATEMENT
136512    ,p_module   => l_log_module);
136513 END IF;
136514 --
136515 LOOP
136516 FETCH header_cur BULK COLLECT INTO
136517         l_array_entity_id
136518       , l_array_legal_entity_id
136519       , l_array_entity_code
136520       , l_array_transaction_num
136521       , l_array_event_id
136522       , l_array_class_code
136523       , l_array_event_type
136524       , l_array_event_number
136525       , l_array_event_date
136526       , l_array_transaction_date
136527       , l_array_reference_num_1
136528       , l_array_reference_num_2
136529       , l_array_reference_num_3
136530       , l_array_reference_num_4
136531       , l_array_reference_char_1
136532       , l_array_reference_char_2
136533       , l_array_reference_char_3
136534       , l_array_reference_char_4
136535       , l_array_reference_date_1
136536       , l_array_reference_date_2
136540       , l_array_budgetary_control_flag 
136537       , l_array_reference_date_3
136538       , l_array_reference_date_4
136539       , l_array_event_created_by
136541       LIMIT l_rows;
136542 --
136543 IF (C_LEVEL_EVENT >= g_log_level) THEN
136544    trace
136545    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
136546    ,p_level    => C_LEVEL_EVENT
136547    ,p_module   => l_log_module);
136548 END IF;
136549 --
136550 EXIT WHEN l_array_entity_id.COUNT = 0;
136551 
136552 -- initialize arrays
136553 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
136554 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
136555 
136556 --
136557 -- Bug 4458708
136558 --
136559 XLA_AE_LINES_PKG.g_LineNumber := 0;
136560 
136561 
136562 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
136563 g_last_hdr_idx := l_array_event_id.LAST;
136564 --
136565 -- loop for the headers. Each iteration is for each header extract row
136566 -- fetched in header cursor
136567 --
136568 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
136569 
136570 --
136571 -- set event info as cache for other routines to refer event attributes
136572 --
136573 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
136574    (p_application_id           => p_application_id
136575    ,p_primary_ledger_id        => p_primary_ledger_id
136576    ,p_base_ledger_id           => p_base_ledger_id
136577    ,p_target_ledger_id         => p_target_ledger_id
136578    ,p_entity_id                => l_array_entity_id(hdr_idx)
136579    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
136580    ,p_entity_code              => l_array_entity_code(hdr_idx)
136581    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
136582    ,p_event_id                 => l_array_event_id(hdr_idx)
136583    ,p_event_class_code         => l_array_class_code(hdr_idx)
136584    ,p_event_type_code          => l_array_event_type(hdr_idx)
136585    ,p_event_number             => l_array_event_number(hdr_idx)
136586    ,p_event_date               => l_array_event_date(hdr_idx)
136587    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
136588    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
136589    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
136590    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
136591    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
136592    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
136593    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
136594    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
136595    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
136596    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
136597    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
136598    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
136599    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
136600    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
136601    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
136602 
136603 --
136604 -- set the status of entry to C_VALID (0)
136605 --
136606 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
136607 
136608 --
136609 -- initialize a row for ae header
136610 --
136611 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
136612 
136613 l_event_id := l_array_event_id(hdr_idx);
136614 
136615 --
136616 -- storing the hdr_idx for event. May be used by line cursor.
136617 --
136618 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
136619 
136620 --
136621 -- store sources from header extract. This can be improved to
136622 -- store only those sources from header extract that may be used in lines
136623 --
136624 
136625 
136626 --
136627 -- initilaize the status of ae headers for diffrent balance types
136628 -- the status is initialised to C_NOT_CREATED (2)
136629 --
136630 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
136631 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
136632 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
136633 
136634 --
136635 -- call api to validate and store accounting attributes for header
136636 --
136637 
136638 ------------------------------------------------------------
136639 -- Accrual Reversal : to get date for Standard Source (NONE)
136640 ------------------------------------------------------------
136641 l_acc_rev_gl_date_source := NULL;
136642 
136643      l_rec_acct_attrs.array_acct_attr_code(1)   := 'GL_DATE';
136644       l_rec_acct_attrs.array_date_value(1) := 
136645 xla_ae_sources_pkg.GetSystemSourceDate(
136646    p_source_code           => 'XLA_EVENT_DATE'
136647  , p_source_type_code      => 'Y'
136648  , p_source_application_id =>  602
136649 );
136650 
136651 
136652 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
136653 
136654 XLA_AE_HEADER_PKG.SetJeCategoryName;
136655 
136656 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
136657 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
136658 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
136659 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
136660 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
136661 
136662 
136663 -- No header level analytical criteria
136664 
136665 --
136666 --accounting attribute enhancement, bug 3612931
136667 --
136668 l_trx_reversal_source := SUBSTR(NULL, 1,30);
136669 
136673    xla_accounting_err_pkg.build_message
136670 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
136671    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
136672 
136674       (p_appli_s_name            => 'XLA'
136675       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
136676       ,p_token_1                 => 'ACCT_ATTR_NAME'
136677       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
136678       ,p_token_2                 => 'PRODUCT_NAME'
136679       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
136680       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
136681       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
136682       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
136683 
136684 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
136685    --
136686    -- following sets the accounting attributes needed to reverse
136687    -- accounting for a distributeion
136688    --
136689    xla_ae_lines_pkg.SetTrxReversalAttrs
136690       (p_event_id              => l_event_id
136691       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
136692       ,p_trx_reversal_source   => l_trx_reversal_source);
136693 
136694 END IF;
136695 
136696 
136697 ----------------------------------------------------------------
136698 -- 4262811 -  update the header statuses to invalid in need be
136699 ----------------------------------------------------------------
136700 --
136701 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
136702 
136703 
136704   -----------------------------------------------
136705   -- No accrual reversal for the event class/type
136706   -----------------------------------------------
136707 ----------------------------------------------------------------
136708 
136709 --
136710 -- this ends the header loop iteration for one bulk fetch
136711 --
136712 END LOOP;
136713 
136714 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
136715 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
136716 
136717 --
136718 -- insert dummy rows into lines gt table that were created due to
136719 -- transaction reversals
136720 --
136721 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
136722    l_result := XLA_AE_LINES_PKG.InsertLines;
136723 END IF;
136724 
136725 --
136726 -- reset the temp_line_num for each set of events fetched from header
136727 -- cursor rather than doing it for each new event in line cursor
136728 -- Bug 3939231
136729 --
136730 xla_ae_lines_pkg.g_temp_line_num := 0;
136731 
136732 
136733 
136734 --
136735 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
136736 --
136737 --
136738 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136739 
136740       trace
136741          (p_msg      => 'SQL - FETCH line_cur'
136742          ,p_level    => C_LEVEL_STATEMENT
136743          ,p_module   => l_log_module);
136744 
136745 END IF;
136746 --
136747 --
136748 LOOP
136749   --
136750   FETCH line_cur BULK COLLECT INTO
136751         l_array_entity_id
136752       , l_array_legal_entity_id
136753       , l_array_entity_code
136754       , l_array_transaction_num
136755       , l_array_event_id
136756       , l_array_class_code
136757       , l_array_event_type
136758       , l_array_event_number
136759       , l_array_event_date
136760       , l_array_transaction_date
136761       , l_array_reference_num_1
136762       , l_array_reference_num_2
136763       , l_array_reference_num_3
136764       , l_array_reference_num_4
136765       , l_array_reference_char_1
136766       , l_array_reference_char_2
136767       , l_array_reference_char_3
136768       , l_array_reference_char_4
136769       , l_array_reference_date_1
136770       , l_array_reference_date_2
136771       , l_array_reference_date_3
136772       , l_array_reference_date_4
136773       , l_array_event_created_by
136774       , l_array_budgetary_control_flag
136775       , l_array_extract_line_num 
136776       , l_array_source_48
136777       , l_array_source_80
136778       , l_array_source_156
136779       , l_array_source_161
136780       , l_array_source_162
136781       , l_array_source_163
136782       , l_array_source_164
136783       , l_array_source_165
136784       , l_array_source_166
136785       , l_array_source_167
136786       , l_array_source_168
136787       , l_array_source_169
136788       , l_array_source_170
136789       , l_array_source_171
136790       , l_array_source_172
136791       , l_array_source_173
136792       , l_array_source_174
136793       LIMIT l_rows;
136794 
136795   --
136796   IF (C_LEVEL_EVENT >= g_log_level) THEN
136797             trace
136798                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
136799                ,p_level    => C_LEVEL_EVENT
136800                ,p_module   => l_log_module);
136801   END IF;
136802   --
136803   EXIT WHEN l_array_entity_id.count = 0;
136804 
136805   XLA_AE_LINES_PKG.g_rec_lines := null;
136806 
136807 --
136808 -- Bug 4458708
136809 --
136810 XLA_AE_LINES_PKG.g_LineNumber := 0;
136811 --
136812 --
136813 
136814 FOR Idx IN 1..l_array_event_id.count LOOP
136815    --
136816    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
136817    --
136818    l_event_id := l_array_event_id(idx);  -- 5648433
136819 
136820    --
136821    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
136822    --
136823 
136824    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
136828    THEN
136825              (g_array_event(l_event_id).array_value_num('header_index'))
136826          ,'N'
136827          ) <> 'Y'
136829       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
136830          trace
136831             (p_msg      => 'Trancaction revesal option is not Y '
136832             ,p_level    => C_LEVEL_STATEMENT
136833             ,p_module   => l_log_module);
136834       END IF;
136835 
136836 --
136837 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
136838 --
136839 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
136840 --
136841 -- set event info as cache for other routines to refer event attributes
136842 --
136843 
136844 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
136845    l_previous_event_id := l_event_id;
136846 
136847    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
136848       (p_application_id           => p_application_id
136849       ,p_primary_ledger_id        => p_primary_ledger_id
136850       ,p_base_ledger_id           => p_base_ledger_id
136851       ,p_target_ledger_id         => p_target_ledger_id
136852       ,p_entity_id                => l_array_entity_id(Idx)
136853       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
136854       ,p_entity_code              => l_array_entity_code(Idx)
136855       ,p_transaction_num          => l_array_transaction_num(Idx)
136856       ,p_event_id                 => l_array_event_id(Idx)
136857       ,p_event_class_code         => l_array_class_code(Idx)
136858       ,p_event_type_code          => l_array_event_type(Idx)
136859       ,p_event_number             => l_array_event_number(Idx)
136860       ,p_event_date               => l_array_event_date(Idx)
136861       ,p_transaction_date         => l_array_transaction_date(Idx)
136862       ,p_reference_num_1          => l_array_reference_num_1(Idx)
136863       ,p_reference_num_2          => l_array_reference_num_2(Idx)
136864       ,p_reference_num_3          => l_array_reference_num_3(Idx)
136865       ,p_reference_num_4          => l_array_reference_num_4(Idx)
136866       ,p_reference_char_1         => l_array_reference_char_1(Idx)
136867       ,p_reference_char_2         => l_array_reference_char_2(Idx)
136868       ,p_reference_char_3         => l_array_reference_char_3(Idx)
136869       ,p_reference_char_4         => l_array_reference_char_4(Idx)
136870       ,p_reference_date_1         => l_array_reference_date_1(Idx)
136871       ,p_reference_date_2         => l_array_reference_date_2(Idx)
136872       ,p_reference_date_3         => l_array_reference_date_3(Idx)
136873       ,p_reference_date_4         => l_array_reference_date_4(Idx)
136874       ,p_event_created_by         => l_array_event_created_by(Idx)
136875       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
136876        --
136877 END IF;
136878 
136879 
136880 
136881 --
136882 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
136883 
136884 l_acct_reversal_source := SUBSTR(l_array_source_161(Idx), 1,30);
136885 
136886 IF l_continue_with_lines THEN
136887    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
136888       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
136889 
136890       xla_accounting_err_pkg.build_message
136891          (p_appli_s_name            => 'XLA'
136892          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
136893          ,p_token_1                 => 'LINE_NUMBER'
136894          ,p_value_1                 => l_array_extract_line_num(Idx)
136895          ,p_token_2                 => 'PRODUCT_NAME'
136896          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
136897          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
136898          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
136899          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
136900 
136901    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
136902       --
136903       -- following sets the accounting attributes needed to reverse
136904       -- accounting for a distributeion
136905       --
136906 
136907       --
136908       -- 5217187
136909       --
136910       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
136911       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
136912                                        g_array_event(l_event_id).array_value_num('header_index'));
136913       --
136914       --
136915 
136916       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
136917       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_161(Idx);
136918       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
136919       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_156(Idx);
136920       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
136921       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_162(Idx);
136922       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
136923       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_48(Idx);
136924       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
136925       l_rec_rev_acct_attrs.array_char_value(6)  := l_array_source_163(Idx);
136926       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
136927       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_164(Idx);
136928       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
136929       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_165(Idx);
136930       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
136931       l_rec_rev_acct_attrs.array_char_value(9)  := l_array_source_80(Idx);
136932       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
136933       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_166(Idx);
136937       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_168(Idx);
136934       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
136935       l_rec_rev_acct_attrs.array_char_value(11)  := l_array_source_167(Idx);
136936       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
136938       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
136939       l_rec_rev_acct_attrs.array_num_value(13)  := l_array_source_165(Idx);
136940       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
136941       l_rec_rev_acct_attrs.array_char_value(14)  := l_array_source_80(Idx);
136942       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
136943       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_166(Idx);
136944       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
136945       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_169(Idx);
136946       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
136947       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_170(Idx);
136948       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
136949       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_171(Idx);
136950       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
136951       l_rec_rev_acct_attrs.array_char_value(19)  := l_array_source_172(Idx);
136952       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
136953       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_173(Idx);
136954       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
136955       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_174(Idx);
136956 
136957 
136958       xla_ae_lines_pkg.SetAcctReversalAttrs
136959          (p_event_id             => l_event_id
136960          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
136961          ,p_calculate_acctd_flag => l_calculate_acctd_flag
136962          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
136963    END IF;
136964 
136965    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
136966        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
136967       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
136968       -- or secondary ledger that has different currency with primary
136969       -- or alc that is calculated by sla
136970       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
136971             (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'))
136972 
136973 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
136974 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
136975           AND (l_actual_flag = 'A')) THEN
136976         XLA_AE_LINES_PKG.CreateGainOrLossLines(
136977           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
136978          ,p_application_id   => p_application_id
136979          ,p_amb_context_code => 'DEFAULT'
136980          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
136981          ,p_event_class_code => C_EVENT_CLASS_CODE
136982          ,p_event_type_code  => C_EVENT_TYPE_CODE
136983          
136984          ,p_gain_ccid        => -1
136985          ,p_loss_ccid        => -1
136986 
136987          ,p_actual_flag      => l_actual_flag
136988          ,p_enc_flag         => null
136989          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
136990          ,p_enc_g_l_ref      => null
136991          );
136992       END IF;
136993    END IF;
136994 END IF;
136995 
136996    ELSE
136997       --
136998       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
136999       --
137000       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137001          trace
137002             (p_msg      => 'Trancaction revesal option is Y'
137003             ,p_level    => C_LEVEL_STATEMENT
137004             ,p_module   => l_log_module);
137005       END IF;
137006    END IF;
137007 
137008 END LOOP;
137009 l_result := XLA_AE_LINES_PKG.InsertLines ;
137010 end loop;
137011 close line_cur;
137012 
137013 
137014 --
137015 -- insert headers into xla_ae_headers_gt table
137016 --
137017 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
137018 
137019 -- insert into errors table here.
137020 
137021 END LOOP;
137022 
137023 --
137024 -- 4865292
137025 --
137026 -- Compare g_hdr_extract_count with event count in
137027 -- CreateHeadersAndLines.
137028 --
137029 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
137030 
137031 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137032    trace (p_msg     => '# rows extracted from header extract objects '
137033                     || ' (running total): '
137034                     || g_hdr_extract_count
137035          ,p_level   => C_LEVEL_STATEMENT
137036          ,p_module  => l_log_module);
137037 END IF;
137038 
137039 CLOSE header_cur;
137040 --
137041 
137042 --
137043 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137044    trace
137045       (p_msg      => 'END of EventClass_213'
137046       ,p_level    => C_LEVEL_PROCEDURE
137047       ,p_module   => l_log_module);
137048 END IF;
137049 --
137050 RETURN l_result;
137051 EXCEPTION
137052 WHEN xla_exceptions_pkg.application_exception THEN
137053    
137054 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
137055 
137056    
137057 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
137058 
137059    RAISE;
137060 
137061 WHEN NO_DATA_FOUND THEN
137062 
137063 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
137064 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
137065 
137066 FOR header_record IN header_cur
137067 LOOP
137071 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
137068     l_array_header_events(header_record.event_id) := header_record.event_id;
137069 END LOOP;
137070 
137072 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
137073 
137074 fnd_file.put_line(fnd_file.LOG, '                    ');
137075 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
137076 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
137077 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
137078 
137079 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
137080 LOOP
137081 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
137082 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
137083         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
137084 	END IF;
137085 END LOOP;
137086 
137087 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
137088 fnd_file.put_line(fnd_file.LOG, '                    ');
137089 
137090 
137091 xla_exceptions_pkg.raise_message
137092       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_213');
137093 
137094 
137095 WHEN OTHERS THEN
137096    xla_exceptions_pkg.raise_message
137097       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_213');
137098 END EventClass_213;
137099 --
137100 
137101 ---------------------------------------
137102 --
137103 -- PRIVATE PROCEDURE
137104 --         insert_sources_214
137105 --
137106 ----------------------------------------
137107 --
137108 PROCEDURE insert_sources_214(
137109                                 p_target_ledger_id       IN NUMBER
137110                               , p_language               IN VARCHAR2
137111                               , p_sla_ledger_id          IN NUMBER
137112                               , p_pad_start_date         IN DATE
137113                               , p_pad_end_date           IN DATE
137114                          )
137115 IS
137116 
137117 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
137118 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
137119 p_apps_owner                   VARCHAR2(30);
137120 l_log_module                   VARCHAR2(240);
137121 BEGIN
137122 IF g_log_enabled THEN
137123       l_log_module := C_DEFAULT_MODULE||'.insert_sources_214';
137124 END IF;
137125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137126 
137127       trace
137128          (p_msg      => 'BEGIN of insert_sources_214'
137129          ,p_level    => C_LEVEL_PROCEDURE
137130          ,p_module   => l_log_module);
137131 
137132 END IF;
137133 
137134 -- select APPS owner
137135 SELECT oracle_username
137136   INTO p_apps_owner
137137   FROM fnd_oracle_userid
137138  WHERE read_only_flag = 'U'
137139 ;
137140 
137141 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137142       trace
137143          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
137144                         ' - p_language = '||p_language||
137145                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
137146                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
137147                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
137148                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
137149          ,p_level    => C_LEVEL_STATEMENT
137150          ,p_module   => l_log_module);
137151 END IF;
137152 
137153 
137154 --
137155 INSERT INTO xla_diag_sources --hdr2
137156 (
137157         event_id
137158       , ledger_id
137159       , sla_ledger_id
137160       , description_language
137161       , object_name
137162       , object_type_code
137163       , line_number
137164       , source_application_id
137165       , source_type_code
137166       , source_code
137167       , source_value
137168       , source_meaning
137169       , created_by
137170       , creation_date
137171       , last_update_date
137172       , last_updated_by
137173       , last_update_login
137174       , program_update_date
137175       , program_application_id
137176       , program_id
137177       , request_id
137178 )
137179 SELECT
137180         event_id
137181       , p_target_ledger_id
137182       , p_sla_ledger_id
137183       , p_language
137184       , object_name
137185       , object_type_code
137186       , line_number
137187       , source_application_id
137188       , source_type_code
137189       , source_code
137190       , SUBSTR(source_value ,1,1996)
137191       , SUBSTR(source_meaning ,1,200)
137192       , xla_environment_pkg.g_Usr_Id
137193       , TRUNC(SYSDATE)
137194       , TRUNC(SYSDATE)
137195       , xla_environment_pkg.g_Usr_Id
137196       , xla_environment_pkg.g_Login_Id
137197       , TRUNC(SYSDATE)
137198       , xla_environment_pkg.g_Prog_Appl_Id
137199       , xla_environment_pkg.g_Prog_Id
137200       , xla_environment_pkg.g_Req_Id
137201   FROM (
137202        SELECT xet.event_id                  event_id
137203             , 0                          line_number
137204             , CASE r
137205                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137206                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137207                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137208                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137209                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137210                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137211                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137212                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137216                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137213                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137214                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137215                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137217                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137218                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137219                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137220                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137221                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137222                 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137223                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137224                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137225                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137226                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137227                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137228                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137229                 WHEN 25 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
137230                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137231                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137232                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137233                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137234                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137235                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137236                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137237                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137238                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137239                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137240                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137241                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
137242                 
137243                ELSE null
137244               END                           object_name
137245             , CASE r
137246                 WHEN 1 THEN 'HEADER' 
137247                 WHEN 2 THEN 'HEADER' 
137248                 WHEN 3 THEN 'HEADER' 
137249                 WHEN 4 THEN 'HEADER' 
137250                 WHEN 5 THEN 'HEADER' 
137251                 WHEN 6 THEN 'HEADER' 
137252                 WHEN 7 THEN 'HEADER' 
137253                 WHEN 8 THEN 'HEADER' 
137254                 WHEN 9 THEN 'HEADER' 
137255                 WHEN 10 THEN 'HEADER' 
137256                 WHEN 11 THEN 'HEADER' 
137257                 WHEN 12 THEN 'HEADER' 
137258                 WHEN 13 THEN 'HEADER' 
137259                 WHEN 14 THEN 'HEADER' 
137260                 WHEN 15 THEN 'HEADER' 
137261                 WHEN 16 THEN 'HEADER' 
137262                 WHEN 17 THEN 'HEADER' 
137263                 WHEN 18 THEN 'HEADER' 
137264                 WHEN 19 THEN 'HEADER' 
137265                 WHEN 20 THEN 'HEADER' 
137266                 WHEN 21 THEN 'HEADER' 
137267                 WHEN 22 THEN 'HEADER' 
137268                 WHEN 23 THEN 'HEADER' 
137269                 WHEN 24 THEN 'HEADER' 
137270                 WHEN 25 THEN 'HEADER' 
137271                 WHEN 26 THEN 'HEADER' 
137272                 WHEN 27 THEN 'HEADER' 
137273                 WHEN 28 THEN 'HEADER' 
137274                 WHEN 29 THEN 'HEADER' 
137275                 WHEN 30 THEN 'HEADER' 
137276                 WHEN 31 THEN 'HEADER' 
137277                 WHEN 32 THEN 'HEADER' 
137278                 WHEN 33 THEN 'HEADER' 
137279                 WHEN 34 THEN 'HEADER' 
137280                 WHEN 35 THEN 'HEADER' 
137281                 WHEN 36 THEN 'HEADER' 
137282                 WHEN 37 THEN 'HEADER' 
137283                 
137284                 ELSE null
137285               END                           object_type_code
137286             , CASE r
137287                 WHEN 1 THEN '200' 
137288                 WHEN 2 THEN '200' 
137289                 WHEN 3 THEN '200' 
137290                 WHEN 4 THEN '200' 
137291                 WHEN 5 THEN '200' 
137292                 WHEN 6 THEN '200' 
137293                 WHEN 7 THEN '200' 
137294                 WHEN 8 THEN '200' 
137295                 WHEN 9 THEN '200' 
137296                 WHEN 10 THEN '200' 
137297                 WHEN 11 THEN '200' 
137298                 WHEN 12 THEN '200' 
137299                 WHEN 13 THEN '200' 
137300                 WHEN 14 THEN '200' 
137301                 WHEN 15 THEN '200' 
137302                 WHEN 16 THEN '200' 
137303                 WHEN 17 THEN '200' 
137304                 WHEN 18 THEN '200' 
137305                 WHEN 19 THEN '200' 
137306                 WHEN 20 THEN '200' 
137307                 WHEN 21 THEN '200' 
137308                 WHEN 22 THEN '200' 
137309                 WHEN 23 THEN '200' 
137310                 WHEN 24 THEN '200' 
137311                 WHEN 25 THEN '200' 
137312                 WHEN 26 THEN '200' 
137313                 WHEN 27 THEN '200' 
137314                 WHEN 28 THEN '200' 
137315                 WHEN 29 THEN '200' 
137316                 WHEN 30 THEN '200' 
137317                 WHEN 31 THEN '200' 
137318                 WHEN 32 THEN '200' 
137319                 WHEN 33 THEN '200' 
137320                 WHEN 34 THEN '200' 
137321                 WHEN 35 THEN '200' 
137322                 WHEN 36 THEN '200' 
137323                 WHEN 37 THEN '200' 
137324                 
137325                 ELSE null
137326               END                           source_application_id
137327             , 'S'             source_type_code
137328             , CASE r
137329                 WHEN 1 THEN 'CGAC_AP_ASSET_CCID' 
137330                 WHEN 2 THEN 'FSP_DISC_TAKEN_CCID' 
137331                 WHEN 3 THEN 'ASP_DISCOUNT_DIST_METHOD' 
137332                 WHEN 4 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
137333                 WHEN 5 THEN 'ASP_RATE_VAR_GAIN_CCID' 
137334                 WHEN 6 THEN 'ASP_RATE_VAR_LOSS_CCID' 
137335                 WHEN 7 THEN 'ASP_INTEREST_CCID' 
137339                 WHEN 11 THEN 'CGAC_BANK_ERRORS_CCID' 
137336                 WHEN 8 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
137337                 WHEN 9 THEN 'FSP_RETAINAGE_ACCOUNT' 
137338                 WHEN 10 THEN 'CGAC_BANK_CHARGES_CCID' 
137340                 WHEN 12 THEN 'ASP_DISC_TAKEN_CCID' 
137341                 WHEN 13 THEN 'ASP_AUTO_OFFSET_FLAG' 
137342                 WHEN 14 THEN 'CGAC_GAIN_CCID' 
137343                 WHEN 15 THEN 'ASP_GAIN_CCID' 
137344                 WHEN 16 THEN 'CGAC_LOSS_CCID' 
137345                 WHEN 17 THEN 'ASP_LOSS_CCID' 
137346                 WHEN 18 THEN 'ASP_ROUNDING_ERROR_CCID' 
137347                 WHEN 19 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
137348                 WHEN 20 THEN 'AC_CURRENCY_CODE' 
137349                 WHEN 21 THEN 'AC_VENDOR_ID' 
137350                 WHEN 22 THEN 'AC_VENDOR_SITE_ID' 
137351                 WHEN 23 THEN 'THIRD_PARTY_TYPE' 
137352                 WHEN 24 THEN 'PAYMENT_TYPE' 
137353                 WHEN 25 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
137354                 WHEN 26 THEN 'APH_BANK_CURRENCY_CODE' 
137355                 WHEN 27 THEN 'APH_BANK_TO_BASE_XRATE_DATE' 
137356                 WHEN 28 THEN 'APH_BANK_TO_BASE_XRATE' 
137357                 WHEN 29 THEN 'APH_BANK_TO_BASE_XRATE_TYPE' 
137358                 WHEN 30 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
137359                 WHEN 31 THEN 'AC_FUTURE_PAY_DUE_DATE' 
137360                 WHEN 32 THEN 'AC_EXCHANGE_DATE' 
137361                 WHEN 33 THEN 'AC_EXCHANGE_RATE' 
137362                 WHEN 34 THEN 'AC_EXCHANGE_RATE_TYPE' 
137363                 WHEN 35 THEN 'AC_DOC_CATEGORY_CODE' 
137364                 WHEN 36 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
137365                 WHEN 37 THEN 'AC_DOC_SEQUENCE_VALUE' 
137366                 
137367                 ELSE null
137368               END                           source_code
137369             , CASE r
137370                 WHEN 1 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
137371                 WHEN 2 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
137372                 WHEN 3 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
137373                 WHEN 4 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
137374                 WHEN 5 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
137375                 WHEN 6 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
137376                 WHEN 7 THEN TO_CHAR(h4.ASP_INTEREST_CCID)
137377                 WHEN 8 THEN TO_CHAR(h4.ASP_PRORATE_INT_ACROSS_DISTS)
137378                 WHEN 9 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
137379                 WHEN 10 THEN TO_CHAR(h2.CGAC_BANK_CHARGES_CCID)
137380                 WHEN 11 THEN TO_CHAR(h2.CGAC_BANK_ERRORS_CCID)
137381                 WHEN 12 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
137382                 WHEN 13 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
137383                 WHEN 14 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
137384                 WHEN 15 THEN TO_CHAR(h4.ASP_GAIN_CCID)
137385                 WHEN 16 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
137386                 WHEN 17 THEN TO_CHAR(h4.ASP_LOSS_CCID)
137387                 WHEN 18 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
137388                 WHEN 19 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
137389                 WHEN 20 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
137390                 WHEN 21 THEN TO_CHAR(h2.AC_VENDOR_ID)
137391                 WHEN 22 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
137392                 WHEN 23 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
137393                 WHEN 24 THEN TO_CHAR(h2.PAYMENT_TYPE)
137394                 WHEN 25 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
137395                 WHEN 26 THEN TO_CHAR(h2.APH_BANK_CURRENCY_CODE)
137396                 WHEN 27 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_DATE)
137397                 WHEN 28 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE)
137398                 WHEN 29 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_TYPE)
137399                 WHEN 30 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
137400                 WHEN 31 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
137401                 WHEN 32 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
137402                 WHEN 33 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
137403                 WHEN 34 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
137404                 WHEN 35 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
137405                 WHEN 36 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
137406                 WHEN 37 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
137407                 
137408                 ELSE null
137409               END                           source_value
137410             , CASE r
137411                 WHEN 3 THEN fvl3.meaning
137412                 WHEN 4 THEN fvl4.meaning
137413                 WHEN 13 THEN fvl30.meaning
137414                 WHEN 24 THEN fvl60.meaning
137415                 WHEN 25 THEN fvl102.meaning
137416                 WHEN 30 THEN fvl110.meaning
137417                 
137418                 ELSE null
137419               END               source_meaning
137420          FROM xla_events_gt     xet  
137421       , AP_PAYMENT_EXTRACT_HEADER_V  h2
137422       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
137423   , fnd_lookup_values    fvl3
137424   , fnd_lookup_values    fvl4
137425   , fnd_lookup_values    fvl30
137426   , fnd_lookup_values    fvl60
137427   , fnd_lookup_values    fvl102
137428   , fnd_lookup_values    fvl110
137429              ,(select rownum r from all_objects where rownum <= 37 and owner = p_apps_owner)
137430          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
137431            AND xet.event_class_code = C_EVENT_CLASS_CODE
137432               AND h2.event_id = xet.event_id
137433  AND h4.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
137434   AND fvl3.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
137435   AND fvl3.view_application_id(+) = 200
137436   AND fvl3.language(+)            = USERENV('LANG')
137437      AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
137438   AND fvl4.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
137439   AND fvl4.view_application_id(+) = 200
137440   AND fvl4.language(+)            = USERENV('LANG')
137441      AND fvl30.lookup_type(+)         = 'YES_NO'
137445      AND fvl60.lookup_type(+)         = 'PAYMENT TYPE'
137442   AND fvl30.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
137443   AND fvl30.view_application_id(+) = 0
137444   AND fvl30.language(+)            = USERENV('LANG')
137446   AND fvl60.lookup_code(+)         = h2.PAYMENT_TYPE
137447   AND fvl60.view_application_id(+) = 200
137448   AND fvl60.language(+)            = USERENV('LANG')
137449      AND fvl102.lookup_type(+)         = 'YES_NO'
137450   AND fvl102.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
137451   AND fvl102.view_application_id(+) = 0
137452   AND fvl102.language(+)            = USERENV('LANG')
137453      AND fvl110.lookup_type(+)         = 'YES_NO'
137454   AND fvl110.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
137455   AND fvl110.view_application_id(+) = 0
137456   AND fvl110.language(+)            = USERENV('LANG')
137457   
137458 )
137459 ;
137460 --
137461 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137462 
137463       trace
137464          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
137465          ,p_level    => C_LEVEL_STATEMENT
137466          ,p_module   => l_log_module);
137467 
137468 END IF;
137469 --
137470 
137471 
137472 
137473 --
137474 INSERT INTO xla_diag_sources  --line2
137475 (
137476         event_id
137477       , ledger_id
137478       , sla_ledger_id
137479       , description_language
137480       , object_name
137481       , object_type_code
137482       , line_number
137483       , source_application_id
137484       , source_type_code
137485       , source_code
137486       , source_value
137487       , source_meaning
137488       , created_by
137489       , creation_date
137490       , last_update_date
137491       , last_updated_by
137492       , last_update_login
137493       , program_update_date
137494       , program_application_id
137495       , program_id
137496       , request_id
137497 )
137498 SELECT  event_id
137499       , p_target_ledger_id
137500       , p_sla_ledger_id
137501       , p_language
137502       , object_name
137503       , object_type_code
137504       , line_number
137505       , source_application_id
137506       , source_type_code
137507       , source_code
137508       , SUBSTR(source_value,1,1996)
137509       , SUBSTR(source_meaning ,1,200)
137510       , xla_environment_pkg.g_Usr_Id
137511       , TRUNC(SYSDATE)
137512       , TRUNC(SYSDATE)
137513       , xla_environment_pkg.g_Usr_Id
137514       , xla_environment_pkg.g_Login_Id
137515       , TRUNC(SYSDATE)
137516       , xla_environment_pkg.g_Prog_Appl_Id
137517       , xla_environment_pkg.g_Prog_Id
137518       , xla_environment_pkg.g_Req_Id
137519   FROM (
137520        SELECT xet.event_id                  event_id
137521             , l1.line_number                 line_number
137522             , CASE r
137523                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137524                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137525                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137526                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137527                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137528                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137529                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137530                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137531                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137532                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137533                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137534                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137535                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137536                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137537                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137538                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137539                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137540                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137541                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137542                 WHEN 20 THEN 'AP_PO_HEADERS_EXTRACT_V' 
137543                 WHEN 21 THEN 'AP_PO_HEADERS_EXTRACT_V' 
137544                 WHEN 22 THEN 'AP_PO_HEADERS_EXTRACT_V' 
137545                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137546                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137547                 WHEN 25 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
137548                 WHEN 26 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
137549                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137550                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137551                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137552                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137553                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137554                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137555                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137556                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137557                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137558                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137559                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137560                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137561                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137562                 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137563                 WHEN 41 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137564                 WHEN 42 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137565                 WHEN 43 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137566                 WHEN 44 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137567                 WHEN 45 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137568                 WHEN 46 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
137569                 
137570                ELSE null
137571               END                           object_name
137572             , CASE r
137576                 WHEN 4 THEN 'LINE' 
137573                 WHEN 1 THEN 'LINE' 
137574                 WHEN 2 THEN 'LINE' 
137575                 WHEN 3 THEN 'LINE' 
137577                 WHEN 5 THEN 'LINE' 
137578                 WHEN 6 THEN 'LINE' 
137579                 WHEN 7 THEN 'LINE' 
137580                 WHEN 8 THEN 'LINE' 
137581                 WHEN 9 THEN 'LINE' 
137582                 WHEN 10 THEN 'LINE' 
137583                 WHEN 11 THEN 'LINE' 
137584                 WHEN 12 THEN 'LINE' 
137585                 WHEN 13 THEN 'LINE' 
137586                 WHEN 14 THEN 'LINE' 
137587                 WHEN 15 THEN 'LINE' 
137588                 WHEN 16 THEN 'LINE' 
137589                 WHEN 17 THEN 'LINE' 
137590                 WHEN 18 THEN 'LINE' 
137591                 WHEN 19 THEN 'LINE' 
137592                 WHEN 20 THEN 'LINE' 
137593                 WHEN 21 THEN 'LINE' 
137594                 WHEN 22 THEN 'LINE' 
137595                 WHEN 23 THEN 'LINE' 
137596                 WHEN 24 THEN 'LINE' 
137597                 WHEN 25 THEN 'LINE' 
137598                 WHEN 26 THEN 'LINE' 
137599                 WHEN 27 THEN 'LINE' 
137600                 WHEN 28 THEN 'LINE' 
137601                 WHEN 29 THEN 'LINE' 
137602                 WHEN 30 THEN 'LINE' 
137603                 WHEN 31 THEN 'LINE' 
137604                 WHEN 32 THEN 'LINE' 
137605                 WHEN 33 THEN 'LINE' 
137606                 WHEN 34 THEN 'LINE' 
137607                 WHEN 35 THEN 'LINE' 
137608                 WHEN 36 THEN 'LINE' 
137609                 WHEN 37 THEN 'LINE' 
137610                 WHEN 38 THEN 'LINE' 
137611                 WHEN 39 THEN 'LINE' 
137612                 WHEN 40 THEN 'LINE' 
137613                 WHEN 41 THEN 'LINE' 
137614                 WHEN 42 THEN 'LINE' 
137615                 WHEN 43 THEN 'LINE' 
137616                 WHEN 44 THEN 'LINE' 
137617                 WHEN 45 THEN 'LINE' 
137618                 WHEN 46 THEN 'LINE' 
137619                 
137620                 ELSE null
137621               END                           object_type_code
137622             , CASE r
137623                 WHEN 1 THEN '200' 
137624                 WHEN 2 THEN '200' 
137625                 WHEN 3 THEN '200' 
137626                 WHEN 4 THEN '200' 
137627                 WHEN 5 THEN '200' 
137628                 WHEN 6 THEN '200' 
137629                 WHEN 7 THEN '200' 
137630                 WHEN 8 THEN '200' 
137631                 WHEN 9 THEN '200' 
137632                 WHEN 10 THEN '200' 
137633                 WHEN 11 THEN '200' 
137634                 WHEN 12 THEN '200' 
137635                 WHEN 13 THEN '200' 
137636                 WHEN 14 THEN '200' 
137637                 WHEN 15 THEN '200' 
137638                 WHEN 16 THEN '200' 
137639                 WHEN 17 THEN '200' 
137640                 WHEN 18 THEN '200' 
137641                 WHEN 19 THEN '200' 
137642                 WHEN 20 THEN '200' 
137643                 WHEN 21 THEN '200' 
137644                 WHEN 22 THEN '200' 
137645                 WHEN 23 THEN '200' 
137646                 WHEN 24 THEN '200' 
137647                 WHEN 25 THEN '200' 
137648                 WHEN 26 THEN '200' 
137649                 WHEN 27 THEN '200' 
137650                 WHEN 28 THEN '200' 
137651                 WHEN 29 THEN '200' 
137652                 WHEN 30 THEN '200' 
137653                 WHEN 31 THEN '200' 
137654                 WHEN 32 THEN '200' 
137655                 WHEN 33 THEN '200' 
137656                 WHEN 34 THEN '200' 
137657                 WHEN 35 THEN '200' 
137658                 WHEN 36 THEN '200' 
137659                 WHEN 37 THEN '200' 
137660                 WHEN 38 THEN '200' 
137661                 WHEN 39 THEN '200' 
137662                 WHEN 40 THEN '200' 
137663                 WHEN 41 THEN '200' 
137664                 WHEN 42 THEN '200' 
137665                 WHEN 43 THEN '200' 
137666                 WHEN 44 THEN '200' 
137667                 WHEN 45 THEN '200' 
137668                 WHEN 46 THEN '200' 
137669                 
137670                 ELSE null
137671               END                           source_application_id
137672             , 'S'             source_type_code
137673             , CASE r
137674                 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE' 
137675                 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT' 
137676                 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT' 
137677                 WHEN 4 THEN 'AID_DIST_CCID' 
137678                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
137679                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
137680                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
137681                 WHEN 8 THEN 'POD_CCID' 
137682                 WHEN 9 THEN 'PO_VARIANCE_ACCOUNT' 
137683                 WHEN 10 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
137684                 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
137685                 WHEN 12 THEN 'APHD_AMOUNT' 
137686                 WHEN 13 THEN 'BUS_FLOW_AP_APP_ID' 
137687                 WHEN 14 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
137688                 WHEN 15 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
137689                 WHEN 16 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
137690                 WHEN 17 THEN 'BUS_FLOW_PAYMENT_ID' 
137691                 WHEN 18 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
137692                 WHEN 19 THEN 'DISTRIBUTION_LINK_TYPE' 
137693                 WHEN 20 THEN 'POH_RATE_DATE' 
137694                 WHEN 21 THEN 'POH_RATE' 
137695                 WHEN 22 THEN 'POH_RATE_TYPE' 
137696                 WHEN 23 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
137697                 WHEN 24 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
137698                 WHEN 25 THEN 'TAX_LINE_ID' 
137699                 WHEN 26 THEN 'SUMMARY_TAX_LINE_ID' 
137700                 WHEN 27 THEN 'BUS_FLOW_INV_DIST_TYPE' 
137701                 WHEN 28 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
137702                 WHEN 29 THEN 'BUS_FLOW_INV_DIST_ID' 
137706                 WHEN 33 THEN 'APHD_INV_BASE_AMT_VARIANCE' 
137703                 WHEN 30 THEN 'BUS_FLOW_INV_ID' 
137704                 WHEN 31 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
137705                 WHEN 32 THEN 'AI_INVOICE_TYPE_PAID' 
137707                 WHEN 34 THEN 'AID_ENCUMBERED_FLAG' 
137708                 WHEN 35 THEN 'APHD_AMOUNT_VARIANCE' 
137709                 WHEN 36 THEN 'APHD_INVOICE_BASE_AMT' 
137710                 WHEN 37 THEN 'INV_CLR_BASE_AMT_DIFF' 
137711                 WHEN 38 THEN 'MAT_CLR_GAIN_LOSS_INDICATOR' 
137712                 WHEN 39 THEN 'MAT_CLR_BASE_AMT_DIFF' 
137713                 WHEN 40 THEN 'PMT_CLR_GAIN_LOSS_INDICATOR' 
137714                 WHEN 41 THEN 'PMT_CLR_BASE_AMT_DIFF' 
137715                 WHEN 42 THEN 'APHD_INV_BASE_QTY_VARIANCE' 
137716                 WHEN 43 THEN 'APHD_QUANTITY_VARIANCE' 
137717                 WHEN 44 THEN 'BF_RETAINED_INV_DIST_ID_CLR' 
137718                 WHEN 45 THEN 'BF_RETAINED_INV_ID_CLR' 
137719                 WHEN 46 THEN 'AWT_AT_PMT_TIME' 
137720                 
137721                 ELSE null
137722               END                           source_code
137723             , CASE r
137724                 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
137725                 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
137726                 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
137727                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
137728                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
137729                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
137730                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
137731                 WHEN 8 THEN TO_CHAR(l1.POD_CCID)
137732                 WHEN 9 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
137733                 WHEN 10 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
137734                 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
137735                 WHEN 12 THEN TO_CHAR(l1.APHD_AMOUNT)
137736                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
137737                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
137738                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
137739                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
137740                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
137741                 WHEN 18 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
137742                 WHEN 19 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
137743                 WHEN 20 THEN TO_CHAR(l3.POH_RATE_DATE)
137744                 WHEN 21 THEN TO_CHAR(l3.POH_RATE)
137745                 WHEN 22 THEN TO_CHAR(l3.POH_RATE_TYPE)
137746                 WHEN 23 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
137747                 WHEN 24 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
137748                 WHEN 25 THEN TO_CHAR(l5.TAX_LINE_ID)
137749                 WHEN 26 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
137750                 WHEN 27 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
137751                 WHEN 28 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
137752                 WHEN 29 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
137753                 WHEN 30 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
137754                 WHEN 31 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
137755                 WHEN 32 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
137756                 WHEN 33 THEN TO_CHAR(l1.APHD_INV_BASE_AMT_VARIANCE)
137757                 WHEN 34 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
137758                 WHEN 35 THEN TO_CHAR(l1.APHD_AMOUNT_VARIANCE)
137759                 WHEN 36 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
137760                 WHEN 37 THEN TO_CHAR(l1.INV_CLR_BASE_AMT_DIFF)
137761                 WHEN 38 THEN TO_CHAR(l1.MAT_CLR_GAIN_LOSS_INDICATOR)
137762                 WHEN 39 THEN TO_CHAR(l1.MAT_CLR_BASE_AMT_DIFF)
137763                 WHEN 40 THEN TO_CHAR(l1.PMT_CLR_GAIN_LOSS_INDICATOR)
137764                 WHEN 41 THEN TO_CHAR(l1.PMT_CLR_BASE_AMT_DIFF)
137765                 WHEN 42 THEN TO_CHAR(l1.APHD_INV_BASE_QTY_VARIANCE)
137766                 WHEN 43 THEN TO_CHAR(l1.APHD_QUANTITY_VARIANCE)
137767                 WHEN 44 THEN TO_CHAR(l1.BF_RETAINED_INV_DIST_ID_CLR)
137768                 WHEN 45 THEN TO_CHAR(l1.BF_RETAINED_INV_ID_CLR)
137769                 WHEN 46 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
137770                 
137771                 ELSE null
137772               END                           source_value
137773             , CASE r
137774                 WHEN 1 THEN fvl7.meaning
137775                 WHEN 5 THEN fvl20.meaning
137776                 WHEN 10 THEN fvl39.meaning
137777                 WHEN 23 THEN fvl53.meaning
137778                 WHEN 31 THEN fvl100.meaning
137779                 WHEN 32 THEN fvl101.meaning
137780                 WHEN 34 THEN fvl104.meaning
137781                 WHEN 46 THEN fvl151.meaning
137782                 
137783                 ELSE null
137784               END               source_meaning
137785          FROM  xla_events_gt     xet  
137786         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
137787         , AP_PO_HEADERS_EXTRACT_V  l3
137788         , ZX_AP_DEF_TAX_EXTRACT_V  l5
137789   , fnd_lookup_values    fvl7
137790   , fnd_lookup_values    fvl20
137791   , fnd_lookup_values    fvl39
137792   , fnd_lookup_values    fvl53
137793   , fnd_lookup_values    fvl100
137794   , fnd_lookup_values    fvl101
137795   , fnd_lookup_values    fvl104
137796   , fnd_lookup_values    fvl151
137797             , (select rownum r from all_objects where rownum <= 46 and owner = p_apps_owner)
137798         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
137799           AND xet.event_class_code = C_EVENT_CLASS_CODE
137800             AND l1.event_id          = xet.event_id
137801  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl7.lookup_type(+)         = 'DESTINATION TYPE'
137802   AND fvl7.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
137803   AND fvl7.view_application_id(+) = 201
137804   AND fvl7.language(+)            = USERENV('LANG')
137805      AND fvl20.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
137809      AND fvl39.lookup_type(+)         = 'PAY_DIST_TYPES'
137806   AND fvl20.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
137807   AND fvl20.view_application_id(+) = 200
137808   AND fvl20.language(+)            = USERENV('LANG')
137810   AND fvl39.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
137811   AND fvl39.view_application_id(+) = 200
137812   AND fvl39.language(+)            = USERENV('LANG')
137813      AND fvl53.lookup_type(+)         = 'YES_NO'
137814   AND fvl53.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
137815   AND fvl53.view_application_id(+) = 0
137816   AND fvl53.language(+)            = USERENV('LANG')
137817      AND fvl100.lookup_type(+)         = 'YES_NO'
137818   AND fvl100.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
137819   AND fvl100.view_application_id(+) = 0
137820   AND fvl100.language(+)            = USERENV('LANG')
137821      AND fvl101.lookup_type(+)         = 'INVOICE TYPE'
137822   AND fvl101.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
137823   AND fvl101.view_application_id(+) = 200
137824   AND fvl101.language(+)            = USERENV('LANG')
137825      AND fvl104.lookup_type(+)         = 'YES_NO'
137826   AND fvl104.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
137827   AND fvl104.view_application_id(+) = 0
137828   AND fvl104.language(+)            = USERENV('LANG')
137829      AND fvl151.lookup_type(+)         = 'YES_NO'
137830   AND fvl151.lookup_code(+)         = l1.AWT_AT_PMT_TIME
137831   AND fvl151.view_application_id(+) = 0
137832   AND fvl151.language(+)            = USERENV('LANG')
137833   
137834 )
137835 ;
137836 --
137837 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
137838 
137839       trace
137840          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
137841          ,p_level    => C_LEVEL_STATEMENT
137842          ,p_module   => l_log_module);
137843 
137844 END IF;
137845 
137846 
137847 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137848       trace
137849          (p_msg      => 'END of insert_sources_214'
137850          ,p_level    => C_LEVEL_PROCEDURE
137851          ,p_module   => l_log_module);
137852 END IF;
137853 EXCEPTION
137854   WHEN xla_exceptions_pkg.application_exception THEN
137855       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
137856             trace
137857                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
137858                ,p_level    => C_LEVEL_EXCEPTION
137859                ,p_module   => l_log_module);
137860       END IF;
137861       RAISE;
137862   WHEN OTHERS THEN
137863       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
137864             trace
137865                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
137866                ,p_level    => C_LEVEL_EXCEPTION
137867                ,p_module   => l_log_module);
137868        END IF;
137869        xla_exceptions_pkg.raise_message
137870            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_214');
137871 END insert_sources_214;
137872 --
137873 
137874 ---------------------------------------
137875 --
137876 -- PRIVATE FUNCTION
137877 --         EventClass_214
137878 --
137879 ----------------------------------------
137880 --
137881 FUNCTION EventClass_214
137882        (p_application_id         IN NUMBER
137883        ,p_base_ledger_id         IN NUMBER
137884        ,p_target_ledger_id       IN NUMBER
137885        ,p_language               IN VARCHAR2
137886        ,p_currency_code          IN VARCHAR2
137887        ,p_sla_ledger_id          IN NUMBER
137888        ,p_pad_start_date         IN DATE
137889        ,p_pad_end_date           IN DATE
137890        ,p_primary_ledger_id      IN NUMBER)
137891 RETURN BOOLEAN IS
137892 --
137893 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
137894 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
137895 
137896 l_calculate_acctd_flag   VARCHAR2(1) :='N';
137897 l_calculate_g_l_flag     VARCHAR2(1) :='N';
137898 --
137899 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137900 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137901 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
137902 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137903 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137904 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
137905 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
137906 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137907 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137908 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137909 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137910 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137911 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137912 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
137913 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137914 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137915 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137916 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
137917 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137918 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137919 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137920 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
137921 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
137922 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
137923 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
137927 l_previous_event_id                    NUMBER;
137924 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
137925 
137926 l_event_id                             NUMBER;
137928 l_first_event_id                       NUMBER;
137929 l_last_event_id                        NUMBER;
137930 
137931 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
137932 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
137933 --
137934 --
137935 l_result                    BOOLEAN := TRUE;
137936 l_rows                      NUMBER  := 1000;
137937 l_event_type_name           VARCHAR2(80) := 'All';
137938 l_event_class_name          VARCHAR2(80) := 'Reconciled Payments';
137939 l_description               VARCHAR2(4000);
137940 l_transaction_reversal      NUMBER;
137941 l_ae_header_id              NUMBER;
137942 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
137943 l_log_module                VARCHAR2(240);
137944 --
137945 l_acct_reversal_source      VARCHAR2(30);
137946 l_trx_reversal_source       VARCHAR2(30);
137947 
137948 l_continue_with_lines       BOOLEAN := TRUE;
137949 --
137950 l_acc_rev_gl_date_source    DATE;                      -- 4262811
137951 --
137952 type t_array_event_id is table of number index by binary_integer;
137953 
137954 l_rec_array_event                    t_rec_array_event;
137955 l_null_rec_array_event               t_rec_array_event;
137956 l_array_ae_header_id                 xla_number_array_type;
137957 l_actual_flag                        VARCHAR2(1) := NULL;
137958 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
137959 l_balance_type_code                  VARCHAR2(1) :=NULL;
137960 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
137961 
137962 --
137963 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
137964 --
137965 
137966 TYPE t_array_source_1 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
137967 TYPE t_array_source_2 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
137968 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
137969 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
137970 TYPE t_array_source_5 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
137971 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
137972 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
137973 TYPE t_array_source_16 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
137974 TYPE t_array_source_22 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
137975 TYPE t_array_source_25 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
137976 TYPE t_array_source_26 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_ERRORS_CCID%TYPE INDEX BY BINARY_INTEGER;
137977 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
137978 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
137979 TYPE t_array_source_32 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
137980 TYPE t_array_source_33 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
137981 TYPE t_array_source_34 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
137982 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
137983 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
137984 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
137985 TYPE t_array_source_49 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
137986 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
137987 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
137988 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
137989 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
137990 TYPE t_array_source_102 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
137991 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
137992 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_DATE%TYPE INDEX BY BINARY_INTEGER;
137993 TYPE t_array_source_108 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE%TYPE INDEX BY BINARY_INTEGER;
137994 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
137995 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
137996 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
137997 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
137998 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
137999 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
138000 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
138001 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
138002 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
138003 
138007 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
138004 TYPE t_array_source_7 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
138005 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
138006 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
138008 TYPE t_array_source_20 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
138009 TYPE t_array_source_23 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
138010 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
138011 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
138012 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
138013 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
138014 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
138015 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
138016 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
138017 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
138018 TYPE t_array_source_44 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
138019 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
138020 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
138021 TYPE t_array_source_47 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
138022 TYPE t_array_source_48 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
138023 TYPE t_array_source_50 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
138024 TYPE t_array_source_51 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
138025 TYPE t_array_source_52 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
138026 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
138027 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
138028 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
138029 TYPE t_array_source_59 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
138030 TYPE t_array_source_62 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
138031 TYPE t_array_source_63 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
138032 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
138033 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
138034 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
138035 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
138036 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INV_BASE_AMT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
138037 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
138038 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
138039 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
138040 TYPE t_array_source_127 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
138041 TYPE t_array_source_129 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
138042 TYPE t_array_source_130 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
138043 TYPE t_array_source_131 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
138044 TYPE t_array_source_132 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
138045 TYPE t_array_source_142 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INV_BASE_QTY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
138046 TYPE t_array_source_143 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_QUANTITY_VARIANCE%TYPE INDEX BY BINARY_INTEGER;
138047 TYPE t_array_source_147 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_DIST_ID_CLR%TYPE INDEX BY BINARY_INTEGER;
138048 TYPE t_array_source_148 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BF_RETAINED_INV_ID_CLR%TYPE INDEX BY BINARY_INTEGER;
138049 TYPE t_array_source_151 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
138050 
138051 l_array_source_1              t_array_source_1;
138052 l_array_source_2              t_array_source_2;
138053 l_array_source_3              t_array_source_3;
138054 l_array_source_3_meaning      t_array_lookup_meaning;
138055 l_array_source_4              t_array_source_4;
138056 l_array_source_4_meaning      t_array_lookup_meaning;
138057 l_array_source_5              t_array_source_5;
138058 l_array_source_8              t_array_source_8;
138059 l_array_source_15              t_array_source_15;
138060 l_array_source_16              t_array_source_16;
138061 l_array_source_22              t_array_source_22;
138062 l_array_source_25              t_array_source_25;
138063 l_array_source_26              t_array_source_26;
138064 l_array_source_27              t_array_source_27;
138065 l_array_source_30              t_array_source_30;
138066 l_array_source_30_meaning      t_array_lookup_meaning;
138067 l_array_source_32              t_array_source_32;
138068 l_array_source_33              t_array_source_33;
138072 l_array_source_38              t_array_source_38;
138069 l_array_source_34              t_array_source_34;
138070 l_array_source_35              t_array_source_35;
138071 l_array_source_37              t_array_source_37;
138073 l_array_source_49              t_array_source_49;
138074 l_array_source_54              t_array_source_54;
138075 l_array_source_55              t_array_source_55;
138076 l_array_source_56              t_array_source_56;
138077 l_array_source_60              t_array_source_60;
138078 l_array_source_60_meaning      t_array_lookup_meaning;
138079 l_array_source_102              t_array_source_102;
138080 l_array_source_102_meaning      t_array_lookup_meaning;
138081 l_array_source_106              t_array_source_106;
138082 l_array_source_107              t_array_source_107;
138083 l_array_source_108              t_array_source_108;
138084 l_array_source_109              t_array_source_109;
138085 l_array_source_110              t_array_source_110;
138086 l_array_source_110_meaning      t_array_lookup_meaning;
138087 l_array_source_111              t_array_source_111;
138088 l_array_source_114              t_array_source_114;
138089 l_array_source_115              t_array_source_115;
138090 l_array_source_116              t_array_source_116;
138091 l_array_source_158              t_array_source_158;
138092 l_array_source_159              t_array_source_159;
138093 l_array_source_160              t_array_source_160;
138094 
138095 l_array_source_7      t_array_source_7;
138096 l_array_source_7_meaning      t_array_lookup_meaning;
138097 l_array_source_9      t_array_source_9;
138098 l_array_source_10      t_array_source_10;
138099 l_array_source_17      t_array_source_17;
138100 l_array_source_20      t_array_source_20;
138101 l_array_source_20_meaning      t_array_lookup_meaning;
138102 l_array_source_23      t_array_source_23;
138103 l_array_source_24      t_array_source_24;
138104 l_array_source_28      t_array_source_28;
138105 l_array_source_29      t_array_source_29;
138106 l_array_source_39      t_array_source_39;
138107 l_array_source_39_meaning      t_array_lookup_meaning;
138108 l_array_source_40      t_array_source_40;
138109 l_array_source_41      t_array_source_41;
138110 l_array_source_42      t_array_source_42;
138111 l_array_source_43      t_array_source_43;
138112 l_array_source_44      t_array_source_44;
138113 l_array_source_45      t_array_source_45;
138114 l_array_source_46      t_array_source_46;
138115 l_array_source_47      t_array_source_47;
138116 l_array_source_48      t_array_source_48;
138117 l_array_source_50      t_array_source_50;
138118 l_array_source_51      t_array_source_51;
138119 l_array_source_52      t_array_source_52;
138120 l_array_source_53      t_array_source_53;
138121 l_array_source_53_meaning      t_array_lookup_meaning;
138122 l_array_source_57      t_array_source_57;
138123 l_array_source_58      t_array_source_58;
138124 l_array_source_59      t_array_source_59;
138125 l_array_source_62      t_array_source_62;
138126 l_array_source_63      t_array_source_63;
138127 l_array_source_64      t_array_source_64;
138128 l_array_source_65      t_array_source_65;
138129 l_array_source_100      t_array_source_100;
138130 l_array_source_100_meaning      t_array_lookup_meaning;
138131 l_array_source_101      t_array_source_101;
138132 l_array_source_101_meaning      t_array_lookup_meaning;
138133 l_array_source_103      t_array_source_103;
138134 l_array_source_104      t_array_source_104;
138135 l_array_source_104_meaning      t_array_lookup_meaning;
138136 l_array_source_105      t_array_source_105;
138137 l_array_source_112      t_array_source_112;
138138 l_array_source_127      t_array_source_127;
138139 l_array_source_129      t_array_source_129;
138140 l_array_source_130      t_array_source_130;
138141 l_array_source_131      t_array_source_131;
138142 l_array_source_132      t_array_source_132;
138143 l_array_source_142      t_array_source_142;
138144 l_array_source_143      t_array_source_143;
138145 l_array_source_147      t_array_source_147;
138146 l_array_source_148      t_array_source_148;
138147 l_array_source_151      t_array_source_151;
138148 l_array_source_151_meaning      t_array_lookup_meaning;
138149 
138150 --
138151 CURSOR header_cur
138152 IS
138153 SELECT /*+ leading(xet) cardinality(xet,1) */
138154 -- Event Class Code: RECONCILED PAYMENTS
138155     xet.entity_id
138156    ,xet.legal_entity_id
138157    ,xet.entity_code
138158    ,xet.transaction_number
138159    ,xet.event_id
138160    ,xet.event_class_code
138161    ,xet.event_type_code
138162    ,xet.event_number
138163    ,xet.event_date
138164    ,xet.transaction_date
138165    ,xet.reference_num_1
138166    ,xet.reference_num_2
138167    ,xet.reference_num_3
138168    ,xet.reference_num_4
138169    ,xet.reference_char_1
138170    ,xet.reference_char_2
138171    ,xet.reference_char_3
138172    ,xet.reference_char_4
138173    ,xet.reference_date_1
138174    ,xet.reference_date_2
138175    ,xet.reference_date_3
138176    ,xet.reference_date_4
138177    ,xet.event_created_by
138178    ,xet.budgetary_control_flag 
138179   , h2.CGAC_AP_ASSET_CCID    source_1
138180   , h4.FSP_DISC_TAKEN_CCID    source_2
138181   , h4.ASP_DISCOUNT_DIST_METHOD    source_3
138182   , fvl3.meaning   source_3_meaning
138183   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_4
138184   , fvl4.meaning   source_4_meaning
138185   , h4.ASP_RATE_VAR_GAIN_CCID    source_5
138186   , h4.ASP_RATE_VAR_LOSS_CCID    source_8
138187   , h4.ASP_INTEREST_CCID    source_15
138188   , h4.ASP_PRORATE_INT_ACROSS_DISTS    source_16
138189   , h4.FSP_RETAINAGE_ACCOUNT    source_22
138190   , h2.CGAC_BANK_CHARGES_CCID    source_25
138191   , h2.CGAC_BANK_ERRORS_CCID    source_26
138192   , h4.ASP_DISC_TAKEN_CCID    source_27
138193   , h4.ASP_AUTO_OFFSET_FLAG    source_30
138194   , fvl30.meaning   source_30_meaning
138195   , h2.CGAC_GAIN_CCID    source_32
138196   , h4.ASP_GAIN_CCID    source_33
138197   , h2.CGAC_LOSS_CCID    source_34
138198   , h4.ASP_LOSS_CCID    source_35
138202   , h2.AC_VENDOR_ID    source_54
138199   , h4.ASP_ROUNDING_ERROR_CCID    source_37
138200   , h4.ASP_WHEN_TO_ACCOUNT_PMT    source_38
138201   , h2.AC_CURRENCY_CODE    source_49
138203   , h2.AC_VENDOR_SITE_ID    source_55
138204   , h2.THIRD_PARTY_TYPE    source_56
138205   , h2.PAYMENT_TYPE    source_60
138206   , fvl60.meaning   source_60_meaning
138207   , h4.FSP_PURCH_ENCUMBRANCE_FLAG    source_102
138208   , fvl102.meaning   source_102_meaning
138209   , h2.APH_BANK_CURRENCY_CODE    source_106
138210   , h2.APH_BANK_TO_BASE_XRATE_DATE    source_107
138211   , h2.APH_BANK_TO_BASE_XRATE    source_108
138212   , h2.APH_BANK_TO_BASE_XRATE_TYPE    source_109
138213   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_110
138214   , fvl110.meaning   source_110_meaning
138215   , h2.AC_FUTURE_PAY_DUE_DATE    source_111
138216   , h2.AC_EXCHANGE_DATE    source_114
138217   , h2.AC_EXCHANGE_RATE    source_115
138218   , h2.AC_EXCHANGE_RATE_TYPE    source_116
138219   , h2.AC_DOC_CATEGORY_CODE    source_158
138220   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_159
138221   , h2.AC_DOC_SEQUENCE_VALUE    source_160
138222   FROM xla_events_gt     xet 
138223   , AP_PAYMENT_EXTRACT_HEADER_V  h2
138224   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
138225   , fnd_lookup_values    fvl3
138226   , fnd_lookup_values    fvl4
138227   , fnd_lookup_values    fvl30
138228   , fnd_lookup_values    fvl60
138229   , fnd_lookup_values    fvl102
138230   , fnd_lookup_values    fvl110
138231  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
138232    and xet.event_class_code = C_EVENT_CLASS_CODE
138233    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
138234  AND h4.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
138235   AND fvl3.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
138236   AND fvl3.view_application_id(+) = 200
138237   AND fvl3.language(+)            = USERENV('LANG')
138238      AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
138239   AND fvl4.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
138240   AND fvl4.view_application_id(+) = 200
138241   AND fvl4.language(+)            = USERENV('LANG')
138242      AND fvl30.lookup_type(+)         = 'YES_NO'
138243   AND fvl30.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
138244   AND fvl30.view_application_id(+) = 0
138245   AND fvl30.language(+)            = USERENV('LANG')
138246      AND fvl60.lookup_type(+)         = 'PAYMENT TYPE'
138247   AND fvl60.lookup_code(+)         = h2.PAYMENT_TYPE
138248   AND fvl60.view_application_id(+) = 200
138249   AND fvl60.language(+)            = USERENV('LANG')
138250      AND fvl102.lookup_type(+)         = 'YES_NO'
138251   AND fvl102.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
138252   AND fvl102.view_application_id(+) = 0
138253   AND fvl102.language(+)            = USERENV('LANG')
138254      AND fvl110.lookup_type(+)         = 'YES_NO'
138255   AND fvl110.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
138256   AND fvl110.view_application_id(+) = 0
138257   AND fvl110.language(+)            = USERENV('LANG')
138258   
138259  ORDER BY event_id
138260 ;
138261 
138262 
138263 --
138264 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
138265 IS
138266 SELECT  /*+ leading(xet) cardinality(xet,1) */
138267 -- Event Class Code: RECONCILED PAYMENTS
138268     xet.entity_id
138269    ,xet.legal_entity_id
138270    ,xet.entity_code
138271    ,xet.transaction_number
138272    ,xet.event_id
138273    ,xet.event_class_code
138274    ,xet.event_type_code
138275    ,xet.event_number
138276    ,xet.event_date
138277    ,xet.transaction_date
138278    ,xet.reference_num_1
138279    ,xet.reference_num_2
138280    ,xet.reference_num_3
138281    ,xet.reference_num_4
138282    ,xet.reference_char_1
138283    ,xet.reference_char_2
138284    ,xet.reference_char_3
138285    ,xet.reference_char_4
138286    ,xet.reference_date_1
138287    ,xet.reference_date_2
138288    ,xet.reference_date_3
138289    ,xet.reference_date_4
138290    ,xet.event_created_by
138291    ,xet.budgetary_control_flag
138292  , l1.LINE_NUMBER  
138293   , l1.RELATED_INV_DIST_DEST_TYPE    source_7
138294   , fvl7.meaning   source_7_meaning
138295   , l1.APHD_PAYMENT_BASE_AMT    source_9
138296   , l1.APHD_CLEARING_BASE_AMT    source_10
138297   , l1.AID_DIST_CCID    source_17
138298   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_20
138299   , fvl20.meaning   source_20_meaning
138300   , l1.AID_RET_RELATED_DIST_CCID    source_23
138301   , l1.AWT_RELATED_DIST_ACCOUNT    source_24
138302   , l1.POD_CCID    source_28
138303   , l1.PO_VARIANCE_ACCOUNT    source_29
138304   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_39
138305   , fvl39.meaning   source_39_meaning
138306   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_40
138307   , l1.APHD_AMOUNT    source_41
138308   , l1.BUS_FLOW_AP_APP_ID    source_42
138309   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_43
138310   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_44
138311   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_45
138312   , l1.BUS_FLOW_PAYMENT_ID    source_46
138313   , l1.APHD_PAYMENT_HIST_DIST_ID    source_47
138314   , l1.DISTRIBUTION_LINK_TYPE    source_48
138315   , l3.POH_RATE_DATE    source_50
138316   , l3.POH_RATE    source_51
138317   , l3.POH_RATE_TYPE    source_52
138318   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_53
138319   , fvl53.meaning   source_53_meaning
138320   , l1.APHD_REV_PAY_HIST_DIST_ID    source_57
138321   , l5.TAX_LINE_ID    source_58
138322   , l5.SUMMARY_TAX_LINE_ID    source_59
138323   , l1.BUS_FLOW_INV_DIST_TYPE    source_62
138324   , l1.BUS_FLOW_INV_ENTITY_CODE    source_63
138325   , l1.BUS_FLOW_INV_DIST_ID    source_64
138326   , l1.BUS_FLOW_INV_ID    source_65
138327   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_100
138328   , fvl100.meaning   source_100_meaning
138329   , l1.AI_INVOICE_TYPE_PAID    source_101
138330   , fvl101.meaning   source_101_meaning
138331   , l1.APHD_INV_BASE_AMT_VARIANCE    source_103
138335   , l1.APHD_INVOICE_BASE_AMT    source_112
138332   , l1.AID_ENCUMBERED_FLAG    source_104
138333   , fvl104.meaning   source_104_meaning
138334   , l1.APHD_AMOUNT_VARIANCE    source_105
138336   , l1.INV_CLR_BASE_AMT_DIFF    source_127
138337   , l1.MAT_CLR_GAIN_LOSS_INDICATOR    source_129
138338   , l1.MAT_CLR_BASE_AMT_DIFF    source_130
138339   , l1.PMT_CLR_GAIN_LOSS_INDICATOR    source_131
138340   , l1.PMT_CLR_BASE_AMT_DIFF    source_132
138341   , l1.APHD_INV_BASE_QTY_VARIANCE    source_142
138342   , l1.APHD_QUANTITY_VARIANCE    source_143
138343   , l1.BF_RETAINED_INV_DIST_ID_CLR    source_147
138344   , l1.BF_RETAINED_INV_ID_CLR    source_148
138345   , l1.AWT_AT_PMT_TIME    source_151
138346   , fvl151.meaning   source_151_meaning
138347   FROM xla_events_gt     xet 
138348   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
138349   , AP_PO_HEADERS_EXTRACT_V  l3
138350   , ZX_AP_DEF_TAX_EXTRACT_V  l5
138351   , fnd_lookup_values    fvl7
138352   , fnd_lookup_values    fvl20
138353   , fnd_lookup_values    fvl39
138354   , fnd_lookup_values    fvl53
138355   , fnd_lookup_values    fvl100
138356   , fnd_lookup_values    fvl101
138357   , fnd_lookup_values    fvl104
138358   , fnd_lookup_values    fvl151
138359  WHERE xet.event_id between x_first_event_id and x_last_event_id
138360    and xet.event_date between p_pad_start_date and p_pad_end_date
138361    and xet.event_class_code = C_EVENT_CLASS_CODE
138362    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
138363  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl7.lookup_type(+)         = 'DESTINATION TYPE'
138364   AND fvl7.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
138365   AND fvl7.view_application_id(+) = 201
138366   AND fvl7.language(+)            = USERENV('LANG')
138367      AND fvl20.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
138368   AND fvl20.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
138369   AND fvl20.view_application_id(+) = 200
138370   AND fvl20.language(+)            = USERENV('LANG')
138371      AND fvl39.lookup_type(+)         = 'PAY_DIST_TYPES'
138372   AND fvl39.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
138373   AND fvl39.view_application_id(+) = 200
138374   AND fvl39.language(+)            = USERENV('LANG')
138375      AND fvl53.lookup_type(+)         = 'YES_NO'
138376   AND fvl53.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
138377   AND fvl53.view_application_id(+) = 0
138378   AND fvl53.language(+)            = USERENV('LANG')
138379      AND fvl100.lookup_type(+)         = 'YES_NO'
138380   AND fvl100.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
138381   AND fvl100.view_application_id(+) = 0
138382   AND fvl100.language(+)            = USERENV('LANG')
138383      AND fvl101.lookup_type(+)         = 'INVOICE TYPE'
138384   AND fvl101.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
138385   AND fvl101.view_application_id(+) = 200
138386   AND fvl101.language(+)            = USERENV('LANG')
138387      AND fvl104.lookup_type(+)         = 'YES_NO'
138388   AND fvl104.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
138389   AND fvl104.view_application_id(+) = 0
138390   AND fvl104.language(+)            = USERENV('LANG')
138391      AND fvl151.lookup_type(+)         = 'YES_NO'
138392   AND fvl151.lookup_code(+)         = l1.AWT_AT_PMT_TIME
138393   AND fvl151.view_application_id(+) = 0
138394   AND fvl151.language(+)            = USERENV('LANG')
138395   ;
138396 
138397 --
138398 BEGIN
138399 IF g_log_enabled THEN
138400    l_log_module := C_DEFAULT_MODULE||'.EventClass_214';
138401 END IF;
138402 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138403    trace
138404       (p_msg      => 'BEGIN of EventClass_214'
138405       ,p_level    => C_LEVEL_PROCEDURE
138406       ,p_module   => l_log_module);
138407 END IF;
138408 
138409 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
138410    trace
138411       (p_msg      => 'p_application_id = '||p_application_id||
138412                      ' - p_base_ledger_id = '||p_base_ledger_id||
138413                      ' - p_target_ledger_id  = '||p_target_ledger_id||
138414                      ' - p_language = '||p_language||
138415                      ' - p_currency_code = '||p_currency_code||
138416                      ' - p_sla_ledger_id = '||p_sla_ledger_id
138417       ,p_level    => C_LEVEL_STATEMENT
138418       ,p_module   => l_log_module);
138419 END IF;
138420 --
138421 -- initialze arrays
138422 --
138423 g_array_event.DELETE;
138424 l_rec_array_event := l_null_rec_array_event;
138425 --
138426 --------------------------------------
138427 -- 4262811 Initialze MPA Line Number
138428 --------------------------------------
138429 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
138430 
138431 --
138432 
138433 --
138434 OPEN header_cur;
138435 --
138436 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
138437    trace
138438    (p_msg      => 'SQL - FETCH header_cur'
138439    ,p_level    => C_LEVEL_STATEMENT
138440    ,p_module   => l_log_module);
138441 END IF;
138442 --
138443 LOOP
138444 FETCH header_cur BULK COLLECT INTO
138445         l_array_entity_id
138446       , l_array_legal_entity_id
138447       , l_array_entity_code
138448       , l_array_transaction_num
138449       , l_array_event_id
138450       , l_array_class_code
138451       , l_array_event_type
138452       , l_array_event_number
138453       , l_array_event_date
138454       , l_array_transaction_date
138455       , l_array_reference_num_1
138456       , l_array_reference_num_2
138457       , l_array_reference_num_3
138458       , l_array_reference_num_4
138459       , l_array_reference_char_1
138460       , l_array_reference_char_2
138461       , l_array_reference_char_3
138462       , l_array_reference_char_4
138463       , l_array_reference_date_1
138464       , l_array_reference_date_2
138465       , l_array_reference_date_3
138466       , l_array_reference_date_4
138467       , l_array_event_created_by
138471       , l_array_source_3
138468       , l_array_budgetary_control_flag 
138469       , l_array_source_1
138470       , l_array_source_2
138472       , l_array_source_3_meaning
138473       , l_array_source_4
138474       , l_array_source_4_meaning
138475       , l_array_source_5
138476       , l_array_source_8
138477       , l_array_source_15
138478       , l_array_source_16
138479       , l_array_source_22
138480       , l_array_source_25
138481       , l_array_source_26
138482       , l_array_source_27
138483       , l_array_source_30
138484       , l_array_source_30_meaning
138485       , l_array_source_32
138486       , l_array_source_33
138487       , l_array_source_34
138488       , l_array_source_35
138489       , l_array_source_37
138490       , l_array_source_38
138491       , l_array_source_49
138492       , l_array_source_54
138493       , l_array_source_55
138494       , l_array_source_56
138495       , l_array_source_60
138496       , l_array_source_60_meaning
138497       , l_array_source_102
138498       , l_array_source_102_meaning
138499       , l_array_source_106
138500       , l_array_source_107
138501       , l_array_source_108
138502       , l_array_source_109
138503       , l_array_source_110
138504       , l_array_source_110_meaning
138505       , l_array_source_111
138506       , l_array_source_114
138507       , l_array_source_115
138508       , l_array_source_116
138509       , l_array_source_158
138510       , l_array_source_159
138511       , l_array_source_160
138512       LIMIT l_rows;
138513 --
138514 IF (C_LEVEL_EVENT >= g_log_level) THEN
138515    trace
138516    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
138517    ,p_level    => C_LEVEL_EVENT
138518    ,p_module   => l_log_module);
138519 END IF;
138520 --
138521 EXIT WHEN l_array_entity_id.COUNT = 0;
138522 
138523 -- initialize arrays
138524 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
138525 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
138526 
138527 --
138528 -- Bug 4458708
138529 --
138530 XLA_AE_LINES_PKG.g_LineNumber := 0;
138531 
138532 
138533 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
138534 g_last_hdr_idx := l_array_event_id.LAST;
138535 --
138536 -- loop for the headers. Each iteration is for each header extract row
138537 -- fetched in header cursor
138538 --
138539 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
138540 
138541 --
138542 -- set event info as cache for other routines to refer event attributes
138543 --
138544 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
138545    (p_application_id           => p_application_id
138546    ,p_primary_ledger_id        => p_primary_ledger_id
138547    ,p_base_ledger_id           => p_base_ledger_id
138548    ,p_target_ledger_id         => p_target_ledger_id
138549    ,p_entity_id                => l_array_entity_id(hdr_idx)
138550    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
138551    ,p_entity_code              => l_array_entity_code(hdr_idx)
138552    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
138553    ,p_event_id                 => l_array_event_id(hdr_idx)
138554    ,p_event_class_code         => l_array_class_code(hdr_idx)
138555    ,p_event_type_code          => l_array_event_type(hdr_idx)
138556    ,p_event_number             => l_array_event_number(hdr_idx)
138557    ,p_event_date               => l_array_event_date(hdr_idx)
138558    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
138559    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
138560    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
138561    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
138562    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
138563    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
138564    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
138565    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
138566    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
138567    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
138568    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
138569    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
138570    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
138571    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
138572    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
138573 
138574 --
138575 -- set the status of entry to C_VALID (0)
138576 --
138577 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
138578 
138579 --
138580 -- initialize a row for ae header
138581 --
138582 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
138583 
138584 l_event_id := l_array_event_id(hdr_idx);
138585 
138586 --
138587 -- storing the hdr_idx for event. May be used by line cursor.
138588 --
138589 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
138590 
138591 --
138592 -- store sources from header extract. This can be improved to
138593 -- store only those sources from header extract that may be used in lines
138594 --
138595 
138596 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
138597 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
138598 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
138599 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
138600 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
138601 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
138602 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
138606 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
138603 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
138604 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
138605 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
138607 g_array_event(l_event_id).array_value_num('source_25') := l_array_source_25(hdr_idx);
138608 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
138609 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
138610 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
138611 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
138612 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
138613 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
138614 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
138615 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
138616 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
138617 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
138618 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
138619 g_array_event(l_event_id).array_value_num('source_54') := l_array_source_54(hdr_idx);
138620 g_array_event(l_event_id).array_value_num('source_55') := l_array_source_55(hdr_idx);
138621 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
138622 g_array_event(l_event_id).array_value_char('source_60') := l_array_source_60(hdr_idx);
138623 g_array_event(l_event_id).array_value_char('source_60_meaning') := l_array_source_60_meaning(hdr_idx);
138624 g_array_event(l_event_id).array_value_char('source_102') := l_array_source_102(hdr_idx);
138625 g_array_event(l_event_id).array_value_char('source_102_meaning') := l_array_source_102_meaning(hdr_idx);
138626 g_array_event(l_event_id).array_value_char('source_106') := l_array_source_106(hdr_idx);
138627 g_array_event(l_event_id).array_value_date('source_107') := l_array_source_107(hdr_idx);
138628 g_array_event(l_event_id).array_value_num('source_108') := l_array_source_108(hdr_idx);
138629 g_array_event(l_event_id).array_value_char('source_109') := l_array_source_109(hdr_idx);
138630 g_array_event(l_event_id).array_value_char('source_110') := l_array_source_110(hdr_idx);
138631 g_array_event(l_event_id).array_value_char('source_110_meaning') := l_array_source_110_meaning(hdr_idx);
138632 g_array_event(l_event_id).array_value_date('source_111') := l_array_source_111(hdr_idx);
138633 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
138634 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
138635 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
138636 g_array_event(l_event_id).array_value_char('source_158') := l_array_source_158(hdr_idx);
138637 g_array_event(l_event_id).array_value_num('source_159') := l_array_source_159(hdr_idx);
138638 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
138639 
138640 --
138641 -- initilaize the status of ae headers for diffrent balance types
138642 -- the status is initialised to C_NOT_CREATED (2)
138643 --
138644 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
138645 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
138646 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
138647 
138648 --
138649 -- call api to validate and store accounting attributes for header
138650 --
138651 
138652 ------------------------------------------------------------
138653 -- Accrual Reversal : to get date for Standard Source (NONE)
138654 ------------------------------------------------------------
138655 l_acc_rev_gl_date_source := NULL;
138656 
138657      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
138658       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_158');
138659      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
138660       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_159');
138661      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
138662       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_160');
138663      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
138664       l_rec_acct_attrs.array_date_value(4) := 
138665 xla_ae_sources_pkg.GetSystemSourceDate(
138666    p_source_code           => 'XLA_EVENT_DATE'
138667  , p_source_type_code      => 'Y'
138668  , p_source_application_id =>  602
138669 );
138670 
138671 
138672 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
138673 
138674 XLA_AE_HEADER_PKG.SetJeCategoryName;
138675 
138676 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
138677 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
138678 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
138679 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
138680 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
138681 
138682 
138683 -- No header level analytical criteria
138684 
138685 --
138686 --accounting attribute enhancement, bug 3612931
138687 --
138688 l_trx_reversal_source := SUBSTR(NULL, 1,30);
138689 
138690 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
138691    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
138692 
138693    xla_accounting_err_pkg.build_message
138694       (p_appli_s_name            => 'XLA'
138695       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
138699       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
138696       ,p_token_1                 => 'ACCT_ATTR_NAME'
138697       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
138698       ,p_token_2                 => 'PRODUCT_NAME'
138700       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
138701       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
138702       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
138703 
138704 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
138705    --
138706    -- following sets the accounting attributes needed to reverse
138707    -- accounting for a distributeion
138708    --
138709    xla_ae_lines_pkg.SetTrxReversalAttrs
138710       (p_event_id              => l_event_id
138711       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
138712       ,p_trx_reversal_source   => l_trx_reversal_source);
138713 
138714 END IF;
138715 
138716 
138717 ----------------------------------------------------------------
138718 -- 4262811 -  update the header statuses to invalid in need be
138719 ----------------------------------------------------------------
138720 --
138721 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
138722 
138723 
138724   -----------------------------------------------
138725   -- No accrual reversal for the event class/type
138726   -----------------------------------------------
138727 ----------------------------------------------------------------
138728 
138729 --
138730 -- this ends the header loop iteration for one bulk fetch
138731 --
138732 END LOOP;
138733 
138734 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
138735 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
138736 
138737 --
138738 -- insert dummy rows into lines gt table that were created due to
138739 -- transaction reversals
138740 --
138741 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
138742    l_result := XLA_AE_LINES_PKG.InsertLines;
138743 END IF;
138744 
138745 --
138746 -- reset the temp_line_num for each set of events fetched from header
138747 -- cursor rather than doing it for each new event in line cursor
138748 -- Bug 3939231
138749 --
138750 xla_ae_lines_pkg.g_temp_line_num := 0;
138751 
138752 
138753 
138754 --
138755 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
138756 --
138757 --
138758 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
138759 
138760       trace
138761          (p_msg      => 'SQL - FETCH line_cur'
138762          ,p_level    => C_LEVEL_STATEMENT
138763          ,p_module   => l_log_module);
138764 
138765 END IF;
138766 --
138767 --
138768 LOOP
138769   --
138770   FETCH line_cur BULK COLLECT INTO
138771         l_array_entity_id
138772       , l_array_legal_entity_id
138773       , l_array_entity_code
138774       , l_array_transaction_num
138775       , l_array_event_id
138776       , l_array_class_code
138777       , l_array_event_type
138778       , l_array_event_number
138779       , l_array_event_date
138780       , l_array_transaction_date
138781       , l_array_reference_num_1
138782       , l_array_reference_num_2
138783       , l_array_reference_num_3
138784       , l_array_reference_num_4
138785       , l_array_reference_char_1
138786       , l_array_reference_char_2
138787       , l_array_reference_char_3
138788       , l_array_reference_char_4
138789       , l_array_reference_date_1
138790       , l_array_reference_date_2
138791       , l_array_reference_date_3
138792       , l_array_reference_date_4
138793       , l_array_event_created_by
138794       , l_array_budgetary_control_flag
138795       , l_array_extract_line_num 
138796       , l_array_source_7
138797       , l_array_source_7_meaning
138798       , l_array_source_9
138799       , l_array_source_10
138800       , l_array_source_17
138801       , l_array_source_20
138802       , l_array_source_20_meaning
138803       , l_array_source_23
138804       , l_array_source_24
138805       , l_array_source_28
138806       , l_array_source_29
138807       , l_array_source_39
138808       , l_array_source_39_meaning
138809       , l_array_source_40
138810       , l_array_source_41
138811       , l_array_source_42
138812       , l_array_source_43
138813       , l_array_source_44
138814       , l_array_source_45
138815       , l_array_source_46
138816       , l_array_source_47
138817       , l_array_source_48
138818       , l_array_source_50
138819       , l_array_source_51
138820       , l_array_source_52
138821       , l_array_source_53
138822       , l_array_source_53_meaning
138823       , l_array_source_57
138824       , l_array_source_58
138825       , l_array_source_59
138826       , l_array_source_62
138827       , l_array_source_63
138828       , l_array_source_64
138829       , l_array_source_65
138830       , l_array_source_100
138831       , l_array_source_100_meaning
138832       , l_array_source_101
138833       , l_array_source_101_meaning
138834       , l_array_source_103
138835       , l_array_source_104
138836       , l_array_source_104_meaning
138837       , l_array_source_105
138838       , l_array_source_112
138839       , l_array_source_127
138840       , l_array_source_129
138841       , l_array_source_130
138842       , l_array_source_131
138843       , l_array_source_132
138844       , l_array_source_142
138845       , l_array_source_143
138846       , l_array_source_147
138847       , l_array_source_148
138848       , l_array_source_151
138849       , l_array_source_151_meaning
138850       LIMIT l_rows;
138851 
138852   --
138853   IF (C_LEVEL_EVENT >= g_log_level) THEN
138857                ,p_module   => l_log_module);
138854             trace
138855                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
138856                ,p_level    => C_LEVEL_EVENT
138858   END IF;
138859   --
138860   EXIT WHEN l_array_entity_id.count = 0;
138861 
138862   XLA_AE_LINES_PKG.g_rec_lines := null;
138863 
138864 --
138865 -- Bug 4458708
138866 --
138867 XLA_AE_LINES_PKG.g_LineNumber := 0;
138868 --
138869 --
138870 
138871 FOR Idx IN 1..l_array_event_id.count LOOP
138872    --
138873    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
138874    --
138875    l_event_id := l_array_event_id(idx);  -- 5648433
138876 
138877    --
138878    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
138879    --
138880 
138881    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
138882              (g_array_event(l_event_id).array_value_num('header_index'))
138883          ,'N'
138884          ) <> 'Y'
138885    THEN
138886       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
138887          trace
138888             (p_msg      => 'Trancaction revesal option is not Y '
138889             ,p_level    => C_LEVEL_STATEMENT
138890             ,p_module   => l_log_module);
138891       END IF;
138892 
138893 --
138894 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
138895 --
138896 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
138897 --
138898 -- set event info as cache for other routines to refer event attributes
138899 --
138900 
138901 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
138902    l_previous_event_id := l_event_id;
138903 
138904    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
138905       (p_application_id           => p_application_id
138906       ,p_primary_ledger_id        => p_primary_ledger_id
138907       ,p_base_ledger_id           => p_base_ledger_id
138908       ,p_target_ledger_id         => p_target_ledger_id
138909       ,p_entity_id                => l_array_entity_id(Idx)
138910       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
138911       ,p_entity_code              => l_array_entity_code(Idx)
138912       ,p_transaction_num          => l_array_transaction_num(Idx)
138913       ,p_event_id                 => l_array_event_id(Idx)
138914       ,p_event_class_code         => l_array_class_code(Idx)
138915       ,p_event_type_code          => l_array_event_type(Idx)
138916       ,p_event_number             => l_array_event_number(Idx)
138917       ,p_event_date               => l_array_event_date(Idx)
138918       ,p_transaction_date         => l_array_transaction_date(Idx)
138919       ,p_reference_num_1          => l_array_reference_num_1(Idx)
138920       ,p_reference_num_2          => l_array_reference_num_2(Idx)
138921       ,p_reference_num_3          => l_array_reference_num_3(Idx)
138922       ,p_reference_num_4          => l_array_reference_num_4(Idx)
138923       ,p_reference_char_1         => l_array_reference_char_1(Idx)
138924       ,p_reference_char_2         => l_array_reference_char_2(Idx)
138925       ,p_reference_char_3         => l_array_reference_char_3(Idx)
138926       ,p_reference_char_4         => l_array_reference_char_4(Idx)
138927       ,p_reference_date_1         => l_array_reference_date_1(Idx)
138928       ,p_reference_date_2         => l_array_reference_date_2(Idx)
138929       ,p_reference_date_3         => l_array_reference_date_3(Idx)
138930       ,p_reference_date_4         => l_array_reference_date_4(Idx)
138931       ,p_event_created_by         => l_array_event_created_by(Idx)
138932       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
138933        --
138934 END IF;
138935 
138936 
138937 
138938 --
138939 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
138940 
138941 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
138942 
138943 IF l_continue_with_lines THEN
138944    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
138945       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
138946 
138947       xla_accounting_err_pkg.build_message
138948          (p_appli_s_name            => 'XLA'
138949          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
138950          ,p_token_1                 => 'LINE_NUMBER'
138951          ,p_value_1                 => l_array_extract_line_num(Idx)
138952          ,p_token_2                 => 'PRODUCT_NAME'
138953          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
138954          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
138955          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
138956          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
138957 
138958    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
138959       --
138960       -- following sets the accounting attributes needed to reverse
138961       -- accounting for a distributeion
138962       --
138963 
138964       --
138965       -- 5217187
138966       --
138967       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
138968       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
138969                                        g_array_event(l_event_id).array_value_num('header_index'));
138970       --
138971       --
138972 
138973       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
138974       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_40(Idx);
138975       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
138976       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_47(Idx);
138977       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
138978       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_48(Idx);
138982       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_57(Idx);
138979       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
138980       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_56');
138981       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
138983       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
138984       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_48(Idx);
138985       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
138986       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_58(Idx);
138987       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
138988       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_58(Idx);
138989       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
138990       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_59(Idx);
138991 
138992 
138993       xla_ae_lines_pkg.SetAcctReversalAttrs
138994          (p_event_id             => l_event_id
138995          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
138996          ,p_calculate_acctd_flag => l_calculate_acctd_flag
138997          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
138998    END IF;
138999 
139000    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
139001        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
139002 
139003 --
139004 AcctLineType_38 (
139005  p_application_id  => p_application_id
139006  ,p_event_id     => l_event_id
139007  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139008  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139009  ,p_actual_flag => l_actual_flag
139010  ,p_balance_type_code => l_balance_type_code
139011  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139012  
139013  , p_source_10 => l_array_source_10(Idx)
139014  , p_source_20 => l_array_source_20(Idx)
139015  , p_source_20_meaning => l_array_source_20_meaning(Idx)
139016  , p_source_28 => l_array_source_28(Idx)
139017  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139018  , p_source_39 => l_array_source_39(Idx)
139019  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139020  , p_source_40 => l_array_source_40(Idx)
139021  , p_source_41 => l_array_source_41(Idx)
139022  , p_source_42 => l_array_source_42(Idx)
139023  , p_source_43 => l_array_source_43(Idx)
139024  , p_source_44 => l_array_source_44(Idx)
139025  , p_source_45 => l_array_source_45(Idx)
139026  , p_source_46 => l_array_source_46(Idx)
139027  , p_source_47 => l_array_source_47(Idx)
139028  , p_source_48 => l_array_source_48(Idx)
139029  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139030  , p_source_50 => l_array_source_50(Idx)
139031  , p_source_51 => l_array_source_51(Idx)
139032  , p_source_52 => l_array_source_52(Idx)
139033  , p_source_53 => l_array_source_53(Idx)
139034  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139035  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139036  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139037  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139038  , p_source_57 => l_array_source_57(Idx)
139039  , p_source_58 => l_array_source_58(Idx)
139040  , p_source_59 => l_array_source_59(Idx)
139041  );
139042 If(l_balance_type_code = 'A') THEN
139043   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139044 END IF;
139045 
139046 --
139047 
139048 
139049 --
139050 AcctLineType_43 (
139051  p_application_id  => p_application_id
139052  ,p_event_id     => l_event_id
139053  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139054  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139055  ,p_actual_flag => l_actual_flag
139056  ,p_balance_type_code => l_balance_type_code
139057  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139058  
139059  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139060  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139061  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
139062  , p_source_7 => l_array_source_7(Idx)
139063  , p_source_7_meaning => l_array_source_7_meaning(Idx)
139064  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
139065  , p_source_9 => l_array_source_9(Idx)
139066  , p_source_10 => l_array_source_10(Idx)
139067  , p_source_17 => l_array_source_17(Idx)
139068  , p_source_20 => l_array_source_20(Idx)
139069  , p_source_20_meaning => l_array_source_20_meaning(Idx)
139070  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
139071  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
139072  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139073  , p_source_39 => l_array_source_39(Idx)
139074  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139075  , p_source_40 => l_array_source_40(Idx)
139076  , p_source_41 => l_array_source_41(Idx)
139077  , p_source_42 => l_array_source_42(Idx)
139078  , p_source_43 => l_array_source_43(Idx)
139079  , p_source_44 => l_array_source_44(Idx)
139080  , p_source_45 => l_array_source_45(Idx)
139081  , p_source_46 => l_array_source_46(Idx)
139082  , p_source_47 => l_array_source_47(Idx)
139083  , p_source_48 => l_array_source_48(Idx)
139084  , p_source_53 => l_array_source_53(Idx)
139085  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139086  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139087  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139088  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139089  , p_source_57 => l_array_source_57(Idx)
139090  , p_source_58 => l_array_source_58(Idx)
139091  , p_source_59 => l_array_source_59(Idx)
139092  );
139093 If(l_balance_type_code = 'A') THEN
139094   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139095 END IF;
139096 
139097 --
139098 
139099 
139100 --
139101 AcctLineType_47 (
139105  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139102  p_application_id  => p_application_id
139103  ,p_event_id     => l_event_id
139104  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139106  ,p_actual_flag => l_actual_flag
139107  ,p_balance_type_code => l_balance_type_code
139108  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139109  
139110  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139111  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139112  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
139113  , p_source_7 => l_array_source_7(Idx)
139114  , p_source_7_meaning => l_array_source_7_meaning(Idx)
139115  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
139116  , p_source_9 => l_array_source_9(Idx)
139117  , p_source_10 => l_array_source_10(Idx)
139118  , p_source_17 => l_array_source_17(Idx)
139119  , p_source_20 => l_array_source_20(Idx)
139120  , p_source_20_meaning => l_array_source_20_meaning(Idx)
139121  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
139122  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
139123  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139124  , p_source_39 => l_array_source_39(Idx)
139125  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139126  , p_source_40 => l_array_source_40(Idx)
139127  , p_source_41 => l_array_source_41(Idx)
139128  , p_source_42 => l_array_source_42(Idx)
139129  , p_source_43 => l_array_source_43(Idx)
139130  , p_source_44 => l_array_source_44(Idx)
139131  , p_source_45 => l_array_source_45(Idx)
139132  , p_source_46 => l_array_source_46(Idx)
139133  , p_source_47 => l_array_source_47(Idx)
139134  , p_source_48 => l_array_source_48(Idx)
139135  , p_source_53 => l_array_source_53(Idx)
139136  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139137  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139138  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139139  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139140  , p_source_57 => l_array_source_57(Idx)
139141  , p_source_58 => l_array_source_58(Idx)
139142  , p_source_59 => l_array_source_59(Idx)
139143  , p_source_100 => l_array_source_100(Idx)
139144  , p_source_100_meaning => l_array_source_100_meaning(Idx)
139145  );
139146 If(l_balance_type_code = 'A') THEN
139147   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139148 END IF;
139149 
139150 --
139151 
139152 
139153 --
139154 AcctLineType_51 (
139155  p_application_id  => p_application_id
139156  ,p_event_id     => l_event_id
139157  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139158  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139159  ,p_actual_flag => l_actual_flag
139160  ,p_balance_type_code => l_balance_type_code
139161  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139162  
139163  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139164  , p_source_39 => l_array_source_39(Idx)
139165  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139166  , p_source_40 => l_array_source_40(Idx)
139167  , p_source_41 => l_array_source_41(Idx)
139168  , p_source_42 => l_array_source_42(Idx)
139169  , p_source_47 => l_array_source_47(Idx)
139170  , p_source_48 => l_array_source_48(Idx)
139171  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139172  , p_source_53 => l_array_source_53(Idx)
139173  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139174  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139175  , p_source_57 => l_array_source_57(Idx)
139176  , p_source_58 => l_array_source_58(Idx)
139177  , p_source_59 => l_array_source_59(Idx)
139178  , p_source_62 => l_array_source_62(Idx)
139179  , p_source_63 => l_array_source_63(Idx)
139180  , p_source_64 => l_array_source_64(Idx)
139181  , p_source_65 => l_array_source_65(Idx)
139182  , p_source_100 => l_array_source_100(Idx)
139183  , p_source_100_meaning => l_array_source_100_meaning(Idx)
139184  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
139185  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
139186  , p_source_103 => l_array_source_103(Idx)
139187  , p_source_104 => l_array_source_104(Idx)
139188  , p_source_104_meaning => l_array_source_104_meaning(Idx)
139189  , p_source_105 => l_array_source_105(Idx)
139190  );
139191 If(l_balance_type_code = 'A') THEN
139192   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139193 END IF;
139194 
139195 --
139196 
139197 
139198 --
139199 AcctLineType_53 (
139200  p_application_id  => p_application_id
139201  ,p_event_id     => l_event_id
139202  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139203  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139204  ,p_actual_flag => l_actual_flag
139205  ,p_balance_type_code => l_balance_type_code
139206  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139207  
139208  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139209  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139210  , p_source_10 => l_array_source_10(Idx)
139211  , p_source_17 => l_array_source_17(Idx)
139212  , p_source_25 => g_array_event(l_event_id).array_value_num('source_25')
139213  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139214  , p_source_39 => l_array_source_39(Idx)
139215  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139216  , p_source_40 => l_array_source_40(Idx)
139217  , p_source_41 => l_array_source_41(Idx)
139218  , p_source_42 => l_array_source_42(Idx)
139219  , p_source_43 => l_array_source_43(Idx)
139220  , p_source_44 => l_array_source_44(Idx)
139221  , p_source_45 => l_array_source_45(Idx)
139222  , p_source_46 => l_array_source_46(Idx)
139223  , p_source_47 => l_array_source_47(Idx)
139224  , p_source_48 => l_array_source_48(Idx)
139225  , p_source_53 => l_array_source_53(Idx)
139229  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139226  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139227  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139228  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139230  , p_source_57 => l_array_source_57(Idx)
139231  , p_source_58 => l_array_source_58(Idx)
139232  , p_source_59 => l_array_source_59(Idx)
139233  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
139234  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139235  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139236  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139237  );
139238 If(l_balance_type_code = 'A') THEN
139239   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139240 END IF;
139241 
139242 --
139243 
139244 
139245 --
139246 AcctLineType_54 (
139247  p_application_id  => p_application_id
139248  ,p_event_id     => l_event_id
139249  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139250  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139251  ,p_actual_flag => l_actual_flag
139252  ,p_balance_type_code => l_balance_type_code
139253  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139254  
139255  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139256  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139257  , p_source_10 => l_array_source_10(Idx)
139258  , p_source_17 => l_array_source_17(Idx)
139259  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
139260  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139261  , p_source_39 => l_array_source_39(Idx)
139262  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139263  , p_source_40 => l_array_source_40(Idx)
139264  , p_source_41 => l_array_source_41(Idx)
139265  , p_source_42 => l_array_source_42(Idx)
139266  , p_source_43 => l_array_source_43(Idx)
139267  , p_source_44 => l_array_source_44(Idx)
139268  , p_source_45 => l_array_source_45(Idx)
139269  , p_source_46 => l_array_source_46(Idx)
139270  , p_source_47 => l_array_source_47(Idx)
139271  , p_source_48 => l_array_source_48(Idx)
139272  , p_source_53 => l_array_source_53(Idx)
139273  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139274  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139275  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139276  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139277  , p_source_57 => l_array_source_57(Idx)
139278  , p_source_58 => l_array_source_58(Idx)
139279  , p_source_59 => l_array_source_59(Idx)
139280  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
139281  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139282  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139283  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139284  );
139285 If(l_balance_type_code = 'A') THEN
139286   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139287 END IF;
139288 
139289 --
139290 
139291 
139292 --
139293 AcctLineType_55 (
139294  p_application_id  => p_application_id
139295  ,p_event_id     => l_event_id
139296  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139297  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139298  ,p_actual_flag => l_actual_flag
139299  ,p_balance_type_code => l_balance_type_code
139300  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139301  
139302  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
139303  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139304  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139305  , p_source_10 => l_array_source_10(Idx)
139306  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139307  , p_source_39 => l_array_source_39(Idx)
139308  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139309  , p_source_40 => l_array_source_40(Idx)
139310  , p_source_41 => l_array_source_41(Idx)
139311  , p_source_42 => l_array_source_42(Idx)
139312  , p_source_43 => l_array_source_43(Idx)
139313  , p_source_44 => l_array_source_44(Idx)
139314  , p_source_45 => l_array_source_45(Idx)
139315  , p_source_46 => l_array_source_46(Idx)
139316  , p_source_47 => l_array_source_47(Idx)
139317  , p_source_48 => l_array_source_48(Idx)
139318  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139319  , p_source_53 => l_array_source_53(Idx)
139320  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139321  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139322  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139323  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139324  , p_source_57 => l_array_source_57(Idx)
139325  , p_source_58 => l_array_source_58(Idx)
139326  , p_source_59 => l_array_source_59(Idx)
139327  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139328  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139329  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139330  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
139331  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
139332  );
139333 If(l_balance_type_code = 'A') THEN
139334   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139335 END IF;
139336 
139337 --
139338 
139339 
139340 --
139341 AcctLineType_56 (
139342  p_application_id  => p_application_id
139343  ,p_event_id     => l_event_id
139344  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139345  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139346  ,p_actual_flag => l_actual_flag
139347  ,p_balance_type_code => l_balance_type_code
139348  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139349  
139353  , p_source_10 => l_array_source_10(Idx)
139350  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
139351  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139352  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139354  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139355  , p_source_39 => l_array_source_39(Idx)
139356  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139357  , p_source_40 => l_array_source_40(Idx)
139358  , p_source_41 => l_array_source_41(Idx)
139359  , p_source_42 => l_array_source_42(Idx)
139360  , p_source_43 => l_array_source_43(Idx)
139361  , p_source_44 => l_array_source_44(Idx)
139362  , p_source_45 => l_array_source_45(Idx)
139363  , p_source_46 => l_array_source_46(Idx)
139364  , p_source_47 => l_array_source_47(Idx)
139365  , p_source_48 => l_array_source_48(Idx)
139366  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139367  , p_source_53 => l_array_source_53(Idx)
139368  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139369  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139370  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139371  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139372  , p_source_57 => l_array_source_57(Idx)
139373  , p_source_58 => l_array_source_58(Idx)
139374  , p_source_59 => l_array_source_59(Idx)
139375  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139376  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139377  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139378  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
139379  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
139380  );
139381 If(l_balance_type_code = 'A') THEN
139382   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139383 END IF;
139384 
139385 --
139386 
139387 
139388 --
139389 AcctLineType_57 (
139390  p_application_id  => p_application_id
139391  ,p_event_id     => l_event_id
139392  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139393  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139394  ,p_actual_flag => l_actual_flag
139395  ,p_balance_type_code => l_balance_type_code
139396  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139397  
139398  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
139399  , p_source_10 => l_array_source_10(Idx)
139400  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
139401  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
139402  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139403  , p_source_39 => l_array_source_39(Idx)
139404  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139405  , p_source_40 => l_array_source_40(Idx)
139406  , p_source_41 => l_array_source_41(Idx)
139407  , p_source_42 => l_array_source_42(Idx)
139408  , p_source_43 => l_array_source_43(Idx)
139409  , p_source_44 => l_array_source_44(Idx)
139410  , p_source_45 => l_array_source_45(Idx)
139411  , p_source_46 => l_array_source_46(Idx)
139412  , p_source_47 => l_array_source_47(Idx)
139413  , p_source_48 => l_array_source_48(Idx)
139414  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139415  , p_source_53 => l_array_source_53(Idx)
139416  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139417  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139418  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139419  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139420  , p_source_57 => l_array_source_57(Idx)
139421  , p_source_58 => l_array_source_58(Idx)
139422  , p_source_59 => l_array_source_59(Idx)
139423  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139424  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139425  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139426  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
139427  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
139428  );
139429 If(l_balance_type_code = 'A') THEN
139430   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139431 END IF;
139432 
139433 --
139434 
139435 
139436 --
139437 AcctLineType_58 (
139438  p_application_id  => p_application_id
139439  ,p_event_id     => l_event_id
139440  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139441  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139442  ,p_actual_flag => l_actual_flag
139443  ,p_balance_type_code => l_balance_type_code
139444  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139445  
139446  , p_source_9 => l_array_source_9(Idx)
139447  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139448  , p_source_39 => l_array_source_39(Idx)
139449  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139450  , p_source_40 => l_array_source_40(Idx)
139451  , p_source_41 => l_array_source_41(Idx)
139452  , p_source_42 => l_array_source_42(Idx)
139453  , p_source_43 => l_array_source_43(Idx)
139454  , p_source_44 => l_array_source_44(Idx)
139455  , p_source_45 => l_array_source_45(Idx)
139456  , p_source_46 => l_array_source_46(Idx)
139457  , p_source_47 => l_array_source_47(Idx)
139458  , p_source_48 => l_array_source_48(Idx)
139459  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139460  , p_source_53 => l_array_source_53(Idx)
139461  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139462  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139463  , p_source_57 => l_array_source_57(Idx)
139464  , p_source_58 => l_array_source_58(Idx)
139465  , p_source_59 => l_array_source_59(Idx)
139466  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139467  );
139468 If(l_balance_type_code = 'A') THEN
139472 --
139469   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139470 END IF;
139471 
139473 
139474 
139475 --
139476 AcctLineType_59 (
139477  p_application_id  => p_application_id
139478  ,p_event_id     => l_event_id
139479  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139480  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139481  ,p_actual_flag => l_actual_flag
139482  ,p_balance_type_code => l_balance_type_code
139483  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139484  
139485  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139486  , p_source_39 => l_array_source_39(Idx)
139487  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139488  , p_source_40 => l_array_source_40(Idx)
139489  , p_source_41 => l_array_source_41(Idx)
139490  , p_source_42 => l_array_source_42(Idx)
139491  , p_source_43 => l_array_source_43(Idx)
139492  , p_source_44 => l_array_source_44(Idx)
139493  , p_source_45 => l_array_source_45(Idx)
139494  , p_source_46 => l_array_source_46(Idx)
139495  , p_source_47 => l_array_source_47(Idx)
139496  , p_source_48 => l_array_source_48(Idx)
139497  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139498  , p_source_53 => l_array_source_53(Idx)
139499  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139500  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139501  , p_source_57 => l_array_source_57(Idx)
139502  , p_source_58 => l_array_source_58(Idx)
139503  , p_source_59 => l_array_source_59(Idx)
139504  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139505  , p_source_112 => l_array_source_112(Idx)
139506  );
139507 If(l_balance_type_code = 'A') THEN
139508   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139509 END IF;
139510 
139511 --
139512 
139513 
139514 --
139515 AcctLineType_78 (
139516  p_application_id  => p_application_id
139517  ,p_event_id     => l_event_id
139518  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139519  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139520  ,p_actual_flag => l_actual_flag
139521  ,p_balance_type_code => l_balance_type_code
139522  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139523  
139524  , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
139525  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
139526  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
139527  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139528  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139529  , p_source_9 => l_array_source_9(Idx)
139530  , p_source_17 => l_array_source_17(Idx)
139531  , p_source_20 => l_array_source_20(Idx)
139532  , p_source_20_meaning => l_array_source_20_meaning(Idx)
139533  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
139534  , p_source_28 => l_array_source_28(Idx)
139535  , p_source_29 => l_array_source_29(Idx)
139536  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139537  , p_source_39 => l_array_source_39(Idx)
139538  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139539  , p_source_40 => l_array_source_40(Idx)
139540  , p_source_41 => l_array_source_41(Idx)
139541  , p_source_42 => l_array_source_42(Idx)
139542  , p_source_43 => l_array_source_43(Idx)
139543  , p_source_44 => l_array_source_44(Idx)
139544  , p_source_45 => l_array_source_45(Idx)
139545  , p_source_46 => l_array_source_46(Idx)
139546  , p_source_47 => l_array_source_47(Idx)
139547  , p_source_48 => l_array_source_48(Idx)
139548  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139549  , p_source_53 => l_array_source_53(Idx)
139550  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139551  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139552  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139553  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139554  , p_source_57 => l_array_source_57(Idx)
139555  , p_source_58 => l_array_source_58(Idx)
139556  , p_source_59 => l_array_source_59(Idx)
139557  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
139558  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
139559  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
139560  );
139561 If(l_balance_type_code = 'A') THEN
139562   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139563 END IF;
139564 
139565 --
139566 
139567 
139568 --
139569 AcctLineType_81 (
139570  p_application_id  => p_application_id
139571  ,p_event_id     => l_event_id
139572  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139573  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139574  ,p_actual_flag => l_actual_flag
139575  ,p_balance_type_code => l_balance_type_code
139576  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139577  
139578  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139579  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139580  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
139581  , p_source_7 => l_array_source_7(Idx)
139582  , p_source_7_meaning => l_array_source_7_meaning(Idx)
139583  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
139584  , p_source_9 => l_array_source_9(Idx)
139585  , p_source_10 => l_array_source_10(Idx)
139586  , p_source_17 => l_array_source_17(Idx)
139587  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
139588  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
139589  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139590  , p_source_39 => l_array_source_39(Idx)
139591  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139592  , p_source_40 => l_array_source_40(Idx)
139593  , p_source_41 => l_array_source_41(Idx)
139594  , p_source_42 => l_array_source_42(Idx)
139595  , p_source_43 => l_array_source_43(Idx)
139599  , p_source_47 => l_array_source_47(Idx)
139596  , p_source_44 => l_array_source_44(Idx)
139597  , p_source_45 => l_array_source_45(Idx)
139598  , p_source_46 => l_array_source_46(Idx)
139600  , p_source_48 => l_array_source_48(Idx)
139601  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139602  , p_source_53 => l_array_source_53(Idx)
139603  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139604  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139605  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139606  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139607  , p_source_57 => l_array_source_57(Idx)
139608  , p_source_58 => l_array_source_58(Idx)
139609  , p_source_59 => l_array_source_59(Idx)
139610  , p_source_100 => l_array_source_100(Idx)
139611  , p_source_100_meaning => l_array_source_100_meaning(Idx)
139612  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139613  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139614  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139615  );
139616 If(l_balance_type_code = 'A') THEN
139617   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139618 END IF;
139619 
139620 --
139621 
139622 
139623 --
139624 AcctLineType_82 (
139625  p_application_id  => p_application_id
139626  ,p_event_id     => l_event_id
139627  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139628  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139629  ,p_actual_flag => l_actual_flag
139630  ,p_balance_type_code => l_balance_type_code
139631  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139632  
139633  , p_source_9 => l_array_source_9(Idx)
139634  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139635  , p_source_39 => l_array_source_39(Idx)
139636  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139637  , p_source_40 => l_array_source_40(Idx)
139638  , p_source_41 => l_array_source_41(Idx)
139639  , p_source_42 => l_array_source_42(Idx)
139640  , p_source_47 => l_array_source_47(Idx)
139641  , p_source_48 => l_array_source_48(Idx)
139642  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139643  , p_source_53 => l_array_source_53(Idx)
139644  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139645  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139646  , p_source_57 => l_array_source_57(Idx)
139647  , p_source_58 => l_array_source_58(Idx)
139648  , p_source_59 => l_array_source_59(Idx)
139649  , p_source_62 => l_array_source_62(Idx)
139650  , p_source_63 => l_array_source_63(Idx)
139651  , p_source_64 => l_array_source_64(Idx)
139652  , p_source_65 => l_array_source_65(Idx)
139653  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
139654  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
139655  , p_source_104 => l_array_source_104(Idx)
139656  , p_source_104_meaning => l_array_source_104_meaning(Idx)
139657  );
139658 If(l_balance_type_code = 'A') THEN
139659   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139660 END IF;
139661 
139662 --
139663 
139664 
139665 --
139666 AcctLineType_91 (
139667  p_application_id  => p_application_id
139668  ,p_event_id     => l_event_id
139669  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139670  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139671  ,p_actual_flag => l_actual_flag
139672  ,p_balance_type_code => l_balance_type_code
139673  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139674  
139675  , p_source_10 => l_array_source_10(Idx)
139676  , p_source_17 => l_array_source_17(Idx)
139677  , p_source_20 => l_array_source_20(Idx)
139678  , p_source_20_meaning => l_array_source_20_meaning(Idx)
139679  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139680  , p_source_39 => l_array_source_39(Idx)
139681  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139682  , p_source_40 => l_array_source_40(Idx)
139683  , p_source_41 => l_array_source_41(Idx)
139684  , p_source_42 => l_array_source_42(Idx)
139685  , p_source_43 => l_array_source_43(Idx)
139686  , p_source_44 => l_array_source_44(Idx)
139687  , p_source_45 => l_array_source_45(Idx)
139688  , p_source_46 => l_array_source_46(Idx)
139689  , p_source_47 => l_array_source_47(Idx)
139690  , p_source_48 => l_array_source_48(Idx)
139691  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139692  , p_source_53 => l_array_source_53(Idx)
139693  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139694  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139695  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139696  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139697  , p_source_57 => l_array_source_57(Idx)
139698  , p_source_58 => l_array_source_58(Idx)
139699  , p_source_59 => l_array_source_59(Idx)
139700  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139701  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139702  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139703  );
139704 If(l_balance_type_code = 'A') THEN
139705   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139706 END IF;
139707 
139708 --
139709 
139710 
139711 --
139712 AcctLineType_92 (
139713  p_application_id  => p_application_id
139714  ,p_event_id     => l_event_id
139715  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139716  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139717  ,p_actual_flag => l_actual_flag
139718  ,p_balance_type_code => l_balance_type_code
139719  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139720  
139721  , p_source_9 => l_array_source_9(Idx)
139722  , p_source_20 => l_array_source_20(Idx)
139723  , p_source_20_meaning => l_array_source_20_meaning(Idx)
139724  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139728  , p_source_41 => l_array_source_41(Idx)
139725  , p_source_39 => l_array_source_39(Idx)
139726  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139727  , p_source_40 => l_array_source_40(Idx)
139729  , p_source_42 => l_array_source_42(Idx)
139730  , p_source_47 => l_array_source_47(Idx)
139731  , p_source_48 => l_array_source_48(Idx)
139732  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139733  , p_source_53 => l_array_source_53(Idx)
139734  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139735  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139736  , p_source_57 => l_array_source_57(Idx)
139737  , p_source_58 => l_array_source_58(Idx)
139738  , p_source_59 => l_array_source_59(Idx)
139739  , p_source_62 => l_array_source_62(Idx)
139740  , p_source_63 => l_array_source_63(Idx)
139741  , p_source_64 => l_array_source_64(Idx)
139742  , p_source_65 => l_array_source_65(Idx)
139743  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
139744  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
139745  , p_source_104 => l_array_source_104(Idx)
139746  , p_source_104_meaning => l_array_source_104_meaning(Idx)
139747  );
139748 If(l_balance_type_code = 'A') THEN
139749   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139750 END IF;
139751 
139752 --
139753 
139754 
139755 --
139756 AcctLineType_102 (
139757  p_application_id  => p_application_id
139758  ,p_event_id     => l_event_id
139759  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139760  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139761  ,p_actual_flag => l_actual_flag
139762  ,p_balance_type_code => l_balance_type_code
139763  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139764  
139765  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139766  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139767  , p_source_17 => l_array_source_17(Idx)
139768  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
139769  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
139770  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
139771  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
139772  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139773  , p_source_39 => l_array_source_39(Idx)
139774  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139775  , p_source_40 => l_array_source_40(Idx)
139776  , p_source_41 => l_array_source_41(Idx)
139777  , p_source_42 => l_array_source_42(Idx)
139778  , p_source_43 => l_array_source_43(Idx)
139779  , p_source_44 => l_array_source_44(Idx)
139780  , p_source_45 => l_array_source_45(Idx)
139781  , p_source_46 => l_array_source_46(Idx)
139782  , p_source_47 => l_array_source_47(Idx)
139783  , p_source_48 => l_array_source_48(Idx)
139784  , p_source_53 => l_array_source_53(Idx)
139785  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139786  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139787  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139788  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139789  , p_source_57 => l_array_source_57(Idx)
139790  , p_source_58 => l_array_source_58(Idx)
139791  , p_source_59 => l_array_source_59(Idx)
139792  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139793  , p_source_127 => l_array_source_127(Idx)
139794  );
139795 If(l_balance_type_code = 'A') THEN
139796   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139797 END IF;
139798 
139799 --
139800 
139801 
139802 --
139803 AcctLineType_104 (
139804  p_application_id  => p_application_id
139805  ,p_event_id     => l_event_id
139806  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139807  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139808  ,p_actual_flag => l_actual_flag
139809  ,p_balance_type_code => l_balance_type_code
139810  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139811  
139812  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139813  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139814  , p_source_17 => l_array_source_17(Idx)
139815  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
139816  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
139817  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139818  , p_source_39 => l_array_source_39(Idx)
139819  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139820  , p_source_40 => l_array_source_40(Idx)
139821  , p_source_41 => l_array_source_41(Idx)
139822  , p_source_42 => l_array_source_42(Idx)
139823  , p_source_43 => l_array_source_43(Idx)
139824  , p_source_44 => l_array_source_44(Idx)
139825  , p_source_45 => l_array_source_45(Idx)
139826  , p_source_46 => l_array_source_46(Idx)
139827  , p_source_47 => l_array_source_47(Idx)
139828  , p_source_48 => l_array_source_48(Idx)
139829  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139830  , p_source_53 => l_array_source_53(Idx)
139831  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139832  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139833  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139834  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139835  , p_source_57 => l_array_source_57(Idx)
139836  , p_source_58 => l_array_source_58(Idx)
139837  , p_source_59 => l_array_source_59(Idx)
139838  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139839  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139840  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139841  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139842  , p_source_129 => l_array_source_129(Idx)
139843  , p_source_130 => l_array_source_130(Idx)
139844  );
139845 If(l_balance_type_code = 'A') THEN
139849 --
139846   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139847 END IF;
139848 
139850 
139851 
139852 --
139853 AcctLineType_105 (
139854  p_application_id  => p_application_id
139855  ,p_event_id     => l_event_id
139856  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139857  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139858  ,p_actual_flag => l_actual_flag
139859  ,p_balance_type_code => l_balance_type_code
139860  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139861  
139862  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
139863  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
139864  , p_source_17 => l_array_source_17(Idx)
139865  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
139866  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
139867  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139868  , p_source_39 => l_array_source_39(Idx)
139869  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139870  , p_source_40 => l_array_source_40(Idx)
139871  , p_source_41 => l_array_source_41(Idx)
139872  , p_source_42 => l_array_source_42(Idx)
139873  , p_source_43 => l_array_source_43(Idx)
139874  , p_source_44 => l_array_source_44(Idx)
139875  , p_source_45 => l_array_source_45(Idx)
139876  , p_source_46 => l_array_source_46(Idx)
139877  , p_source_47 => l_array_source_47(Idx)
139878  , p_source_48 => l_array_source_48(Idx)
139879  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139880  , p_source_53 => l_array_source_53(Idx)
139881  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139882  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139883  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139884  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139885  , p_source_57 => l_array_source_57(Idx)
139886  , p_source_58 => l_array_source_58(Idx)
139887  , p_source_59 => l_array_source_59(Idx)
139888  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139889  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139890  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139891  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
139892  , p_source_131 => l_array_source_131(Idx)
139893  , p_source_132 => l_array_source_132(Idx)
139894  );
139895 If(l_balance_type_code = 'A') THEN
139896   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139897 END IF;
139898 
139899 --
139900 
139901 
139902 --
139903 AcctLineType_107 (
139904  p_application_id  => p_application_id
139905  ,p_event_id     => l_event_id
139906  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139907  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139908  ,p_actual_flag => l_actual_flag
139909  ,p_balance_type_code => l_balance_type_code
139910  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139911  
139912  , p_source_10 => l_array_source_10(Idx)
139913  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
139914  , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
139915  , p_source_17 => l_array_source_17(Idx)
139916  , p_source_20 => l_array_source_20(Idx)
139917  , p_source_20_meaning => l_array_source_20_meaning(Idx)
139918  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139919  , p_source_39 => l_array_source_39(Idx)
139920  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139921  , p_source_40 => l_array_source_40(Idx)
139922  , p_source_41 => l_array_source_41(Idx)
139923  , p_source_42 => l_array_source_42(Idx)
139924  , p_source_43 => l_array_source_43(Idx)
139925  , p_source_44 => l_array_source_44(Idx)
139926  , p_source_45 => l_array_source_45(Idx)
139927  , p_source_46 => l_array_source_46(Idx)
139928  , p_source_47 => l_array_source_47(Idx)
139929  , p_source_48 => l_array_source_48(Idx)
139930  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139931  , p_source_53 => l_array_source_53(Idx)
139932  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139933  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139934  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139935  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139936  , p_source_57 => l_array_source_57(Idx)
139937  , p_source_58 => l_array_source_58(Idx)
139938  , p_source_59 => l_array_source_59(Idx)
139939  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
139940  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
139941  , p_source_101 => l_array_source_101(Idx)
139942  , p_source_101_meaning => l_array_source_101_meaning(Idx)
139943  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139944  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139945  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139946  );
139947 If(l_balance_type_code = 'A') THEN
139948   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139949 END IF;
139950 
139951 --
139952 
139953 
139954 --
139955 AcctLineType_109 (
139956  p_application_id  => p_application_id
139957  ,p_event_id     => l_event_id
139958  ,p_calculate_acctd_flag => l_calculate_acctd_flag
139959  ,p_calculate_g_l_flag => l_calculate_g_l_flag
139960  ,p_actual_flag => l_actual_flag
139961  ,p_balance_type_code => l_balance_type_code
139962  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
139963  
139964  , p_source_10 => l_array_source_10(Idx)
139965  , p_source_17 => l_array_source_17(Idx)
139966  , p_source_20 => l_array_source_20(Idx)
139967  , p_source_20_meaning => l_array_source_20_meaning(Idx)
139968  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
139969  , p_source_39 => l_array_source_39(Idx)
139970  , p_source_39_meaning => l_array_source_39_meaning(Idx)
139971  , p_source_40 => l_array_source_40(Idx)
139975  , p_source_44 => l_array_source_44(Idx)
139972  , p_source_41 => l_array_source_41(Idx)
139973  , p_source_42 => l_array_source_42(Idx)
139974  , p_source_43 => l_array_source_43(Idx)
139976  , p_source_45 => l_array_source_45(Idx)
139977  , p_source_46 => l_array_source_46(Idx)
139978  , p_source_47 => l_array_source_47(Idx)
139979  , p_source_48 => l_array_source_48(Idx)
139980  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
139981  , p_source_53 => l_array_source_53(Idx)
139982  , p_source_53_meaning => l_array_source_53_meaning(Idx)
139983  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
139984  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
139985  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
139986  , p_source_57 => l_array_source_57(Idx)
139987  , p_source_58 => l_array_source_58(Idx)
139988  , p_source_59 => l_array_source_59(Idx)
139989  , p_source_100 => l_array_source_100(Idx)
139990  , p_source_100_meaning => l_array_source_100_meaning(Idx)
139991  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
139992  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
139993  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
139994  );
139995 If(l_balance_type_code = 'A') THEN
139996   l_actual_gain_loss_ref := l_gain_or_loss_ref;
139997 END IF;
139998 
139999 --
140000 
140001 
140002 --
140003 AcctLineType_110 (
140004  p_application_id  => p_application_id
140005  ,p_event_id     => l_event_id
140006  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140007  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140008  ,p_actual_flag => l_actual_flag
140009  ,p_balance_type_code => l_balance_type_code
140010  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140011  
140012  , p_source_9 => l_array_source_9(Idx)
140013  , p_source_20 => l_array_source_20(Idx)
140014  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140015  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140016  , p_source_39 => l_array_source_39(Idx)
140017  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140018  , p_source_40 => l_array_source_40(Idx)
140019  , p_source_41 => l_array_source_41(Idx)
140020  , p_source_42 => l_array_source_42(Idx)
140021  , p_source_47 => l_array_source_47(Idx)
140022  , p_source_48 => l_array_source_48(Idx)
140023  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140024  , p_source_53 => l_array_source_53(Idx)
140025  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140026  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140027  , p_source_57 => l_array_source_57(Idx)
140028  , p_source_58 => l_array_source_58(Idx)
140029  , p_source_59 => l_array_source_59(Idx)
140030  , p_source_62 => l_array_source_62(Idx)
140031  , p_source_63 => l_array_source_63(Idx)
140032  , p_source_64 => l_array_source_64(Idx)
140033  , p_source_65 => l_array_source_65(Idx)
140034  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140035  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140036  , p_source_104 => l_array_source_104(Idx)
140037  , p_source_104_meaning => l_array_source_104_meaning(Idx)
140038  );
140039 If(l_balance_type_code = 'A') THEN
140040   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140041 END IF;
140042 
140043 --
140044 
140045 
140046 --
140047 AcctLineType_117 (
140048  p_application_id  => p_application_id
140049  ,p_event_id     => l_event_id
140050  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140051  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140052  ,p_actual_flag => l_actual_flag
140053  ,p_balance_type_code => l_balance_type_code
140054  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140055  
140056  , p_source_10 => l_array_source_10(Idx)
140057  , p_source_17 => l_array_source_17(Idx)
140058  , p_source_20 => l_array_source_20(Idx)
140059  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140060  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140061  , p_source_39 => l_array_source_39(Idx)
140062  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140063  , p_source_40 => l_array_source_40(Idx)
140064  , p_source_41 => l_array_source_41(Idx)
140065  , p_source_42 => l_array_source_42(Idx)
140066  , p_source_43 => l_array_source_43(Idx)
140067  , p_source_44 => l_array_source_44(Idx)
140068  , p_source_45 => l_array_source_45(Idx)
140069  , p_source_46 => l_array_source_46(Idx)
140070  , p_source_47 => l_array_source_47(Idx)
140071  , p_source_48 => l_array_source_48(Idx)
140072  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140073  , p_source_53 => l_array_source_53(Idx)
140074  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140075  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140076  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140077  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140078  , p_source_57 => l_array_source_57(Idx)
140079  , p_source_58 => l_array_source_58(Idx)
140080  , p_source_59 => l_array_source_59(Idx)
140081  , p_source_100 => l_array_source_100(Idx)
140082  , p_source_100_meaning => l_array_source_100_meaning(Idx)
140083  , p_source_101 => l_array_source_101(Idx)
140084  , p_source_101_meaning => l_array_source_101_meaning(Idx)
140085  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140086  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140087  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140088  );
140089 If(l_balance_type_code = 'A') THEN
140090   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140091 END IF;
140092 
140093 --
140094 
140095 
140096 --
140097 AcctLineType_118 (
140098  p_application_id  => p_application_id
140099  ,p_event_id     => l_event_id
140100  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140104  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140101  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140102  ,p_actual_flag => l_actual_flag
140103  ,p_balance_type_code => l_balance_type_code
140105  
140106  , p_source_9 => l_array_source_9(Idx)
140107  , p_source_20 => l_array_source_20(Idx)
140108  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140109  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140110  , p_source_39 => l_array_source_39(Idx)
140111  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140112  , p_source_40 => l_array_source_40(Idx)
140113  , p_source_41 => l_array_source_41(Idx)
140114  , p_source_42 => l_array_source_42(Idx)
140115  , p_source_47 => l_array_source_47(Idx)
140116  , p_source_48 => l_array_source_48(Idx)
140117  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140118  , p_source_53 => l_array_source_53(Idx)
140119  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140120  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140121  , p_source_57 => l_array_source_57(Idx)
140122  , p_source_58 => l_array_source_58(Idx)
140123  , p_source_59 => l_array_source_59(Idx)
140124  , p_source_62 => l_array_source_62(Idx)
140125  , p_source_63 => l_array_source_63(Idx)
140126  , p_source_64 => l_array_source_64(Idx)
140127  , p_source_65 => l_array_source_65(Idx)
140128  , p_source_101 => l_array_source_101(Idx)
140129  , p_source_101_meaning => l_array_source_101_meaning(Idx)
140130  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140131  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140132  , p_source_104 => l_array_source_104(Idx)
140133  , p_source_104_meaning => l_array_source_104_meaning(Idx)
140134  );
140135 If(l_balance_type_code = 'A') THEN
140136   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140137 END IF;
140138 
140139 --
140140 
140141 
140142 --
140143 AcctLineType_125 (
140144  p_application_id  => p_application_id
140145  ,p_event_id     => l_event_id
140146  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140147  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140148  ,p_actual_flag => l_actual_flag
140149  ,p_balance_type_code => l_balance_type_code
140150  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140151  
140152  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140153  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140154  , p_source_17 => l_array_source_17(Idx)
140155  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
140156  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
140157  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140158  , p_source_39 => l_array_source_39(Idx)
140159  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140160  , p_source_40 => l_array_source_40(Idx)
140161  , p_source_41 => l_array_source_41(Idx)
140162  , p_source_42 => l_array_source_42(Idx)
140163  , p_source_43 => l_array_source_43(Idx)
140164  , p_source_44 => l_array_source_44(Idx)
140165  , p_source_45 => l_array_source_45(Idx)
140166  , p_source_46 => l_array_source_46(Idx)
140167  , p_source_47 => l_array_source_47(Idx)
140168  , p_source_48 => l_array_source_48(Idx)
140169  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140170  , p_source_53 => l_array_source_53(Idx)
140171  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140172  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140173  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140174  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140175  , p_source_57 => l_array_source_57(Idx)
140176  , p_source_58 => l_array_source_58(Idx)
140177  , p_source_59 => l_array_source_59(Idx)
140178  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140179  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140180  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140181  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
140182  , p_source_129 => l_array_source_129(Idx)
140183  , p_source_130 => l_array_source_130(Idx)
140184  );
140185 If(l_balance_type_code = 'A') THEN
140186   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140187 END IF;
140188 
140189 --
140190 
140191 
140192 --
140193 AcctLineType_126 (
140194  p_application_id  => p_application_id
140195  ,p_event_id     => l_event_id
140196  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140197  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140198  ,p_actual_flag => l_actual_flag
140199  ,p_balance_type_code => l_balance_type_code
140200  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140201  
140202  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140203  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140204  , p_source_17 => l_array_source_17(Idx)
140205  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
140206  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
140207  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140208  , p_source_39 => l_array_source_39(Idx)
140209  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140210  , p_source_40 => l_array_source_40(Idx)
140211  , p_source_41 => l_array_source_41(Idx)
140212  , p_source_42 => l_array_source_42(Idx)
140213  , p_source_43 => l_array_source_43(Idx)
140214  , p_source_44 => l_array_source_44(Idx)
140215  , p_source_45 => l_array_source_45(Idx)
140216  , p_source_46 => l_array_source_46(Idx)
140217  , p_source_47 => l_array_source_47(Idx)
140218  , p_source_48 => l_array_source_48(Idx)
140219  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140220  , p_source_53 => l_array_source_53(Idx)
140221  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140222  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140226  , p_source_58 => l_array_source_58(Idx)
140223  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140224  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140225  , p_source_57 => l_array_source_57(Idx)
140227  , p_source_59 => l_array_source_59(Idx)
140228  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140229  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140230  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140231  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
140232  , p_source_131 => l_array_source_131(Idx)
140233  , p_source_132 => l_array_source_132(Idx)
140234  );
140235 If(l_balance_type_code = 'A') THEN
140236   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140237 END IF;
140238 
140239 --
140240 
140241 
140242 --
140243 AcctLineType_128 (
140244  p_application_id  => p_application_id
140245  ,p_event_id     => l_event_id
140246  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140247  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140248  ,p_actual_flag => l_actual_flag
140249  ,p_balance_type_code => l_balance_type_code
140250  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140251  
140252  , p_source_10 => l_array_source_10(Idx)
140253  , p_source_17 => l_array_source_17(Idx)
140254  , p_source_20 => l_array_source_20(Idx)
140255  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140256  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140257  , p_source_39 => l_array_source_39(Idx)
140258  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140259  , p_source_40 => l_array_source_40(Idx)
140260  , p_source_41 => l_array_source_41(Idx)
140261  , p_source_42 => l_array_source_42(Idx)
140262  , p_source_43 => l_array_source_43(Idx)
140263  , p_source_44 => l_array_source_44(Idx)
140264  , p_source_45 => l_array_source_45(Idx)
140265  , p_source_46 => l_array_source_46(Idx)
140266  , p_source_47 => l_array_source_47(Idx)
140267  , p_source_48 => l_array_source_48(Idx)
140268  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140269  , p_source_53 => l_array_source_53(Idx)
140270  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140271  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140272  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140273  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140274  , p_source_57 => l_array_source_57(Idx)
140275  , p_source_58 => l_array_source_58(Idx)
140276  , p_source_59 => l_array_source_59(Idx)
140277  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140278  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140279  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140280  );
140281 If(l_balance_type_code = 'A') THEN
140282   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140283 END IF;
140284 
140285 --
140286 
140287 
140288 --
140289 AcctLineType_129 (
140290  p_application_id  => p_application_id
140291  ,p_event_id     => l_event_id
140292  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140293  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140294  ,p_actual_flag => l_actual_flag
140295  ,p_balance_type_code => l_balance_type_code
140296  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140297  
140298  , p_source_9 => l_array_source_9(Idx)
140299  , p_source_20 => l_array_source_20(Idx)
140300  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140301  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140302  , p_source_39 => l_array_source_39(Idx)
140303  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140304  , p_source_40 => l_array_source_40(Idx)
140305  , p_source_41 => l_array_source_41(Idx)
140306  , p_source_42 => l_array_source_42(Idx)
140307  , p_source_47 => l_array_source_47(Idx)
140308  , p_source_48 => l_array_source_48(Idx)
140309  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140310  , p_source_53 => l_array_source_53(Idx)
140311  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140312  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140313  , p_source_57 => l_array_source_57(Idx)
140314  , p_source_58 => l_array_source_58(Idx)
140315  , p_source_59 => l_array_source_59(Idx)
140316  , p_source_62 => l_array_source_62(Idx)
140317  , p_source_63 => l_array_source_63(Idx)
140318  , p_source_64 => l_array_source_64(Idx)
140319  , p_source_65 => l_array_source_65(Idx)
140320  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140321  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140322  , p_source_104 => l_array_source_104(Idx)
140323  , p_source_104_meaning => l_array_source_104_meaning(Idx)
140324  );
140325 If(l_balance_type_code = 'A') THEN
140326   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140327 END IF;
140328 
140329 --
140330 
140331 
140332 --
140333 AcctLineType_136 (
140334  p_application_id  => p_application_id
140335  ,p_event_id     => l_event_id
140336  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140337  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140338  ,p_actual_flag => l_actual_flag
140339  ,p_balance_type_code => l_balance_type_code
140340  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140341  
140342  , p_source_10 => l_array_source_10(Idx)
140343  , p_source_17 => l_array_source_17(Idx)
140344  , p_source_20 => l_array_source_20(Idx)
140345  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140346  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140347  , p_source_39 => l_array_source_39(Idx)
140348  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140349  , p_source_40 => l_array_source_40(Idx)
140350  , p_source_41 => l_array_source_41(Idx)
140351  , p_source_42 => l_array_source_42(Idx)
140352  , p_source_43 => l_array_source_43(Idx)
140356  , p_source_47 => l_array_source_47(Idx)
140353  , p_source_44 => l_array_source_44(Idx)
140354  , p_source_45 => l_array_source_45(Idx)
140355  , p_source_46 => l_array_source_46(Idx)
140357  , p_source_48 => l_array_source_48(Idx)
140358  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140359  , p_source_50 => l_array_source_50(Idx)
140360  , p_source_51 => l_array_source_51(Idx)
140361  , p_source_52 => l_array_source_52(Idx)
140362  , p_source_53 => l_array_source_53(Idx)
140363  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140364  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140365  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140366  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140367  , p_source_57 => l_array_source_57(Idx)
140368  , p_source_58 => l_array_source_58(Idx)
140369  , p_source_59 => l_array_source_59(Idx)
140370  , p_source_100 => l_array_source_100(Idx)
140371  , p_source_100_meaning => l_array_source_100_meaning(Idx)
140372  );
140373 If(l_balance_type_code = 'A') THEN
140374   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140375 END IF;
140376 
140377 --
140378 
140379 
140380 --
140381 AcctLineType_139 (
140382  p_application_id  => p_application_id
140383  ,p_event_id     => l_event_id
140384  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140385  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140386  ,p_actual_flag => l_actual_flag
140387  ,p_balance_type_code => l_balance_type_code
140388  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140389  
140390  , p_source_10 => l_array_source_10(Idx)
140391  , p_source_17 => l_array_source_17(Idx)
140392  , p_source_20 => l_array_source_20(Idx)
140393  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140394  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140395  , p_source_39 => l_array_source_39(Idx)
140396  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140397  , p_source_40 => l_array_source_40(Idx)
140398  , p_source_41 => l_array_source_41(Idx)
140399  , p_source_42 => l_array_source_42(Idx)
140400  , p_source_43 => l_array_source_43(Idx)
140401  , p_source_44 => l_array_source_44(Idx)
140402  , p_source_45 => l_array_source_45(Idx)
140403  , p_source_46 => l_array_source_46(Idx)
140404  , p_source_47 => l_array_source_47(Idx)
140405  , p_source_48 => l_array_source_48(Idx)
140406  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140407  , p_source_53 => l_array_source_53(Idx)
140408  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140409  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140410  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140411  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140412  , p_source_57 => l_array_source_57(Idx)
140413  , p_source_58 => l_array_source_58(Idx)
140414  , p_source_59 => l_array_source_59(Idx)
140415  , p_source_100 => l_array_source_100(Idx)
140416  , p_source_100_meaning => l_array_source_100_meaning(Idx)
140417  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140418  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140419  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140420  );
140421 If(l_balance_type_code = 'A') THEN
140422   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140423 END IF;
140424 
140425 --
140426 
140427 
140428 --
140429 AcctLineType_140 (
140430  p_application_id  => p_application_id
140431  ,p_event_id     => l_event_id
140432  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140433  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140434  ,p_actual_flag => l_actual_flag
140435  ,p_balance_type_code => l_balance_type_code
140436  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140437  
140438  , p_source_9 => l_array_source_9(Idx)
140439  , p_source_20 => l_array_source_20(Idx)
140440  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140441  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140442  , p_source_39 => l_array_source_39(Idx)
140443  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140444  , p_source_40 => l_array_source_40(Idx)
140445  , p_source_41 => l_array_source_41(Idx)
140446  , p_source_42 => l_array_source_42(Idx)
140447  , p_source_47 => l_array_source_47(Idx)
140448  , p_source_48 => l_array_source_48(Idx)
140449  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140450  , p_source_53 => l_array_source_53(Idx)
140451  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140452  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140453  , p_source_57 => l_array_source_57(Idx)
140454  , p_source_58 => l_array_source_58(Idx)
140455  , p_source_59 => l_array_source_59(Idx)
140456  , p_source_62 => l_array_source_62(Idx)
140457  , p_source_63 => l_array_source_63(Idx)
140458  , p_source_64 => l_array_source_64(Idx)
140459  , p_source_65 => l_array_source_65(Idx)
140460  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140461  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140462  , p_source_104 => l_array_source_104(Idx)
140463  , p_source_104_meaning => l_array_source_104_meaning(Idx)
140464  );
140465 If(l_balance_type_code = 'A') THEN
140466   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140467 END IF;
140468 
140469 --
140470 
140471 
140472 --
140473 AcctLineType_150 (
140474  p_application_id  => p_application_id
140475  ,p_event_id     => l_event_id
140476  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140477  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140478  ,p_actual_flag => l_actual_flag
140479  ,p_balance_type_code => l_balance_type_code
140480  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140481  
140482  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140486  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
140483  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140484  , p_source_9 => l_array_source_9(Idx)
140485  , p_source_17 => l_array_source_17(Idx)
140487  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140488  , p_source_39 => l_array_source_39(Idx)
140489  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140490  , p_source_40 => l_array_source_40(Idx)
140491  , p_source_41 => l_array_source_41(Idx)
140492  , p_source_42 => l_array_source_42(Idx)
140493  , p_source_43 => l_array_source_43(Idx)
140494  , p_source_44 => l_array_source_44(Idx)
140495  , p_source_45 => l_array_source_45(Idx)
140496  , p_source_46 => l_array_source_46(Idx)
140497  , p_source_47 => l_array_source_47(Idx)
140498  , p_source_48 => l_array_source_48(Idx)
140499  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140500  , p_source_53 => l_array_source_53(Idx)
140501  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140502  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140503  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140504  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140505  , p_source_57 => l_array_source_57(Idx)
140506  , p_source_58 => l_array_source_58(Idx)
140507  , p_source_59 => l_array_source_59(Idx)
140508  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
140509  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
140510  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
140511  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
140512  );
140513 If(l_balance_type_code = 'A') THEN
140514   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140515 END IF;
140516 
140517 --
140518 
140519 
140520 --
140521 AcctLineType_152 (
140522  p_application_id  => p_application_id
140523  ,p_event_id     => l_event_id
140524  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140525  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140526  ,p_actual_flag => l_actual_flag
140527  ,p_balance_type_code => l_balance_type_code
140528  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140529  
140530  , p_source_10 => l_array_source_10(Idx)
140531  , p_source_17 => l_array_source_17(Idx)
140532  , p_source_20 => l_array_source_20(Idx)
140533  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140534  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140535  , p_source_39 => l_array_source_39(Idx)
140536  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140537  , p_source_40 => l_array_source_40(Idx)
140538  , p_source_41 => l_array_source_41(Idx)
140539  , p_source_42 => l_array_source_42(Idx)
140540  , p_source_43 => l_array_source_43(Idx)
140541  , p_source_44 => l_array_source_44(Idx)
140542  , p_source_45 => l_array_source_45(Idx)
140543  , p_source_46 => l_array_source_46(Idx)
140544  , p_source_47 => l_array_source_47(Idx)
140545  , p_source_48 => l_array_source_48(Idx)
140546  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140547  , p_source_53 => l_array_source_53(Idx)
140548  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140549  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140550  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140551  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140552  , p_source_57 => l_array_source_57(Idx)
140553  , p_source_58 => l_array_source_58(Idx)
140554  , p_source_59 => l_array_source_59(Idx)
140555  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
140556  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
140557  , p_source_101 => l_array_source_101(Idx)
140558  , p_source_101_meaning => l_array_source_101_meaning(Idx)
140559  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140560  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140561  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140562  );
140563 If(l_balance_type_code = 'A') THEN
140564   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140565 END IF;
140566 
140567 --
140568 
140569 
140570 --
140571 AcctLineType_156 (
140572  p_application_id  => p_application_id
140573  ,p_event_id     => l_event_id
140574  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140575  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140576  ,p_actual_flag => l_actual_flag
140577  ,p_balance_type_code => l_balance_type_code
140578  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140579  
140580  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140581  , p_source_39 => l_array_source_39(Idx)
140582  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140583  , p_source_40 => l_array_source_40(Idx)
140584  , p_source_41 => l_array_source_41(Idx)
140585  , p_source_42 => l_array_source_42(Idx)
140586  , p_source_47 => l_array_source_47(Idx)
140587  , p_source_48 => l_array_source_48(Idx)
140588  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140589  , p_source_53 => l_array_source_53(Idx)
140590  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140591  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140592  , p_source_57 => l_array_source_57(Idx)
140593  , p_source_58 => l_array_source_58(Idx)
140594  , p_source_59 => l_array_source_59(Idx)
140595  , p_source_62 => l_array_source_62(Idx)
140596  , p_source_63 => l_array_source_63(Idx)
140597  , p_source_64 => l_array_source_64(Idx)
140598  , p_source_65 => l_array_source_65(Idx)
140599  , p_source_100 => l_array_source_100(Idx)
140600  , p_source_100_meaning => l_array_source_100_meaning(Idx)
140601  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140602  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140606  , p_source_143 => l_array_source_143(Idx)
140603  , p_source_104 => l_array_source_104(Idx)
140604  , p_source_104_meaning => l_array_source_104_meaning(Idx)
140605  , p_source_142 => l_array_source_142(Idx)
140607  );
140608 If(l_balance_type_code = 'A') THEN
140609   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140610 END IF;
140611 
140612 --
140613 
140614 
140615 --
140616 AcctLineType_161 (
140617  p_application_id  => p_application_id
140618  ,p_event_id     => l_event_id
140619  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140620  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140621  ,p_actual_flag => l_actual_flag
140622  ,p_balance_type_code => l_balance_type_code
140623  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140624  
140625  , p_source_10 => l_array_source_10(Idx)
140626  , p_source_17 => l_array_source_17(Idx)
140627  , p_source_20 => l_array_source_20(Idx)
140628  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140629  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140630  , p_source_39 => l_array_source_39(Idx)
140631  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140632  , p_source_40 => l_array_source_40(Idx)
140633  , p_source_41 => l_array_source_41(Idx)
140634  , p_source_42 => l_array_source_42(Idx)
140635  , p_source_43 => l_array_source_43(Idx)
140636  , p_source_44 => l_array_source_44(Idx)
140637  , p_source_45 => l_array_source_45(Idx)
140638  , p_source_46 => l_array_source_46(Idx)
140639  , p_source_47 => l_array_source_47(Idx)
140640  , p_source_48 => l_array_source_48(Idx)
140641  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140642  , p_source_53 => l_array_source_53(Idx)
140643  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140644  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140645  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140646  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140647  , p_source_57 => l_array_source_57(Idx)
140648  , p_source_58 => l_array_source_58(Idx)
140649  , p_source_59 => l_array_source_59(Idx)
140650  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140651  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140652  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140653  );
140654 If(l_balance_type_code = 'A') THEN
140655   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140656 END IF;
140657 
140658 --
140659 
140660 
140661 --
140662 AcctLineType_164 (
140663  p_application_id  => p_application_id
140664  ,p_event_id     => l_event_id
140665  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140666  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140667  ,p_actual_flag => l_actual_flag
140668  ,p_balance_type_code => l_balance_type_code
140669  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140670  
140671  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140672  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140673  , p_source_10 => l_array_source_10(Idx)
140674  , p_source_17 => l_array_source_17(Idx)
140675  , p_source_20 => l_array_source_20(Idx)
140676  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140677  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
140678  , p_source_23 => l_array_source_23(Idx)
140679  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140680  , p_source_40 => l_array_source_40(Idx)
140681  , p_source_41 => l_array_source_41(Idx)
140682  , p_source_42 => l_array_source_42(Idx)
140683  , p_source_43 => l_array_source_43(Idx)
140684  , p_source_44 => l_array_source_44(Idx)
140685  , p_source_45 => l_array_source_45(Idx)
140686  , p_source_46 => l_array_source_46(Idx)
140687  , p_source_47 => l_array_source_47(Idx)
140688  , p_source_48 => l_array_source_48(Idx)
140689  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140690  , p_source_53 => l_array_source_53(Idx)
140691  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140692  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140693  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140694  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140695  , p_source_57 => l_array_source_57(Idx)
140696  , p_source_58 => l_array_source_58(Idx)
140697  , p_source_59 => l_array_source_59(Idx)
140698  , p_source_101 => l_array_source_101(Idx)
140699  , p_source_101_meaning => l_array_source_101_meaning(Idx)
140700  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140701  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140702  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140703  );
140704 If(l_balance_type_code = 'A') THEN
140705   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140706 END IF;
140707 
140708 --
140709 
140710 
140711 --
140712 AcctLineType_170 (
140713  p_application_id  => p_application_id
140714  ,p_event_id     => l_event_id
140715  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140716  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140717  ,p_actual_flag => l_actual_flag
140718  ,p_balance_type_code => l_balance_type_code
140719  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140720  
140721  , p_source_10 => l_array_source_10(Idx)
140722  , p_source_20 => l_array_source_20(Idx)
140723  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140724  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140725  , p_source_40 => l_array_source_40(Idx)
140726  , p_source_41 => l_array_source_41(Idx)
140727  , p_source_42 => l_array_source_42(Idx)
140728  , p_source_43 => l_array_source_43(Idx)
140729  , p_source_44 => l_array_source_44(Idx)
140730  , p_source_47 => l_array_source_47(Idx)
140731  , p_source_48 => l_array_source_48(Idx)
140732  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140736  , p_source_57 => l_array_source_57(Idx)
140733  , p_source_53 => l_array_source_53(Idx)
140734  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140735  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140737  , p_source_58 => l_array_source_58(Idx)
140738  , p_source_59 => l_array_source_59(Idx)
140739  , p_source_101 => l_array_source_101(Idx)
140740  , p_source_101_meaning => l_array_source_101_meaning(Idx)
140741  , p_source_147 => l_array_source_147(Idx)
140742  , p_source_148 => l_array_source_148(Idx)
140743  );
140744 If(l_balance_type_code = 'A') THEN
140745   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140746 END IF;
140747 
140748 --
140749 
140750 
140751 --
140752 AcctLineType_172 (
140753  p_application_id  => p_application_id
140754  ,p_event_id     => l_event_id
140755  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140756  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140757  ,p_actual_flag => l_actual_flag
140758  ,p_balance_type_code => l_balance_type_code
140759  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140760  
140761  , p_source_20 => l_array_source_20(Idx)
140762  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140763  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140764  , p_source_39 => l_array_source_39(Idx)
140765  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140766  , p_source_40 => l_array_source_40(Idx)
140767  , p_source_41 => l_array_source_41(Idx)
140768  , p_source_42 => l_array_source_42(Idx)
140769  , p_source_47 => l_array_source_47(Idx)
140770  , p_source_48 => l_array_source_48(Idx)
140771  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140772  , p_source_53 => l_array_source_53(Idx)
140773  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140774  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140775  , p_source_57 => l_array_source_57(Idx)
140776  , p_source_58 => l_array_source_58(Idx)
140777  , p_source_59 => l_array_source_59(Idx)
140778  , p_source_62 => l_array_source_62(Idx)
140779  , p_source_63 => l_array_source_63(Idx)
140780  , p_source_64 => l_array_source_64(Idx)
140781  , p_source_65 => l_array_source_65(Idx)
140782  , p_source_100 => l_array_source_100(Idx)
140783  , p_source_100_meaning => l_array_source_100_meaning(Idx)
140784  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140785  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140786  , p_source_103 => l_array_source_103(Idx)
140787  , p_source_104 => l_array_source_104(Idx)
140788  , p_source_104_meaning => l_array_source_104_meaning(Idx)
140789  , p_source_105 => l_array_source_105(Idx)
140790  );
140791 If(l_balance_type_code = 'A') THEN
140792   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140793 END IF;
140794 
140795 --
140796 
140797 
140798 --
140799 AcctLineType_175 (
140800  p_application_id  => p_application_id
140801  ,p_event_id     => l_event_id
140802  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140803  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140804  ,p_actual_flag => l_actual_flag
140805  ,p_balance_type_code => l_balance_type_code
140806  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140807  
140808  , p_source_9 => l_array_source_9(Idx)
140809  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140810  , p_source_39 => l_array_source_39(Idx)
140811  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140812  , p_source_40 => l_array_source_40(Idx)
140813  , p_source_41 => l_array_source_41(Idx)
140814  , p_source_42 => l_array_source_42(Idx)
140815  , p_source_47 => l_array_source_47(Idx)
140816  , p_source_48 => l_array_source_48(Idx)
140817  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140818  , p_source_53 => l_array_source_53(Idx)
140819  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140820  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140821  , p_source_57 => l_array_source_57(Idx)
140822  , p_source_58 => l_array_source_58(Idx)
140823  , p_source_59 => l_array_source_59(Idx)
140824  , p_source_62 => l_array_source_62(Idx)
140825  , p_source_63 => l_array_source_63(Idx)
140826  , p_source_64 => l_array_source_64(Idx)
140827  , p_source_65 => l_array_source_65(Idx)
140828  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140829  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140830  , p_source_104 => l_array_source_104(Idx)
140831  , p_source_104_meaning => l_array_source_104_meaning(Idx)
140832  );
140833 If(l_balance_type_code = 'A') THEN
140834   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140835 END IF;
140836 
140837 --
140838 
140839 
140840 --
140841 AcctLineType_178 (
140842  p_application_id  => p_application_id
140843  ,p_event_id     => l_event_id
140844  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140845  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140846  ,p_actual_flag => l_actual_flag
140847  ,p_balance_type_code => l_balance_type_code
140848  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140849  
140850  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
140851  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
140852  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
140853  , p_source_7 => l_array_source_7(Idx)
140854  , p_source_7_meaning => l_array_source_7_meaning(Idx)
140855  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
140856  , p_source_9 => l_array_source_9(Idx)
140857  , p_source_10 => l_array_source_10(Idx)
140858  , p_source_17 => l_array_source_17(Idx)
140859  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
140860  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
140861  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140862  , p_source_39 => l_array_source_39(Idx)
140866  , p_source_42 => l_array_source_42(Idx)
140863  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140864  , p_source_40 => l_array_source_40(Idx)
140865  , p_source_41 => l_array_source_41(Idx)
140867  , p_source_43 => l_array_source_43(Idx)
140868  , p_source_44 => l_array_source_44(Idx)
140869  , p_source_45 => l_array_source_45(Idx)
140870  , p_source_46 => l_array_source_46(Idx)
140871  , p_source_47 => l_array_source_47(Idx)
140872  , p_source_48 => l_array_source_48(Idx)
140873  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140874  , p_source_53 => l_array_source_53(Idx)
140875  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140876  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140877  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140878  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140879  , p_source_57 => l_array_source_57(Idx)
140880  , p_source_58 => l_array_source_58(Idx)
140881  , p_source_59 => l_array_source_59(Idx)
140882  , p_source_100 => l_array_source_100(Idx)
140883  , p_source_100_meaning => l_array_source_100_meaning(Idx)
140884  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140885  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140886  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140887  );
140888 If(l_balance_type_code = 'A') THEN
140889   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140890 END IF;
140891 
140892 --
140893 
140894 
140895 --
140896 AcctLineType_181 (
140897  p_application_id  => p_application_id
140898  ,p_event_id     => l_event_id
140899  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140900  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140901  ,p_actual_flag => l_actual_flag
140902  ,p_balance_type_code => l_balance_type_code
140903  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140904  
140905  , p_source_10 => l_array_source_10(Idx)
140906  , p_source_17 => l_array_source_17(Idx)
140907  , p_source_20 => l_array_source_20(Idx)
140908  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140909  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140910  , p_source_39 => l_array_source_39(Idx)
140911  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140912  , p_source_40 => l_array_source_40(Idx)
140913  , p_source_41 => l_array_source_41(Idx)
140914  , p_source_42 => l_array_source_42(Idx)
140915  , p_source_43 => l_array_source_43(Idx)
140916  , p_source_44 => l_array_source_44(Idx)
140917  , p_source_45 => l_array_source_45(Idx)
140918  , p_source_46 => l_array_source_46(Idx)
140919  , p_source_47 => l_array_source_47(Idx)
140920  , p_source_48 => l_array_source_48(Idx)
140921  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140922  , p_source_53 => l_array_source_53(Idx)
140923  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140924  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
140925  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
140926  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140927  , p_source_57 => l_array_source_57(Idx)
140928  , p_source_58 => l_array_source_58(Idx)
140929  , p_source_59 => l_array_source_59(Idx)
140930  , p_source_100 => l_array_source_100(Idx)
140931  , p_source_100_meaning => l_array_source_100_meaning(Idx)
140932  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
140933  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
140934  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
140935  );
140936 If(l_balance_type_code = 'A') THEN
140937   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140938 END IF;
140939 
140940 --
140941 
140942 
140943 --
140944 AcctLineType_182 (
140945  p_application_id  => p_application_id
140946  ,p_event_id     => l_event_id
140947  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140948  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140949  ,p_actual_flag => l_actual_flag
140950  ,p_balance_type_code => l_balance_type_code
140951  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140952  
140953  , p_source_9 => l_array_source_9(Idx)
140954  , p_source_20 => l_array_source_20(Idx)
140955  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140956  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
140957  , p_source_39 => l_array_source_39(Idx)
140958  , p_source_39_meaning => l_array_source_39_meaning(Idx)
140959  , p_source_40 => l_array_source_40(Idx)
140960  , p_source_41 => l_array_source_41(Idx)
140961  , p_source_42 => l_array_source_42(Idx)
140962  , p_source_47 => l_array_source_47(Idx)
140963  , p_source_48 => l_array_source_48(Idx)
140964  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
140965  , p_source_53 => l_array_source_53(Idx)
140966  , p_source_53_meaning => l_array_source_53_meaning(Idx)
140967  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
140968  , p_source_57 => l_array_source_57(Idx)
140969  , p_source_58 => l_array_source_58(Idx)
140970  , p_source_59 => l_array_source_59(Idx)
140971  , p_source_62 => l_array_source_62(Idx)
140972  , p_source_63 => l_array_source_63(Idx)
140973  , p_source_64 => l_array_source_64(Idx)
140974  , p_source_65 => l_array_source_65(Idx)
140975  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
140976  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
140977  , p_source_104 => l_array_source_104(Idx)
140978  , p_source_104_meaning => l_array_source_104_meaning(Idx)
140979  );
140980 If(l_balance_type_code = 'A') THEN
140981   l_actual_gain_loss_ref := l_gain_or_loss_ref;
140982 END IF;
140983 
140984 --
140985 
140986 
140987 --
140988 AcctLineType_187 (
140989  p_application_id  => p_application_id
140990  ,p_event_id     => l_event_id
140991  ,p_calculate_acctd_flag => l_calculate_acctd_flag
140995  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
140992  ,p_calculate_g_l_flag => l_calculate_g_l_flag
140993  ,p_actual_flag => l_actual_flag
140994  ,p_balance_type_code => l_balance_type_code
140996  
140997  , p_source_20 => l_array_source_20(Idx)
140998  , p_source_20_meaning => l_array_source_20_meaning(Idx)
140999  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
141000  , p_source_39 => l_array_source_39(Idx)
141001  , p_source_39_meaning => l_array_source_39_meaning(Idx)
141002  , p_source_40 => l_array_source_40(Idx)
141003  , p_source_41 => l_array_source_41(Idx)
141004  , p_source_42 => l_array_source_42(Idx)
141005  , p_source_47 => l_array_source_47(Idx)
141006  , p_source_48 => l_array_source_48(Idx)
141007  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
141008  , p_source_53 => l_array_source_53(Idx)
141009  , p_source_53_meaning => l_array_source_53_meaning(Idx)
141010  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
141011  , p_source_57 => l_array_source_57(Idx)
141012  , p_source_58 => l_array_source_58(Idx)
141013  , p_source_59 => l_array_source_59(Idx)
141014  , p_source_62 => l_array_source_62(Idx)
141015  , p_source_63 => l_array_source_63(Idx)
141016  , p_source_64 => l_array_source_64(Idx)
141017  , p_source_65 => l_array_source_65(Idx)
141018  , p_source_100 => l_array_source_100(Idx)
141019  , p_source_100_meaning => l_array_source_100_meaning(Idx)
141020  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
141021  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
141022  , p_source_104 => l_array_source_104(Idx)
141023  , p_source_104_meaning => l_array_source_104_meaning(Idx)
141024  , p_source_142 => l_array_source_142(Idx)
141025  , p_source_143 => l_array_source_143(Idx)
141026  );
141027 If(l_balance_type_code = 'A') THEN
141028   l_actual_gain_loss_ref := l_gain_or_loss_ref;
141029 END IF;
141030 
141031 --
141032 
141033 
141034 --
141035 AcctLineType_190 (
141036  p_application_id  => p_application_id
141037  ,p_event_id     => l_event_id
141038  ,p_calculate_acctd_flag => l_calculate_acctd_flag
141039  ,p_calculate_g_l_flag => l_calculate_g_l_flag
141040  ,p_actual_flag => l_actual_flag
141041  ,p_balance_type_code => l_balance_type_code
141042  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
141043  
141044  , p_source_10 => l_array_source_10(Idx)
141045  , p_source_17 => l_array_source_17(Idx)
141046  , p_source_20 => l_array_source_20(Idx)
141047  , p_source_20_meaning => l_array_source_20_meaning(Idx)
141048  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
141049  , p_source_39 => l_array_source_39(Idx)
141050  , p_source_39_meaning => l_array_source_39_meaning(Idx)
141051  , p_source_40 => l_array_source_40(Idx)
141052  , p_source_41 => l_array_source_41(Idx)
141053  , p_source_42 => l_array_source_42(Idx)
141054  , p_source_43 => l_array_source_43(Idx)
141055  , p_source_44 => l_array_source_44(Idx)
141056  , p_source_45 => l_array_source_45(Idx)
141057  , p_source_46 => l_array_source_46(Idx)
141058  , p_source_47 => l_array_source_47(Idx)
141059  , p_source_48 => l_array_source_48(Idx)
141060  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
141061  , p_source_53 => l_array_source_53(Idx)
141062  , p_source_53_meaning => l_array_source_53_meaning(Idx)
141063  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
141064  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
141065  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
141066  , p_source_57 => l_array_source_57(Idx)
141067  , p_source_58 => l_array_source_58(Idx)
141068  , p_source_59 => l_array_source_59(Idx)
141069  , p_source_100 => l_array_source_100(Idx)
141070  , p_source_100_meaning => l_array_source_100_meaning(Idx)
141071  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
141072  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
141073  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
141074  );
141075 If(l_balance_type_code = 'A') THEN
141076   l_actual_gain_loss_ref := l_gain_or_loss_ref;
141077 END IF;
141078 
141079 --
141080 
141081 
141082 --
141083 AcctLineType_191 (
141084  p_application_id  => p_application_id
141085  ,p_event_id     => l_event_id
141086  ,p_calculate_acctd_flag => l_calculate_acctd_flag
141087  ,p_calculate_g_l_flag => l_calculate_g_l_flag
141088  ,p_actual_flag => l_actual_flag
141089  ,p_balance_type_code => l_balance_type_code
141090  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
141091  
141092  , p_source_9 => l_array_source_9(Idx)
141093  , p_source_20 => l_array_source_20(Idx)
141094  , p_source_20_meaning => l_array_source_20_meaning(Idx)
141095  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
141096  , p_source_39 => l_array_source_39(Idx)
141097  , p_source_39_meaning => l_array_source_39_meaning(Idx)
141098  , p_source_40 => l_array_source_40(Idx)
141099  , p_source_41 => l_array_source_41(Idx)
141100  , p_source_42 => l_array_source_42(Idx)
141101  , p_source_47 => l_array_source_47(Idx)
141102  , p_source_48 => l_array_source_48(Idx)
141103  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
141104  , p_source_53 => l_array_source_53(Idx)
141105  , p_source_53_meaning => l_array_source_53_meaning(Idx)
141106  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
141107  , p_source_57 => l_array_source_57(Idx)
141108  , p_source_58 => l_array_source_58(Idx)
141109  , p_source_59 => l_array_source_59(Idx)
141110  , p_source_62 => l_array_source_62(Idx)
141111  , p_source_63 => l_array_source_63(Idx)
141112  , p_source_64 => l_array_source_64(Idx)
141113  , p_source_65 => l_array_source_65(Idx)
141114  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
141115  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
141116  , p_source_104 => l_array_source_104(Idx)
141120   l_actual_gain_loss_ref := l_gain_or_loss_ref;
141117  , p_source_104_meaning => l_array_source_104_meaning(Idx)
141118  );
141119 If(l_balance_type_code = 'A') THEN
141121 END IF;
141122 
141123 --
141124 
141125 
141126 --
141127 AcctLineType_202 (
141128  p_application_id  => p_application_id
141129  ,p_event_id     => l_event_id
141130  ,p_calculate_acctd_flag => l_calculate_acctd_flag
141131  ,p_calculate_g_l_flag => l_calculate_g_l_flag
141132  ,p_actual_flag => l_actual_flag
141133  ,p_balance_type_code => l_balance_type_code
141134  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
141135  
141136  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
141137  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
141138  , p_source_10 => l_array_source_10(Idx)
141139  , p_source_17 => l_array_source_17(Idx)
141140  , p_source_24 => l_array_source_24(Idx)
141141  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
141142  , p_source_39 => l_array_source_39(Idx)
141143  , p_source_39_meaning => l_array_source_39_meaning(Idx)
141144  , p_source_40 => l_array_source_40(Idx)
141145  , p_source_41 => l_array_source_41(Idx)
141146  , p_source_42 => l_array_source_42(Idx)
141147  , p_source_43 => l_array_source_43(Idx)
141148  , p_source_44 => l_array_source_44(Idx)
141149  , p_source_45 => l_array_source_45(Idx)
141150  , p_source_46 => l_array_source_46(Idx)
141151  , p_source_47 => l_array_source_47(Idx)
141152  , p_source_48 => l_array_source_48(Idx)
141153  , p_source_53 => l_array_source_53(Idx)
141154  , p_source_53_meaning => l_array_source_53_meaning(Idx)
141155  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
141156  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
141157  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
141158  , p_source_57 => l_array_source_57(Idx)
141159  , p_source_58 => l_array_source_58(Idx)
141160  , p_source_59 => l_array_source_59(Idx)
141161  , p_source_106 => g_array_event(l_event_id).array_value_char('source_106')
141162  , p_source_107 => g_array_event(l_event_id).array_value_date('source_107')
141163  , p_source_108 => g_array_event(l_event_id).array_value_num('source_108')
141164  , p_source_109 => g_array_event(l_event_id).array_value_char('source_109')
141165  , p_source_151 => l_array_source_151(Idx)
141166  , p_source_151_meaning => l_array_source_151_meaning(Idx)
141167  );
141168 If(l_balance_type_code = 'A') THEN
141169   l_actual_gain_loss_ref := l_gain_or_loss_ref;
141170 END IF;
141171 
141172 --
141173 
141174       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
141175       -- or secondary ledger that has different currency with primary
141176       -- or alc that is calculated by sla
141177       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
141178             (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'))
141179 
141180 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
141181 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
141182           AND (l_actual_flag = 'A')) THEN
141183         XLA_AE_LINES_PKG.CreateGainOrLossLines(
141184           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
141185          ,p_application_id   => p_application_id
141186          ,p_amb_context_code => 'DEFAULT'
141187          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
141188          ,p_event_class_code => C_EVENT_CLASS_CODE
141189          ,p_event_type_code  => C_EVENT_TYPE_CODE
141190          
141191          ,p_gain_ccid        => -1
141192          ,p_loss_ccid        => -1
141193 
141194          ,p_actual_flag      => l_actual_flag
141195          ,p_enc_flag         => null
141196          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
141197          ,p_enc_g_l_ref      => null
141198          );
141199       END IF;
141200    END IF;
141201 END IF;
141202 
141203    ELSE
141204       --
141205       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
141206       --
141207       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141208          trace
141209             (p_msg      => 'Trancaction revesal option is Y'
141210             ,p_level    => C_LEVEL_STATEMENT
141211             ,p_module   => l_log_module);
141212       END IF;
141213    END IF;
141214 
141215 END LOOP;
141216 l_result := XLA_AE_LINES_PKG.InsertLines ;
141217 end loop;
141218 close line_cur;
141219 
141220 
141221 --
141222 -- insert headers into xla_ae_headers_gt table
141223 --
141224 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
141225 
141226 -- insert into errors table here.
141227 
141228 END LOOP;
141229 
141230 --
141231 -- 4865292
141232 --
141233 -- Compare g_hdr_extract_count with event count in
141234 -- CreateHeadersAndLines.
141235 --
141236 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
141237 
141238 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141239    trace (p_msg     => '# rows extracted from header extract objects '
141240                     || ' (running total): '
141241                     || g_hdr_extract_count
141242          ,p_level   => C_LEVEL_STATEMENT
141243          ,p_module  => l_log_module);
141244 END IF;
141245 
141246 CLOSE header_cur;
141247 --
141248 
141249 --
141250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141251    trace
141252       (p_msg      => 'END of EventClass_214'
141253       ,p_level    => C_LEVEL_PROCEDURE
141254       ,p_module   => l_log_module);
141255 END IF;
141256 --
141257 RETURN l_result;
141258 EXCEPTION
141259 WHEN xla_exceptions_pkg.application_exception THEN
141260    
141264 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
141261 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
141262 
141263    
141265 
141266    RAISE;
141267 
141268 WHEN NO_DATA_FOUND THEN
141269 
141270 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
141271 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
141272 
141273 FOR header_record IN header_cur
141274 LOOP
141275     l_array_header_events(header_record.event_id) := header_record.event_id;
141276 END LOOP;
141277 
141278 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
141279 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
141280 
141281 fnd_file.put_line(fnd_file.LOG, '                    ');
141282 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
141283 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
141284 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
141285 
141286 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
141287 LOOP
141288 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
141289 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
141290         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
141291 	END IF;
141292 END LOOP;
141293 
141294 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
141295 fnd_file.put_line(fnd_file.LOG, '                    ');
141296 
141297 
141298 xla_exceptions_pkg.raise_message
141299       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_214');
141300 
141301 
141302 WHEN OTHERS THEN
141303    xla_exceptions_pkg.raise_message
141304       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_214');
141305 END EventClass_214;
141306 --
141307 
141308 ---------------------------------------
141309 --
141310 -- PRIVATE PROCEDURE
141311 --         insert_sources_215
141312 --
141313 ----------------------------------------
141314 --
141315 PROCEDURE insert_sources_215(
141316                                 p_target_ledger_id       IN NUMBER
141317                               , p_language               IN VARCHAR2
141318                               , p_sla_ledger_id          IN NUMBER
141319                               , p_pad_start_date         IN DATE
141320                               , p_pad_end_date           IN DATE
141321                          )
141322 IS
141323 
141324 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
141325 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'REFUNDS';
141326 p_apps_owner                   VARCHAR2(30);
141327 l_log_module                   VARCHAR2(240);
141328 BEGIN
141329 IF g_log_enabled THEN
141330       l_log_module := C_DEFAULT_MODULE||'.insert_sources_215';
141331 END IF;
141332 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141333 
141334       trace
141335          (p_msg      => 'BEGIN of insert_sources_215'
141336          ,p_level    => C_LEVEL_PROCEDURE
141337          ,p_module   => l_log_module);
141338 
141339 END IF;
141340 
141341 -- select APPS owner
141342 SELECT oracle_username
141343   INTO p_apps_owner
141344   FROM fnd_oracle_userid
141345  WHERE read_only_flag = 'U'
141346 ;
141347 
141348 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141349       trace
141350          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
141351                         ' - p_language = '||p_language||
141352                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
141353                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
141354                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
141355                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
141356          ,p_level    => C_LEVEL_STATEMENT
141357          ,p_module   => l_log_module);
141358 END IF;
141359 
141360 
141361 --
141362 INSERT INTO xla_diag_sources --hdr2
141363 (
141364         event_id
141365       , ledger_id
141366       , sla_ledger_id
141367       , description_language
141368       , object_name
141369       , object_type_code
141370       , line_number
141371       , source_application_id
141372       , source_type_code
141373       , source_code
141374       , source_value
141375       , source_meaning
141376       , created_by
141377       , creation_date
141378       , last_update_date
141379       , last_updated_by
141380       , last_update_login
141381       , program_update_date
141382       , program_application_id
141383       , program_id
141384       , request_id
141385 )
141386 SELECT
141387         event_id
141388       , p_target_ledger_id
141389       , p_sla_ledger_id
141390       , p_language
141391       , object_name
141392       , object_type_code
141393       , line_number
141394       , source_application_id
141395       , source_type_code
141396       , source_code
141397       , SUBSTR(source_value ,1,1996)
141398       , SUBSTR(source_meaning ,1,200)
141399       , xla_environment_pkg.g_Usr_Id
141400       , TRUNC(SYSDATE)
141401       , TRUNC(SYSDATE)
141402       , xla_environment_pkg.g_Usr_Id
141403       , xla_environment_pkg.g_Login_Id
141404       , TRUNC(SYSDATE)
141405       , xla_environment_pkg.g_Prog_Appl_Id
141406       , xla_environment_pkg.g_Prog_Id
141407       , xla_environment_pkg.g_Req_Id
141408   FROM (
141409        SELECT xet.event_id                  event_id
141410             , 0                          line_number
141411             , CASE r
141412                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141413                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
141417                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
141414                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
141415                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
141416                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
141418                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141419                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
141420                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
141421                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
141422                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141423                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141424                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141425                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141426                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141427                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
141428                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141429                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141430                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141431                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141432                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141433                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141434                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141435                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141436                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
141437                 
141438                ELSE null
141439               END                           object_name
141440             , CASE r
141441                 WHEN 1 THEN 'HEADER' 
141442                 WHEN 2 THEN 'HEADER' 
141443                 WHEN 3 THEN 'HEADER' 
141444                 WHEN 4 THEN 'HEADER' 
141445                 WHEN 5 THEN 'HEADER' 
141446                 WHEN 6 THEN 'HEADER' 
141447                 WHEN 7 THEN 'HEADER' 
141448                 WHEN 8 THEN 'HEADER' 
141449                 WHEN 9 THEN 'HEADER' 
141450                 WHEN 10 THEN 'HEADER' 
141451                 WHEN 11 THEN 'HEADER' 
141452                 WHEN 12 THEN 'HEADER' 
141453                 WHEN 13 THEN 'HEADER' 
141454                 WHEN 14 THEN 'HEADER' 
141455                 WHEN 15 THEN 'HEADER' 
141456                 WHEN 16 THEN 'HEADER' 
141457                 WHEN 17 THEN 'HEADER' 
141458                 WHEN 18 THEN 'HEADER' 
141459                 WHEN 19 THEN 'HEADER' 
141460                 WHEN 20 THEN 'HEADER' 
141461                 WHEN 21 THEN 'HEADER' 
141462                 WHEN 22 THEN 'HEADER' 
141463                 WHEN 23 THEN 'HEADER' 
141464                 WHEN 24 THEN 'HEADER' 
141465                 WHEN 25 THEN 'HEADER' 
141466                 
141467                 ELSE null
141468               END                           object_type_code
141469             , CASE r
141470                 WHEN 1 THEN '200' 
141471                 WHEN 2 THEN '200' 
141472                 WHEN 3 THEN '200' 
141473                 WHEN 4 THEN '200' 
141474                 WHEN 5 THEN '200' 
141475                 WHEN 6 THEN '200' 
141476                 WHEN 7 THEN '200' 
141477                 WHEN 8 THEN '200' 
141478                 WHEN 9 THEN '200' 
141479                 WHEN 10 THEN '200' 
141480                 WHEN 11 THEN '200' 
141481                 WHEN 12 THEN '200' 
141482                 WHEN 13 THEN '200' 
141483                 WHEN 14 THEN '200' 
141484                 WHEN 15 THEN '200' 
141485                 WHEN 16 THEN '200' 
141486                 WHEN 17 THEN '200' 
141487                 WHEN 18 THEN '200' 
141488                 WHEN 19 THEN '200' 
141489                 WHEN 20 THEN '200' 
141490                 WHEN 21 THEN '200' 
141491                 WHEN 22 THEN '200' 
141492                 WHEN 23 THEN '200' 
141493                 WHEN 24 THEN '200' 
141494                 WHEN 25 THEN '200' 
141495                 
141496                 ELSE null
141497               END                           source_application_id
141498             , 'S'             source_type_code
141499             , CASE r
141500                 WHEN 1 THEN 'CGAC_AP_ASSET_CCID' 
141501                 WHEN 2 THEN 'FSP_DISC_TAKEN_CCID' 
141502                 WHEN 3 THEN 'ASP_DISCOUNT_DIST_METHOD' 
141503                 WHEN 4 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
141504                 WHEN 5 THEN 'ASP_RATE_VAR_GAIN_CCID' 
141505                 WHEN 6 THEN 'ASP_RATE_VAR_LOSS_CCID' 
141506                 WHEN 7 THEN 'CGAC_CASH_CLEARING_CCID' 
141507                 WHEN 8 THEN 'ASP_DISC_TAKEN_CCID' 
141508                 WHEN 9 THEN 'ASP_AUTO_OFFSET_FLAG' 
141509                 WHEN 10 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
141510                 WHEN 11 THEN 'AC_CURRENCY_CODE' 
141511                 WHEN 12 THEN 'AC_VENDOR_ID' 
141512                 WHEN 13 THEN 'AC_VENDOR_SITE_ID' 
141513                 WHEN 14 THEN 'THIRD_PARTY_TYPE' 
141514                 WHEN 15 THEN 'PAYMENT_TYPE' 
141515                 WHEN 16 THEN 'FSP_PURCH_ENCUMBRANCE_FLAG' 
141516                 WHEN 17 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
141517                 WHEN 18 THEN 'AC_FUTURE_PAY_DUE_DATE' 
141518                 WHEN 19 THEN 'AC_EXCHANGE_DATE' 
141519                 WHEN 20 THEN 'AC_EXCHANGE_RATE' 
141520                 WHEN 21 THEN 'AC_EXCHANGE_RATE_TYPE' 
141521                 WHEN 22 THEN 'AC_DOC_CATEGORY_CODE' 
141522                 WHEN 23 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
141523                 WHEN 24 THEN 'AC_DOC_SEQUENCE_VALUE' 
141524                 WHEN 25 THEN 'TRANSAC_REVERSAL_FLAG' 
141525                 
141526                 ELSE null
141527               END                           source_code
141528             , CASE r
141529                 WHEN 1 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
141530                 WHEN 2 THEN TO_CHAR(h4.FSP_DISC_TAKEN_CCID)
141531                 WHEN 3 THEN TO_CHAR(h4.ASP_DISCOUNT_DIST_METHOD)
141532                 WHEN 4 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
141536                 WHEN 8 THEN TO_CHAR(h4.ASP_DISC_TAKEN_CCID)
141533                 WHEN 5 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
141534                 WHEN 6 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
141535                 WHEN 7 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
141537                 WHEN 9 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
141538                 WHEN 10 THEN TO_CHAR(h4.ASP_WHEN_TO_ACCOUNT_PMT)
141539                 WHEN 11 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
141540                 WHEN 12 THEN TO_CHAR(h2.AC_VENDOR_ID)
141541                 WHEN 13 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
141542                 WHEN 14 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
141543                 WHEN 15 THEN TO_CHAR(h2.PAYMENT_TYPE)
141544                 WHEN 16 THEN TO_CHAR(h4.FSP_PURCH_ENCUMBRANCE_FLAG)
141545                 WHEN 17 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
141546                 WHEN 18 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
141547                 WHEN 19 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
141548                 WHEN 20 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
141549                 WHEN 21 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
141550                 WHEN 22 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
141551                 WHEN 23 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
141552                 WHEN 24 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
141553                 WHEN 25 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
141554                 
141555                 ELSE null
141556               END                           source_value
141557             , CASE r
141558                 WHEN 3 THEN fvl3.meaning
141559                 WHEN 4 THEN fvl4.meaning
141560                 WHEN 9 THEN fvl30.meaning
141561                 WHEN 15 THEN fvl60.meaning
141562                 WHEN 16 THEN fvl102.meaning
141563                 WHEN 17 THEN fvl110.meaning
141564                 WHEN 25 THEN fvl175.meaning
141565                 
141566                 ELSE null
141567               END               source_meaning
141568          FROM xla_events_gt     xet  
141569       , AP_PAYMENT_EXTRACT_HEADER_V  h2
141570       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
141571   , fnd_lookup_values    fvl3
141572   , fnd_lookup_values    fvl4
141573   , fnd_lookup_values    fvl30
141574   , fnd_lookup_values    fvl60
141575   , fnd_lookup_values    fvl102
141576   , fnd_lookup_values    fvl110
141577   , fnd_lookup_values    fvl175
141578              ,(select rownum r from all_objects where rownum <= 25 and owner = p_apps_owner)
141579          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
141580            AND xet.event_class_code = C_EVENT_CLASS_CODE
141581               AND h2.event_id = xet.event_id
141582  AND h4.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
141583   AND fvl3.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
141584   AND fvl3.view_application_id(+) = 200
141585   AND fvl3.language(+)            = USERENV('LANG')
141586      AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
141587   AND fvl4.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
141588   AND fvl4.view_application_id(+) = 200
141589   AND fvl4.language(+)            = USERENV('LANG')
141590      AND fvl30.lookup_type(+)         = 'YES_NO'
141591   AND fvl30.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
141592   AND fvl30.view_application_id(+) = 0
141593   AND fvl30.language(+)            = USERENV('LANG')
141594      AND fvl60.lookup_type(+)         = 'PAYMENT TYPE'
141595   AND fvl60.lookup_code(+)         = h2.PAYMENT_TYPE
141596   AND fvl60.view_application_id(+) = 200
141597   AND fvl60.language(+)            = USERENV('LANG')
141598      AND fvl102.lookup_type(+)         = 'YES_NO'
141599   AND fvl102.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
141600   AND fvl102.view_application_id(+) = 0
141601   AND fvl102.language(+)            = USERENV('LANG')
141602      AND fvl110.lookup_type(+)         = 'YES_NO'
141603   AND fvl110.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
141604   AND fvl110.view_application_id(+) = 0
141605   AND fvl110.language(+)            = USERENV('LANG')
141606      AND fvl175.lookup_type(+)         = 'YES_NO'
141607   AND fvl175.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
141608   AND fvl175.view_application_id(+) = 0
141609   AND fvl175.language(+)            = USERENV('LANG')
141610   
141611 )
141612 ;
141613 --
141614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141615 
141616       trace
141617          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
141618          ,p_level    => C_LEVEL_STATEMENT
141619          ,p_module   => l_log_module);
141620 
141621 END IF;
141622 --
141623 
141624 
141625 
141626 --
141627 INSERT INTO xla_diag_sources  --line2
141628 (
141629         event_id
141630       , ledger_id
141631       , sla_ledger_id
141632       , description_language
141633       , object_name
141634       , object_type_code
141635       , line_number
141636       , source_application_id
141637       , source_type_code
141638       , source_code
141639       , source_value
141640       , source_meaning
141641       , created_by
141642       , creation_date
141643       , last_update_date
141644       , last_updated_by
141645       , last_update_login
141646       , program_update_date
141647       , program_application_id
141648       , program_id
141649       , request_id
141650 )
141651 SELECT  event_id
141652       , p_target_ledger_id
141653       , p_sla_ledger_id
141654       , p_language
141655       , object_name
141656       , object_type_code
141657       , line_number
141658       , source_application_id
141659       , source_type_code
141660       , source_code
141661       , SUBSTR(source_value,1,1996)
141662       , SUBSTR(source_meaning ,1,200)
141663       , xla_environment_pkg.g_Usr_Id
141664       , TRUNC(SYSDATE)
141665       , TRUNC(SYSDATE)
141666       , xla_environment_pkg.g_Usr_Id
141670       , xla_environment_pkg.g_Prog_Id
141667       , xla_environment_pkg.g_Login_Id
141668       , TRUNC(SYSDATE)
141669       , xla_environment_pkg.g_Prog_Appl_Id
141671       , xla_environment_pkg.g_Req_Id
141672   FROM (
141673        SELECT xet.event_id                  event_id
141674             , l1.line_number                 line_number
141675             , CASE r
141676                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141677                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141678                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141679                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141680                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141681                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141682                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141683                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141684                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141685                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141686                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141687                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141688                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141689                 WHEN 14 THEN 'AP_PO_HEADERS_EXTRACT_V' 
141690                 WHEN 15 THEN 'AP_PO_HEADERS_EXTRACT_V' 
141691                 WHEN 16 THEN 'AP_PO_HEADERS_EXTRACT_V' 
141692                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141693                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141694                 WHEN 19 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
141695                 WHEN 20 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
141696                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141697                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141698                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141699                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141700                 WHEN 25 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
141701                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141702                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141703                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
141704                 
141705                ELSE null
141706               END                           object_name
141707             , CASE r
141708                 WHEN 1 THEN 'LINE' 
141709                 WHEN 2 THEN 'LINE' 
141710                 WHEN 3 THEN 'LINE' 
141711                 WHEN 4 THEN 'LINE' 
141712                 WHEN 5 THEN 'LINE' 
141713                 WHEN 6 THEN 'LINE' 
141714                 WHEN 7 THEN 'LINE' 
141715                 WHEN 8 THEN 'LINE' 
141716                 WHEN 9 THEN 'LINE' 
141717                 WHEN 10 THEN 'LINE' 
141718                 WHEN 11 THEN 'LINE' 
141719                 WHEN 12 THEN 'LINE' 
141720                 WHEN 13 THEN 'LINE' 
141721                 WHEN 14 THEN 'LINE' 
141722                 WHEN 15 THEN 'LINE' 
141723                 WHEN 16 THEN 'LINE' 
141724                 WHEN 17 THEN 'LINE' 
141725                 WHEN 18 THEN 'LINE' 
141726                 WHEN 19 THEN 'LINE' 
141727                 WHEN 20 THEN 'LINE' 
141728                 WHEN 21 THEN 'LINE' 
141729                 WHEN 22 THEN 'LINE' 
141730                 WHEN 23 THEN 'LINE' 
141731                 WHEN 24 THEN 'LINE' 
141732                 WHEN 25 THEN 'LINE' 
141733                 WHEN 26 THEN 'LINE' 
141734                 WHEN 27 THEN 'LINE' 
141735                 WHEN 28 THEN 'LINE' 
141736                 
141737                 ELSE null
141738               END                           object_type_code
141739             , CASE r
141740                 WHEN 1 THEN '200' 
141741                 WHEN 2 THEN '200' 
141742                 WHEN 3 THEN '200' 
141743                 WHEN 4 THEN '200' 
141744                 WHEN 5 THEN '200' 
141745                 WHEN 6 THEN '200' 
141746                 WHEN 7 THEN '200' 
141747                 WHEN 8 THEN '200' 
141748                 WHEN 9 THEN '200' 
141749                 WHEN 10 THEN '200' 
141750                 WHEN 11 THEN '200' 
141751                 WHEN 12 THEN '200' 
141752                 WHEN 13 THEN '200' 
141753                 WHEN 14 THEN '200' 
141754                 WHEN 15 THEN '200' 
141755                 WHEN 16 THEN '200' 
141756                 WHEN 17 THEN '200' 
141757                 WHEN 18 THEN '200' 
141758                 WHEN 19 THEN '200' 
141759                 WHEN 20 THEN '200' 
141760                 WHEN 21 THEN '200' 
141761                 WHEN 22 THEN '200' 
141762                 WHEN 23 THEN '200' 
141763                 WHEN 24 THEN '200' 
141764                 WHEN 25 THEN '200' 
141765                 WHEN 26 THEN '200' 
141766                 WHEN 27 THEN '200' 
141767                 WHEN 28 THEN '200' 
141768                 
141769                 ELSE null
141770               END                           source_application_id
141771             , 'S'             source_type_code
141772             , CASE r
141773                 WHEN 1 THEN 'RELATED_INV_DIST_DEST_TYPE' 
141774                 WHEN 2 THEN 'APHD_PAYMENT_BASE_AMT' 
141775                 WHEN 3 THEN 'APHD_CLEARING_BASE_AMT' 
141776                 WHEN 4 THEN 'AID_DIST_CCID' 
141777                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
141778                 WHEN 6 THEN 'POD_CCID' 
141779                 WHEN 7 THEN 'PO_VARIANCE_ACCOUNT' 
141780                 WHEN 8 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
141781                 WHEN 9 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
141782                 WHEN 10 THEN 'APHD_AMOUNT' 
141783                 WHEN 11 THEN 'BUS_FLOW_AP_APP_ID' 
141784                 WHEN 12 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
141785                 WHEN 13 THEN 'DISTRIBUTION_LINK_TYPE' 
141786                 WHEN 14 THEN 'POH_RATE_DATE' 
141787                 WHEN 15 THEN 'POH_RATE' 
141788                 WHEN 16 THEN 'POH_RATE_TYPE' 
141789                 WHEN 17 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
141793                 WHEN 21 THEN 'BUS_FLOW_INV_DIST_TYPE' 
141790                 WHEN 18 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
141791                 WHEN 19 THEN 'TAX_LINE_ID' 
141792                 WHEN 20 THEN 'SUMMARY_TAX_LINE_ID' 
141794                 WHEN 22 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
141795                 WHEN 23 THEN 'BUS_FLOW_INV_DIST_ID' 
141796                 WHEN 24 THEN 'BUS_FLOW_INV_ID' 
141797                 WHEN 25 THEN 'REC_NREC_TAX_DIST_ID' 
141798                 WHEN 26 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
141799                 WHEN 27 THEN 'AI_INVOICE_TYPE_PAID' 
141800                 WHEN 28 THEN 'AID_ENCUMBERED_FLAG' 
141801                 
141802                 ELSE null
141803               END                           source_code
141804             , CASE r
141805                 WHEN 1 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
141806                 WHEN 2 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
141807                 WHEN 3 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
141808                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
141809                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
141810                 WHEN 6 THEN TO_CHAR(l1.POD_CCID)
141811                 WHEN 7 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
141812                 WHEN 8 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
141813                 WHEN 9 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
141814                 WHEN 10 THEN TO_CHAR(l1.APHD_AMOUNT)
141815                 WHEN 11 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
141816                 WHEN 12 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
141817                 WHEN 13 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
141818                 WHEN 14 THEN TO_CHAR(l3.POH_RATE_DATE)
141819                 WHEN 15 THEN TO_CHAR(l3.POH_RATE)
141820                 WHEN 16 THEN TO_CHAR(l3.POH_RATE_TYPE)
141821                 WHEN 17 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
141822                 WHEN 18 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
141823                 WHEN 19 THEN TO_CHAR(l5.TAX_LINE_ID)
141824                 WHEN 20 THEN TO_CHAR(l5.SUMMARY_TAX_LINE_ID)
141825                 WHEN 21 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
141826                 WHEN 22 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
141827                 WHEN 23 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
141828                 WHEN 24 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
141829                 WHEN 25 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
141830                 WHEN 26 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
141831                 WHEN 27 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
141832                 WHEN 28 THEN TO_CHAR(l1.AID_ENCUMBERED_FLAG)
141833                 
141834                 ELSE null
141835               END                           source_value
141836             , CASE r
141837                 WHEN 1 THEN fvl7.meaning
141838                 WHEN 5 THEN fvl20.meaning
141839                 WHEN 8 THEN fvl39.meaning
141840                 WHEN 17 THEN fvl53.meaning
141841                 WHEN 26 THEN fvl100.meaning
141842                 WHEN 27 THEN fvl101.meaning
141843                 WHEN 28 THEN fvl104.meaning
141844                 
141845                 ELSE null
141846               END               source_meaning
141847          FROM  xla_events_gt     xet  
141848         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
141849         , AP_PO_HEADERS_EXTRACT_V  l3
141850         , ZX_AP_DEF_TAX_EXTRACT_V  l5
141851         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
141852   , fnd_lookup_values    fvl7
141853   , fnd_lookup_values    fvl20
141854   , fnd_lookup_values    fvl39
141855   , fnd_lookup_values    fvl53
141856   , fnd_lookup_values    fvl100
141857   , fnd_lookup_values    fvl101
141858   , fnd_lookup_values    fvl104
141859             , (select rownum r from all_objects where rownum <= 28 and owner = p_apps_owner)
141860         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
141861           AND xet.event_class_code = C_EVENT_CLASS_CODE
141862             AND l1.event_id          = xet.event_id
141863  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.aid_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl7.lookup_type(+)         = 'DESTINATION TYPE'
141864   AND fvl7.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
141865   AND fvl7.view_application_id(+) = 201
141866   AND fvl7.language(+)            = USERENV('LANG')
141867      AND fvl20.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
141868   AND fvl20.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
141869   AND fvl20.view_application_id(+) = 200
141870   AND fvl20.language(+)            = USERENV('LANG')
141871      AND fvl39.lookup_type(+)         = 'PAY_DIST_TYPES'
141872   AND fvl39.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
141873   AND fvl39.view_application_id(+) = 200
141874   AND fvl39.language(+)            = USERENV('LANG')
141875      AND fvl53.lookup_type(+)         = 'YES_NO'
141876   AND fvl53.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
141877   AND fvl53.view_application_id(+) = 0
141878   AND fvl53.language(+)            = USERENV('LANG')
141879      AND fvl100.lookup_type(+)         = 'YES_NO'
141880   AND fvl100.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
141881   AND fvl100.view_application_id(+) = 0
141882   AND fvl100.language(+)            = USERENV('LANG')
141883      AND fvl101.lookup_type(+)         = 'INVOICE TYPE'
141884   AND fvl101.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
141885   AND fvl101.view_application_id(+) = 200
141886   AND fvl101.language(+)            = USERENV('LANG')
141887      AND fvl104.lookup_type(+)         = 'YES_NO'
141888   AND fvl104.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
141889   AND fvl104.view_application_id(+) = 0
141890   AND fvl104.language(+)            = USERENV('LANG')
141891   
141892 )
141893 ;
141894 --
141895 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141896 
141897       trace
141898          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
141899          ,p_level    => C_LEVEL_STATEMENT
141900          ,p_module   => l_log_module);
141904 
141901 
141902 END IF;
141903 
141905 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141906       trace
141907          (p_msg      => 'END of insert_sources_215'
141908          ,p_level    => C_LEVEL_PROCEDURE
141909          ,p_module   => l_log_module);
141910 END IF;
141911 EXCEPTION
141912   WHEN xla_exceptions_pkg.application_exception THEN
141913       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
141914             trace
141915                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
141916                ,p_level    => C_LEVEL_EXCEPTION
141917                ,p_module   => l_log_module);
141918       END IF;
141919       RAISE;
141920   WHEN OTHERS THEN
141921       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
141922             trace
141923                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
141924                ,p_level    => C_LEVEL_EXCEPTION
141925                ,p_module   => l_log_module);
141926        END IF;
141927        xla_exceptions_pkg.raise_message
141928            (p_location => 'XLA_00200_AAD_S_000010_PKG.insert_sources_215');
141929 END insert_sources_215;
141930 --
141931 
141932 ---------------------------------------
141933 --
141934 -- PRIVATE FUNCTION
141935 --         EventClass_215
141936 --
141937 ----------------------------------------
141938 --
141939 FUNCTION EventClass_215
141940        (p_application_id         IN NUMBER
141941        ,p_base_ledger_id         IN NUMBER
141942        ,p_target_ledger_id       IN NUMBER
141943        ,p_language               IN VARCHAR2
141944        ,p_currency_code          IN VARCHAR2
141945        ,p_sla_ledger_id          IN NUMBER
141946        ,p_pad_start_date         IN DATE
141947        ,p_pad_end_date           IN DATE
141948        ,p_primary_ledger_id      IN NUMBER)
141949 RETURN BOOLEAN IS
141950 --
141951 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
141952 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'REFUNDS';
141953 
141954 l_calculate_acctd_flag   VARCHAR2(1) :='N';
141955 l_calculate_g_l_flag     VARCHAR2(1) :='N';
141956 --
141957 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141958 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141959 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
141960 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141961 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141962 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
141963 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
141964 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141965 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141966 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141967 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141968 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141969 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141970 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
141971 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141972 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141973 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141974 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
141975 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141976 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141977 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141978 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
141979 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
141980 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
141981 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
141982 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
141983 
141984 l_event_id                             NUMBER;
141985 l_previous_event_id                    NUMBER;
141986 l_first_event_id                       NUMBER;
141987 l_last_event_id                        NUMBER;
141988 
141989 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
141990 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
141991 --
141992 --
141993 l_result                    BOOLEAN := TRUE;
141994 l_rows                      NUMBER  := 1000;
141995 l_event_type_name           VARCHAR2(80) := 'All';
141996 l_event_class_name          VARCHAR2(80) := 'Refunds';
141997 l_description               VARCHAR2(4000);
141998 l_transaction_reversal      NUMBER;
141999 l_ae_header_id              NUMBER;
142000 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
142001 l_log_module                VARCHAR2(240);
142002 --
142003 l_acct_reversal_source      VARCHAR2(30);
142004 l_trx_reversal_source       VARCHAR2(30);
142005 
142006 l_continue_with_lines       BOOLEAN := TRUE;
142007 --
142008 l_acc_rev_gl_date_source    DATE;                      -- 4262811
142009 --
142010 type t_array_event_id is table of number index by binary_integer;
142011 
142012 l_rec_array_event                    t_rec_array_event;
142013 l_null_rec_array_event               t_rec_array_event;
142014 l_array_ae_header_id                 xla_number_array_type;
142015 l_actual_flag                        VARCHAR2(1) := NULL;
142016 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
142017 l_balance_type_code                  VARCHAR2(1) :=NULL;
142018 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
142019 
142020 --
142021 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
142022 --
142023 
142027 TYPE t_array_source_4 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
142024 TYPE t_array_source_1 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
142025 TYPE t_array_source_2 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
142026 TYPE t_array_source_3 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
142028 TYPE t_array_source_5 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
142029 TYPE t_array_source_8 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
142030 TYPE t_array_source_21 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
142031 TYPE t_array_source_27 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
142032 TYPE t_array_source_30 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
142033 TYPE t_array_source_38 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
142034 TYPE t_array_source_49 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
142035 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
142036 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
142037 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
142038 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
142039 TYPE t_array_source_102 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_PURCH_ENCUMBRANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
142040 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
142041 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
142042 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
142043 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
142044 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
142045 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
142046 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
142047 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
142048 TYPE t_array_source_175 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
142049 
142050 TYPE t_array_source_7 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
142051 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
142052 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
142053 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
142054 TYPE t_array_source_20 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
142055 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
142056 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
142057 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
142058 TYPE t_array_source_40 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
142059 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
142060 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
142061 TYPE t_array_source_47 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
142062 TYPE t_array_source_48 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
142063 TYPE t_array_source_50 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
142064 TYPE t_array_source_51 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
142065 TYPE t_array_source_52 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
142066 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
142067 TYPE t_array_source_57 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
142068 TYPE t_array_source_58 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
142069 TYPE t_array_source_59 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
142070 TYPE t_array_source_62 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
142071 TYPE t_array_source_63 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
142072 TYPE t_array_source_64 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
142073 TYPE t_array_source_65 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
142074 TYPE t_array_source_66 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
142075 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
142076 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
142077 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_ENCUMBERED_FLAG%TYPE INDEX BY BINARY_INTEGER;
142078 
142079 l_array_source_1              t_array_source_1;
142080 l_array_source_2              t_array_source_2;
142081 l_array_source_3              t_array_source_3;
142082 l_array_source_3_meaning      t_array_lookup_meaning;
142083 l_array_source_4              t_array_source_4;
142087 l_array_source_21              t_array_source_21;
142084 l_array_source_4_meaning      t_array_lookup_meaning;
142085 l_array_source_5              t_array_source_5;
142086 l_array_source_8              t_array_source_8;
142088 l_array_source_27              t_array_source_27;
142089 l_array_source_30              t_array_source_30;
142090 l_array_source_30_meaning      t_array_lookup_meaning;
142091 l_array_source_38              t_array_source_38;
142092 l_array_source_49              t_array_source_49;
142093 l_array_source_54              t_array_source_54;
142094 l_array_source_55              t_array_source_55;
142095 l_array_source_56              t_array_source_56;
142096 l_array_source_60              t_array_source_60;
142097 l_array_source_60_meaning      t_array_lookup_meaning;
142098 l_array_source_102              t_array_source_102;
142099 l_array_source_102_meaning      t_array_lookup_meaning;
142100 l_array_source_110              t_array_source_110;
142101 l_array_source_110_meaning      t_array_lookup_meaning;
142102 l_array_source_111              t_array_source_111;
142103 l_array_source_114              t_array_source_114;
142104 l_array_source_115              t_array_source_115;
142105 l_array_source_116              t_array_source_116;
142106 l_array_source_158              t_array_source_158;
142107 l_array_source_159              t_array_source_159;
142108 l_array_source_160              t_array_source_160;
142109 l_array_source_175              t_array_source_175;
142110 l_array_source_175_meaning      t_array_lookup_meaning;
142111 
142112 l_array_source_7      t_array_source_7;
142113 l_array_source_7_meaning      t_array_lookup_meaning;
142114 l_array_source_9      t_array_source_9;
142115 l_array_source_10      t_array_source_10;
142116 l_array_source_17      t_array_source_17;
142117 l_array_source_20      t_array_source_20;
142118 l_array_source_20_meaning      t_array_lookup_meaning;
142119 l_array_source_28      t_array_source_28;
142120 l_array_source_29      t_array_source_29;
142121 l_array_source_39      t_array_source_39;
142122 l_array_source_39_meaning      t_array_lookup_meaning;
142123 l_array_source_40      t_array_source_40;
142124 l_array_source_41      t_array_source_41;
142125 l_array_source_42      t_array_source_42;
142126 l_array_source_47      t_array_source_47;
142127 l_array_source_48      t_array_source_48;
142128 l_array_source_50      t_array_source_50;
142129 l_array_source_51      t_array_source_51;
142130 l_array_source_52      t_array_source_52;
142131 l_array_source_53      t_array_source_53;
142132 l_array_source_53_meaning      t_array_lookup_meaning;
142133 l_array_source_57      t_array_source_57;
142134 l_array_source_58      t_array_source_58;
142135 l_array_source_59      t_array_source_59;
142136 l_array_source_62      t_array_source_62;
142137 l_array_source_63      t_array_source_63;
142138 l_array_source_64      t_array_source_64;
142139 l_array_source_65      t_array_source_65;
142140 l_array_source_66      t_array_source_66;
142141 l_array_source_100      t_array_source_100;
142142 l_array_source_100_meaning      t_array_lookup_meaning;
142143 l_array_source_101      t_array_source_101;
142144 l_array_source_101_meaning      t_array_lookup_meaning;
142145 l_array_source_104      t_array_source_104;
142146 l_array_source_104_meaning      t_array_lookup_meaning;
142147 
142148 --
142149 CURSOR header_cur
142150 IS
142151 SELECT /*+ leading(xet) cardinality(xet,1) */
142152 -- Event Class Code: REFUNDS
142153     xet.entity_id
142154    ,xet.legal_entity_id
142155    ,xet.entity_code
142156    ,xet.transaction_number
142157    ,xet.event_id
142158    ,xet.event_class_code
142159    ,xet.event_type_code
142160    ,xet.event_number
142161    ,xet.event_date
142162    ,xet.transaction_date
142163    ,xet.reference_num_1
142164    ,xet.reference_num_2
142165    ,xet.reference_num_3
142166    ,xet.reference_num_4
142167    ,xet.reference_char_1
142168    ,xet.reference_char_2
142169    ,xet.reference_char_3
142170    ,xet.reference_char_4
142171    ,xet.reference_date_1
142172    ,xet.reference_date_2
142173    ,xet.reference_date_3
142174    ,xet.reference_date_4
142175    ,xet.event_created_by
142176    ,xet.budgetary_control_flag 
142177   , h2.CGAC_AP_ASSET_CCID    source_1
142178   , h4.FSP_DISC_TAKEN_CCID    source_2
142179   , h4.ASP_DISCOUNT_DIST_METHOD    source_3
142180   , fvl3.meaning   source_3_meaning
142181   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_4
142182   , fvl4.meaning   source_4_meaning
142183   , h4.ASP_RATE_VAR_GAIN_CCID    source_5
142184   , h4.ASP_RATE_VAR_LOSS_CCID    source_8
142185   , h2.CGAC_CASH_CLEARING_CCID    source_21
142186   , h4.ASP_DISC_TAKEN_CCID    source_27
142187   , h4.ASP_AUTO_OFFSET_FLAG    source_30
142188   , fvl30.meaning   source_30_meaning
142189   , h4.ASP_WHEN_TO_ACCOUNT_PMT    source_38
142190   , h2.AC_CURRENCY_CODE    source_49
142191   , h2.AC_VENDOR_ID    source_54
142192   , h2.AC_VENDOR_SITE_ID    source_55
142193   , h2.THIRD_PARTY_TYPE    source_56
142194   , h2.PAYMENT_TYPE    source_60
142195   , fvl60.meaning   source_60_meaning
142196   , h4.FSP_PURCH_ENCUMBRANCE_FLAG    source_102
142197   , fvl102.meaning   source_102_meaning
142198   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_110
142199   , fvl110.meaning   source_110_meaning
142200   , h2.AC_FUTURE_PAY_DUE_DATE    source_111
142201   , h2.AC_EXCHANGE_DATE    source_114
142202   , h2.AC_EXCHANGE_RATE    source_115
142203   , h2.AC_EXCHANGE_RATE_TYPE    source_116
142204   , h2.AC_DOC_CATEGORY_CODE    source_158
142205   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_159
142206   , h2.AC_DOC_SEQUENCE_VALUE    source_160
142207   , h2.TRANSAC_REVERSAL_FLAG    source_175
142208   , fvl175.meaning   source_175_meaning
142209   FROM xla_events_gt     xet 
142210   , AP_PAYMENT_EXTRACT_HEADER_V  h2
142211   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
142212   , fnd_lookup_values    fvl3
142213   , fnd_lookup_values    fvl4
142214   , fnd_lookup_values    fvl30
142215   , fnd_lookup_values    fvl60
142219  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
142216   , fnd_lookup_values    fvl102
142217   , fnd_lookup_values    fvl110
142218   , fnd_lookup_values    fvl175
142220    and xet.event_class_code = C_EVENT_CLASS_CODE
142221    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
142222  AND h4.asp_org_id = h2.ac_org_id   AND fvl3.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
142223   AND fvl3.lookup_code(+)         = h4.ASP_DISCOUNT_DIST_METHOD
142224   AND fvl3.view_application_id(+) = 200
142225   AND fvl3.language(+)            = USERENV('LANG')
142226      AND fvl4.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
142227   AND fvl4.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
142228   AND fvl4.view_application_id(+) = 200
142229   AND fvl4.language(+)            = USERENV('LANG')
142230      AND fvl30.lookup_type(+)         = 'YES_NO'
142231   AND fvl30.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
142232   AND fvl30.view_application_id(+) = 0
142233   AND fvl30.language(+)            = USERENV('LANG')
142234      AND fvl60.lookup_type(+)         = 'PAYMENT TYPE'
142235   AND fvl60.lookup_code(+)         = h2.PAYMENT_TYPE
142236   AND fvl60.view_application_id(+) = 200
142237   AND fvl60.language(+)            = USERENV('LANG')
142238      AND fvl102.lookup_type(+)         = 'YES_NO'
142239   AND fvl102.lookup_code(+)         = h4.FSP_PURCH_ENCUMBRANCE_FLAG
142240   AND fvl102.view_application_id(+) = 0
142241   AND fvl102.language(+)            = USERENV('LANG')
142242      AND fvl110.lookup_type(+)         = 'YES_NO'
142243   AND fvl110.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
142244   AND fvl110.view_application_id(+) = 0
142245   AND fvl110.language(+)            = USERENV('LANG')
142246      AND fvl175.lookup_type(+)         = 'YES_NO'
142247   AND fvl175.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
142248   AND fvl175.view_application_id(+) = 0
142249   AND fvl175.language(+)            = USERENV('LANG')
142250   
142251  ORDER BY event_id
142252 ;
142253 
142254 
142255 --
142256 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
142257 IS
142258 SELECT  /*+ leading(xet) cardinality(xet,1) */
142259 -- Event Class Code: REFUNDS
142260     xet.entity_id
142261    ,xet.legal_entity_id
142262    ,xet.entity_code
142263    ,xet.transaction_number
142264    ,xet.event_id
142265    ,xet.event_class_code
142266    ,xet.event_type_code
142267    ,xet.event_number
142268    ,xet.event_date
142269    ,xet.transaction_date
142270    ,xet.reference_num_1
142271    ,xet.reference_num_2
142272    ,xet.reference_num_3
142273    ,xet.reference_num_4
142274    ,xet.reference_char_1
142275    ,xet.reference_char_2
142276    ,xet.reference_char_3
142277    ,xet.reference_char_4
142278    ,xet.reference_date_1
142279    ,xet.reference_date_2
142280    ,xet.reference_date_3
142281    ,xet.reference_date_4
142282    ,xet.event_created_by
142283    ,xet.budgetary_control_flag
142284  , l1.LINE_NUMBER  
142285   , l1.RELATED_INV_DIST_DEST_TYPE    source_7
142286   , fvl7.meaning   source_7_meaning
142287   , l1.APHD_PAYMENT_BASE_AMT    source_9
142288   , l1.APHD_CLEARING_BASE_AMT    source_10
142289   , l1.AID_DIST_CCID    source_17
142290   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_20
142291   , fvl20.meaning   source_20_meaning
142292   , l1.POD_CCID    source_28
142293   , l1.PO_VARIANCE_ACCOUNT    source_29
142294   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_39
142295   , fvl39.meaning   source_39_meaning
142296   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_40
142297   , l1.APHD_AMOUNT    source_41
142298   , l1.BUS_FLOW_AP_APP_ID    source_42
142299   , l1.APHD_PAYMENT_HIST_DIST_ID    source_47
142300   , l1.DISTRIBUTION_LINK_TYPE    source_48
142301   , l3.POH_RATE_DATE    source_50
142302   , l3.POH_RATE    source_51
142303   , l3.POH_RATE_TYPE    source_52
142304   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_53
142305   , fvl53.meaning   source_53_meaning
142306   , l1.APHD_REV_PAY_HIST_DIST_ID    source_57
142307   , l5.TAX_LINE_ID    source_58
142308   , l5.SUMMARY_TAX_LINE_ID    source_59
142309   , l1.BUS_FLOW_INV_DIST_TYPE    source_62
142310   , l1.BUS_FLOW_INV_ENTITY_CODE    source_63
142311   , l1.BUS_FLOW_INV_DIST_ID    source_64
142312   , l1.BUS_FLOW_INV_ID    source_65
142313   , l6.REC_NREC_TAX_DIST_ID    source_66
142314   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_100
142315   , fvl100.meaning   source_100_meaning
142316   , l1.AI_INVOICE_TYPE_PAID    source_101
142317   , fvl101.meaning   source_101_meaning
142318   , l1.AID_ENCUMBERED_FLAG    source_104
142319   , fvl104.meaning   source_104_meaning
142320   FROM xla_events_gt     xet 
142321   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
142322   , AP_PO_HEADERS_EXTRACT_V  l3
142323   , ZX_AP_DEF_TAX_EXTRACT_V  l5
142324   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
142325   , fnd_lookup_values    fvl7
142326   , fnd_lookup_values    fvl20
142327   , fnd_lookup_values    fvl39
142328   , fnd_lookup_values    fvl53
142329   , fnd_lookup_values    fvl100
142330   , fnd_lookup_values    fvl101
142331   , fnd_lookup_values    fvl104
142332  WHERE xet.event_id between x_first_event_id and x_last_event_id
142333    and xet.event_date between p_pad_start_date and p_pad_end_date
142334    and xet.event_class_code = C_EVENT_CLASS_CODE
142335    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
142336  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl7.lookup_type(+)         = 'DESTINATION TYPE'
142337   AND fvl7.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
142338   AND fvl7.view_application_id(+) = 201
142339   AND fvl7.language(+)            = USERENV('LANG')
142340      AND fvl20.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
142341   AND fvl20.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
142342   AND fvl20.view_application_id(+) = 200
142343   AND fvl20.language(+)            = USERENV('LANG')
142347   AND fvl39.language(+)            = USERENV('LANG')
142344      AND fvl39.lookup_type(+)         = 'PAY_DIST_TYPES'
142345   AND fvl39.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
142346   AND fvl39.view_application_id(+) = 200
142348      AND fvl53.lookup_type(+)         = 'YES_NO'
142349   AND fvl53.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
142350   AND fvl53.view_application_id(+) = 0
142351   AND fvl53.language(+)            = USERENV('LANG')
142352      AND fvl100.lookup_type(+)         = 'YES_NO'
142353   AND fvl100.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
142354   AND fvl100.view_application_id(+) = 0
142355   AND fvl100.language(+)            = USERENV('LANG')
142356      AND fvl101.lookup_type(+)         = 'INVOICE TYPE'
142357   AND fvl101.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
142358   AND fvl101.view_application_id(+) = 200
142359   AND fvl101.language(+)            = USERENV('LANG')
142360      AND fvl104.lookup_type(+)         = 'YES_NO'
142361   AND fvl104.lookup_code(+)         = l1.AID_ENCUMBERED_FLAG
142362   AND fvl104.view_application_id(+) = 0
142363   AND fvl104.language(+)            = USERENV('LANG')
142364   ;
142365 
142366 --
142367 BEGIN
142368 IF g_log_enabled THEN
142369    l_log_module := C_DEFAULT_MODULE||'.EventClass_215';
142370 END IF;
142371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142372    trace
142373       (p_msg      => 'BEGIN of EventClass_215'
142374       ,p_level    => C_LEVEL_PROCEDURE
142375       ,p_module   => l_log_module);
142376 END IF;
142377 
142378 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142379    trace
142380       (p_msg      => 'p_application_id = '||p_application_id||
142381                      ' - p_base_ledger_id = '||p_base_ledger_id||
142382                      ' - p_target_ledger_id  = '||p_target_ledger_id||
142383                      ' - p_language = '||p_language||
142384                      ' - p_currency_code = '||p_currency_code||
142385                      ' - p_sla_ledger_id = '||p_sla_ledger_id
142386       ,p_level    => C_LEVEL_STATEMENT
142387       ,p_module   => l_log_module);
142388 END IF;
142389 --
142390 -- initialze arrays
142391 --
142392 g_array_event.DELETE;
142393 l_rec_array_event := l_null_rec_array_event;
142394 --
142395 --------------------------------------
142396 -- 4262811 Initialze MPA Line Number
142397 --------------------------------------
142398 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
142399 
142400 --
142401 
142402 --
142403 OPEN header_cur;
142404 --
142405 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142406    trace
142407    (p_msg      => 'SQL - FETCH header_cur'
142408    ,p_level    => C_LEVEL_STATEMENT
142409    ,p_module   => l_log_module);
142410 END IF;
142411 --
142412 LOOP
142413 FETCH header_cur BULK COLLECT INTO
142414         l_array_entity_id
142415       , l_array_legal_entity_id
142416       , l_array_entity_code
142417       , l_array_transaction_num
142418       , l_array_event_id
142419       , l_array_class_code
142420       , l_array_event_type
142421       , l_array_event_number
142422       , l_array_event_date
142423       , l_array_transaction_date
142424       , l_array_reference_num_1
142425       , l_array_reference_num_2
142426       , l_array_reference_num_3
142427       , l_array_reference_num_4
142428       , l_array_reference_char_1
142429       , l_array_reference_char_2
142430       , l_array_reference_char_3
142431       , l_array_reference_char_4
142432       , l_array_reference_date_1
142433       , l_array_reference_date_2
142434       , l_array_reference_date_3
142435       , l_array_reference_date_4
142436       , l_array_event_created_by
142437       , l_array_budgetary_control_flag 
142438       , l_array_source_1
142439       , l_array_source_2
142440       , l_array_source_3
142441       , l_array_source_3_meaning
142442       , l_array_source_4
142443       , l_array_source_4_meaning
142444       , l_array_source_5
142445       , l_array_source_8
142446       , l_array_source_21
142447       , l_array_source_27
142448       , l_array_source_30
142449       , l_array_source_30_meaning
142450       , l_array_source_38
142451       , l_array_source_49
142452       , l_array_source_54
142453       , l_array_source_55
142454       , l_array_source_56
142455       , l_array_source_60
142456       , l_array_source_60_meaning
142457       , l_array_source_102
142458       , l_array_source_102_meaning
142459       , l_array_source_110
142460       , l_array_source_110_meaning
142461       , l_array_source_111
142462       , l_array_source_114
142463       , l_array_source_115
142464       , l_array_source_116
142465       , l_array_source_158
142466       , l_array_source_159
142467       , l_array_source_160
142468       , l_array_source_175
142469       , l_array_source_175_meaning
142470       LIMIT l_rows;
142471 --
142472 IF (C_LEVEL_EVENT >= g_log_level) THEN
142473    trace
142474    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
142475    ,p_level    => C_LEVEL_EVENT
142476    ,p_module   => l_log_module);
142477 END IF;
142478 --
142479 EXIT WHEN l_array_entity_id.COUNT = 0;
142480 
142481 -- initialize arrays
142482 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
142483 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
142484 
142485 --
142486 -- Bug 4458708
142487 --
142488 XLA_AE_LINES_PKG.g_LineNumber := 0;
142489 
142490 
142491 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
142492 g_last_hdr_idx := l_array_event_id.LAST;
142493 --
142494 -- loop for the headers. Each iteration is for each header extract row
142495 -- fetched in header cursor
142496 --
142497 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
142498 
142499 --
142503    (p_application_id           => p_application_id
142500 -- set event info as cache for other routines to refer event attributes
142501 --
142502 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
142504    ,p_primary_ledger_id        => p_primary_ledger_id
142505    ,p_base_ledger_id           => p_base_ledger_id
142506    ,p_target_ledger_id         => p_target_ledger_id
142507    ,p_entity_id                => l_array_entity_id(hdr_idx)
142508    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
142509    ,p_entity_code              => l_array_entity_code(hdr_idx)
142510    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
142511    ,p_event_id                 => l_array_event_id(hdr_idx)
142512    ,p_event_class_code         => l_array_class_code(hdr_idx)
142513    ,p_event_type_code          => l_array_event_type(hdr_idx)
142514    ,p_event_number             => l_array_event_number(hdr_idx)
142515    ,p_event_date               => l_array_event_date(hdr_idx)
142516    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
142517    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
142518    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
142519    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
142520    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
142521    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
142522    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
142523    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
142524    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
142525    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
142526    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
142527    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
142528    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
142529    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
142530    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
142531 
142532 --
142533 -- set the status of entry to C_VALID (0)
142534 --
142535 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
142536 
142537 --
142538 -- initialize a row for ae header
142539 --
142540 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
142541 
142542 l_event_id := l_array_event_id(hdr_idx);
142543 
142544 --
142545 -- storing the hdr_idx for event. May be used by line cursor.
142546 --
142547 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
142548 
142549 --
142550 -- store sources from header extract. This can be improved to
142551 -- store only those sources from header extract that may be used in lines
142552 --
142553 
142554 g_array_event(l_event_id).array_value_num('source_1') := l_array_source_1(hdr_idx);
142555 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
142556 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
142557 g_array_event(l_event_id).array_value_char('source_3_meaning') := l_array_source_3_meaning(hdr_idx);
142558 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
142559 g_array_event(l_event_id).array_value_char('source_4_meaning') := l_array_source_4_meaning(hdr_idx);
142560 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
142561 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
142562 g_array_event(l_event_id).array_value_num('source_21') := l_array_source_21(hdr_idx);
142563 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
142564 g_array_event(l_event_id).array_value_char('source_30') := l_array_source_30(hdr_idx);
142565 g_array_event(l_event_id).array_value_char('source_30_meaning') := l_array_source_30_meaning(hdr_idx);
142566 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
142567 g_array_event(l_event_id).array_value_char('source_49') := l_array_source_49(hdr_idx);
142568 g_array_event(l_event_id).array_value_num('source_54') := l_array_source_54(hdr_idx);
142569 g_array_event(l_event_id).array_value_num('source_55') := l_array_source_55(hdr_idx);
142570 g_array_event(l_event_id).array_value_char('source_56') := l_array_source_56(hdr_idx);
142571 g_array_event(l_event_id).array_value_char('source_60') := l_array_source_60(hdr_idx);
142572 g_array_event(l_event_id).array_value_char('source_60_meaning') := l_array_source_60_meaning(hdr_idx);
142573 g_array_event(l_event_id).array_value_char('source_102') := l_array_source_102(hdr_idx);
142574 g_array_event(l_event_id).array_value_char('source_102_meaning') := l_array_source_102_meaning(hdr_idx);
142575 g_array_event(l_event_id).array_value_char('source_110') := l_array_source_110(hdr_idx);
142576 g_array_event(l_event_id).array_value_char('source_110_meaning') := l_array_source_110_meaning(hdr_idx);
142577 g_array_event(l_event_id).array_value_date('source_111') := l_array_source_111(hdr_idx);
142578 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
142579 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
142580 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
142581 g_array_event(l_event_id).array_value_char('source_158') := l_array_source_158(hdr_idx);
142582 g_array_event(l_event_id).array_value_num('source_159') := l_array_source_159(hdr_idx);
142583 g_array_event(l_event_id).array_value_num('source_160') := l_array_source_160(hdr_idx);
142584 g_array_event(l_event_id).array_value_char('source_175') := l_array_source_175(hdr_idx);
142585 g_array_event(l_event_id).array_value_char('source_175_meaning') := l_array_source_175_meaning(hdr_idx);
142586 
142587 --
142588 -- initilaize the status of ae headers for diffrent balance types
142589 -- the status is initialised to C_NOT_CREATED (2)
142590 --
142591 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
142592 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
142596 -- call api to validate and store accounting attributes for header
142593 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
142594 
142595 --
142597 --
142598 
142599 ------------------------------------------------------------
142600 -- Accrual Reversal : to get date for Standard Source (NONE)
142601 ------------------------------------------------------------
142602 l_acc_rev_gl_date_source := NULL;
142603 
142604      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
142605       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_158');
142606      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
142607       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_159');
142608      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
142609       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_160');
142610      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
142611       l_rec_acct_attrs.array_date_value(4) := 
142612 xla_ae_sources_pkg.GetSystemSourceDate(
142613    p_source_code           => 'XLA_EVENT_DATE'
142614  , p_source_type_code      => 'Y'
142615  , p_source_application_id =>  602
142616 );
142617      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
142618       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_175');
142619 
142620 
142621 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
142622 
142623 XLA_AE_HEADER_PKG.SetJeCategoryName;
142624 
142625 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
142626 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
142627 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
142628 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
142629 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
142630 
142631 
142632 -- No header level analytical criteria
142633 
142634 --
142635 --accounting attribute enhancement, bug 3612931
142636 --
142637 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_175'), 1,30);
142638 
142639 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
142640    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
142641 
142642    xla_accounting_err_pkg.build_message
142643       (p_appli_s_name            => 'XLA'
142644       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
142645       ,p_token_1                 => 'ACCT_ATTR_NAME'
142646       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
142647       ,p_token_2                 => 'PRODUCT_NAME'
142648       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
142649       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
142650       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
142651       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
142652 
142653 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
142654    --
142655    -- following sets the accounting attributes needed to reverse
142656    -- accounting for a distributeion
142657    --
142658    xla_ae_lines_pkg.SetTrxReversalAttrs
142659       (p_event_id              => l_event_id
142660       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
142661       ,p_trx_reversal_source   => l_trx_reversal_source);
142662 
142663 END IF;
142664 
142665 
142666 ----------------------------------------------------------------
142667 -- 4262811 -  update the header statuses to invalid in need be
142668 ----------------------------------------------------------------
142669 --
142670 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
142671 
142672 
142673   -----------------------------------------------
142674   -- No accrual reversal for the event class/type
142675   -----------------------------------------------
142676 ----------------------------------------------------------------
142677 
142678 --
142679 -- this ends the header loop iteration for one bulk fetch
142680 --
142681 END LOOP;
142682 
142683 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
142684 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
142685 
142686 --
142687 -- insert dummy rows into lines gt table that were created due to
142688 -- transaction reversals
142689 --
142690 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
142691    l_result := XLA_AE_LINES_PKG.InsertLines;
142692 END IF;
142693 
142694 --
142695 -- reset the temp_line_num for each set of events fetched from header
142696 -- cursor rather than doing it for each new event in line cursor
142697 -- Bug 3939231
142698 --
142699 xla_ae_lines_pkg.g_temp_line_num := 0;
142700 
142701 
142702 
142703 --
142704 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
142705 --
142706 --
142707 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142708 
142709       trace
142710          (p_msg      => 'SQL - FETCH line_cur'
142711          ,p_level    => C_LEVEL_STATEMENT
142712          ,p_module   => l_log_module);
142713 
142714 END IF;
142715 --
142716 --
142717 LOOP
142718   --
142719   FETCH line_cur BULK COLLECT INTO
142720         l_array_entity_id
142721       , l_array_legal_entity_id
142722       , l_array_entity_code
142723       , l_array_transaction_num
142724       , l_array_event_id
142725       , l_array_class_code
142726       , l_array_event_type
142727       , l_array_event_number
142731       , l_array_reference_num_2
142728       , l_array_event_date
142729       , l_array_transaction_date
142730       , l_array_reference_num_1
142732       , l_array_reference_num_3
142733       , l_array_reference_num_4
142734       , l_array_reference_char_1
142735       , l_array_reference_char_2
142736       , l_array_reference_char_3
142737       , l_array_reference_char_4
142738       , l_array_reference_date_1
142739       , l_array_reference_date_2
142740       , l_array_reference_date_3
142741       , l_array_reference_date_4
142742       , l_array_event_created_by
142743       , l_array_budgetary_control_flag
142744       , l_array_extract_line_num 
142745       , l_array_source_7
142746       , l_array_source_7_meaning
142747       , l_array_source_9
142748       , l_array_source_10
142749       , l_array_source_17
142750       , l_array_source_20
142751       , l_array_source_20_meaning
142752       , l_array_source_28
142753       , l_array_source_29
142754       , l_array_source_39
142755       , l_array_source_39_meaning
142756       , l_array_source_40
142757       , l_array_source_41
142758       , l_array_source_42
142759       , l_array_source_47
142760       , l_array_source_48
142761       , l_array_source_50
142762       , l_array_source_51
142763       , l_array_source_52
142764       , l_array_source_53
142765       , l_array_source_53_meaning
142766       , l_array_source_57
142767       , l_array_source_58
142768       , l_array_source_59
142769       , l_array_source_62
142770       , l_array_source_63
142771       , l_array_source_64
142772       , l_array_source_65
142773       , l_array_source_66
142774       , l_array_source_100
142775       , l_array_source_100_meaning
142776       , l_array_source_101
142777       , l_array_source_101_meaning
142778       , l_array_source_104
142779       , l_array_source_104_meaning
142780       LIMIT l_rows;
142781 
142782   --
142783   IF (C_LEVEL_EVENT >= g_log_level) THEN
142784             trace
142785                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
142786                ,p_level    => C_LEVEL_EVENT
142787                ,p_module   => l_log_module);
142788   END IF;
142789   --
142790   EXIT WHEN l_array_entity_id.count = 0;
142791 
142792   XLA_AE_LINES_PKG.g_rec_lines := null;
142793 
142794 --
142795 -- Bug 4458708
142796 --
142797 XLA_AE_LINES_PKG.g_LineNumber := 0;
142798 --
142799 --
142800 
142801 FOR Idx IN 1..l_array_event_id.count LOOP
142802    --
142803    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
142804    --
142805    l_event_id := l_array_event_id(idx);  -- 5648433
142806 
142807    --
142808    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
142809    --
142810 
142811    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
142812              (g_array_event(l_event_id).array_value_num('header_index'))
142813          ,'N'
142814          ) <> 'Y'
142815    THEN
142816       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142817          trace
142818             (p_msg      => 'Trancaction revesal option is not Y '
142819             ,p_level    => C_LEVEL_STATEMENT
142820             ,p_module   => l_log_module);
142821       END IF;
142822 
142823 --
142824 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
142825 --
142826 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
142827 --
142828 -- set event info as cache for other routines to refer event attributes
142829 --
142830 
142831 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
142832    l_previous_event_id := l_event_id;
142833 
142834    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
142835       (p_application_id           => p_application_id
142836       ,p_primary_ledger_id        => p_primary_ledger_id
142837       ,p_base_ledger_id           => p_base_ledger_id
142838       ,p_target_ledger_id         => p_target_ledger_id
142839       ,p_entity_id                => l_array_entity_id(Idx)
142840       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
142841       ,p_entity_code              => l_array_entity_code(Idx)
142842       ,p_transaction_num          => l_array_transaction_num(Idx)
142843       ,p_event_id                 => l_array_event_id(Idx)
142844       ,p_event_class_code         => l_array_class_code(Idx)
142845       ,p_event_type_code          => l_array_event_type(Idx)
142846       ,p_event_number             => l_array_event_number(Idx)
142847       ,p_event_date               => l_array_event_date(Idx)
142848       ,p_transaction_date         => l_array_transaction_date(Idx)
142849       ,p_reference_num_1          => l_array_reference_num_1(Idx)
142850       ,p_reference_num_2          => l_array_reference_num_2(Idx)
142851       ,p_reference_num_3          => l_array_reference_num_3(Idx)
142852       ,p_reference_num_4          => l_array_reference_num_4(Idx)
142853       ,p_reference_char_1         => l_array_reference_char_1(Idx)
142854       ,p_reference_char_2         => l_array_reference_char_2(Idx)
142855       ,p_reference_char_3         => l_array_reference_char_3(Idx)
142856       ,p_reference_char_4         => l_array_reference_char_4(Idx)
142857       ,p_reference_date_1         => l_array_reference_date_1(Idx)
142858       ,p_reference_date_2         => l_array_reference_date_2(Idx)
142859       ,p_reference_date_3         => l_array_reference_date_3(Idx)
142860       ,p_reference_date_4         => l_array_reference_date_4(Idx)
142861       ,p_event_created_by         => l_array_event_created_by(Idx)
142862       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
142863        --
142864 END IF;
142865 
142866 
142867 
142868 --
142869 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
142870 
142874    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
142871 l_acct_reversal_source := SUBSTR(l_array_source_40(Idx), 1,30);
142872 
142873 IF l_continue_with_lines THEN
142875       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
142876 
142877       xla_accounting_err_pkg.build_message
142878          (p_appli_s_name            => 'XLA'
142879          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
142880          ,p_token_1                 => 'LINE_NUMBER'
142881          ,p_value_1                 => l_array_extract_line_num(Idx)
142882          ,p_token_2                 => 'PRODUCT_NAME'
142883          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
142884          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
142885          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
142886          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
142887 
142888    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
142889       --
142890       -- following sets the accounting attributes needed to reverse
142891       -- accounting for a distributeion
142892       --
142893 
142894       --
142895       -- 5217187
142896       --
142897       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
142898       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
142899                                        g_array_event(l_event_id).array_value_num('header_index'));
142900       --
142901       --
142902 
142903       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
142904       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_40(Idx);
142905       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
142906       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_47(Idx);
142907       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
142908       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_48(Idx);
142909       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
142910       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_56');
142911       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
142912       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_57(Idx);
142913       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
142914       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_48(Idx);
142915       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
142916       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_58(Idx);
142917       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
142918       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_66(Idx);
142919       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
142920       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_59(Idx);
142921 
142922 
142923       xla_ae_lines_pkg.SetAcctReversalAttrs
142924          (p_event_id             => l_event_id
142925          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
142926          ,p_calculate_acctd_flag => l_calculate_acctd_flag
142927          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
142928    END IF;
142929 
142930    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
142931        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
142932 
142933 --
142934 AcctLineType_40 (
142935  p_application_id  => p_application_id
142936  ,p_event_id     => l_event_id
142937  ,p_calculate_acctd_flag => l_calculate_acctd_flag
142938  ,p_calculate_g_l_flag => l_calculate_g_l_flag
142939  ,p_actual_flag => l_actual_flag
142940  ,p_balance_type_code => l_balance_type_code
142941  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
142942  
142943  , p_source_9 => l_array_source_9(Idx)
142944  , p_source_20 => l_array_source_20(Idx)
142945  , p_source_20_meaning => l_array_source_20_meaning(Idx)
142946  , p_source_28 => l_array_source_28(Idx)
142947  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
142948  , p_source_39 => l_array_source_39(Idx)
142949  , p_source_39_meaning => l_array_source_39_meaning(Idx)
142950  , p_source_40 => l_array_source_40(Idx)
142951  , p_source_41 => l_array_source_41(Idx)
142952  , p_source_42 => l_array_source_42(Idx)
142953  , p_source_47 => l_array_source_47(Idx)
142954  , p_source_48 => l_array_source_48(Idx)
142955  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
142956  , p_source_50 => l_array_source_50(Idx)
142957  , p_source_51 => l_array_source_51(Idx)
142958  , p_source_52 => l_array_source_52(Idx)
142959  , p_source_53 => l_array_source_53(Idx)
142960  , p_source_53_meaning => l_array_source_53_meaning(Idx)
142961  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
142962  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
142963  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
142964  , p_source_57 => l_array_source_57(Idx)
142965  , p_source_58 => l_array_source_58(Idx)
142966  , p_source_59 => l_array_source_59(Idx)
142967  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
142968  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
142969  , p_source_62 => l_array_source_62(Idx)
142970  , p_source_63 => l_array_source_63(Idx)
142971  , p_source_64 => l_array_source_64(Idx)
142972  , p_source_65 => l_array_source_65(Idx)
142973  , p_source_66 => l_array_source_66(Idx)
142974  );
142975 If(l_balance_type_code = 'A') THEN
142976   l_actual_gain_loss_ref := l_gain_or_loss_ref;
142977 END IF;
142978 
142979 --
142980 
142981 
142982 --
142983 AcctLineType_46 (
142984  p_application_id  => p_application_id
142985  ,p_event_id     => l_event_id
142986  ,p_calculate_acctd_flag => l_calculate_acctd_flag
142990  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
142987  ,p_calculate_g_l_flag => l_calculate_g_l_flag
142988  ,p_actual_flag => l_actual_flag
142989  ,p_balance_type_code => l_balance_type_code
142991  
142992  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
142993  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
142994  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
142995  , p_source_7 => l_array_source_7(Idx)
142996  , p_source_7_meaning => l_array_source_7_meaning(Idx)
142997  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
142998  , p_source_9 => l_array_source_9(Idx)
142999  , p_source_10 => l_array_source_10(Idx)
143000  , p_source_17 => l_array_source_17(Idx)
143001  , p_source_20 => l_array_source_20(Idx)
143002  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143003  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143004  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143005  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143006  , p_source_40 => l_array_source_40(Idx)
143007  , p_source_42 => l_array_source_42(Idx)
143008  , p_source_47 => l_array_source_47(Idx)
143009  , p_source_48 => l_array_source_48(Idx)
143010  , p_source_53 => l_array_source_53(Idx)
143011  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143012  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143013  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143014  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143015  , p_source_57 => l_array_source_57(Idx)
143016  , p_source_58 => l_array_source_58(Idx)
143017  , p_source_59 => l_array_source_59(Idx)
143018  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143019  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143020  , p_source_62 => l_array_source_62(Idx)
143021  , p_source_63 => l_array_source_63(Idx)
143022  , p_source_64 => l_array_source_64(Idx)
143023  , p_source_65 => l_array_source_65(Idx)
143024  , p_source_66 => l_array_source_66(Idx)
143025  );
143026 If(l_balance_type_code = 'A') THEN
143027   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143028 END IF;
143029 
143030 --
143031 
143032 
143033 --
143034 AcctLineType_49 (
143035  p_application_id  => p_application_id
143036  ,p_event_id     => l_event_id
143037  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143038  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143039  ,p_actual_flag => l_actual_flag
143040  ,p_balance_type_code => l_balance_type_code
143041  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143042  
143043  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143044  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143045  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
143046  , p_source_7 => l_array_source_7(Idx)
143047  , p_source_7_meaning => l_array_source_7_meaning(Idx)
143048  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
143049  , p_source_9 => l_array_source_9(Idx)
143050  , p_source_10 => l_array_source_10(Idx)
143051  , p_source_17 => l_array_source_17(Idx)
143052  , p_source_20 => l_array_source_20(Idx)
143053  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143054  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143055  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143056  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143057  , p_source_39 => l_array_source_39(Idx)
143058  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143059  , p_source_40 => l_array_source_40(Idx)
143060  , p_source_42 => l_array_source_42(Idx)
143061  , p_source_47 => l_array_source_47(Idx)
143062  , p_source_48 => l_array_source_48(Idx)
143063  , p_source_53 => l_array_source_53(Idx)
143064  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143065  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143066  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143067  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143068  , p_source_57 => l_array_source_57(Idx)
143069  , p_source_58 => l_array_source_58(Idx)
143070  , p_source_59 => l_array_source_59(Idx)
143071  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143072  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143073  , p_source_62 => l_array_source_62(Idx)
143074  , p_source_63 => l_array_source_63(Idx)
143075  , p_source_64 => l_array_source_64(Idx)
143076  , p_source_65 => l_array_source_65(Idx)
143077  , p_source_66 => l_array_source_66(Idx)
143078  , p_source_100 => l_array_source_100(Idx)
143079  , p_source_100_meaning => l_array_source_100_meaning(Idx)
143080  );
143081 If(l_balance_type_code = 'A') THEN
143082   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143083 END IF;
143084 
143085 --
143086 
143087 
143088 --
143089 AcctLineType_66 (
143090  p_application_id  => p_application_id
143091  ,p_event_id     => l_event_id
143092  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143093  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143094  ,p_actual_flag => l_actual_flag
143095  ,p_balance_type_code => l_balance_type_code
143096  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143097  
143098  , p_source_9 => l_array_source_9(Idx)
143099  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
143100  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143101  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143102  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143103  , p_source_39 => l_array_source_39(Idx)
143104  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143105  , p_source_40 => l_array_source_40(Idx)
143109  , p_source_48 => l_array_source_48(Idx)
143106  , p_source_41 => l_array_source_41(Idx)
143107  , p_source_42 => l_array_source_42(Idx)
143108  , p_source_47 => l_array_source_47(Idx)
143110  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143111  , p_source_53 => l_array_source_53(Idx)
143112  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143113  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143114  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143115  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143116  , p_source_57 => l_array_source_57(Idx)
143117  , p_source_58 => l_array_source_58(Idx)
143118  , p_source_59 => l_array_source_59(Idx)
143119  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143120  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143121  , p_source_62 => l_array_source_62(Idx)
143122  , p_source_63 => l_array_source_63(Idx)
143123  , p_source_64 => l_array_source_64(Idx)
143124  , p_source_65 => l_array_source_65(Idx)
143125  , p_source_66 => l_array_source_66(Idx)
143126  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143127  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143128  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143129  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143130  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143131  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143132  );
143133 If(l_balance_type_code = 'A') THEN
143134   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143135 END IF;
143136 
143137 --
143138 
143139 
143140 --
143141 AcctLineType_67 (
143142  p_application_id  => p_application_id
143143  ,p_event_id     => l_event_id
143144  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143145  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143146  ,p_actual_flag => l_actual_flag
143147  ,p_balance_type_code => l_balance_type_code
143148  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143149  
143150  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143151  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143152  , p_source_9 => l_array_source_9(Idx)
143153  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
143154  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143155  , p_source_39 => l_array_source_39(Idx)
143156  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143157  , p_source_40 => l_array_source_40(Idx)
143158  , p_source_41 => l_array_source_41(Idx)
143159  , p_source_42 => l_array_source_42(Idx)
143160  , p_source_47 => l_array_source_47(Idx)
143161  , p_source_48 => l_array_source_48(Idx)
143162  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143163  , p_source_53 => l_array_source_53(Idx)
143164  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143165  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143166  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143167  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143168  , p_source_57 => l_array_source_57(Idx)
143169  , p_source_58 => l_array_source_58(Idx)
143170  , p_source_59 => l_array_source_59(Idx)
143171  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143172  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143173  , p_source_62 => l_array_source_62(Idx)
143174  , p_source_63 => l_array_source_63(Idx)
143175  , p_source_64 => l_array_source_64(Idx)
143176  , p_source_65 => l_array_source_65(Idx)
143177  , p_source_66 => l_array_source_66(Idx)
143178  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143179  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143180  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143181  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143182  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143183  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143184  );
143185 If(l_balance_type_code = 'A') THEN
143186   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143187 END IF;
143188 
143189 --
143190 
143191 
143192 --
143193 AcctLineType_68 (
143194  p_application_id  => p_application_id
143195  ,p_event_id     => l_event_id
143196  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143197  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143198  ,p_actual_flag => l_actual_flag
143199  ,p_balance_type_code => l_balance_type_code
143200  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143201  
143202  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143203  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143204  , p_source_9 => l_array_source_9(Idx)
143205  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
143206  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143207  , p_source_39 => l_array_source_39(Idx)
143208  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143209  , p_source_40 => l_array_source_40(Idx)
143210  , p_source_41 => l_array_source_41(Idx)
143211  , p_source_42 => l_array_source_42(Idx)
143212  , p_source_47 => l_array_source_47(Idx)
143213  , p_source_48 => l_array_source_48(Idx)
143214  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143215  , p_source_53 => l_array_source_53(Idx)
143216  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143217  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143218  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143219  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143220  , p_source_57 => l_array_source_57(Idx)
143224  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143221  , p_source_58 => l_array_source_58(Idx)
143222  , p_source_59 => l_array_source_59(Idx)
143223  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143225  , p_source_62 => l_array_source_62(Idx)
143226  , p_source_63 => l_array_source_63(Idx)
143227  , p_source_64 => l_array_source_64(Idx)
143228  , p_source_65 => l_array_source_65(Idx)
143229  , p_source_66 => l_array_source_66(Idx)
143230  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143231  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143232  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143233  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143234  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143235  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143236  );
143237 If(l_balance_type_code = 'A') THEN
143238   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143239 END IF;
143240 
143241 --
143242 
143243 
143244 --
143245 AcctLineType_75 (
143246  p_application_id  => p_application_id
143247  ,p_event_id     => l_event_id
143248  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143249  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143250  ,p_actual_flag => l_actual_flag
143251  ,p_balance_type_code => l_balance_type_code
143252  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143253  
143254  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
143255  , p_source_9 => l_array_source_9(Idx)
143256  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143257  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143258  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143259  , p_source_39 => l_array_source_39(Idx)
143260  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143261  , p_source_40 => l_array_source_40(Idx)
143262  , p_source_41 => l_array_source_41(Idx)
143263  , p_source_42 => l_array_source_42(Idx)
143264  , p_source_47 => l_array_source_47(Idx)
143265  , p_source_48 => l_array_source_48(Idx)
143266  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143267  , p_source_53 => l_array_source_53(Idx)
143268  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143269  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143270  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143271  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143272  , p_source_57 => l_array_source_57(Idx)
143273  , p_source_58 => l_array_source_58(Idx)
143274  , p_source_59 => l_array_source_59(Idx)
143275  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143276  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143277  , p_source_62 => l_array_source_62(Idx)
143278  , p_source_63 => l_array_source_63(Idx)
143279  , p_source_64 => l_array_source_64(Idx)
143280  , p_source_65 => l_array_source_65(Idx)
143281  , p_source_66 => l_array_source_66(Idx)
143282  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143283  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143284  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143285  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143286  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143287  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143288  );
143289 If(l_balance_type_code = 'A') THEN
143290   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143291 END IF;
143292 
143293 --
143294 
143295 
143296 --
143297 AcctLineType_76 (
143298  p_application_id  => p_application_id
143299  ,p_event_id     => l_event_id
143300  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143301  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143302  ,p_actual_flag => l_actual_flag
143303  ,p_balance_type_code => l_balance_type_code
143304  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143305  
143306  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
143307  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143308  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143309  , p_source_9 => l_array_source_9(Idx)
143310  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143311  , p_source_39 => l_array_source_39(Idx)
143312  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143313  , p_source_40 => l_array_source_40(Idx)
143314  , p_source_41 => l_array_source_41(Idx)
143315  , p_source_42 => l_array_source_42(Idx)
143316  , p_source_47 => l_array_source_47(Idx)
143317  , p_source_48 => l_array_source_48(Idx)
143318  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143319  , p_source_53 => l_array_source_53(Idx)
143320  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143321  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143322  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143323  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143324  , p_source_57 => l_array_source_57(Idx)
143325  , p_source_58 => l_array_source_58(Idx)
143326  , p_source_59 => l_array_source_59(Idx)
143327  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143328  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143329  , p_source_62 => l_array_source_62(Idx)
143330  , p_source_63 => l_array_source_63(Idx)
143331  , p_source_64 => l_array_source_64(Idx)
143332  , p_source_65 => l_array_source_65(Idx)
143333  , p_source_66 => l_array_source_66(Idx)
143334  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143335  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143339  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143336  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143337  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143338  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143340  );
143341 If(l_balance_type_code = 'A') THEN
143342   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143343 END IF;
143344 
143345 --
143346 
143347 
143348 --
143349 AcctLineType_77 (
143350  p_application_id  => p_application_id
143351  ,p_event_id     => l_event_id
143352  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143353  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143354  ,p_actual_flag => l_actual_flag
143355  ,p_balance_type_code => l_balance_type_code
143356  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143357  
143358  , p_source_1 => g_array_event(l_event_id).array_value_num('source_1')
143359  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143360  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143361  , p_source_9 => l_array_source_9(Idx)
143362  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143363  , p_source_39 => l_array_source_39(Idx)
143364  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143365  , p_source_40 => l_array_source_40(Idx)
143366  , p_source_41 => l_array_source_41(Idx)
143367  , p_source_42 => l_array_source_42(Idx)
143368  , p_source_47 => l_array_source_47(Idx)
143369  , p_source_48 => l_array_source_48(Idx)
143370  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143371  , p_source_53 => l_array_source_53(Idx)
143372  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143373  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143374  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143375  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143376  , p_source_57 => l_array_source_57(Idx)
143377  , p_source_58 => l_array_source_58(Idx)
143378  , p_source_59 => l_array_source_59(Idx)
143379  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143380  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143381  , p_source_62 => l_array_source_62(Idx)
143382  , p_source_63 => l_array_source_63(Idx)
143383  , p_source_64 => l_array_source_64(Idx)
143384  , p_source_65 => l_array_source_65(Idx)
143385  , p_source_66 => l_array_source_66(Idx)
143386  , p_source_110 => g_array_event(l_event_id).array_value_char('source_110')
143387  , p_source_110_meaning => g_array_event(l_event_id).array_value_char('source_110_meaning')
143388  , p_source_111 => g_array_event(l_event_id).array_value_date('source_111')
143389  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143390  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143391  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143392  );
143393 If(l_balance_type_code = 'A') THEN
143394   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143395 END IF;
143396 
143397 --
143398 
143399 
143400 --
143401 AcctLineType_80 (
143402  p_application_id  => p_application_id
143403  ,p_event_id     => l_event_id
143404  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143405  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143406  ,p_actual_flag => l_actual_flag
143407  ,p_balance_type_code => l_balance_type_code
143408  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143409  
143410  , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
143411  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
143412  , p_source_3_meaning => g_array_event(l_event_id).array_value_char('source_3_meaning')
143413  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143414  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143415  , p_source_9 => l_array_source_9(Idx)
143416  , p_source_17 => l_array_source_17(Idx)
143417  , p_source_20 => l_array_source_20(Idx)
143418  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143419  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
143420  , p_source_28 => l_array_source_28(Idx)
143421  , p_source_29 => l_array_source_29(Idx)
143422  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143423  , p_source_39 => l_array_source_39(Idx)
143424  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143425  , p_source_40 => l_array_source_40(Idx)
143426  , p_source_41 => l_array_source_41(Idx)
143427  , p_source_42 => l_array_source_42(Idx)
143428  , p_source_47 => l_array_source_47(Idx)
143429  , p_source_48 => l_array_source_48(Idx)
143430  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143431  , p_source_53 => l_array_source_53(Idx)
143432  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143433  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143434  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143435  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143436  , p_source_57 => l_array_source_57(Idx)
143437  , p_source_58 => l_array_source_58(Idx)
143438  , p_source_59 => l_array_source_59(Idx)
143439  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143440  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143441  , p_source_62 => l_array_source_62(Idx)
143442  , p_source_63 => l_array_source_63(Idx)
143443  , p_source_64 => l_array_source_64(Idx)
143444  , p_source_65 => l_array_source_65(Idx)
143445  , p_source_66 => l_array_source_66(Idx)
143446  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143447  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143448  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143449  );
143450 If(l_balance_type_code = 'A') THEN
143451   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143455 
143452 END IF;
143453 
143454 --
143456 
143457 --
143458 AcctLineType_87 (
143459  p_application_id  => p_application_id
143460  ,p_event_id     => l_event_id
143461  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143462  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143463  ,p_actual_flag => l_actual_flag
143464  ,p_balance_type_code => l_balance_type_code
143465  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143466  
143467  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
143468  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
143469  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
143470  , p_source_7 => l_array_source_7(Idx)
143471  , p_source_7_meaning => l_array_source_7_meaning(Idx)
143472  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
143473  , p_source_9 => l_array_source_9(Idx)
143474  , p_source_10 => l_array_source_10(Idx)
143475  , p_source_17 => l_array_source_17(Idx)
143476  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
143477  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
143478  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143479  , p_source_39 => l_array_source_39(Idx)
143480  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143481  , p_source_40 => l_array_source_40(Idx)
143482  , p_source_41 => l_array_source_41(Idx)
143483  , p_source_42 => l_array_source_42(Idx)
143484  , p_source_47 => l_array_source_47(Idx)
143485  , p_source_48 => l_array_source_48(Idx)
143486  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143487  , p_source_53 => l_array_source_53(Idx)
143488  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143489  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143490  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143491  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143492  , p_source_57 => l_array_source_57(Idx)
143493  , p_source_58 => l_array_source_58(Idx)
143494  , p_source_59 => l_array_source_59(Idx)
143495  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143496  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143497  , p_source_62 => l_array_source_62(Idx)
143498  , p_source_63 => l_array_source_63(Idx)
143499  , p_source_64 => l_array_source_64(Idx)
143500  , p_source_65 => l_array_source_65(Idx)
143501  , p_source_66 => l_array_source_66(Idx)
143502  , p_source_100 => l_array_source_100(Idx)
143503  , p_source_100_meaning => l_array_source_100_meaning(Idx)
143504  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143505  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143506  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143507  );
143508 If(l_balance_type_code = 'A') THEN
143509   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143510 END IF;
143511 
143512 --
143513 
143514 
143515 --
143516 AcctLineType_88 (
143517  p_application_id  => p_application_id
143518  ,p_event_id     => l_event_id
143519  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143520  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143521  ,p_actual_flag => l_actual_flag
143522  ,p_balance_type_code => l_balance_type_code
143523  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143524  
143525  , p_source_9 => l_array_source_9(Idx)
143526  , p_source_20 => l_array_source_20(Idx)
143527  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143528  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143529  , p_source_39 => l_array_source_39(Idx)
143530  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143531  , p_source_40 => l_array_source_40(Idx)
143532  , p_source_41 => l_array_source_41(Idx)
143533  , p_source_42 => l_array_source_42(Idx)
143534  , p_source_47 => l_array_source_47(Idx)
143535  , p_source_48 => l_array_source_48(Idx)
143536  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143537  , p_source_53 => l_array_source_53(Idx)
143538  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143539  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143540  , p_source_57 => l_array_source_57(Idx)
143541  , p_source_58 => l_array_source_58(Idx)
143542  , p_source_59 => l_array_source_59(Idx)
143543  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143544  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143545  , p_source_62 => l_array_source_62(Idx)
143546  , p_source_63 => l_array_source_63(Idx)
143547  , p_source_64 => l_array_source_64(Idx)
143548  , p_source_65 => l_array_source_65(Idx)
143549  , p_source_66 => l_array_source_66(Idx)
143550  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143551  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143552  , p_source_104 => l_array_source_104(Idx)
143553  , p_source_104_meaning => l_array_source_104_meaning(Idx)
143554  );
143555 If(l_balance_type_code = 'A') THEN
143556   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143557 END IF;
143558 
143559 --
143560 
143561 
143562 --
143563 AcctLineType_95 (
143564  p_application_id  => p_application_id
143565  ,p_event_id     => l_event_id
143566  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143567  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143568  ,p_actual_flag => l_actual_flag
143569  ,p_balance_type_code => l_balance_type_code
143570  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143571  
143572  , p_source_9 => l_array_source_9(Idx)
143573  , p_source_17 => l_array_source_17(Idx)
143574  , p_source_20 => l_array_source_20(Idx)
143575  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143576  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143577  , p_source_39 => l_array_source_39(Idx)
143581  , p_source_42 => l_array_source_42(Idx)
143578  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143579  , p_source_40 => l_array_source_40(Idx)
143580  , p_source_41 => l_array_source_41(Idx)
143582  , p_source_47 => l_array_source_47(Idx)
143583  , p_source_48 => l_array_source_48(Idx)
143584  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143585  , p_source_53 => l_array_source_53(Idx)
143586  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143587  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143588  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143589  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143590  , p_source_57 => l_array_source_57(Idx)
143591  , p_source_58 => l_array_source_58(Idx)
143592  , p_source_59 => l_array_source_59(Idx)
143593  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143594  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143595  , p_source_62 => l_array_source_62(Idx)
143596  , p_source_63 => l_array_source_63(Idx)
143597  , p_source_64 => l_array_source_64(Idx)
143598  , p_source_65 => l_array_source_65(Idx)
143599  , p_source_66 => l_array_source_66(Idx)
143600  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143601  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143602  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143603  );
143604 If(l_balance_type_code = 'A') THEN
143605   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143606 END IF;
143607 
143608 --
143609 
143610 
143611 --
143612 AcctLineType_96 (
143613  p_application_id  => p_application_id
143614  ,p_event_id     => l_event_id
143615  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143616  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143617  ,p_actual_flag => l_actual_flag
143618  ,p_balance_type_code => l_balance_type_code
143619  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143620  
143621  , p_source_9 => l_array_source_9(Idx)
143622  , p_source_20 => l_array_source_20(Idx)
143623  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143624  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143625  , p_source_39 => l_array_source_39(Idx)
143626  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143627  , p_source_40 => l_array_source_40(Idx)
143628  , p_source_41 => l_array_source_41(Idx)
143629  , p_source_42 => l_array_source_42(Idx)
143630  , p_source_47 => l_array_source_47(Idx)
143631  , p_source_48 => l_array_source_48(Idx)
143632  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143633  , p_source_53 => l_array_source_53(Idx)
143634  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143635  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143636  , p_source_57 => l_array_source_57(Idx)
143637  , p_source_58 => l_array_source_58(Idx)
143638  , p_source_59 => l_array_source_59(Idx)
143639  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143640  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143641  , p_source_62 => l_array_source_62(Idx)
143642  , p_source_63 => l_array_source_63(Idx)
143643  , p_source_64 => l_array_source_64(Idx)
143644  , p_source_65 => l_array_source_65(Idx)
143645  , p_source_66 => l_array_source_66(Idx)
143646  , p_source_101 => l_array_source_101(Idx)
143647  , p_source_101_meaning => l_array_source_101_meaning(Idx)
143648  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143649  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143650  , p_source_104 => l_array_source_104(Idx)
143651  , p_source_104_meaning => l_array_source_104_meaning(Idx)
143652  );
143653 If(l_balance_type_code = 'A') THEN
143654   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143655 END IF;
143656 
143657 --
143658 
143659 
143660 --
143661 AcctLineType_113 (
143662  p_application_id  => p_application_id
143663  ,p_event_id     => l_event_id
143664  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143665  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143666  ,p_actual_flag => l_actual_flag
143667  ,p_balance_type_code => l_balance_type_code
143668  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143669  
143670  , p_source_9 => l_array_source_9(Idx)
143671  , p_source_17 => l_array_source_17(Idx)
143672  , p_source_20 => l_array_source_20(Idx)
143673  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143674  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143675  , p_source_39 => l_array_source_39(Idx)
143676  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143677  , p_source_40 => l_array_source_40(Idx)
143678  , p_source_41 => l_array_source_41(Idx)
143679  , p_source_42 => l_array_source_42(Idx)
143680  , p_source_47 => l_array_source_47(Idx)
143681  , p_source_48 => l_array_source_48(Idx)
143682  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143683  , p_source_53 => l_array_source_53(Idx)
143684  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143685  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143686  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143687  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143688  , p_source_57 => l_array_source_57(Idx)
143689  , p_source_58 => l_array_source_58(Idx)
143690  , p_source_59 => l_array_source_59(Idx)
143691  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143692  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143693  , p_source_62 => l_array_source_62(Idx)
143694  , p_source_63 => l_array_source_63(Idx)
143695  , p_source_64 => l_array_source_64(Idx)
143696  , p_source_65 => l_array_source_65(Idx)
143697  , p_source_66 => l_array_source_66(Idx)
143698  , p_source_100 => l_array_source_100(Idx)
143702  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143699  , p_source_100_meaning => l_array_source_100_meaning(Idx)
143700  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143701  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143703  );
143704 If(l_balance_type_code = 'A') THEN
143705   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143706 END IF;
143707 
143708 --
143709 
143710 
143711 --
143712 AcctLineType_114 (
143713  p_application_id  => p_application_id
143714  ,p_event_id     => l_event_id
143715  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143716  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143717  ,p_actual_flag => l_actual_flag
143718  ,p_balance_type_code => l_balance_type_code
143719  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143720  
143721  , p_source_9 => l_array_source_9(Idx)
143722  , p_source_20 => l_array_source_20(Idx)
143723  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143724  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143725  , p_source_39 => l_array_source_39(Idx)
143726  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143727  , p_source_40 => l_array_source_40(Idx)
143728  , p_source_41 => l_array_source_41(Idx)
143729  , p_source_42 => l_array_source_42(Idx)
143730  , p_source_47 => l_array_source_47(Idx)
143731  , p_source_48 => l_array_source_48(Idx)
143732  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143733  , p_source_53 => l_array_source_53(Idx)
143734  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143735  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143736  , p_source_57 => l_array_source_57(Idx)
143737  , p_source_58 => l_array_source_58(Idx)
143738  , p_source_59 => l_array_source_59(Idx)
143739  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143740  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143741  , p_source_62 => l_array_source_62(Idx)
143742  , p_source_63 => l_array_source_63(Idx)
143743  , p_source_64 => l_array_source_64(Idx)
143744  , p_source_65 => l_array_source_65(Idx)
143745  , p_source_66 => l_array_source_66(Idx)
143746  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143747  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143748  , p_source_104 => l_array_source_104(Idx)
143749  , p_source_104_meaning => l_array_source_104_meaning(Idx)
143750  );
143751 If(l_balance_type_code = 'A') THEN
143752   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143753 END IF;
143754 
143755 --
143756 
143757 
143758 --
143759 AcctLineType_121 (
143760  p_application_id  => p_application_id
143761  ,p_event_id     => l_event_id
143762  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143763  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143764  ,p_actual_flag => l_actual_flag
143765  ,p_balance_type_code => l_balance_type_code
143766  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143767  
143768  , p_source_9 => l_array_source_9(Idx)
143769  , p_source_17 => l_array_source_17(Idx)
143770  , p_source_20 => l_array_source_20(Idx)
143771  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143772  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143773  , p_source_39 => l_array_source_39(Idx)
143774  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143775  , p_source_40 => l_array_source_40(Idx)
143776  , p_source_41 => l_array_source_41(Idx)
143777  , p_source_42 => l_array_source_42(Idx)
143778  , p_source_47 => l_array_source_47(Idx)
143779  , p_source_48 => l_array_source_48(Idx)
143780  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143781  , p_source_53 => l_array_source_53(Idx)
143782  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143783  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143784  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143785  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143786  , p_source_57 => l_array_source_57(Idx)
143787  , p_source_58 => l_array_source_58(Idx)
143788  , p_source_59 => l_array_source_59(Idx)
143789  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143790  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143791  , p_source_62 => l_array_source_62(Idx)
143792  , p_source_63 => l_array_source_63(Idx)
143793  , p_source_64 => l_array_source_64(Idx)
143794  , p_source_65 => l_array_source_65(Idx)
143795  , p_source_66 => l_array_source_66(Idx)
143796  , p_source_100 => l_array_source_100(Idx)
143797  , p_source_100_meaning => l_array_source_100_meaning(Idx)
143798  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143799  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143800  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143801  );
143802 If(l_balance_type_code = 'A') THEN
143803   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143804 END IF;
143805 
143806 --
143807 
143808 
143809 --
143810 AcctLineType_122 (
143811  p_application_id  => p_application_id
143812  ,p_event_id     => l_event_id
143813  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143814  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143815  ,p_actual_flag => l_actual_flag
143816  ,p_balance_type_code => l_balance_type_code
143817  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143818  
143819  , p_source_9 => l_array_source_9(Idx)
143820  , p_source_20 => l_array_source_20(Idx)
143821  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143822  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143823  , p_source_39 => l_array_source_39(Idx)
143824  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143825  , p_source_40 => l_array_source_40(Idx)
143826  , p_source_41 => l_array_source_41(Idx)
143830  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143827  , p_source_42 => l_array_source_42(Idx)
143828  , p_source_47 => l_array_source_47(Idx)
143829  , p_source_48 => l_array_source_48(Idx)
143831  , p_source_53 => l_array_source_53(Idx)
143832  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143833  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143834  , p_source_57 => l_array_source_57(Idx)
143835  , p_source_58 => l_array_source_58(Idx)
143836  , p_source_59 => l_array_source_59(Idx)
143837  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143838  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143839  , p_source_62 => l_array_source_62(Idx)
143840  , p_source_63 => l_array_source_63(Idx)
143841  , p_source_64 => l_array_source_64(Idx)
143842  , p_source_65 => l_array_source_65(Idx)
143843  , p_source_66 => l_array_source_66(Idx)
143844  , p_source_101 => l_array_source_101(Idx)
143845  , p_source_101_meaning => l_array_source_101_meaning(Idx)
143846  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143847  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143848  , p_source_104 => l_array_source_104(Idx)
143849  , p_source_104_meaning => l_array_source_104_meaning(Idx)
143850  );
143851 If(l_balance_type_code = 'A') THEN
143852   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143853 END IF;
143854 
143855 --
143856 
143857 
143858 --
143859 AcctLineType_132 (
143860  p_application_id  => p_application_id
143861  ,p_event_id     => l_event_id
143862  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143863  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143864  ,p_actual_flag => l_actual_flag
143865  ,p_balance_type_code => l_balance_type_code
143866  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143867  
143868  , p_source_9 => l_array_source_9(Idx)
143869  , p_source_17 => l_array_source_17(Idx)
143870  , p_source_20 => l_array_source_20(Idx)
143871  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143872  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143873  , p_source_39 => l_array_source_39(Idx)
143874  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143875  , p_source_40 => l_array_source_40(Idx)
143876  , p_source_41 => l_array_source_41(Idx)
143877  , p_source_42 => l_array_source_42(Idx)
143878  , p_source_47 => l_array_source_47(Idx)
143879  , p_source_48 => l_array_source_48(Idx)
143880  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143881  , p_source_53 => l_array_source_53(Idx)
143882  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143883  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143884  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143885  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143886  , p_source_57 => l_array_source_57(Idx)
143887  , p_source_58 => l_array_source_58(Idx)
143888  , p_source_59 => l_array_source_59(Idx)
143889  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143890  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143891  , p_source_62 => l_array_source_62(Idx)
143892  , p_source_63 => l_array_source_63(Idx)
143893  , p_source_64 => l_array_source_64(Idx)
143894  , p_source_65 => l_array_source_65(Idx)
143895  , p_source_66 => l_array_source_66(Idx)
143896  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
143897  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
143898  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
143899  );
143900 If(l_balance_type_code = 'A') THEN
143901   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143902 END IF;
143903 
143904 --
143905 
143906 
143907 --
143908 AcctLineType_133 (
143909  p_application_id  => p_application_id
143910  ,p_event_id     => l_event_id
143911  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143912  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143913  ,p_actual_flag => l_actual_flag
143914  ,p_balance_type_code => l_balance_type_code
143915  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143916  
143917  , p_source_9 => l_array_source_9(Idx)
143918  , p_source_20 => l_array_source_20(Idx)
143919  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143920  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143921  , p_source_39 => l_array_source_39(Idx)
143922  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143923  , p_source_40 => l_array_source_40(Idx)
143924  , p_source_41 => l_array_source_41(Idx)
143925  , p_source_42 => l_array_source_42(Idx)
143926  , p_source_47 => l_array_source_47(Idx)
143927  , p_source_48 => l_array_source_48(Idx)
143928  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143929  , p_source_53 => l_array_source_53(Idx)
143930  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143931  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143932  , p_source_57 => l_array_source_57(Idx)
143933  , p_source_58 => l_array_source_58(Idx)
143934  , p_source_59 => l_array_source_59(Idx)
143935  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143936  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143937  , p_source_62 => l_array_source_62(Idx)
143938  , p_source_63 => l_array_source_63(Idx)
143939  , p_source_64 => l_array_source_64(Idx)
143940  , p_source_65 => l_array_source_65(Idx)
143941  , p_source_66 => l_array_source_66(Idx)
143942  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
143943  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
143944  , p_source_104 => l_array_source_104(Idx)
143945  , p_source_104_meaning => l_array_source_104_meaning(Idx)
143946  );
143947 If(l_balance_type_code = 'A') THEN
143948   l_actual_gain_loss_ref := l_gain_or_loss_ref;
143952 
143949 END IF;
143950 
143951 --
143953 
143954 --
143955 AcctLineType_138 (
143956  p_application_id  => p_application_id
143957  ,p_event_id     => l_event_id
143958  ,p_calculate_acctd_flag => l_calculate_acctd_flag
143959  ,p_calculate_g_l_flag => l_calculate_g_l_flag
143960  ,p_actual_flag => l_actual_flag
143961  ,p_balance_type_code => l_balance_type_code
143962  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
143963  
143964  , p_source_9 => l_array_source_9(Idx)
143965  , p_source_17 => l_array_source_17(Idx)
143966  , p_source_20 => l_array_source_20(Idx)
143967  , p_source_20_meaning => l_array_source_20_meaning(Idx)
143968  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
143969  , p_source_39 => l_array_source_39(Idx)
143970  , p_source_39_meaning => l_array_source_39_meaning(Idx)
143971  , p_source_40 => l_array_source_40(Idx)
143972  , p_source_41 => l_array_source_41(Idx)
143973  , p_source_42 => l_array_source_42(Idx)
143974  , p_source_47 => l_array_source_47(Idx)
143975  , p_source_48 => l_array_source_48(Idx)
143976  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
143977  , p_source_50 => l_array_source_50(Idx)
143978  , p_source_51 => l_array_source_51(Idx)
143979  , p_source_52 => l_array_source_52(Idx)
143980  , p_source_53 => l_array_source_53(Idx)
143981  , p_source_53_meaning => l_array_source_53_meaning(Idx)
143982  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
143983  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
143984  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
143985  , p_source_57 => l_array_source_57(Idx)
143986  , p_source_58 => l_array_source_58(Idx)
143987  , p_source_59 => l_array_source_59(Idx)
143988  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
143989  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
143990  , p_source_62 => l_array_source_62(Idx)
143991  , p_source_63 => l_array_source_63(Idx)
143992  , p_source_64 => l_array_source_64(Idx)
143993  , p_source_65 => l_array_source_65(Idx)
143994  , p_source_66 => l_array_source_66(Idx)
143995  , p_source_100 => l_array_source_100(Idx)
143996  , p_source_100_meaning => l_array_source_100_meaning(Idx)
143997  );
143998 If(l_balance_type_code = 'A') THEN
143999   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144000 END IF;
144001 
144002 --
144003 
144004 
144005 --
144006 AcctLineType_143 (
144007  p_application_id  => p_application_id
144008  ,p_event_id     => l_event_id
144009  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144010  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144011  ,p_actual_flag => l_actual_flag
144012  ,p_balance_type_code => l_balance_type_code
144013  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144014  
144015  , p_source_9 => l_array_source_9(Idx)
144016  , p_source_17 => l_array_source_17(Idx)
144017  , p_source_20 => l_array_source_20(Idx)
144018  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144019  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144020  , p_source_39 => l_array_source_39(Idx)
144021  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144022  , p_source_40 => l_array_source_40(Idx)
144023  , p_source_41 => l_array_source_41(Idx)
144024  , p_source_42 => l_array_source_42(Idx)
144025  , p_source_47 => l_array_source_47(Idx)
144026  , p_source_48 => l_array_source_48(Idx)
144027  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144028  , p_source_53 => l_array_source_53(Idx)
144029  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144030  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144031  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144032  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144033  , p_source_57 => l_array_source_57(Idx)
144034  , p_source_58 => l_array_source_58(Idx)
144035  , p_source_59 => l_array_source_59(Idx)
144036  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144037  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144038  , p_source_62 => l_array_source_62(Idx)
144039  , p_source_63 => l_array_source_63(Idx)
144040  , p_source_64 => l_array_source_64(Idx)
144041  , p_source_65 => l_array_source_65(Idx)
144042  , p_source_66 => l_array_source_66(Idx)
144043  , p_source_100 => l_array_source_100(Idx)
144044  , p_source_100_meaning => l_array_source_100_meaning(Idx)
144045  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144046  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144047  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144048  );
144049 If(l_balance_type_code = 'A') THEN
144050   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144051 END IF;
144052 
144053 --
144054 
144055 
144056 --
144057 AcctLineType_144 (
144058  p_application_id  => p_application_id
144059  ,p_event_id     => l_event_id
144060  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144061  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144062  ,p_actual_flag => l_actual_flag
144063  ,p_balance_type_code => l_balance_type_code
144064  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144065  
144066  , p_source_9 => l_array_source_9(Idx)
144067  , p_source_20 => l_array_source_20(Idx)
144068  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144069  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144070  , p_source_39 => l_array_source_39(Idx)
144071  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144072  , p_source_40 => l_array_source_40(Idx)
144073  , p_source_41 => l_array_source_41(Idx)
144074  , p_source_42 => l_array_source_42(Idx)
144075  , p_source_47 => l_array_source_47(Idx)
144076  , p_source_48 => l_array_source_48(Idx)
144077  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144078  , p_source_53 => l_array_source_53(Idx)
144082  , p_source_58 => l_array_source_58(Idx)
144079  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144080  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144081  , p_source_57 => l_array_source_57(Idx)
144083  , p_source_59 => l_array_source_59(Idx)
144084  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144085  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144086  , p_source_62 => l_array_source_62(Idx)
144087  , p_source_63 => l_array_source_63(Idx)
144088  , p_source_64 => l_array_source_64(Idx)
144089  , p_source_65 => l_array_source_65(Idx)
144090  , p_source_66 => l_array_source_66(Idx)
144091  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144092  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144093  , p_source_104 => l_array_source_104(Idx)
144094  , p_source_104_meaning => l_array_source_104_meaning(Idx)
144095  );
144096 If(l_balance_type_code = 'A') THEN
144097   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144098 END IF;
144099 
144100 --
144101 
144102 
144103 --
144104 AcctLineType_158 (
144105  p_application_id  => p_application_id
144106  ,p_event_id     => l_event_id
144107  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144108  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144109  ,p_actual_flag => l_actual_flag
144110  ,p_balance_type_code => l_balance_type_code
144111  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144112  
144113  , p_source_9 => l_array_source_9(Idx)
144114  , p_source_20 => l_array_source_20(Idx)
144115  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144116  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144117  , p_source_39 => l_array_source_39(Idx)
144118  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144119  , p_source_40 => l_array_source_40(Idx)
144120  , p_source_41 => l_array_source_41(Idx)
144121  , p_source_42 => l_array_source_42(Idx)
144122  , p_source_47 => l_array_source_47(Idx)
144123  , p_source_48 => l_array_source_48(Idx)
144124  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144125  , p_source_53 => l_array_source_53(Idx)
144126  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144127  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144128  , p_source_57 => l_array_source_57(Idx)
144129  , p_source_58 => l_array_source_58(Idx)
144130  , p_source_59 => l_array_source_59(Idx)
144131  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144132  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144133  , p_source_62 => l_array_source_62(Idx)
144134  , p_source_63 => l_array_source_63(Idx)
144135  , p_source_64 => l_array_source_64(Idx)
144136  , p_source_65 => l_array_source_65(Idx)
144137  , p_source_66 => l_array_source_66(Idx)
144138  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144139  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144140  , p_source_104 => l_array_source_104(Idx)
144141  , p_source_104_meaning => l_array_source_104_meaning(Idx)
144142  );
144143 If(l_balance_type_code = 'A') THEN
144144   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144145 END IF;
144146 
144147 --
144148 
144149 
144150 --
144151 AcctLineType_163 (
144152  p_application_id  => p_application_id
144153  ,p_event_id     => l_event_id
144154  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144155  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144156  ,p_actual_flag => l_actual_flag
144157  ,p_balance_type_code => l_balance_type_code
144158  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144159  
144160  , p_source_9 => l_array_source_9(Idx)
144161  , p_source_17 => l_array_source_17(Idx)
144162  , p_source_20 => l_array_source_20(Idx)
144163  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144164  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144165  , p_source_39 => l_array_source_39(Idx)
144166  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144167  , p_source_40 => l_array_source_40(Idx)
144168  , p_source_41 => l_array_source_41(Idx)
144169  , p_source_42 => l_array_source_42(Idx)
144170  , p_source_47 => l_array_source_47(Idx)
144171  , p_source_48 => l_array_source_48(Idx)
144172  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144173  , p_source_53 => l_array_source_53(Idx)
144174  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144175  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144176  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144177  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144178  , p_source_57 => l_array_source_57(Idx)
144179  , p_source_58 => l_array_source_58(Idx)
144180  , p_source_59 => l_array_source_59(Idx)
144181  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144182  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144183  , p_source_62 => l_array_source_62(Idx)
144184  , p_source_63 => l_array_source_63(Idx)
144185  , p_source_64 => l_array_source_64(Idx)
144186  , p_source_65 => l_array_source_65(Idx)
144187  , p_source_66 => l_array_source_66(Idx)
144188  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144189  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144190  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144191  );
144192 If(l_balance_type_code = 'A') THEN
144193   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144194 END IF;
144195 
144196 --
144197 
144198 
144199 --
144200 AcctLineType_174 (
144201  p_application_id  => p_application_id
144202  ,p_event_id     => l_event_id
144203  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144204  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144205  ,p_actual_flag => l_actual_flag
144209  , p_source_9 => l_array_source_9(Idx)
144206  ,p_balance_type_code => l_balance_type_code
144207  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144208  
144210  , p_source_20 => l_array_source_20(Idx)
144211  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144212  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144213  , p_source_39 => l_array_source_39(Idx)
144214  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144215  , p_source_40 => l_array_source_40(Idx)
144216  , p_source_41 => l_array_source_41(Idx)
144217  , p_source_42 => l_array_source_42(Idx)
144218  , p_source_47 => l_array_source_47(Idx)
144219  , p_source_48 => l_array_source_48(Idx)
144220  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144221  , p_source_53 => l_array_source_53(Idx)
144222  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144223  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144224  , p_source_57 => l_array_source_57(Idx)
144225  , p_source_58 => l_array_source_58(Idx)
144226  , p_source_59 => l_array_source_59(Idx)
144227  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144228  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144229  , p_source_62 => l_array_source_62(Idx)
144230  , p_source_63 => l_array_source_63(Idx)
144231  , p_source_64 => l_array_source_64(Idx)
144232  , p_source_65 => l_array_source_65(Idx)
144233  , p_source_66 => l_array_source_66(Idx)
144234  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144235  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144236  , p_source_104 => l_array_source_104(Idx)
144237  , p_source_104_meaning => l_array_source_104_meaning(Idx)
144238  );
144239 If(l_balance_type_code = 'A') THEN
144240   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144241 END IF;
144242 
144243 --
144244 
144245 
144246 --
144247 AcctLineType_177 (
144248  p_application_id  => p_application_id
144249  ,p_event_id     => l_event_id
144250  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144251  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144252  ,p_actual_flag => l_actual_flag
144253  ,p_balance_type_code => l_balance_type_code
144254  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144255  
144256  , p_source_9 => l_array_source_9(Idx)
144257  , p_source_20 => l_array_source_20(Idx)
144258  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144259  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144260  , p_source_39 => l_array_source_39(Idx)
144261  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144262  , p_source_40 => l_array_source_40(Idx)
144263  , p_source_41 => l_array_source_41(Idx)
144264  , p_source_42 => l_array_source_42(Idx)
144265  , p_source_47 => l_array_source_47(Idx)
144266  , p_source_48 => l_array_source_48(Idx)
144267  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144268  , p_source_53 => l_array_source_53(Idx)
144269  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144270  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144271  , p_source_57 => l_array_source_57(Idx)
144272  , p_source_58 => l_array_source_58(Idx)
144273  , p_source_59 => l_array_source_59(Idx)
144274  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144275  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144276  , p_source_62 => l_array_source_62(Idx)
144277  , p_source_63 => l_array_source_63(Idx)
144278  , p_source_64 => l_array_source_64(Idx)
144279  , p_source_65 => l_array_source_65(Idx)
144280  , p_source_66 => l_array_source_66(Idx)
144281  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144282  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144283  , p_source_104 => l_array_source_104(Idx)
144284  , p_source_104_meaning => l_array_source_104_meaning(Idx)
144285  );
144286 If(l_balance_type_code = 'A') THEN
144287   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144288 END IF;
144289 
144290 --
144291 
144292 
144293 --
144294 AcctLineType_180 (
144295  p_application_id  => p_application_id
144296  ,p_event_id     => l_event_id
144297  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144298  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144299  ,p_actual_flag => l_actual_flag
144300  ,p_balance_type_code => l_balance_type_code
144301  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144302  
144303  , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
144304  , p_source_4_meaning => g_array_event(l_event_id).array_value_char('source_4_meaning')
144305  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
144306  , p_source_7 => l_array_source_7(Idx)
144307  , p_source_7_meaning => l_array_source_7_meaning(Idx)
144308  , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
144309  , p_source_9 => l_array_source_9(Idx)
144310  , p_source_10 => l_array_source_10(Idx)
144311  , p_source_17 => l_array_source_17(Idx)
144312  , p_source_30 => g_array_event(l_event_id).array_value_char('source_30')
144313  , p_source_30_meaning => g_array_event(l_event_id).array_value_char('source_30_meaning')
144314  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144315  , p_source_39 => l_array_source_39(Idx)
144316  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144317  , p_source_40 => l_array_source_40(Idx)
144318  , p_source_41 => l_array_source_41(Idx)
144319  , p_source_42 => l_array_source_42(Idx)
144320  , p_source_47 => l_array_source_47(Idx)
144321  , p_source_48 => l_array_source_48(Idx)
144322  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144323  , p_source_53 => l_array_source_53(Idx)
144324  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144325  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144326  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144330  , p_source_59 => l_array_source_59(Idx)
144327  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144328  , p_source_57 => l_array_source_57(Idx)
144329  , p_source_58 => l_array_source_58(Idx)
144331  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144332  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144333  , p_source_62 => l_array_source_62(Idx)
144334  , p_source_63 => l_array_source_63(Idx)
144335  , p_source_64 => l_array_source_64(Idx)
144336  , p_source_65 => l_array_source_65(Idx)
144337  , p_source_66 => l_array_source_66(Idx)
144338  , p_source_100 => l_array_source_100(Idx)
144339  , p_source_100_meaning => l_array_source_100_meaning(Idx)
144340  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144341  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144342  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144343  );
144344 If(l_balance_type_code = 'A') THEN
144345   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144346 END IF;
144347 
144348 --
144349 
144350 
144351 --
144352 AcctLineType_185 (
144353  p_application_id  => p_application_id
144354  ,p_event_id     => l_event_id
144355  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144356  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144357  ,p_actual_flag => l_actual_flag
144358  ,p_balance_type_code => l_balance_type_code
144359  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144360  
144361  , p_source_9 => l_array_source_9(Idx)
144362  , p_source_17 => l_array_source_17(Idx)
144363  , p_source_20 => l_array_source_20(Idx)
144364  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144365  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144366  , p_source_39 => l_array_source_39(Idx)
144367  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144368  , p_source_40 => l_array_source_40(Idx)
144369  , p_source_41 => l_array_source_41(Idx)
144370  , p_source_42 => l_array_source_42(Idx)
144371  , p_source_47 => l_array_source_47(Idx)
144372  , p_source_48 => l_array_source_48(Idx)
144373  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144374  , p_source_53 => l_array_source_53(Idx)
144375  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144376  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144377  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144378  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144379  , p_source_57 => l_array_source_57(Idx)
144380  , p_source_58 => l_array_source_58(Idx)
144381  , p_source_59 => l_array_source_59(Idx)
144382  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144383  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144384  , p_source_62 => l_array_source_62(Idx)
144385  , p_source_63 => l_array_source_63(Idx)
144386  , p_source_64 => l_array_source_64(Idx)
144387  , p_source_65 => l_array_source_65(Idx)
144388  , p_source_66 => l_array_source_66(Idx)
144389  , p_source_100 => l_array_source_100(Idx)
144390  , p_source_100_meaning => l_array_source_100_meaning(Idx)
144391  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144392  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144393  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144394  );
144395 If(l_balance_type_code = 'A') THEN
144396   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144397 END IF;
144398 
144399 --
144400 
144401 
144402 --
144403 AcctLineType_186 (
144404  p_application_id  => p_application_id
144405  ,p_event_id     => l_event_id
144406  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144407  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144408  ,p_actual_flag => l_actual_flag
144409  ,p_balance_type_code => l_balance_type_code
144410  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144411  
144412  , p_source_9 => l_array_source_9(Idx)
144413  , p_source_20 => l_array_source_20(Idx)
144414  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144415  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144416  , p_source_39 => l_array_source_39(Idx)
144417  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144418  , p_source_40 => l_array_source_40(Idx)
144419  , p_source_41 => l_array_source_41(Idx)
144420  , p_source_42 => l_array_source_42(Idx)
144421  , p_source_47 => l_array_source_47(Idx)
144422  , p_source_48 => l_array_source_48(Idx)
144423  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144424  , p_source_53 => l_array_source_53(Idx)
144425  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144426  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144427  , p_source_57 => l_array_source_57(Idx)
144428  , p_source_58 => l_array_source_58(Idx)
144429  , p_source_59 => l_array_source_59(Idx)
144430  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144431  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144432  , p_source_62 => l_array_source_62(Idx)
144433  , p_source_63 => l_array_source_63(Idx)
144434  , p_source_64 => l_array_source_64(Idx)
144435  , p_source_65 => l_array_source_65(Idx)
144436  , p_source_66 => l_array_source_66(Idx)
144437  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144438  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144439  , p_source_104 => l_array_source_104(Idx)
144440  , p_source_104_meaning => l_array_source_104_meaning(Idx)
144441  );
144442 If(l_balance_type_code = 'A') THEN
144443   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144444 END IF;
144445 
144446 --
144447 
144448 
144449 --
144450 AcctLineType_189 (
144451  p_application_id  => p_application_id
144452  ,p_event_id     => l_event_id
144453  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144457  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144454  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144455  ,p_actual_flag => l_actual_flag
144456  ,p_balance_type_code => l_balance_type_code
144458  
144459  , p_source_9 => l_array_source_9(Idx)
144460  , p_source_20 => l_array_source_20(Idx)
144461  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144462  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144463  , p_source_39 => l_array_source_39(Idx)
144464  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144465  , p_source_40 => l_array_source_40(Idx)
144466  , p_source_41 => l_array_source_41(Idx)
144467  , p_source_42 => l_array_source_42(Idx)
144468  , p_source_47 => l_array_source_47(Idx)
144469  , p_source_48 => l_array_source_48(Idx)
144470  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144471  , p_source_53 => l_array_source_53(Idx)
144472  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144473  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144474  , p_source_57 => l_array_source_57(Idx)
144475  , p_source_58 => l_array_source_58(Idx)
144476  , p_source_59 => l_array_source_59(Idx)
144477  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144478  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144479  , p_source_62 => l_array_source_62(Idx)
144480  , p_source_63 => l_array_source_63(Idx)
144481  , p_source_64 => l_array_source_64(Idx)
144482  , p_source_65 => l_array_source_65(Idx)
144483  , p_source_66 => l_array_source_66(Idx)
144484  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144485  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144486  , p_source_104 => l_array_source_104(Idx)
144487  , p_source_104_meaning => l_array_source_104_meaning(Idx)
144488  );
144489 If(l_balance_type_code = 'A') THEN
144490   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144491 END IF;
144492 
144493 --
144494 
144495 
144496 --
144497 AcctLineType_194 (
144498  p_application_id  => p_application_id
144499  ,p_event_id     => l_event_id
144500  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144501  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144502  ,p_actual_flag => l_actual_flag
144503  ,p_balance_type_code => l_balance_type_code
144504  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144505  
144506  , p_source_9 => l_array_source_9(Idx)
144507  , p_source_17 => l_array_source_17(Idx)
144508  , p_source_20 => l_array_source_20(Idx)
144509  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144510  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144511  , p_source_39 => l_array_source_39(Idx)
144512  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144513  , p_source_40 => l_array_source_40(Idx)
144514  , p_source_41 => l_array_source_41(Idx)
144515  , p_source_42 => l_array_source_42(Idx)
144516  , p_source_47 => l_array_source_47(Idx)
144517  , p_source_48 => l_array_source_48(Idx)
144518  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144519  , p_source_53 => l_array_source_53(Idx)
144520  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144521  , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
144522  , p_source_55 => g_array_event(l_event_id).array_value_num('source_55')
144523  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144524  , p_source_57 => l_array_source_57(Idx)
144525  , p_source_58 => l_array_source_58(Idx)
144526  , p_source_59 => l_array_source_59(Idx)
144527  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144528  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144529  , p_source_62 => l_array_source_62(Idx)
144530  , p_source_63 => l_array_source_63(Idx)
144531  , p_source_64 => l_array_source_64(Idx)
144532  , p_source_65 => l_array_source_65(Idx)
144533  , p_source_66 => l_array_source_66(Idx)
144534  , p_source_100 => l_array_source_100(Idx)
144535  , p_source_100_meaning => l_array_source_100_meaning(Idx)
144536  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
144537  , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
144538  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
144539  );
144540 If(l_balance_type_code = 'A') THEN
144541   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144542 END IF;
144543 
144544 --
144545 
144546 
144547 --
144548 AcctLineType_195 (
144549  p_application_id  => p_application_id
144550  ,p_event_id     => l_event_id
144551  ,p_calculate_acctd_flag => l_calculate_acctd_flag
144552  ,p_calculate_g_l_flag => l_calculate_g_l_flag
144553  ,p_actual_flag => l_actual_flag
144554  ,p_balance_type_code => l_balance_type_code
144555  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
144556  
144557  , p_source_9 => l_array_source_9(Idx)
144558  , p_source_20 => l_array_source_20(Idx)
144559  , p_source_20_meaning => l_array_source_20_meaning(Idx)
144560  , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
144561  , p_source_39 => l_array_source_39(Idx)
144562  , p_source_39_meaning => l_array_source_39_meaning(Idx)
144563  , p_source_40 => l_array_source_40(Idx)
144564  , p_source_41 => l_array_source_41(Idx)
144565  , p_source_42 => l_array_source_42(Idx)
144566  , p_source_47 => l_array_source_47(Idx)
144567  , p_source_48 => l_array_source_48(Idx)
144568  , p_source_49 => g_array_event(l_event_id).array_value_char('source_49')
144569  , p_source_53 => l_array_source_53(Idx)
144570  , p_source_53_meaning => l_array_source_53_meaning(Idx)
144571  , p_source_56 => g_array_event(l_event_id).array_value_char('source_56')
144572  , p_source_57 => l_array_source_57(Idx)
144573  , p_source_58 => l_array_source_58(Idx)
144574  , p_source_59 => l_array_source_59(Idx)
144575  , p_source_60 => g_array_event(l_event_id).array_value_char('source_60')
144579  , p_source_64 => l_array_source_64(Idx)
144576  , p_source_60_meaning => g_array_event(l_event_id).array_value_char('source_60_meaning')
144577  , p_source_62 => l_array_source_62(Idx)
144578  , p_source_63 => l_array_source_63(Idx)
144580  , p_source_65 => l_array_source_65(Idx)
144581  , p_source_66 => l_array_source_66(Idx)
144582  , p_source_102 => g_array_event(l_event_id).array_value_char('source_102')
144583  , p_source_102_meaning => g_array_event(l_event_id).array_value_char('source_102_meaning')
144584  , p_source_104 => l_array_source_104(Idx)
144585  , p_source_104_meaning => l_array_source_104_meaning(Idx)
144586  );
144587 If(l_balance_type_code = 'A') THEN
144588   l_actual_gain_loss_ref := l_gain_or_loss_ref;
144589 END IF;
144590 
144591 --
144592 
144593       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
144594       -- or secondary ledger that has different currency with primary
144595       -- or alc that is calculated by sla
144596       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
144597             (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'))
144598 
144599 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
144600 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
144601           AND (l_actual_flag = 'A')) THEN
144602         XLA_AE_LINES_PKG.CreateGainOrLossLines(
144603           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
144604          ,p_application_id   => p_application_id
144605          ,p_amb_context_code => 'DEFAULT'
144606          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
144607          ,p_event_class_code => C_EVENT_CLASS_CODE
144608          ,p_event_type_code  => C_EVENT_TYPE_CODE
144609          
144610          ,p_gain_ccid        => -1
144611          ,p_loss_ccid        => -1
144612 
144613          ,p_actual_flag      => l_actual_flag
144614          ,p_enc_flag         => null
144615          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
144616          ,p_enc_g_l_ref      => null
144617          );
144618       END IF;
144619    END IF;
144620 END IF;
144621 
144622    ELSE
144623       --
144624       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
144625       --
144626       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144627          trace
144628             (p_msg      => 'Trancaction revesal option is Y'
144629             ,p_level    => C_LEVEL_STATEMENT
144630             ,p_module   => l_log_module);
144631       END IF;
144632    END IF;
144633 
144634 END LOOP;
144635 l_result := XLA_AE_LINES_PKG.InsertLines ;
144636 end loop;
144637 close line_cur;
144638 
144639 
144640 --
144641 -- insert headers into xla_ae_headers_gt table
144642 --
144643 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
144644 
144645 -- insert into errors table here.
144646 
144647 END LOOP;
144648 
144649 --
144650 -- 4865292
144651 --
144652 -- Compare g_hdr_extract_count with event count in
144653 -- CreateHeadersAndLines.
144654 --
144655 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
144656 
144657 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144658    trace (p_msg     => '# rows extracted from header extract objects '
144659                     || ' (running total): '
144660                     || g_hdr_extract_count
144661          ,p_level   => C_LEVEL_STATEMENT
144662          ,p_module  => l_log_module);
144663 END IF;
144664 
144665 CLOSE header_cur;
144666 --
144667 
144668 --
144669 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144670    trace
144671       (p_msg      => 'END of EventClass_215'
144672       ,p_level    => C_LEVEL_PROCEDURE
144673       ,p_module   => l_log_module);
144674 END IF;
144675 --
144676 RETURN l_result;
144677 EXCEPTION
144678 WHEN xla_exceptions_pkg.application_exception THEN
144679    
144680 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
144681 
144682    
144683 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
144684 
144685    RAISE;
144686 
144687 WHEN NO_DATA_FOUND THEN
144688 
144689 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
144690 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
144691 
144692 FOR header_record IN header_cur
144693 LOOP
144694     l_array_header_events(header_record.event_id) := header_record.event_id;
144695 END LOOP;
144696 
144697 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
144698 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
144699 
144700 fnd_file.put_line(fnd_file.LOG, '                    ');
144701 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
144702 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
144703 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
144704 
144705 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
144706 LOOP
144707 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
144708 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
144709         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
144710 	END IF;
144711 END LOOP;
144712 
144713 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
144714 fnd_file.put_line(fnd_file.LOG, '                    ');
144715 
144716 
144717 xla_exceptions_pkg.raise_message
144718       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_215');
144719 
144720 
144721 WHEN OTHERS THEN
144725 --
144722    xla_exceptions_pkg.raise_message
144723       (p_location => 'XLA_00200_AAD_S_000010_PKG.EventClass_215');
144724 END EventClass_215;
144726 
144727 --
144728 --+============================================+
144729 --|                                            |
144730 --|  PRIVATE FUNCTION                          |
144731 --|                                            |
144732 --+============================================+
144733 --
144734 FUNCTION CreateHeadersAndLines
144735        (p_application_id         IN NUMBER
144736        ,p_base_ledger_id         IN NUMBER
144737        ,p_target_ledger_id       IN NUMBER
144738        ,p_pad_start_date         IN DATE
144739        ,p_pad_end_date           IN DATE
144740        ,p_primary_ledger_id      IN NUMBER)
144741 RETURN BOOLEAN IS
144742 l_created                   BOOLEAN:=FALSE;
144743 l_event_id                  NUMBER;
144744 l_event_date                DATE;
144745 l_language                  VARCHAR2(30);
144746 l_currency_code             VARCHAR2(30);
144747 l_sla_ledger_id             NUMBER;
144748 l_log_module                VARCHAR2(240);
144749 
144750 BEGIN
144751 --
144752 IF g_log_enabled THEN
144753    l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
144754 END IF;
144755 --
144756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144757    trace
144758       (p_msg      => 'BEGIN of CreateHeadersAndLines'
144759       ,p_level    => C_LEVEL_PROCEDURE
144760       ,p_module   => l_log_module);
144761 END IF;
144762 
144763 l_language         := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
144764 l_currency_code    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
144765 l_sla_ledger_id    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
144766 
144767 --
144768 -- initialize array of lines with NULL
144769 --
144770 xla_ae_lines_pkg.SetNullLine;
144771 
144772 --
144773 -- initialize header extract count -- Bug 4865292
144774 --
144775 g_hdr_extract_count:= 0;
144776 
144777 
144778 l_created := EventClass_204(
144779    p_application_id         => p_application_id
144780  , p_base_ledger_id         => p_base_ledger_id
144781  , p_target_ledger_id       => p_target_ledger_id
144782  , p_language               => l_language
144783  , p_currency_code          => l_currency_code
144784  , p_sla_ledger_id          => l_sla_ledger_id
144785  , p_pad_start_date         => p_pad_start_date
144786  , p_pad_end_date           => p_pad_end_date
144787  , p_primary_ledger_id      => p_primary_ledger_id
144788 );
144789 
144790 
144791 
144792      IF ( g_diagnostics_mode ='Y' ) THEN
144793 
144794          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144795           trace
144796               (p_msg      => 'CALL Transaction Objects Diagnostics'
144797               ,p_level    => C_LEVEL_STATEMENT
144798               ,p_module   => l_log_module);
144799 
144800          END IF;
144801 
144802          insert_sources_204(
144803                           p_target_ledger_id => p_target_ledger_id
144804                         , p_language         => l_language
144805                         , p_sla_ledger_id    => l_sla_ledger_id
144806                         , p_pad_start_date   => p_pad_start_date
144807                         , p_pad_end_date     => p_pad_end_date
144808                           );
144809 
144810      END IF;
144811 
144812 l_created := EventClass_205(
144813    p_application_id         => p_application_id
144814  , p_base_ledger_id         => p_base_ledger_id
144815  , p_target_ledger_id       => p_target_ledger_id
144816  , p_language               => l_language
144817  , p_currency_code          => l_currency_code
144818  , p_sla_ledger_id          => l_sla_ledger_id
144819  , p_pad_start_date         => p_pad_start_date
144820  , p_pad_end_date           => p_pad_end_date
144821  , p_primary_ledger_id      => p_primary_ledger_id
144822 );
144823 
144824 
144825 
144826      IF ( g_diagnostics_mode ='Y' ) THEN
144827 
144828          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144829           trace
144830               (p_msg      => 'CALL Transaction Objects Diagnostics'
144831               ,p_level    => C_LEVEL_STATEMENT
144832               ,p_module   => l_log_module);
144833 
144834          END IF;
144835 
144836          insert_sources_205(
144837                           p_target_ledger_id => p_target_ledger_id
144838                         , p_language         => l_language
144839                         , p_sla_ledger_id    => l_sla_ledger_id
144840                         , p_pad_start_date   => p_pad_start_date
144841                         , p_pad_end_date     => p_pad_end_date
144842                           );
144843 
144844      END IF;
144845 
144846 l_created := EventClass_206(
144847    p_application_id         => p_application_id
144848  , p_base_ledger_id         => p_base_ledger_id
144849  , p_target_ledger_id       => p_target_ledger_id
144850  , p_language               => l_language
144851  , p_currency_code          => l_currency_code
144852  , p_sla_ledger_id          => l_sla_ledger_id
144853  , p_pad_start_date         => p_pad_start_date
144854  , p_pad_end_date           => p_pad_end_date
144855  , p_primary_ledger_id      => p_primary_ledger_id
144856 );
144857 
144858 
144859 
144860      IF ( g_diagnostics_mode ='Y' ) THEN
144861 
144862          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144863           trace
144864               (p_msg      => 'CALL Transaction Objects Diagnostics'
144865               ,p_level    => C_LEVEL_STATEMENT
144866               ,p_module   => l_log_module);
144867 
144868          END IF;
144869 
144870          insert_sources_206(
144871                           p_target_ledger_id => p_target_ledger_id
144872                         , p_language         => l_language
144876                           );
144873                         , p_sla_ledger_id    => l_sla_ledger_id
144874                         , p_pad_start_date   => p_pad_start_date
144875                         , p_pad_end_date     => p_pad_end_date
144877 
144878      END IF;
144879 
144880 l_created := EventClass_207(
144881    p_application_id         => p_application_id
144882  , p_base_ledger_id         => p_base_ledger_id
144883  , p_target_ledger_id       => p_target_ledger_id
144884  , p_language               => l_language
144885  , p_currency_code          => l_currency_code
144886  , p_sla_ledger_id          => l_sla_ledger_id
144887  , p_pad_start_date         => p_pad_start_date
144888  , p_pad_end_date           => p_pad_end_date
144889  , p_primary_ledger_id      => p_primary_ledger_id
144890 );
144891 
144892 
144893 
144894      IF ( g_diagnostics_mode ='Y' ) THEN
144895 
144896          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144897           trace
144898               (p_msg      => 'CALL Transaction Objects Diagnostics'
144899               ,p_level    => C_LEVEL_STATEMENT
144900               ,p_module   => l_log_module);
144901 
144902          END IF;
144903 
144904          insert_sources_207(
144905                           p_target_ledger_id => p_target_ledger_id
144906                         , p_language         => l_language
144907                         , p_sla_ledger_id    => l_sla_ledger_id
144908                         , p_pad_start_date   => p_pad_start_date
144909                         , p_pad_end_date     => p_pad_end_date
144910                           );
144911 
144912      END IF;
144913 
144914 l_created := EventClass_208(
144915    p_application_id         => p_application_id
144916  , p_base_ledger_id         => p_base_ledger_id
144917  , p_target_ledger_id       => p_target_ledger_id
144918  , p_language               => l_language
144919  , p_currency_code          => l_currency_code
144920  , p_sla_ledger_id          => l_sla_ledger_id
144921  , p_pad_start_date         => p_pad_start_date
144922  , p_pad_end_date           => p_pad_end_date
144923  , p_primary_ledger_id      => p_primary_ledger_id
144924 );
144925 
144926 
144927 
144928      IF ( g_diagnostics_mode ='Y' ) THEN
144929 
144930          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144931           trace
144932               (p_msg      => 'CALL Transaction Objects Diagnostics'
144933               ,p_level    => C_LEVEL_STATEMENT
144934               ,p_module   => l_log_module);
144935 
144936          END IF;
144937 
144938          insert_sources_208(
144939                           p_target_ledger_id => p_target_ledger_id
144940                         , p_language         => l_language
144941                         , p_sla_ledger_id    => l_sla_ledger_id
144942                         , p_pad_start_date   => p_pad_start_date
144943                         , p_pad_end_date     => p_pad_end_date
144944                           );
144945 
144946      END IF;
144947 
144948 l_created := EventClass_209(
144949    p_application_id         => p_application_id
144950  , p_base_ledger_id         => p_base_ledger_id
144951  , p_target_ledger_id       => p_target_ledger_id
144952  , p_language               => l_language
144953  , p_currency_code          => l_currency_code
144954  , p_sla_ledger_id          => l_sla_ledger_id
144955  , p_pad_start_date         => p_pad_start_date
144956  , p_pad_end_date           => p_pad_end_date
144957  , p_primary_ledger_id      => p_primary_ledger_id
144958 );
144959 
144960 
144961 
144962      IF ( g_diagnostics_mode ='Y' ) THEN
144963 
144964          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144965           trace
144966               (p_msg      => 'CALL Transaction Objects Diagnostics'
144967               ,p_level    => C_LEVEL_STATEMENT
144968               ,p_module   => l_log_module);
144969 
144970          END IF;
144971 
144972          insert_sources_209(
144973                           p_target_ledger_id => p_target_ledger_id
144974                         , p_language         => l_language
144975                         , p_sla_ledger_id    => l_sla_ledger_id
144976                         , p_pad_start_date   => p_pad_start_date
144977                         , p_pad_end_date     => p_pad_end_date
144978                           );
144979 
144980      END IF;
144981 
144982 l_created := EventClass_210(
144983    p_application_id         => p_application_id
144984  , p_base_ledger_id         => p_base_ledger_id
144985  , p_target_ledger_id       => p_target_ledger_id
144986  , p_language               => l_language
144987  , p_currency_code          => l_currency_code
144988  , p_sla_ledger_id          => l_sla_ledger_id
144989  , p_pad_start_date         => p_pad_start_date
144990  , p_pad_end_date           => p_pad_end_date
144991  , p_primary_ledger_id      => p_primary_ledger_id
144992 );
144993 
144994 
144995 
144996      IF ( g_diagnostics_mode ='Y' ) THEN
144997 
144998          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144999           trace
145000               (p_msg      => 'CALL Transaction Objects Diagnostics'
145001               ,p_level    => C_LEVEL_STATEMENT
145002               ,p_module   => l_log_module);
145003 
145004          END IF;
145005 
145006          insert_sources_210(
145007                           p_target_ledger_id => p_target_ledger_id
145008                         , p_language         => l_language
145009                         , p_sla_ledger_id    => l_sla_ledger_id
145010                         , p_pad_start_date   => p_pad_start_date
145011                         , p_pad_end_date     => p_pad_end_date
145012                           );
145013 
145014      END IF;
145015 
145016 l_created := EventClass_211(
145017    p_application_id         => p_application_id
145018  , p_base_ledger_id         => p_base_ledger_id
145022  , p_sla_ledger_id          => l_sla_ledger_id
145019  , p_target_ledger_id       => p_target_ledger_id
145020  , p_language               => l_language
145021  , p_currency_code          => l_currency_code
145023  , p_pad_start_date         => p_pad_start_date
145024  , p_pad_end_date           => p_pad_end_date
145025  , p_primary_ledger_id      => p_primary_ledger_id
145026 );
145027 
145028 
145029 
145030      IF ( g_diagnostics_mode ='Y' ) THEN
145031 
145032          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145033           trace
145034               (p_msg      => 'CALL Transaction Objects Diagnostics'
145035               ,p_level    => C_LEVEL_STATEMENT
145036               ,p_module   => l_log_module);
145037 
145038          END IF;
145039 
145040          insert_sources_211(
145041                           p_target_ledger_id => p_target_ledger_id
145042                         , p_language         => l_language
145043                         , p_sla_ledger_id    => l_sla_ledger_id
145044                         , p_pad_start_date   => p_pad_start_date
145045                         , p_pad_end_date     => p_pad_end_date
145046                           );
145047 
145048      END IF;
145049 
145050 l_created := EventClass_212(
145051    p_application_id         => p_application_id
145052  , p_base_ledger_id         => p_base_ledger_id
145053  , p_target_ledger_id       => p_target_ledger_id
145054  , p_language               => l_language
145055  , p_currency_code          => l_currency_code
145056  , p_sla_ledger_id          => l_sla_ledger_id
145057  , p_pad_start_date         => p_pad_start_date
145058  , p_pad_end_date           => p_pad_end_date
145059  , p_primary_ledger_id      => p_primary_ledger_id
145060 );
145061 
145062 
145063 
145064      IF ( g_diagnostics_mode ='Y' ) THEN
145065 
145066          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145067           trace
145068               (p_msg      => 'CALL Transaction Objects Diagnostics'
145069               ,p_level    => C_LEVEL_STATEMENT
145070               ,p_module   => l_log_module);
145071 
145072          END IF;
145073 
145074          insert_sources_212(
145075                           p_target_ledger_id => p_target_ledger_id
145076                         , p_language         => l_language
145077                         , p_sla_ledger_id    => l_sla_ledger_id
145078                         , p_pad_start_date   => p_pad_start_date
145079                         , p_pad_end_date     => p_pad_end_date
145080                           );
145081 
145082      END IF;
145083 
145084 l_created := EventClass_213(
145085    p_application_id         => p_application_id
145086  , p_base_ledger_id         => p_base_ledger_id
145087  , p_target_ledger_id       => p_target_ledger_id
145088  , p_language               => l_language
145089  , p_currency_code          => l_currency_code
145090  , p_sla_ledger_id          => l_sla_ledger_id
145091  , p_pad_start_date         => p_pad_start_date
145092  , p_pad_end_date           => p_pad_end_date
145093  , p_primary_ledger_id      => p_primary_ledger_id
145094 );
145095 
145096 
145097 
145098      IF ( g_diagnostics_mode ='Y' ) THEN
145099 
145100          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145101           trace
145102               (p_msg      => 'CALL Transaction Objects Diagnostics'
145103               ,p_level    => C_LEVEL_STATEMENT
145104               ,p_module   => l_log_module);
145105 
145106          END IF;
145107 
145108          insert_sources_213(
145109                           p_target_ledger_id => p_target_ledger_id
145110                         , p_language         => l_language
145111                         , p_sla_ledger_id    => l_sla_ledger_id
145112                         , p_pad_start_date   => p_pad_start_date
145113                         , p_pad_end_date     => p_pad_end_date
145114                           );
145115 
145116      END IF;
145117 
145118 l_created := EventClass_214(
145119    p_application_id         => p_application_id
145120  , p_base_ledger_id         => p_base_ledger_id
145121  , p_target_ledger_id       => p_target_ledger_id
145122  , p_language               => l_language
145123  , p_currency_code          => l_currency_code
145124  , p_sla_ledger_id          => l_sla_ledger_id
145125  , p_pad_start_date         => p_pad_start_date
145126  , p_pad_end_date           => p_pad_end_date
145127  , p_primary_ledger_id      => p_primary_ledger_id
145128 );
145129 
145130 
145131 
145132      IF ( g_diagnostics_mode ='Y' ) THEN
145133 
145134          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145135           trace
145136               (p_msg      => 'CALL Transaction Objects Diagnostics'
145137               ,p_level    => C_LEVEL_STATEMENT
145138               ,p_module   => l_log_module);
145139 
145140          END IF;
145141 
145142          insert_sources_214(
145143                           p_target_ledger_id => p_target_ledger_id
145144                         , p_language         => l_language
145145                         , p_sla_ledger_id    => l_sla_ledger_id
145146                         , p_pad_start_date   => p_pad_start_date
145147                         , p_pad_end_date     => p_pad_end_date
145148                           );
145149 
145150      END IF;
145151 
145152 l_created := EventClass_215(
145153    p_application_id         => p_application_id
145154  , p_base_ledger_id         => p_base_ledger_id
145155  , p_target_ledger_id       => p_target_ledger_id
145156  , p_language               => l_language
145157  , p_currency_code          => l_currency_code
145158  , p_sla_ledger_id          => l_sla_ledger_id
145159  , p_pad_start_date         => p_pad_start_date
145160  , p_pad_end_date           => p_pad_end_date
145161  , p_primary_ledger_id      => p_primary_ledger_id
145162 );
145163 
145164 
145165 
145169           trace
145166      IF ( g_diagnostics_mode ='Y' ) THEN
145167 
145168          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145170               (p_msg      => 'CALL Transaction Objects Diagnostics'
145171               ,p_level    => C_LEVEL_STATEMENT
145172               ,p_module   => l_log_module);
145173 
145174          END IF;
145175 
145176          insert_sources_215(
145177                           p_target_ledger_id => p_target_ledger_id
145178                         , p_language         => l_language
145179                         , p_sla_ledger_id    => l_sla_ledger_id
145180                         , p_pad_start_date   => p_pad_start_date
145181                         , p_pad_end_date     => p_pad_end_date
145182                           );
145183 
145184      END IF;
145185 
145186 
145187  --
145188  -- Bug 4865292
145189  -- When the number of events and that of header extract do not match,
145190  -- set the no header extract flag to indicate there are some issues
145191  -- in header extract.
145192  --
145193  -- Event count context is set in xla_accounting_pkg.unit_processor.
145194  -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
145195  -- to report it as a general error.
145196  --
145197  IF  xla_context_pkg.get_event_count_context <> g_hdr_extract_count
145198  AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
145199 
145200      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145201         trace
145202           (p_msg      => '# of extracted headers and events does not match'
145203           ,p_level    => C_LEVEL_STATEMENT
145204           ,p_module   => l_log_module);
145205 
145206         trace
145207           (p_msg      => '# of extracted headers: '
145208                          ||g_hdr_extract_count
145209           ,p_level    => C_LEVEL_STATEMENT
145210           ,p_module   => l_log_module);
145211 
145212         trace
145213           (p_msg      => '# of events in xla_events_gt: '
145214                          ||xla_context_pkg.get_event_count_context
145215           ,p_level    => C_LEVEL_STATEMENT
145216           ,p_module   => l_log_module);
145217 
145218         trace
145219           (p_msg      => 'Event No Header Extract Context: '
145220                          ||xla_context_pkg.get_event_nohdr_context
145221           ,p_level    => C_LEVEL_STATEMENT
145222           ,p_module   => l_log_module);
145223 
145224      END IF;
145225 
145226 
145227      xla_context_pkg.set_event_nohdr_context
145228        (p_nohdr_extract_flag => 'Y'
145229        ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
145230 
145231      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145232         trace
145233           (p_msg      => 'No Header Extract Flag is set to Y'
145234           ,p_level    => C_LEVEL_STATEMENT
145235           ,p_module   => l_log_module);
145236      END IF;
145237 
145238  END IF;
145239 
145240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145241    trace
145242       (p_msg      => 'END of CreateHeadersAndLines'
145243       ,p_level    => C_LEVEL_PROCEDURE
145244       ,p_module   => l_log_module);
145245 END IF;
145246 
145247 RETURN l_created;
145248 EXCEPTION
145249 WHEN xla_exceptions_pkg.application_exception THEN
145250    RAISE;
145251 WHEN OTHERS THEN
145252    xla_exceptions_pkg.raise_message
145253       (p_location => 'XLA_00200_AAD_S_000010_PKG.CreateHeadersAndLines');
145254 END CreateHeadersAndLines;
145255 --
145256 --
145257 
145258 --
145259 --+============================================+
145260 --|                                            |
145261 --|  PUBLIC FUNCTION                           |
145262 --|                                            |
145263 --+============================================+
145264 --
145265 FUNCTION CreateJournalEntries
145266        (p_application_id         IN NUMBER
145267        ,p_base_ledger_id         IN NUMBER
145268        ,p_pad_start_date         IN DATE
145269        ,p_pad_end_date           IN DATE
145270        ,p_primary_ledger_id      IN NUMBER)
145271 RETURN NUMBER IS
145272 l_log_module                   VARCHAR2(240);
145273 l_array_ledgers                xla_accounting_cache_pkg.t_array_ledger_id;
145274 l_temp_result                  BOOLEAN;
145275 l_result                       NUMBER;
145276 BEGIN
145277 --
145278 IF g_log_enabled THEN
145279    l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
145280 END IF;
145281 --
145282 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145283    trace
145284       (p_msg      => 'BEGIN of CreateJournalEntries'||
145285                      ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
145286       ,p_level    => C_LEVEL_PROCEDURE
145287       ,p_module   => l_log_module);
145288 
145289 END IF;
145290 
145291 --
145292 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
145293 
145294 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145295    trace
145296       (p_msg      => 'g_diagnostics_mode = '||g_diagnostics_mode
145297       ,p_level    => C_LEVEL_STATEMENT
145298       ,p_module   => l_log_module);
145299 END IF;
145300 --
145301 xla_ae_journal_entry_pkg.SetProductAcctDefinition
145302    (p_product_rule_code      => 'AP_ENC_CASH'
145303    ,p_product_rule_type_code => 'S'
145304    ,p_product_rule_version   => ''
145305    ,p_product_rule_name      => 'Encumbrance Cash'
145306    ,p_amb_context_code       => 'DEFAULT'
145307    );
145308 
145309 l_array_ledgers :=
145310    xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
145311       (p_base_ledger_id  => p_base_ledger_id);
145312 
145313 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
145314    l_temp_result :=
145315       XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
145316          (p_application_id           => p_application_id
145317          ,p_base_ledger_id           => p_base_ledger_id
145318          ,p_target_ledger_id         => l_array_ledgers(Idx)
145319          ,p_primary_ledger_id        => p_primary_ledger_id
145320          ,p_pad_start_date           => p_pad_start_date
145321          ,p_pad_end_date             => p_pad_end_date);
145322 
145323    l_temp_result :=
145324       l_temp_result AND
145325       CreateHeadersAndLines
145326          (p_application_id             => p_application_id
145327          ,p_base_ledger_id             => p_base_ledger_id
145328          ,p_target_ledger_id           => l_array_ledgers(Idx)
145329          ,p_pad_start_date             => p_pad_start_date
145330          ,p_pad_end_date               => p_pad_end_date
145331          ,p_primary_ledger_id          => p_primary_ledger_id
145332          );
145333 END LOOP;
145334 
145335 
145336 IF (g_diagnostics_mode = 'Y' AND
145337     C_LEVEL_UNEXPECTED >= g_log_level AND
145338     xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
145339 
145340    xla_accounting_dump_pkg.acctg_event_extract_log(
145341     p_application_id  => p_application_id
145342     ,p_request_id     => xla_environment_pkg.g_Req_Id
145343    );
145344 
145345 END IF;
145346 
145347 CASE l_temp_result
145348   WHEN TRUE THEN l_result := 0;
145349   ELSE l_result := 2;
145350 END CASE;
145351 
145352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145353    trace
145354       (p_msg      => 'return value. = '||TO_CHAR(l_result)
145355       ,p_level    => C_LEVEL_PROCEDURE
145356       ,p_module   => l_log_module);
145357    trace
145358       (p_msg      => 'END of CreateJournalEntries '
145359       ,p_level    => C_LEVEL_PROCEDURE
145360       ,p_module   => l_log_module);
145361 END IF;
145362 
145363 RETURN l_result;
145364 EXCEPTION
145365 WHEN xla_exceptions_pkg.application_exception THEN
145366    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145367    trace
145368       (p_msg      => 'ERROR. = '||sqlerrm
145369       ,p_level    => C_LEVEL_PROCEDURE
145370       ,p_module   => l_log_module);
145371    END IF;
145372    RAISE;
145373 WHEN OTHERS THEN
145374    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145375    trace
145376       (p_msg      => 'ERROR. = '||sqlerrm
145377       ,p_level    => C_LEVEL_PROCEDURE
145378       ,p_module   => l_log_module);
145379    END IF;
145380    xla_exceptions_pkg.raise_message
145381       (p_location => 'XLA_00200_AAD_S_000010_PKG.CreateJournalEntries');
145382 END CreateJournalEntries;
145383 --
145384 --=============================================================================
145385 --
145386 --
145387 --
145388 --
145389 --
145390 --
145391 --
145392 --
145393 --
145394 --
145395 --
145396 --
145397 --
145398 --
145399 --
145400 --
145401 --
145402 --
145403 --
145404 --
145405 --
145406 --
145407 --=============================================================================
145408 --=============================================================================
145409 --          *********** Initialization routine **********
145410 --=============================================================================
145411 
145412 BEGIN
145413    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
145414    g_log_enabled    := fnd_log.test
145415                           (log_level  => g_log_level
145416                           ,module     => C_DEFAULT_MODULE);
145417 
145418    IF NOT g_log_enabled  THEN
145419       g_log_level := C_LEVEL_LOG_DISABLED;
145420    END IF;
145421 --
145422 END XLA_00200_AAD_S_000010_PKG;
145423 --